Dichiarazione ST: IF
Il IF istruzione viene utilizzata per controllare una condizione e, a seconda di questa condizione, per eseguire le istruzioni successive.
Una condizione è codificata come an espressione che restituisce un valore booleano. Se l'espressione ritorna TRUE, quindi la condizione è soddisfatta e le istruzioni corrispondenti vengono eseguite dopo THEN. Se l'espressione ritorna FALSE, quindi le seguenti condizioni, che si identificano con ELSIF, vengono valutati. Se uno ELSIF condizione ritorna TRUE, quindi le istruzioni vengono eseguite dopo il corrispondente THEN. Se tutte le condizioni ritornano FALSE, quindi le istruzioni vengono eseguite dopo ELSE.
Pertanto, al massimo un ramo del IF l'istruzione viene eseguita. ELSIF rami e il ELSE ramo sono facoltativi.
Sintassi
IF <condition> THEN
<statements>
( ELSIF <condition> THEN
<statements> )*
( ELSE
<statements> )?
END_IF;
// ( ... )* None, once or several times
// ( ... )? OptionalPROGRAM PLC_PRG
VAR
iTemp: INT;
xHeatingOn: BOOL;
xOpenWindow: BOOL;
END_VAR
IF iTemp < 17 THEN
xHeatingOn := TRUE;
ELSIF iTemp > 25 THEN
xOpenWindow := TRUE;
ELSE xHeatingOn := FALSE;
END_IF;Il programma viene eseguito come segue in fase di esecuzione:
Per la valutazione dell'espressione iTemp < 17 = TRUE, viene eseguita l'istruzione successiva e si accende il riscaldamento. Per la valutazione dell'espressione iTemp < 17 = FALSE, il successivo ELSIF condizione iTemp > 25 viene valutato. Se questo è vero, allora le affermazioni in ELSIF vengono eseguiti e la vista viene aperta. Se tutte le condizioni lo sono FALSE, quindi l'istruzione viene eseguita in ELSE e il riscaldamento è spento.