Skip to main content

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
Esempio 70. Esempio
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.