Skip to main content

AS-Flags

AS-Flags sind implizit erzeugte Variablen mit vordefinierten Namen, die die Funktionen zur Steuerung und Diagnose von AS-Diagrammen bereitstellen. Mithilfe dieser Flags können Sie Transitionen gezielt auslösen.

Beispielsweise

  • Zeitüberschreitungen erkennen

  • Schrittketten zurücksetzen

  • Tippbetrieb aktivieren

Für den Zugriff auf diese Variablen müssen die entsprechenden Flags deklariert und aktiviert werden.

Name

Datentyp

Beschreibung

SFCInit

BOOL

TRUE: 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 weiter bearbeitet.

SFCReset

BOOL

Verhält sich ähnlich wie SFCInit

Im Unterschied dazu wird nach der Initialisierung der Initialschritt allerdings weiter ausgeführt. So können Sie beispielsweise im Initialschritt das SFCReset-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 nur dann erkannt, wenn die Variable SFCError zuvor zurückgesetzt wurde. Andernfalls bleibt das Flag gesetzt und weitere Zeitüberschreitungen werden nicht erneut registriert.

Die Deklaration von SFCError ist Voraussetzung für das Funktionieren der weiteren Flag-Variablen zur Überwachung 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 solange bewahrt, bis der registrierte Schrittfehler mit Hilfe von SFCQuitError (FALSE -> TRUE) 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 Zeitüberschreitung durch SFCQuitError zurückgesetzt wird.

Voraussetzung ist die Deklaration von SFCError.

SFCQuitError

BOOL

Solange diese boolesche Variable TRUE ist, wird die Abarbeitung des AS-Diagramms angehalten. 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, wird die Abarbeitung des AS-Diagramms angehalten.

SFCTrans

BOOL

Wird TRUE, wenn eine Transition schaltet.

SFCCurrentStep

STRING

Zeigt den Namen des gerade aktiven Schritts an, unabhängig von der Zeitüberwachung

Bei einer Parallelverzweigung wird immer der Name des Schritts des äußersten rechten Zweigs gespeichert.

SFCTip

SFCTipMode

BOOL

TRUE: Aktiviert den Tippbetrieb des AS-Bausteins

Wenn Sie den Tippbetrieb 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 AnalyzeExpression der Bibliothek Analyzation.

Zur erweiterten Konfiguration der Analyse sehen Sie auch: AS

SFCErrorAnalyzationTable

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 AnalyzeExpressionTable der Bibliothek Analyzation.

Zur erweiterten Konfiguration der Analyse sehen Sie auch: AS

Implizite Erzeugung der AS-Flags

AS-Flags werden automatisch deklariert, wenn Sie die entsprechende Option aktiviert haben. Diese Option können Sie im Eigenschaften-Dialog AS-Einstellungen für einzelne Bausteine oder im Projekteinstellungen-Dialog AS für alle AS-Bausteine im Projekt setzen.

Tipp

Die AS-Einstellungen der AS-Flags von einzelnen Bausteinen 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.

Tipp

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

Tipp

In den AS-Elementeigenschaften können Sie festlegen, ob für ein Flag eine Symboldefinition in die Symbolkonfiguration exportiert werden soll.

Explizite Erzeugung der AS-Flags

Eine manuelle Deklaration, wie es in CoDeSys V2.3 erforderlich war, ist nur noch erforderlich, wenn ein Schreibzugriff auf die Flags aus einem anderen Baustein erfolgen soll. Beachten Sie dabei Folgendes:

Wichtig

Wurden die Flags in einer globalen Variablenliste deklariert, müssen Sie die Einstellung Deklarieren im Dialog AS-Einstellungen deaktivieren. Andernfalls wird zusätzlich implizit ein lokales AS-Flag erzeugt. Dieses Flag wird dann anstelle der globalen Variable verwendet.

Anwendungsbeispiel für SFCError

Beispiel 1. Beispiel

Sie haben einen AS-Baustein namens sfc1 angelegt, der einen Schritt s1 enthält. In den Eigenschaften des Schritts haben Sie Zeitbegrenzungen definiert.

Überschreitet die Aktivitätsdauer des Schritts s1 den in seinen Zeiteigenschaften festgelegten Grenzwert, wird das Flag SFCError gesetzt. Die Applikation kann dieses Flag auswerten, um auf die Zeitüberschreitung zu reagieren.

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

_cds_img_sfc_sfc_flags.png

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

_cds_img_sfc_sfcerror_example.png

Onlineansicht von AS-Baustein sfc1:

_cds_img_sfc_sfcerror_example_online.png

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

Mit den Flags SFCErrorAnalyzation und SFCErrorAnalyzationTable aus der Bibliothek Analyzation können Sie die Ursache einer Zeitüberschreitung analysieren. Mit diesen Flags lassen sich die einzelnen Komponenten des Ausdrucks ermitteln, die dazu beitragen, dass SFCError den Wert TRUE annimmt.



Zugriff auf die Flags

Syntax für den Zugriff

Innerhalb des Bausteins weisen Sie das Flag direkt zu: <variable name> := <sfc flag>

Beispiel 2. Beispiel
checkerror := SFCError;


Von einem anderen Baustein aus mit Bausteinname: <variable name> := <pou name>.<sfc flag>

Beispiel 3. Beispiel:
checkerror := SFC_prog.SFCError;


Wenn 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 4. 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;  //Write access to SFCInit in SFC_prog