该操作符是 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"。
另见