Skip to main content

Operator: OR_ELSE

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 117. Beispiel
VAR
        bEver: BOOL;
        bX: BOOL;
        dw: DWORD := 16#000000FF;
END_VAR

bEver := FALSE;
bX := dw.8 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.