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.
Structured Text Syntax_If_Then
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
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal