.

运算符‘OR_ELSE’

.
.

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

OR_ELSE运算符仅允许在结构化文本中进行编程:BOOLBIT操作数的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.8FALSEdw.1TRUE;因此bXTRUE运算的结果。但是,第三个输入处的表达式未执行,bEver保持为FALSE。另一方面,如果使用标准OR操作,则bEver将设置为TRUE。