Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Totzeiten in der Aktion

Student
2009-05-06
2009-05-07
  • Student - 2009-05-06

    Halo

    Ich habe eine Frage zum Thema Totzeiten. Ich kann bei einer Aktion eine AS Zeitgrenzenübersicht aufrufen und dort eine minimum und eine maximum Zeit eingeben. Doch wenn die Maximumzeit überschritten wird, geschieht nichts. Wird irgendwo ein Vermerk gemacht, den ich als "Bool" verwenden kann?

    Sonst müsste ich die Totzeiten mit einer OderVerknüpfung nebenan führen.

    Im Anhang habe ich noch ein Bild beigelegt.

    Gruss

    IMG: zeitgrenzenübersicht.JPG

     
  • bonatus - 2009-05-07

    Hallo,

    hier alle variablen die du im AS benutzen kannst unter anderem auch der Zeitfehler - SFCError in Verbindung mit der Variablen SFCEnableLimit

    VAR_INPUT
       SFCEnableLimit:BOOL;    (*Diese spezielle Variable ist vom Typ BOOL. Wenn sie TRUE ist, werden Zeitüberschreitungen bei den Schritten in SFCError registriert. Ansonsten werden Zeitüberschreitungen ignoriert.*)
       SFCInit:BOOL;         (*Wenn diese boolsche Variable TRUE ist, dann wird die Ablaufsprache auf den Init-Schritt zurückgesetzt. Die anderen AS-Flags werden ebenfalls zurückgesetzt (Initialisierung). Solange die Variable TRUE ist, bleibt der Init-Schritt gesetzt (aktiv), wird aber nicht ausgeführt. Erst wenn SFCInit wieder auf FALSE gesetzt wird, wird der Baustein normal weiterbearbeitet.*)
       SFCReset:BOOL;      (*Diese Variable vom Typ BOOL verhält sich ähnlich wie SFCInit. Im Unterschied zu dieser wird allerdings nach der Initialisierung der Initschritt weiter abgearbeitet. Dies könnte beispielsweise dazu benützt werden, um im Initschritt das SFCReset-Flag gleich wieder auf FALSE zu setzen*)
       SFCQuitError:BOOL;   (*Solange diese boolsche Variable TRUE ist, wird die Abarbeitung des AS-Diagramms angehalten, eine eventuelle Zeitüberschreitung in der Variablen SFCError wird dabei zurückgesetzt. Wenn die Variable wieder auf FALSE gesetzt wird, werden alle bisherigen Zeiten in den aktiven Schritten zurückgesetzt.*)
       SFCPause:BOOL;      (*Solange diese boolsche Variable TRUE ist, wird die Abarbeitung des AS-Diagramms angehalten.*)
       SFCTip:BOOL;         (*Diese Variablen vom Typ BOOL erlauben den Tipp-Betrieb des SFC. Wenn dieser durch SFCTipMode=TRUE eingeschaltet ist, kann nur zum nächsten Schritt weitergeschaltet werden indem SFCTip auf TRUE gesetzt wird. Solange SFCTipMode auf FALSE gesetzt ist, kann zusätzlich auch über die Transitionen weitergeschaltet werden.*)
       SFCTipMode:BOOL;      (*Diese Variablen vom Typ BOOL erlauben den Tipp-Betrieb des SFC. Wenn dieser durch SFCTipMode=TRUE eingeschaltet ist, kann nur zum nächsten Schritt weitergeschaltet werden indem SFCTip auf TRUE gesetzt wird. Solange SFCTipMode auf FALSE gesetzt ist, kann zusätzlich auch über die Transitionen weitergeschaltet werden.*)
    END_VAR
    VAR_OUTPUT
       SFCTrans:BOOL;            (*Diese boolsche Variable wird TRUE, wenn eine Transition schaltet*)
       SFCError:BOOL;            (*Diese boolsche Variable wird TRUE, wenn in einem AS-Diagramm eine Zeitüberschreitung aufgetreten ist. Wenn im Programm nach der ersten Zeitüberschreitung eine weitere auftritt, wird diese nicht mehr registriert, wenn die Variable SFCError vorher nicht wieder zurückgesetzt wurde*)
       SFCErrorStep:STRING;         (*Diese Variable ist vom Typ STRING. Wird durch SFCError eine Zeitüberschreitung registriert, wird in dieser Variable der Name des Schritts gespeichert, der die Zeitüberschreitung verursacht hat*)
       SFCErrorPOU:STRING;         (*Diese Variable vom Typ STRING erhält im Falle einer Zeitüberschreitung den Namen des Bausteins, in dem die Zeitüberschreitung aufgetreten ist*)
       SFCCurrentStep:STRING;      (*Diese Variable ist vom Typ STRING. In dieser Variablen wird der Name des Schritts gespeichert, der aktiv ist, unabhängig von der Zeitüberwachung. Bei einer Parallelverzweigung wird der Schritt im äußersten rechten Zweig gespeichert.
                                 Wenn einmal eine Zeitüberschreitung aufgetreten ist, und die Variable SFCError nicht wieder zurückgesetzt wurde, wird keine weitere Zeitüberschreitung registriert.*)
       SFCErrorAnalyzation:STRING;   (*Diese Variable vom Typ STRING gibt den Transitionsausdruck bzw. jede Variable eines zusammengesetzten Ausdrucks aus,
                               welche zu einem FALSE der Transition führt und damit zu einer Zeitüberschreitung im vorangehenden Schritt. 
                               Voraussetzung dafür ist die Deklaration des Flags SFCError, das die Zeitüberschreitung registriert. 
                               SFCErrorAnalyzation greift auf eine Funktion AppendErrorString der Bibliothek TcSystem.Lib zurück. Der Ausgabestring trennt mehrere Komponenten durch das Zeichen "|". *)
    END_VAR
    
     

Log in to post a comment.