OR_ELSE

Definizione

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.

Esempio

 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.