Der Operator ist eine Erweiterung der Norm IEC 61131-3.
Der Operator OR_ELSE
ist nur für die Programmierung im Strukturiertem Text erlaubt: OR
-Operation von Operanden des Typs BOOL
und BIT
, mit Kurzschluss-Auswertung. Das bedeutet:
Wenn mindestens einer der Operanden TRUE
ist, ist das Ergebnis der Operation ebenfalls TRUE
, ansonsten FALSE
.
Im Unterschied zur Verwendung des IEC-Operators OR
, werden bei OR_ELSE
, sobald einer der Operanden mit TRUE
ausgewertet wurde, die Ausdrücke an allen weiteren Operanden nicht mehr ausgeführt
Beispiel
VAR bEver: BOOL; bX: BOOL; dw: DWORD := 16#000000FF; END_VAR bEver := FALSE; bX := dw.8 OR_ELSE dw.1 OR_ELSE dw.1 OR_ELSE (bEver := TRUE);
dw.8
ist FALSE
und dw.1
ist TRUE
, somit ist das Ergebnis bX
der Operation TRUE
. Der Ausdruck am dritten Eingang wird jedoch nicht ausgeführt, bEver
bleibt FALSE
. Wenn stattdessen die Standard-OR-Operation verwendet würde, wäre bEver
auf TRUE gesetzt worden.
Siehe auch