Skip to main content

Implizite Variablen

Jedes AS-Objekt stellt implizite Variablen bereit, mit denen Sie zur Laufzeit den Status von Schritten und IEC-Aktionen überwachen können. Diese impliziten Variablen werden für jeden Schritt und jede IEC-Aktion automatisch angelegt.

Die impliziten Variablen sind Strukturinstanzen vom Typ SFCStepType (bei Schritten) bzw. SFCActionType (bei Aktionen). Die Variablen haben den Namen des Elementes, z. B. „step1“ für einen Schritt mit Schrittnamen „step1“. Die Strukturkomponenten beschreiben den Status eines Schritts bzw. einer Aktion oder die aktuell bereits abgelaufene Zeit in einem aktiven Schritt.

Tipp

Sie können in den AS-Elementeigenschaften angeben, ob CODESYS für dieses Flag eine Symboldefinition in die Symbolkonfiguration exportieren soll.

Schritt- und Aktionsstatus

Wichtig

Sie können die oben beschriebenen Variablen benutzten, um einen bestimmten Statuswert für einen Schritt zu erzwingen (forcen), um einen Schritt aktiv zu setzen. Beachten Sie jedoch, dass dadurch ein unkontrollierter Status des AS herbeigeführt wird.

Die Syntax für die implizit durchgeführte Variablendeklaration:

<stepname>:SFCStepType;

_<actionname>:SFCActionType;

Tabelle 2. Folgende implizite Variablen stehen Ihnen für Schritt- oder IEC-Aktionsstatus zur Verfügung:

Schritt

<step name>.x

Zeigt den Aktivationsstatus im aktuellen Zyklus

Wenn <step name>.x = TRUE, wird der Schritt im aktuellen Zyklus ausgeführt.

<step name>._x

Zeigt den Aktivationsstatus für den nächsten Zyklus

Wenn <step name>.x = TRUE und <step name>._x = FALSE, wird der Schritt im nächsten Zyklus ausgeführt. Das heißt, dass die Variable <step name>._x zu Beginn eines Zyklus in <step name>.x kopiert wird.

<step name>.t

Das Flag t liefert die aktuelle Zeitspanne, die seit Aktivwerden des Schrittes verstrichen ist. Dies gilt nur für Schritte, unabhängig davon ob in den Schritteigenschaften eine Minimalzeit definiert ist oder nicht.

Für weitere Informationen siehe: AS-Flags

<step name>._t

Verwendung nur für interne Zwecke

<POU name>._MetaStep

Einsprungpunkt für das Ermitteln von Informationen zu den ISFC-Elementen in der verketteten Liste bei aktiviertem "MetaStep"-Feature (siehe unten).

IEC-Aktion

_<action name>.x

TRUE, wenn die Aktion ausgeführt wird

_<action name>._x

TRUE, wenn die Aktion aktiv ist



Verkettete Liste der Elemente im AS-Diagramm, implizite Variabe _MetaStep

Wichtig

Das "MetaStep"-Feature erzeugt viel zusätzlichen impliziten Code, um die Verkettung der Elemente zu ermöglichen. Aktivieren Sie es nur, wenn es wirklich benötigt wird.

Die implizite Variable _MetaStep identifiziert das zum Initialschritt (Init Step) eines AS-Diagramms gehörende Element. Wenn das "MetaStep"-Feature aktiviert ist, werden zusätzliche implizite Variablen angelegt, die eine verkettete Liste für die Elemente in einem AS-Diagramm darstellen. Vom Initialschritt aus sind alle Transitionen, Schritte und Sprünge durch Verweise auf andere ISFCElement-Objekte (aus der IecSfc.library, >= V4.4.0.0) miteinander verbunden. Ein ISFCElement besitzt hierbei immer entsprechend der Schnittstelle Vorgänger, Nachfolger, einen Namen, sowie die Anzahl der Elemente in der Verkettung. Je nach Typ des ISFCElement-Objekts kann eine speziellere Sub-Schnittstelle mit noch weitere Attributen implementiert sein.

Die Variable <POU name>._MetaStep dient als Einsprungpunkt. Mit Hilfe der IQueryInterface-Funktion können in der verketteten Liste der ISFC-Elemente jeweils Informationen zu Vorgänger- und Nachfolgeelementen ermittelt werden.

Einschränkungen: Im aktuellen Stand des Features müssen die Namen von Transitionen innerhalb eines SFC Programms eindeutig sein. Andersfalls wird eine Warnung ausgegeben und die zusätzlichen Daten der verketteten Liste werden nicht erzeugt.

Für das Aktivieren der MetaStep-Funktionalität müssen Sie folgende Schritte durchführen:

  1. Setzen Sie im Dialog Projektinformationen auf der Registerkarte Eigenschaften die Eigenschaft UseMetaStepsEnabled (BOOL) auf True

  2. Aktivieren Sie für jedes AS-Objekt, das die Funktionalität benötigt, im Dialog Eigenschaften des Objekts auf der Registerkarte AS-Einstellungen die Verwendung der Variablen SFCMetaSteps.

Zugriff auf implizite Variablen

Syntax für den Zugriff

Innerhalb der POU weisen Sie die implizite Variable direkt zu:

<variable name>:=<step name>.<implicit variable> bzw. <variable name>:=_<action name>.<implicit variable>

Beispiel 6. Beispiel

status:=step1._x;



Von einem anderen Baustein aus mit Bausteinname:  

  • <variable name>:=<POU name>.<step name>.<implicit variable>

  • <variable name>:=<POU name>._<action name><implicit variable>

Beispiel 7. Beispiel:

status:=SFC_prog.step1._x;



Symbolerzeugung

Sie können in den Elementeigenschaften eines Schritts oder einer Aktion definieren, ob CODESYS für das Schritt- bzw. Aktions-Flag eine Symboldefinition hinzufügen soll. Dazu müssen Sie in der Ansicht Eigenschaften das gewünschte Zugriffsrecht in Spalte Symbol aktivieren.