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 |
SFCReset | Bool | Verhält sich ähnlich wie |
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 |
SFCEnableLimit | Bool | Dient dem gezielten Einschalten (TRUE) und Ausschalten (FALSE) der Kontrolle für Zeitüberschreitungen in Schritten durch |
SFCErrorStep | String | Speichert den Namen des Schritts, der eine durch |
SFCErrorPOU | String | Speichert im Falle einer Zeitüberschreitung den Namen des Bausteins, in dem eine durch |
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 |
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 |
SFCErrorAnalyzation |
| Enthält als Zeichenkette alle Variablen, die zum Gesamtwert TRUE von
|
SFCError |
| Enthält in einer Tabelle die Variablen, die zum Gesamtwert TRUE von
|
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.
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, 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.
Nun können Sie das AS-Flag innerhalb des Bausteins, beispielsweise in einer Aktion, oder von außerhalb des Bausteins ansprechen.
Online-Ansicht von AS-Baustein SFCSample
:
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