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 // ( ... )? Optional
PROGRAM 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.