Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: S5Timer ist nach dem Laden nicht sofort ansprechbar

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So sollte es funktionieren:
    Code:
    //Zeitbaustein und Taktsignalerzeugung
    Zeit1_1:= S_PEXT(T_NO:=Zeitbaustein_Nocke, S:=Zeit_Merker, TV:=Zeit_umgewandelt, Q=>Zeit_Merker_Inv);
    Zeit_Merker := NOT Zeit_Merker_Inv;
    So finde ich es besser:
    Code:
    //Zeitbaustein und Taktsignalerzeugung
    Zeit1_1:= S_ODT(T_NO:=Zeitbaustein_Nocke, S:=Zeit_Merker, TV:=Zeit_umgewandelt, Q=>Zeit_Merker_Inv);
    Zeit_Merker := NOT Zeit_Merker_Inv;
    
    //Auswertung bei Bedarf:
    zeit_laeuft := Zeit_Merker AND NOT Zeit_Merker_Inv;
    zeit_fertig_puls := Zeit_Merker_Inv;
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. #12
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.713
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Zitat Zitat von kapo666 Beitrag anzeigen
    Leider kenn i den S_PEXT Timer nicht bzw. diesen Ausdruck.
    Ich vermute mal, das Du die Zeitfunktion SV - den verlängerten Impuls - schon kennst, wahrscheinlich nur nicht unter der SCL-Bezeichnung.



    Warum weicht die SCL-Bezeichnung eigentlich so komplett von der in AWL/FUP/KOP ab?

  3. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    kapo666 (28.09.2013)

  4. #13
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Ich vermute mal, das Du die Zeitfunktion SV - den verlängerten Impuls - schon kennst, wahrscheinlich nur nicht unter der SCL-Bezeichnung.
    SCL-Bezeichnungen kenn ich keine einzigen bzw. habe ich damit noch nichts gemacht.

  5. #14
    blubbb ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.05.2013
    Beiträge
    19
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das Problem besteht weiter hin erst nach einem einmaligen Neustart der CPU nach dem ersten laden funktioniert dieser Timer.

    Auch PN/DP´s Lösung funktioniert genau wie meine.

  6. #15
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.725
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Also um mal ganz ehrlich zu sein, kapier ich noch nicht mal was nicht funktionieren soll!

    Funktioniert der Timer nun nach dem Baustein Laden? Wie Oft?
    Funktioniert der Timer nach dem CPU-Neustart? Wie Oft?
    Ab wann funktioniert er nicht mehr, und falls ja wie glaubst du das zu erkennen.

    Kannst du auch mal eine Frage formulieren die ein normaldenkender Mensch überhaupt versteht?
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  7. #16
    blubbb ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.05.2013
    Beiträge
    19
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also ich lade das komplette Programm in den Simulator, dann funktioniert der Timer beim ersten mal nicht . Erst wenn ich die CPU einmal Stoppe und wieder einschalte dann funktioniert dieser wieder ohne irgendwelche Änderungen im Programm.

    Der Timer sollte von Anfang an laufen mit seiner eingestellten Zeitvorgabe. Das tut er allerdings erst nach dem Neustart der CPU.

    Code:
    //Zeitbaustein und Taktsignalerzeugung
    Zeit1_1:= S_PEXT(T_NO:=Zeitbaustein_Nocke, S:=Zeit_Merker, TV:=Zeit_umgewandelt, Q=>Zeit_Merker_Inv);
    Zeit_Merker := NOT Zeit_Merker_Inv;

  8. #17
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Dann zeige mal mehr von Deinem Programm:
    - Deklaration aller Variablen
    - Aufruf Deines Programms
    - Deklaration der Aufrufparameter
    - ist Dein Programm ein FC oder FB? (FB --> mal den Instanz-DB neu generieren und laden)
    - welchen Wert haben die Variablen Zeitbaustein_Nocke und Zeit_umgewandelt
    - ...

    Kann es sein, daß Zeitbaustein_Nocke, Zeit_Merker oder Zeit_umgewandelt in TEMP liegen und nicht in jedem Zyklus vor dem Timeraufruf etwas zugewiesen wird?

    In meiner PLCSIM-Simulation in einem FC funktioniert der Timer wie er soll. Ohne CPU-Stop. Auch wenn ich den Baustein in x-beliebigen Situationen nachlade.

    Kannst Du eventuell das Programm auf einen Baustein und den Baustein-Aufruf zusammenkürzen, bei dem das Problem reproduzierbar auftritt?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    blubbb (01.10.2013)

  10. #18
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Ach ja: Woher entnimmst Du eigentlich, daß der Timer nicht funktioniert/läuft?
    Hänge mal einen Zähler (z.B. S_CU) an Zeit_Merker_Inv (oder Zeit_Merker) - zählt der Zähler?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. #19
    blubbb ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.05.2013
    Beiträge
    19
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also das Problem ist behoben. Allerdings erst durchs reduzieren des Projekts danke an PN/DP.

    Da der Timer sofort losläuft und am Anfang nach dem Laden die Zeit noch keinen Wert also 0ms hat, denke ich das der Timer dadurch einen weg bekommt.

    Nach dem man eine Eingabe getätigt hat schreibt er ja den Wert in die Zeitvorgabe und nach anschließendem Laden steht auch sofort ein Wert in der Zeitvorgabe bei Programmstart.

    Ich habe die Zeile ergänzt durch die Bedingung das ein Wert in Zeit_umgewandelt stehen muss bis der Timer überhaupt startet:

    Code:
    //Zeitbaustein und Taktsignalerzeugung
    Zeit1_1:= S_PEXT(T_NO:=Zeitbaustein_Nocke, S:=Zeit_Merker, TV:=Zeit_umgewandelt, Q=>Zeit_Merker_Inv);
    Zeit_Merker := NOT Zeit_Merker_Inv AND (Zeit_umgewandelt > 0);
    Danke an PN/DP und alle anderen für eure Hilfe.

  12. #20
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von blubbb Beitrag anzeigen
    Also das Problem ist behoben.
    Da muß ich Dich leider enttäuschen, die eigentliche Ursache Deines Problems ist nicht behoben, nur ein halbfertiger Workaround gefunden, der meistens (aber nicht immer) hilft.

    Wenn Du ein Starten des Timers mit T#0s sicher verhindern willst, dann muß Du "Zeit_umgewandelt" VOR dem Timeraufruf prüfen.

    So funktioniert der Timer S_PEXT: bei steigender Flanke von "Zeit_Merker" an S_PEXT.S wird der Zeitwert von "Zeit_umgewandelt" an S_PEXT.TV übernommen und danach nicht mehr weiter beachtet.


    Doch wo ist die Ursache Deines Problems, daß Du die CPU nach Laden des Programmbausteins in Stop setzen mußt?

    Nur dadurch daß Du einen Programmbaustein in die CPU lädst wird nicht der aktuelle Wert in der Variablen "Zeit_umgewandelt" geändert. Hat die Variable einen Wert vor dem Laden, dann hat sie ihn auch noch nach dem Laden. Es sei denn, die Variable "Zeit_umgewandelt" liegt in TEMP oder OUT (eines FC) - dann ist deren Wert nach dem Laden unbestimmt! Dies mußt Du überprüfen.
    Oder die Variable liegt in einem (Instanz-)DB und Du lädst auch den DB? Dann gib der Variable einen vernünftigen Anfangswert und Aktualwert im offline-DB.

    Also wenn Du willst, daß wir die Ursache Deines Problems finden, dann zeige uns mehr von Deinem Programm und beantworte die Fragen aus #17

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Step 7 Datenbaustein nicht über Symbolname ansprechbar
    Von TimeOUT im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 18.07.2013, 12:40
  2. Wago ist nach kurzer Zeit nicht mehr erreichbar
    Von erdbeerschaeler im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 08.08.2011, 15:37
  3. Pointer stimmt nach dem Speichern nicht mehr
    Von matziane im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 16.07.2010, 14:14
  4. Antworten: 0
    Letzter Beitrag: 24.05.2010, 14:06
  5. S5Timer wird nicht korrekt bearbeitet
    Von raffi67 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.12.2006, 19:27

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •