Skip to main content

AS-Element: Aktion

Symbol: _cds_icon_sfc_action.png

Eine Aktion enthält eine oder mehrere Anweisungen in einer der gültigen Programmiersprachen. Sie können eine Aktion einem Schritt, Transition zuweisen.

Aktionen, die Sie in AS-Schritten verwenden, müssen als Bausteine im Projekt angelegt sein.

_cds_img_sfc_element_action.png

Ausnahme: Im Fall von IEC-Aktionen, die Sie als Aktionsassoziation einem Schritt hinzufügen, können Sie anstelle eines Aktionsobjekts auch eine boolsche Variable angeben. Der Wert dieser Variablen wird bei jeder Ausführung der „Aktion“ zwischen FALSE und TRUE umgeschaltet.

Wichtig

Sie müssen Schrittnamen innerhalb des Gültigkeitsbereichs des „Vater“-Bausteins eindeutig definieren. Eine in AS geschriebene Aktion darf keinen Schritt enthalten, der den gleichen Namen hat wie der Schritt, dem die Aktion zugewiesen ist.

Es gibt „IEC-Aktionen“ und „Schrittaktionen“.

IEC-Aktionen

IEC-Aktionen sind Aktionen gemäß der Norm IEC 61131-3. Sie werden entsprechend ihres Qualifizierers ausgeführt.

IEC-Aktionen werden zweimal ausgeführt: das erste Mal, wenn der Schritt aktiv wird und ein zweites Mal, wenn er deaktiviert wird. Wenn Sie einem Schritt mehrere Aktionen zuweisen, wird die Aktionenliste von oben nach unten abgearbeitet.

Jede Aktionenbox enthält in der ersten Spalte den Qualifizierer und in der zweiten den Aktionsnamen. Beide können direkt editiert werden.

_cds_img_sfc_iec_action.png

Wichtig

Wenn in verschiedenen AS-Bausteinen diesselbe globale boolsche Variable als IEC-Aktion assoziiert ist, kann dies zu nicht erwünschten Überschreibungseffekten führen!

Sie können für IEC-Aktionen im Gegensatz zu Schrittaktionen unterschiedliche Qualifizierer verwenden. Ein weiterer Unterschied zu den Schrittaktionen ist, dass jede IEC-Aktion mit einem Kontroll-Flag versehen ist. Dies bewirkt, dass CODESYS die Aktion - auch wenn sie gleichzeitig von einem weiteren Schritt aufgerufen wird - nur einmal zur selben Zeit ausführt. Dies kann für Schrittaktionen nicht garantiert werden.

Sie weisen IEC-Aktionen mit dem Befehl AS → Aktionsassoziation einfügen einem Schritt zu.

Schrittaktionen

Schrittaktionen sind Aktionen, die Sie in Erweiterung des IEC-Standards verwenden können.

  • Eingangsaktion:

    CODESYS führt diese Aktion einmal aus, nachdem der Schritt aktiviert wurde und bevor die Hauptaktion ausgeführt wird.

    Sie referenzieren eine neue oder bereits unter dem AS-Objekt angelegte Aktion aus einem Schritt heraus über die Elementeigenschaft Eingangsaktion (2). Eine neue Aktion können Sie dem Schritt auch mit dem Befehl Eingangsaktion hinzufügen hinzufügen. Die Eingangsaktion wird durch ein E in der unteren linken Ecke der Schritt-Box angezeigt.

  • Hauptaktion:

    CODESYS führt diese Aktion aus, nachdem der Schritt aktiviert wurde und eine eventuelle Eingangsaktion bereits ausgeführt wurde. Allerdings wird sie im Gegensatz zu einer IEC-Aktion (s.o.) kein zweites Mal ausgeführt, wenn der Schritt wieder deaktiviert wird. Sie können hier auch keine Qualifizierer verwenden.

    Eine bereits vorliegende Aktion fügen Sie einem Schritt über die Elementeigenschaft Hauptaktion (1) hinzu. Eine neue Aktion können Sie nach einem Doppelklick auf das Schrittelement anlegen und hinzufügen. Eine Hauptaktion wird durch ein gefülltes Dreieck in der rechten oberen Ecke der Schritt-Box angezeigt.

  • Ausgangsaktion:

    CODESYS führt diese Aktion einmal aus, wenn der Schritt deaktiviert wurde. Beachten Sie allerdings, dass die Ausführung nicht mehr im gleichen Zyklus, sondern zu Beginn des nächsten erfolgt!

    Sie referenzieren eine neue oder bereits unter dem AS-Objekt angelegte Aktion aus einem Schritt heraus über die Elementeigenschaft Ausgangsaktion (3). Eine neue Aktion können Sie dem Schritt auch mit dem Befehl Ausgangsaktion hinzufügen hinzufügen. Die Ausgangsaktion wird durch ein X in der unteren rechten Ecke der Schritt-Box angezeigt.

_cds_img_sfc_non_iec_actions.png

Unterschied IEC-Aktion - Schrittaktion

Der wesentliche Unterschied zwischen Schrittaktionen und IEC-Aktionen mit Qualifizierer N besteht darin, dass die IEC-Aktion immer zweimal ausgeführt wird: ein erstes Mal, wenn der Schritt aktiv ist und ein zweites Mal, wenn er deaktiviert wird. Siehe dazu folgendes Beispiel:

Beispiel 1. Beispiel
_cds_img_sfc_diff_iecaction_stepaction.png

Sie haben dem Schritt AS1 die Aktion Action_AS1 einmal als Schrittaktion (links), einmal als IEC-Aktion mit Qualifizierer N beigefügt. Da in beiden Fällen 2 Transitionen geschaltet werden, dauert es jeweils 2 SPS-Zyklen bis erneut der Initialisierungsschritt erreicht wird. Angenommen, in der Aktion Action_AS1 werde eine mit 0 initialisierte Zählvariable iCounter hochgezählt.  Nach der erneuten Aktivierung des Schritts Init hat iCounter im linken Beispiel den Wert 1. Im rechten Beispiel hat sie jedoch den Wert 2, da die IEC-Aktion ein zweites Mal aufgrund der Deaktivierung von AS1 ausgeführt wird.



Ein weiterer Unterschied ist, dass Schrittaktionen quasi „eingebettet“ werden können. In diesem Fall können sie nur noch von dem betreffenden Schritt aufgerufen werden. Wenn Sie diesen Schritt kopieren, erzeugt CODESYS automatisch neue Aktionsobjekte und kopiert jeweils den Implementierungscode. Ob eine Schrittaktion „eingebettet“ wird, definieren Sie entweder beim Einfügen der ersten Aktion im Schritt, oder auch später noch über die Elementeigenschaft Beim Kopieren duplizieren. Generell kann dieses Verhalten auch in den AS-Optionen voreingestellt werden.

Außerdem kann bei IEC-Aktionen anstelle eines Aktionsobjekts eine boolsche Variable angegeben werden. Dies ist bei Schrittaktionen nicht möglich.