Cargando el progreso local…
PLC Gym
Inicio de PLC GymNivel 1, 0 XP · tu progreso
Glosario

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.