OR_ELSE
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.
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.