Aktionen können definiert und Funktionsbausteinen und Programmen zugewiesen werden. Eine Aktion ist eine zusätzliche Implementierung, die in einer anderen Sprache geschrieben sein kann als die Basisimplementierung. Jede Aktion erhält einen Namen.
Eine Aktion arbeitet mit den Daten des Funktionsbausteins oder des Programms, dem sie zugewiesen ist. Sie verwendet dessen Ein/Ausgangs- und lokale Variablen und enthält keine eigenen Deklarationen.
Beispiel für eine Aktion eines Funktionsbausteins
Im Folgenden wird eine Aktion in FB dargestellt
In diesem Beispiel erhöht oder verringert jeder Aufruf des Funktionsbausteins FB1 die Ausgangsvariable out, abhängig vom Wert der Eingangsvariablen in. Ein Aufruf der Aktion Reset des Funktionsbausteins setzt die Ausgangsvariable out auf Null. In beiden Fällen wird dieselbe Variable out geschrieben.
Um eine Aktion hinzuzufügen, wählen Sie entsprechende Programm oder den Funktionsbausteinknoten in der Anwendungsbaumstruktur bzw. im Knoten Global der Anwendungsbaumstruktur aus, klicken Sie auf die grüne Plus-Schaltfläche, und führen Sie den Befehl Aktion... aus. Alternativ können Sie mit der rechten Maustaste auf das Programm oder den Funktionsbausteinknoten klicken und die Befehle Objekt hinzufügen > Aktion ausführen. Geben Sie im Dialogfeld Aktion hinzufügen den Namen der Aktion und die gewünschte Implementierungssprache ein.
EcoStruxure Machine Expert erleichtert die objektorientierte Programmierung durch die Verwendung der Vererbungsfunktion in den Funktionsbausteinen: Wenn Sie den Befehl Objekt hinzufügen für einen Funktionsbaustein ausführen, der von einem anderen Funktionsbaustein erbt, werden die im Basisfunktionsbaustein verwendeten Elemente Aktion, Methode, Eigenschaft und Transition zur Auswahl gestellt:
oDie Elemente Aktion, Methode, Eigenschaft und Transition, für die im Basisfunktionsbaustein ein Zugriffsmodifizierer = ÖFFENTLICH, GESCHÜTZT oder INTERN definiert wurde, stehen zur Auswahl. Sie können die Definition für das geerbte Objekt anpassen. Im geerbten Objekt wird derselbe Zugriffsmodifizierer wie bei den Quellelementen zugewiesen.
oDie Elemente Aktion, Methode, Eigenschaft und Transition, für die der Zugriffsmodifizierer = PRIVAT definiert wurde, stehen nicht zur Auswahl, da der Zugriff auf den Basisfunktionsbaustein beschränkt ist.
Syntax
<Program_name>.<Action_name>
oder
<Instance_name>.<Action_name>
Beachten Sie die Notation in FBD (siehe Beispiel unten).
Wenn eine Aktion innerhalb des eigenen Bausteins aufgerufen werden soll – d. h. des Funktionsbausteins oder Programms, zu dem sie gehört –, genügt es, nur den Aktionsnamen anzugeben.
In diesem Abschnitt finden Sie Beispiele für Aufrufe der oben genannten Aktion von einer anderen POU aus.
Deklaration für alle Beispiele:
PROGRAM PLC_PRG
VAR
Inst : Counter;
END_VAR
Aufruf der Aktion Reset in einer anderen POU, die in IL (AWL) programmiert ist:
CAL Inst.Reset(In := FALSE)
LD Inst.out
ST ERG
Aufruf der Aktion Reset in einer anderen POU, die in ST programmiert ist:
Inst.Reset(In := FALSE);
Erg := Inst.out;
Aufruf der Aktion Reset in einer anderen POU, die in FBD programmiert ist:
Aktion in FBD
HINWEIS: Die IEC-Norm kennt nur die Aktionen der Ablaufsprache (SFC). Deren Aktionen sind ein wichtiger Bestandteil, der die bei bestimmten Schritten des Ablaufs abzuarbeitenden Anweisungen enthält.