此运算符是IEC 61131-3标准的扩展。
OR_ELSE运算符仅允许在结构化文本中进行编程:BOOL和BIT操作数的OR运算;带有短路评估。这表示:
当至少一个操作数产生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。