Skip to main content

运算符:OR_ELSE

运算符是 IEC 61131-3 标准的扩展。

OR_ELSE 运算符仅允许用于结构化文本中的编程: OR 操作 BOOLBIT 具有短路评估的操作数。这意味着:

当至少一个操作数产生 TRUE, 运算结果也产生 TRUE;否则 FALSE.

与使用 OR IEC 运算符,用于 OR_ELSE 一旦操作数之一被评估为,则不会立即评估所有其他运算符上的表达式 TRUE.

117. 例子
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.8FALSEdw.1TRUE.因此,结果 bX 的操作是 TRUE.但是,不执行第三个输入处的表达式,并且 bEver 遗迹 FALSE.另一方面,如果使用标准 OR 操作, bEver 将设置为 TRUE。