Skip to main content

Operator: OR_ELSE

The operator is an extension of the IEC 61131-3 standard.

The OR_ELSE operator is permitted only for programming in structured text: OR operation of BOOL and BIT operands with short-circuit evaluation. This means:

When at least one of the operands yields TRUE, the result of the operation also yields TRUE; otherwise FALSE.

In contrast to using the OR IEC operator, for OR_ELSE the expressions on all other operators are not evaluated as soon as one of the operands is evaluated as TRUE.

Example 117. Example
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 is FALSE and dw.1 is TRUE. Therefore, the result bX of the operation is TRUE. However, the expression at the third input is not executed, and bEver remains FALSE. On the other hand, if the standard OR operation was used, bEver would be set to TRUE.