OR_ELSE
Questo operatore non è specificato dallo standard IEC 61131-3. È consentito solo per programmazione in testo strutturato (ST).
OR_ELSE
esegue un'operazione OR di operandi di tipo BOOL e BIT con modalità di corto circuito con il seguente effetto:
Se almeno uno degli operandi è TRUE, il risultato dell'operazione è TRUE, in caso contrario è FALSE.
Quando un operando è TRUE, le espressioni negli altri operandi non vengono valutate (valutazione limitata). A questo riguardo, l'operatore OR_ELSE
differisce dall'operatore OR
definito nello standard IEC-61131-3. OR
valuta sempre tutte le espressioni.
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 e dw.1
è TRUE, perciò il risultato dell'operazione (bX
) è TRUE. Tuttavia, l'espressione nel terzo ingresso non viene eseguita, bEver
rimane FALSE. Se invece è stata utilizzata l'operazione standard OR
, bEver
è impostato a TRUE.