Skip to main content

Declaración ST: SI

El IF La instrucción se utiliza para verificar una condición y, dependiendo de esta condición, para ejecutar las instrucciones posteriores.

Una condición se codifica como expresión que devuelve un valor booleano. Si la expresión devuelve TRUE, entonces la condición se cumple y las declaraciones correspondientes se ejecutan después THEN. Si la expresión devuelve FALSE, entonces las siguientes condiciones, que se identifican con ELSIF, son evaluados. Si una ELSIF devoluciones de condiciones TRUE, entonces las declaraciones se ejecutan después de la correspondiente THEN. Si todas las condiciones vuelven FALSE, entonces las sentencias se ejecutan después ELSE.

Por lo tanto, a lo sumo una rama de la IF se ejecuta la sentencia. ELSIF ramas y el ELSE rama son opcionales.

Sintaxis

IF <condition> THEN
    <statements>
( ELSIF <condition> THEN
            <statements> )*
( ELSE
            <statements> )?
END_IF;
// ( ... )* None, once or several times
// ( ... )? Optional
ejemplo 70. Ejemplo
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;

El programa se ejecuta de la siguiente manera en tiempo de ejecución:

Para la evaluación de la expresión iTemp < 17 = TRUE, se ejecuta la instrucción siguiente y se enciende la calefacción. Para la evaluación de la expresión iTemp < 17 = FALSE, el posterior ELSIF condición iTemp > 25 se evalúa. Si esto es cierto, entonces las declaraciones en ELSIF se ejecutan y se abre la vista. Si todas las condiciones son FALSE, entonces la instrucción se ejecuta en ELSE y la calefacción se apaga.