OR_ELSE

Definition

Dieser Operator wird in der Norm IEC 61131-3 nicht beschrieben. Er ist nur für die Programmierung in strukturiertem Text (ST) zulässig.

OR_ELSE führt im Kurzschlussmodus eine OR-Operation mit den Operanden des Typs BOOL und BIT aus. Dies wirkt sich wie folgt aus:

Wenn mindestens einer der Operanden TRUE ist, lautet das Ergebnis der Operation TRUE. Andernfalls lautet es FALSE.

Wenn ein Operand TRUE ist, werden die Ausdrücke der anderen Operanden nicht evaluiert („lazy evaluation“ oder „faule Evaluierung“). In dieser Hinsicht unterscheidet sich der Operator OR_ELSE vom Operator OR, wie in der Norm IEC-61131-3 beschrieben. OR evaluiert immer alle Ausdrücke.

Beispiel

 VAR
  bEver: BOOL;
     bX1: 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. Deshalb lautet das Ergebnis der Operation (bX) TRUE. Der Ausdruck am dritten Eingang wird jedoch nicht ausgeführt. bEver bleibt FALSE. Wenn Sie stattdessen die standardmäßige OR -Operation verwendet haben, wurde bEver auf TRUE gesetzt.