Transitionen in ST

Syntax
(* Transition mit einem Vorgängerschritt und einem Nachfolgerschritt *)
TRANSITION (* optional_begin *) name_1 (* optional_end *) FROM step_name_1 TO step_name_2
:= transition_condition;
END_TRANSITION
 
(* Transition mit mehreren Vorgängerschritte und mehreren Nachfolgerschritte *)
TRANSITION (* optional_begin *) name_2 (* optional_end *) FROM (step_name_1, step_name_2, ...) TO (step_name_3, step_name_4, ...)
:= transition_condition;
END_TRANSITION 

Bedeutung

eine →Transition im →AS-Netzwerk, wobei der optionale Transitionsname (z.B. name_1) ein →IEC-Bezeichner sein muss
Pro AS-Netzwerk sind mehrere Transitionen zulässig. Beachten Sie die Hinweise unter "AS-Elemente in ST", wie Sie AS-Netzwerke effizient und korrekt erstellen/verwenden.

Jede Transition benötigt diese Angaben:

  • ein Vorgängerschritt nach dem Schlüsselwort FROM – Beispiel: FROM step1
    Mehrere Vorgängerschritte sind in runden Klammern zu setzen und voneinander durch , zu trennen. Beispiel: FROM (step1, step2, step3)

  • ein Nachfolgerschritt nach dem Schlüsselwort TO – Beispiel: TO step1
    Mehrere Nachfolgerschritte sind in runden Klammern zu setzen und voneinander durch , zu trennen. Beispiel: TO (step1, step2, step3)

  • die Transitionsbedingung transition_condition; nach :=
    Verwenden Sie einen Booleschen →Ausdruck als Transitionsbedingung. Wenn dieser Ausdruck mit Wert TRUE (oder einer Entsprechung) ausgewertet wird und alle Vorgängerschritte aktiv sind, schaltet die Transition (d.h., die Ausführung geht von den Vorgängerschritten auf die Nachfolgerschritte über). Mehr Informationen darüber, wann eine Transition schaltet, finden Sie unter "Auswertung des ST-Codes inklusive der AS-Netzwerke".

Die Verwendung der Transition ist nur in der aktuellen POE möglich.

Einschränkung

Prioritäten für Transitionen werden nicht ausgewertet.

Beispiel
(* Die Transition 't0' ist mit dem Vorgängerschritt 'step0' und mit den Nachfolgerschritten 'step1' und 'step2' verbunden. *)
(* Die Transitionsbedingung dafür: cntStep0 MOD 10 = 0 *)
TRANSITION t0 FROM step0 TO (step1,step2)
:= cntStep0 MOD 10 = 0;
END_TRANSITION
 
(* Die Transition 't1' ist mit den Vorgängerschritten 'step1' und 'step2' und mit dem Nachfolgerschritt 'step0' verbunden. *)
(* Die Transitionsbedingung dafür: MyFun01(In:=Var1) -- Bedingung dafür: 'MyFun01' hat einen Booleschen Ergebniswert. *)
TRANSITION t1 FROM (step1,step2) TO step0
:= MyFun01(In:=Var1);
END_TRANSITION