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 |
---|---|---|
|
Bool |
|
|
Bool |
Verhält sich ähnlich wie |
|
Bool |
Wird |
|
Bool |
Dient dem gezielten Einschalten ( Voraussetzung ist die Deklaration von |
|
String |
Speichert den Namen des Schritts, der eine durch Voraussetzung ist die Deklaration von |
|
String |
Speichert im Falle einer Zeitüberschreitung den Namen des Bausteins, in dem eine durch
Voraussetzung ist die Deklaration von |
|
Bool |
Solange diese boolesche Variable Voraussetzung ist die Deklaration von |
|
Bool |
Solange diese Variable |
|
Bool |
Wird |
|
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. |
|
Bool |
Erlauben den "Tipp-Betrieb" des AS-Bausteins. Wenn Sie den Tipp-Betrieb durch |
|
Enthält als Zeichenkette alle Variablen, die zum Gesamtwert
|
|
|
Enthält in einer Tabelle die Variablen, die zum Gesamtwert
|
Implizite Erzeugung der AS-Flags
AS-Flags werden von CODESYS automatisch deklariert, wenn Sie die entsprechende Option aktiviert haben. Diese Option können Sie im Eigenschaften-Dialog „AS-Einstellungen“ für eine einzelne POUs oder im Projekteinstellung-Dialog „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 „Voreinstellungen verwenden“ nicht aktiviert haben. Wenn Sie diese Option aktiviert haben, dann gelten die Einstellungen, die in den Projekteinstellungen definiert sind.
AS-Flags, die Sie im AS-Einstellungen-Dialog deklariert haben, sind nur in der Online-Ansicht des AS-Bausteins sichtbar !
Siehe auch
Explizite Erzeugung der AS-Flags
Händische Deklaration, wie es in CoDeSys V2.3 nötig war, 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 eine lokales AS-Flag deklariert, das CODESYS dann anstelle der globalen Variable verwendet!
Anwendungsbeispiel für SFCError
Beispiel
Sie haben einen AS-Baustein namens sfc1
angelegt, der einen Schritt s1
enthält. In den Eigenschaften des Schritts haben Sie Zeitbegrenzungen definiert.
Siehe Abbildung "Online-Ansicht von AS-Baustein sfc1
".
Wenn aus irgendwelchen Gründen Schritt s1
länger aktiv bleibt als in seinen Zeiteigenschaften erlaubt ist (Zeitüberschreitung),
setzt CODESYS das AS-Flag SFCError
, auf das die Applikation 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 sfc1
im Deklarationsteil angezeigt, ist aber ohne Funktion.

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

Online Ansicht von AS-Baustein sfc1

SFCError
wird TRUE
, sobald eine Zeitüberschreitung innerhalb von sfc2
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.
Siehe auch
Zugriff auf die Flags
Syntax für den Zugriff:
Innerhalb des Bausteins weisen Sie das Flag direkt zu: <Variablenname>:=<AS-Flag>
Beispiel
checkerror:=SFCerror;
Von einem anderen Baustein aus mit Bausteinname: <Variablenname>:=<Bausteinname>.<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
Siehe auch