Capítulo 24
Programación de texto estructurado
Si quiere esto
Si número de receta = 1, entonces Salida 1 de
Ingrediente A = abierta (1) Salida 4 de Ingrediente B
= abierta (1)
Si número de receta = 2 o 3, entonces
Salida 4 de Ingrediente A = abierta (1)
Salida 2 de Ingrediente B = abierta (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)
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)
De lo contrario, todas las salidas = cerradas (0)
FOR_DO
942
Publicación de Rockwell Automation 1756-RM003T-ES-P - Noviembre 2018
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
None
Ejemplo
Introduzca este texto estructurado
CASE recipe_number OF
1:
Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1;
2,3:
Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;
4 a 7: Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;
8,11...13
Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1;
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.
Use el lazo FOR_DO para realizar una acción un número de veces específico antes
de hacer cualquier otra cosa.
Si se habilita, la instrucción FOR ejecuta la Rutina repetidamente hasta que el
valor Index excede el Terminal value. El valor del paso puede ser positivo o