CASE: término de PLC en lenguaje sencillo
Números y datosComo el control remoto de la tele: pulsas 1 y ves el canal 1, pulsas 3 y ves el canal 3. CASE mira un número y ejecuta solo la parte del código que coincide con él.
Elige una sección de código según un valor, como un número de estado. Solo se ejecuta la sección que coincide en esa llamada a CASE.
CASE en una máquina real
CASE elige una sección de código de texto para ejecutar, según un número. Se escribe CASE State OF, seguido de ramas numeradas, y se cierra con END_CASE. Solo se ejecuta la rama que coincide.
Es la forma habitual de escribir una máquina de estados en SCL o texto estructurado, porque mantiene la lógica de cada estado en un solo lugar. Una cadena de IF y ELSIF puede hacer el mismo trabajo, pero se vuelve más difícil de leer al añadir estados.
Una rama puede listar varios números, así que dos estados pueden compartir el mismo código. Una rama ELSE puede atrapar un valor que ninguna rama espera.
CASE: un ejemplo resuelto
Un lote guarda su posición en una variable llamada State. Con State en 10, CASE ejecuta la rama del lote. Cuando el estado pasa a 30, solo se ejecuta la rama Held, y esa rama mantiene el equipo parado.
CASE: un error habitual
Escribir una salida en una sola rama. Una rama que no se ejecuta deja sus variables como estaban. Así que una orden activada en un estado sigue activa en el siguiente, salvo que algo la borre.
¿Todavía no lo tienes claro? Pregunta en el Vestuario.