CASE_OF

Use CASE_OF para seleccionar qué hacer con base en un valor numérico.
Operandos
CASE numeric_expression OF
selector1: statement;
selectorN: statement; ELSE
Texto estructurado
Operando
Tipo
Formato
Introducir
Numeric_
expression
SINT INT DINT REAL
Expresión de etiqueta
Etiqueta o expresión que evalúa hasta un número
(expresión numérica)
Selector
SINT INT DINT REAL
Inmediato
Mismo tipo que numeric_expression
IMPORTANTE: Si usa valores de tipo REAL, use un rango de valores para un selector porque un valor REAL tiene mayor probabilidad de estar dentro de un rango de valores que una coincidencia exacta de un valor específico.
Descripción
La sintaxis se describe en la tabla.
CASE_OF
Estas son las sintaxis para introducir los valores de selector.
Cuando el selector es
Introducir
Un valor
value: statement
Varios valores distintos
value1, value2, valueN : <statement>
Use una coma (,) para separar cada valor.
Un rango de valores
value1..valueN : <statement>
Use dos puntos (..) para identificar el rango.
Valores diferentes más un rango de valores
valuea, valueb, value1..valueN : <statement>
La contrucción CASE es similar a una instrucción de interruptor en los lenguajes de programación C o C++. En la construcción CASE, el controlador solo ejecuta las instrucciones asociadas al primer valor de selector coincidente. La ejecución siempre se interrumpe después de las instrucciones de ese selector y va a la instrucción END_CASE.
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
Ninguno
Ejemplo
Si quiere esto
Introduzca este texto estructurado
Si número de receta = 1, entonces Salida 1 de Ingrediente A = abierta (1) Salida 4 de Ingrediente B = abierta (1)
CASE recipe_number OF
1:
Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1;
Si número de receta = 2 o 3, entonces
Salida 4 de Ingrediente A = abierta (1)
Salida 2 de Ingrediente B = abierta (1)
2,3:
Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;
Si número de receta = 4, 5, 6 o 7, entonces Salida 4 de Ingrediente A = abierta (1) Salida 2 de Ingrediente B = abierta (1)
4..7: Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;
Si número de receta = 8, 11, 12 o 13, entonces Salida 1 de Ingrediente A = abierta (1) Salida 4 de Ingrediente B = abierta (1)
8,11..13
Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1;
De lo contrario, todas las salidas = cerradas (0)
ELSE
Ingredient_A.Outlet_1 [:=]0; Ingredient_A.Outlet_4 [:=]0; Ingredient_B.Outlet_2 [:=]0; Ingredient_B.Outlet_4 [:=]0;
END_CASE;
[:=] también indica al controlador que borre las etiquetas de salida cuando 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 se incrusta la asignación en la acción del paso o se usa la acción para llamar una rutina de texto estructurado mediante una instrucción JSR.
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal