OR_ELSE

定义

IEC 61131-3 标准未说明此操作符。它仅可用于结构化文本 (ST) 中的编程。

OR_ELSE 利用短路模式对 BOOL 和 BIT 类型的操作数执行 OR 运算。此运算的具有以下效果:

如果至少其中一个操作数为 TRUE,则运算的结果为 TRUE,否则为 FALSE。

当一个操作数为 TRUE 时,其他操作数的表达式不会被求值(惰性求值)。因此,OR_ELSE 操作符不同于 IEC-61131-3 标准中定义的 OR 操作符。OR 始终会对所有表达式求值

示例

 VAR
  bEver: BOOL;
     bX1: 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。