AS-Flags

AS-Flags sind implizit erzeugte Variablen mit vordefinierten Namen. Sie können sie verwenden, um die Abarbeitung eines AS-Diagramms zu beeinflussen. Mit diesen Flags können Sie zum Beispiel Zeitüberschreitungen anzeigen oder Schrittketten zurücksetzen. Weiterhin können Sie zum Beispiel den Tipp-Betrieb anschalten, um Transitionen gezielt zu schalten. Damit Sie auf diese Variablen Zugriff haben, müssen Sie sie deklarieren und aktivieren.

AS-Flags

Name

Datentyp

Beschreibung

SFCInit

Bool

TRUE: TwinCAT setzt den Ablauf auf den Initialschritt zurück. Die anderen AS-Flags werden ebenfalls zurückgesetzt (Initialisierung). Solange die Variable TRUE ist, bleibt der Initialschritt gesetzt (aktiv), wird aber nicht ausgeführt. Erst wenn Sie SFCInit wieder auf FALSE setzen, wird der Baustein normal weiterbearbeitet.

SFCReset

Bool

Verhält sich ähnlich wie SFCInit. Im Unterschied zu diesem arbeitet TwinCAT allerdings nach der Initialisierung den Initialschritt weiter ab. So könnten Sie beispielsweise im Init-Schritt das SFCReset-yyyyy-Flag gleich wieder auf FALSE setzen.

SFCError

Bool

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 Sie die Variable SFCError vorher nicht wieder zurückgesetzt haben. Die Deklaration von SFCError ist Voraussetzung für das Funktionieren der anderen Flag-Variablen zur Kontrolle des zeitlichen Ablaufs (SFCErrorStep, SFCErrorPOU, SFCQuitError).

SFCEnableLimit

Bool

Dient dem gezielten Einschalten (TRUE) und Ausschalten (FALSE) der Kontrolle für Zeitüberschreitungen in Schritten durch SFCError. Wenn Sie diese Variable deklarieren und aktivieren (AS-Einstellungen), müssen Sie sie auch auf TRUE setzen, damit SFCError arbeitet, ansonsten werden Zeitüberschreitungen ignoriert. Die Verwendung kann beispielsweise bei Inbetriebnahme oder Handbetrieb nützlich sein. Wenn Sie die Variable nicht deklarieren, arbeitet SFCError automatisch.
Voraussetzung ist die Deklaration von SFCError.

SFCErrorStep

String

Speichert den Namen des Schritts, der eine durch SFCError registrierte Zeitüberschreitung verursacht hat. Der Name wird gespeichert, bis die registrierte Zeitüberschreitung durch SFCQuitError zurückgesetzt wird.
Voraussetzung ist die Deklaration von SFCError.

SFCErrorPOU

String

Speichert im Falle einer Zeitüberschreitung den Namen des Bausteins, in dem eine durch SFCError registrierte Zeitüberschreitung aufgetreten ist. Der Name wird gespeichert, bis die registrierte Zeitüberschreitung durch SFCQuitError zurückgesetzt wird.
Voraussetzung ist die Deklaration von SFCError.

SFCQuitError

Bool

Solange diese boolesche Variable TRUE ist, hält TwinCAT die Abarbeitung des AS-Diagramms an. Eine eventuelle Zeitüberschreitung, gespeichert in der Variablen SFCError, wird dabei zurückgesetzt. Wenn Sie die Variable wieder auf FALSE setzen, werden alle bisherigen Zeiten in den aktiven Schritten zurückgesetzt.
Voraussetzung ist die Deklaration von SFCError.

SFCPause

Bool

Solange diese Variable TRUE ist, hält TwinCAT die Abarbeitung des AS-Diagramms an.

SFCTrans

Bool

Wird TRUE, wenn eine Transition schaltet.

SFCCurrentStep

String

Zeigt den Namen des gerade aktiven Schritts, unabhängig von der Zeitüberwachung. Bei einer Parallel-Verzweigung wird immer der Name des Schrittes des äußersten rechten Zweigs gespeichert.

SFCTip,

SFCTipMode

Bool

Erlauben den „Tipp-Betrieb“ des AS-Bausteins.

Wenn Sie den Tipp-Betrieb durch SFCTipMode=TRUE aktivieren, kann nur zum nächsten Schritt weiter geschaltet werden, indem Sie SFCTip auf TRUE setzen. Solange Sie SFCTipMode auf FALSE setzen, kann zusätzlich auch über die Transitionen weiter geschaltet werden.

SFCErrorAnalyzation

 

Enthält als Zeichenkette alle Variablen, die zum Gesamtwert TRUE von SFCError beitragen (Zeitüberschreitung in einem Schritt). SFCError muss dazu aktiviert sein.

SFCErrorAnalyzation verwendet dazu implizit die Funktion des Bausteins AnaylzeExpression der Bibliothek Tc2_System.

SFCError
AnalyzationTable

 

Enthält in einer Tabelle die Variablen, die zum Gesamtwert TRUE von SFCError beitragen (Zeitüberschreitung in einem Schritt). SFCError muss dazu aktiviert sein.

SFCErrorAnalyzationTable verwendet dazu implizit die Funktion des Bausteins AnaylzeExpressionTable der Bibliothek Tc2_System.

Implizite Erzeugung der AS-Flags

AS-Flags werden von TwinCAT automatisch deklariert, wenn Sie die entsprechende Option aktiviert haben. Diese Option können Sie in der Ansicht Eigenschaften für eine einzelne AS-POU oder in den Projekteigenschaften in der Kategorie AS für alle AS-POUs im Projekt setzen.

AS-Flags 1:

Die AS-Einstellungen der AS-Flags von einzelnen POUs sind nur wirksam, wenn Sie die Option Use default SFC settings nicht aktiviert haben. Wenn Sie diese Option aktiviert haben, dann gelten die Einstellungen, die in den Projekteigenschaften definiert sind.

AS-Flags 2:

AS-Flags, die Sie im AS-Einstellungen-Dialog deklariert haben, sind nur in der Online-Ansicht des AS-Bausteins sichtbar!

Explizite Erzeugung der AS-Flags

Händische Deklaration ist nur noch erforderlich, um Schreibzugriff von einem anderen Baustein aus zu ermöglichen. In diesem Fall müssen Sie folgendes beachten: Wenn Sie das Flag in einer globalen Variablenliste deklariert haben, müssen Sie dessen Einstellung „Deklarieren“ im AS-Einstellungen-Dialog deaktivieren. Andernfalls wird implizit ein lokales AS-Flag deklariert, das TwinCAT dann anstelle der globalen Variablen verwendet!

Anwendungsbeispiel für SFCError

Sie haben einen AS-Baustein namens „SFCSample“ angelegt, der einen Schritt „s1“ enthält. In den Eigenschaften des Schritts haben Sie Zeitbegrenzungen definiert. Siehe Abbildung „Online-Ansicht von AS-Baustein SFCSample“.

Wenn aus irgendwelchen Gründen Schritt s1 länger aktiv bleibt als in seinen Zeiteigenschaften erlaubt ist (Zeitüberschreitung), setzt TwinCAT das AS-Flag SFCError, auf das das SPS-Programm zugreifen kann.

Um diesen Zugriff zu erlauben, müssen Sie das AS-Flag in den AS-Einstellungen aktivieren und deklarieren. Wenn Sie es nur deklarieren, wird das AS-Flag zwar in der Online-Ansicht von SFCSample im Deklarationsteil angezeigt, ist aber ohne Funktion.

AS-Flags 3:

Nun können Sie das AS-Flag innerhalb des Bausteins, beispielsweise in einer Aktion, oder von außerhalb des Bausteins ansprechen.

AS-Flags 4:

Online-Ansicht von AS-Baustein SFCSample:

AS-Flags 5:

SFCError wird TRUE, sobald eine Zeitüberschreitung innerhalb von SFCSample auftritt.

Beachten Sie die Möglichkeit mit Hilfe der Flags SFCErrorAnalyzation und SFCErrorAnalyzationTable die Komponenten des Ausdrucks zu ermitteln, der zum Wert TRUE des SFCError beiträgt.

Zugriff auf die Flags

Syntax für den Zugriff:

Innerhalb der POU weisen Sie das Flag direkt zu: <Variablenname>:=<AS-Flag>

Beispiel:

checkerror:=SFCerror;

Von einem anderen Baustein aus mit POU-Name:  <Variablenname>:=<POU-Name>.<AS-Flag>

Beispiel:

checkerror:=SFC_prog.SFCerror;

Falls Sie einen Schreibzugriff von einem anderen Baustein aus benötigen, müssen Sie das AS-Flag zusätzlich explizit als eine VAR_INPUT Variable im AS-Baustein oder global in einer GVL deklarieren.

Beispiel:

Lokale Deklaration:

PROGRAM SFC_prog
VAR_INPUT
    SFCinit:BOOL;
END_VAR

oder globale Deklaration in einer globalen Variablenliste:

VAR_GLOBAL
    SFCinit:BOOL;
END_VAR

PROGRAM PLC_PRG
VAR
    setinit: BOOL;
END_VAR
SFC_prog.SFCinit:=setinit;  //Schreibzugriff auf SFCinit in SFC_prog