该操作符是 IEC 61131-3 标准的延伸。
OR_ELSE 运算符仅允许在结构化文本中进行编程:OR 对BOOL 和BIT 操作数的操作;短路评估。这意味着
当至少一个操作数产生TRUE 时,操作结果也产生TRUE ;否则 FALSE 。
与使用OR IEC 运算符相比,对于OR_ELSE ,只要其中一个操作数被求值为TRUE ,所有其他运算符的表达式就不会被求值。
示例
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 是FALSE ,dw.1 是TRUE ;因此,bX 是操作TRUE 的结果。然而,第三个输入端的表达式并没有执行,bEver 仍然是FALSE 。另一方面,如果使用标准 OR 运算,bEver 将被设置为 "true"。
另见