IF_THEN
Use IF_THEN para completar una acción cuando se produzcan unas determinadas condiciones.
Operandos
IF bool_expression THEN
<statement>;
Operando | Tipo | Formato | Introducir |
Bool_ expresión | BOOL | Expresión de etiqueta | Etiqueta o expresión BOOL que evalúa hasta un valor BOOL (expresión BOOL) |
Descripción
La sintaxis se describe en la tabla.

Para usar ELSIF o ELSE, siga estas pautas.
Para seleccionar de entre varios grupos de instrucciones posibles, añada una o varias instrucciones ELSIF.
Cada ELSIF representa una ruta alternativa.
Especifique tantas rutas ELSIF como necesite.
El controlador ejecuta el primer IF o ELSIF que sea verdadero e ignora el resto de las ELSIF y la ELSE.
Para realizar algo cuando todas las condiciones IF o ELSIF sean falsas, añada una instrucción ELSE.
La tabla resume diferentes combinaciones de IF, THEN, ELSIF y ELSE.
Si | Y | Use esta construcción |
Hacer algo si o cuando las condiciones sean verdaderas | No hacer nada si las condiciones son falsas | IF_THEN |
Hacer otra cosa si las condiciones son falsas | IF_THEN_ELSE | |
Selección entre instrucciones alternativas (o grupos de instrucciones) basándose en las condiciones de la entrada | No hacer nada si las condiciones son falsas | IF_THEN_ELSIF |
Asignar instrucciones predeterminadas si todas las condiciones son falsas | IF_THEN_ELSIF_ELSE |
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
Ninguno.
Ejemplos
Ejemplo 1
IF…THEN
Si se lleva a cabo esto | Introduzca este texto estructurado |
IF rejects > 3 then | IF rejects > 3 THEN |
transportador = apagado (0) | conveyor := 0; |
alarma = activada (1) | alarm := 1; |
END_IF; |
Ejemplo 2
IF_THEN_ELSE
Si se lleva a cabo esto | Introduzca este texto estructurado |
Si el contacto de dirección del transportador = avance (1), entonces | IF conveyor_direction THEN |
luz = apagada | light := 0; |
De lo contrario, luz = encendida | ELSE |
light [:=] 1; | |
END_IF; |
[:=] indica al controlador que borre la luz si el controlador hace lo siguiente:
Pasa al modo Marcha.
Deja el paso de un SFC si configura el SFC para el Restablecimiento automático. (Esto solo se aplica si incrusta la asignación en la acción del paso o usa la acción para llamar una rutina de texto estructurado mediante una instrucción JSR).
Ejemplo 3
IF…THEN…ELSIF
Si se lleva a cabo esto | Introduzca este texto estructurado |
Si el interruptor limitador de nivel de azúcar bajo = bajo (activado) y el interruptor limitador de nivel de azúcar alto = no alto (activado), entonces | IF Sugar.Low & Sugar.High THEN |
válvula de entrada = abierta (activado) | Sugar.Inlet [:=] 1; |
Hasta que el interruptor limitador de nivel de azúcar alto = alto (desactivado) | ELSIF NOT(Sugar.High) THEN |
Sugar.Inlet := 0; | |
END_IF; |
[:=] indica al controlador que borre Sugar.Inlet si el controlador hace lo siguiente:
Pasa al modo Marcha.
Deja el paso de un SFC si configura el SFC para el Restablecimiento automático. (Esto solo se aplica si incrusta la asignación en la acción del paso o usa la acción para llamar una rutina de texto estructurado mediante una instrucción JSR).
Ejemplo 4
IF…THEN…ELSIF…ELSE
Si se lleva a cabo esto | Introduzca este texto estructurado |
Si la temperatura del depósito > 100 | IF tank.temp > 200 THEN |
entonces la bomba = lenta | pump.fast :=1; pump.slow :=0; pump.off :=0; |
Si la temperatura del depósito > 200 | ELSIF tank.temp > 100 THEN |
entonces la bomba = rápida | pump.fast :=0; pump.slow :=1; pump.off :=0; |
De lo contrario la bomba = apagada | ELSE |
pump.fast :=0; pump.slow :=0; pump.off :=1; | |
END_IF; |
Entregue su opinión