OR_ELSE

Definición

Este operador no se especifica en el estándar IEC 61131-3. Solo se permite para fines de programación en texto estructurado (ST).

OR_ELSE ejecuta una operación OR de operandos de tipo BOOL y BIT con la modalidad de cortocircuito. Esto tiene las siguientes consecuencias:

Si al menos uno de los operandos es TRUE, el resultado de la operación será TRUE; de lo contrario, será FALSE.

Si un operando es TRUE, las expresiones de los demás operandos no se evaluarán (evaluación perezosa). En este sentido, el operador OR_ELSE difiere del operador OR tal como se define en la norma IEC-61131-3. OR siempre evalúa todas las expresiones.

Ejemplo

 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 es FALSE y dw.1 es TRUE, por lo que el resultado de la operación (bX) es TRUE. Sin embargo, la expresión de la tercera entrada no se ejecuta, bEver sigue siendo FALSE. Si utiliza en cambio la operación OR estándar, bEver se establece en TRUE.