Cómo dibujar un diagrama de estados de PLC — Poner los estados de la máquina en una hoja y completar en una tabla las combinaciones no dibujadas
Última actualización: 2026-09-24 / Categoría: Programación de PLC, diseño de la lógica de control
Un diagrama de estados (diagrama de transición de estados) muestra en una hoja en qué estado está la máquina en su conjunto y qué botón o qué fallo la lleva a cuál. Esta guía es para el diseñador de control de PLC que no quiere que las combinaciones que faltan en la especificación las decida quien escribe el ladder.
Se volvió a pulsar el arranque con la máquina en automático y el flag del primer paso se activó por segunda vez. Esa combinación no está en el flujo normal del diagrama de flujo, así que quien escribió el ladder la decidió sobre la marcha. En un diagrama solo se pueden dibujar las flechas en las que se pensó. Las combinaciones no dibujadas se rellenan, celda a celda, en una tabla estado × evento.
1. El diagrama de estados contiene solo los estados de toda la máquina; los pasos van al diagrama de flujo
En el diagrama de estados se dibujan los estados de la máquina en su conjunto. El ejemplo tiene 7 y no muestra «espera de pieza → transporte → sujeción → retirada», los pasos que se ejecutan En marcha. Los pasos van en el Cómo dibujar un diagrama de flujo de control PLC como números de paso (10, 20, 30…) con la condición para avanzar. Si se meten aquí los pasos, cada evento que puede ocurrir desde cualquier sitio, como un fallo o una pausa, necesita una flecha por paso.
Las dos hojas se enlazan por el número de paso. Un arranque desde En pausa continúa el paso interrumpido; tras la vuelta al origen se empieza por el primer paso. Tras un reset de un fallo que permite continuar, se empieza por el principio del paso interrumpido.
Lo que en Cómo dibujar un diagrama de flujo de control PLC se llamó «paso (estado)» corresponde a los pasos de este artículo. Cuando los estados se multiplican como en este ejemplo, Espera de arranque y Parada por fallo pasan a este diagrama; la salida de fallo del diagrama de flujo solo tiene que decir «a Parada por fallo». En una máquina en la que el operario coloca una pieza y pulsa arranque cada vez, quite la condición del flag de parada de ciclo y vuelva a Espera de arranque al final de cada paso.
2. Los estados son «algo que dura»; las flechas, «algo que ocurre»
- Nombrar los estados como algo que dura y las flechas como algo que ocurre Los nombres de los estados son condiciones que duran un tiempo: «en marcha», «espera de…». Los nombres de las flechas son instantes: «arranque (pulsado)», «fallo (tiempo agotado)». Un estado llamado «Arranque» no deja claro si es el instante de pulsar o el tiempo en que se está moviendo.
- Separar los estados que hacen algo de los que esperan El gris Referenciando pasa por sí solo a Espera de arranque cuando termina su trabajo. El blanco Espera de arranque espera hasta que una persona pulsa arranque. Referenciando termina cuando el procedimiento llega a su última etapa (en el Diagrama de flujo de vuelta al origen (ejemplo), la etapa que activa bHomeDone).
- La flecha «desde cualquier estado» se traza una sola vez, desde un marco Un fallo puede ocurrir desde cualquiera de 5 estados. En vez de 5 flechas, se traza una desde un marco que rodea los 5 estados distintos de Parada por fallo y Parada de emergencia hasta Parada por fallo. En un diagrama con todas las flechas trazadas, nadie nota que falta una.
- Dibujar con una flecha dónde empieza la máquina al encender En el ejemplo, la flecha desde el punto negro de encendido va a Sin referenciar. Tras un corte de corriente quedan piezas a mitad de ciclo y no es seguro dónde están los ejes. Si la variable de estado se guarda en memoria retentiva, una máquina que perdió la corriente En marcha se pone en movimiento sin que nadie haya pulsado arranque.
- Cuando de un mismo evento salen dos flechas, escribir condiciones que no se solapen El reset desde Parada por fallo tiene dos destinos: Espera de arranque cuando se puede continuar (E01 y E02 de la Cómo escribir una especificación de control), y Sin referenciar en los demás casos. Si las dos condiciones pueden cumplirse a la vez, el destino lo decide en silencio el orden en que está escrito el programa.
- Poner los modos en otro eje y decidir, estado por estado, adónde va el cambio de modo El ejemplo muestra los estados del modo automático. Al cambiar a manual, Sin referenciar y Parada por fallo permiten el movimiento manual tal cual, mientras que desde Espera de arranque se pasa a Sin referenciar. Nadie sabe qué se ha movido durante la preparación, así que una vuelta al origen lo vuelve a comprobar todo antes de regresar a automático.
3. Rellene en una tabla estado × evento las combinaciones que no dibujó
El diagrama tiene 14 flechas además del encendido. En forma de tabla son 7 estados × 10 eventos, 70 celdas, y copiando las flechas solo se rellenan 25. Las otras 45 no aparecen en el diagrama. Arranque pulsado en Sin referenciar, arranque pulsado otra vez En marcha: cada una se decide celda a celda.
En una celda se escribe una de estas cinco cosas, y «no se acepta» es distinto de «no puede ocurrir». Una celda de no se acepta se comprueba en la recepción pulsando el botón y viendo que no pasa nada. Una celda de no puede ocurrir no se puede probar pulsando; si ocurre, es un error del programa y la máquina pasa a Parada por fallo.
- → nombre del estado — Pasar a ese estado. Si depende de una condición, se escriben en lista «condición → destino»
- Solo texto — Seguir en el estado y hacer solo lo escrito (activar un flag, añadir al historial, mostrar un aviso)
- / — No se acepta. No pasa nada
- × — No puede ocurrir
- En blanco — Aún sin decidir. No debe quedar ninguna al expedir
| Evento \ Estado | Sin referenciar | Referenciando | Espera de arranque | En marcha | En pausa | Parada por fallo | Parada de emergencia |
|---|---|---|---|---|---|---|---|
| Referenciar (botón) | → Referenciando | / | → Referenciando | / | / | / | / |
| Fin de referenciado | × | → Espera de arranque | × | × | × | × | × |
| Arranque | Mostrar «Vuelta al origen no realizada» | / | En la posición de reanudación → En marcha No está en posición → mostrar «No está en la posición de reanudación» | / | → En marcha (continúa el paso interrumpido) | / | / |
| Pausa | / | → Sin referenciar (se abandona el referenciado) | / | → En pausa | / | / | / |
| Parada de ciclo | / | / | / | Activar el flag | Activar el flag | / | / |
| Fin de paso | × | × | × | Con flag → Espera de arranque Sin flag → seguir esperando la siguiente pieza | × | × | × |
| Fallo | → Parada por fallo | → Parada por fallo | → Parada por fallo | → Parada por fallo | → Parada por fallo | Añadir al historial un fallo nuevo de otro número (ya no se puede continuar) | Añadir el fallo nuevo al historial |
| Reset | / | / | / | / | / | La causa persiste → / Se puede continuar → Espera de arranque En otro caso → Sin referenciar | Antes de liberar → / Liberado y con potencia → Sin referenciar Sin potencia 3 s después de liberar → mostrar «Sin potencia» |
| Parada de emergencia | → Parada de emergencia | → Parada de emergencia | → Parada de emergencia | → Parada de emergencia | → Parada de emergencia | → Parada de emergencia | / |
| Cambio a manual | Se permite el movimiento manual | → Parada por fallo | → Sin referenciar | → Parada por fallo | → Parada por fallo | Se permite el movimiento manual | Cambiar solo el modo |
«Fin de paso» es una condición que solo existe En marcha, mientras el primer paso (espera de pieza) espera la siguiente pieza. El arranque desde Espera de arranque solo se acepta en la posición de origen para el primer paso, o con las condiciones del principio del paso interrumpido cumplidas cuando se continúa. El flag de parada de ciclo se borra al entrar en Espera de arranque, Parada por fallo o Parada de emergencia. La fila de fallo cubre E01 a E04 de la lista de fallos; la parada de emergencia (E05) tiene su propia fila.
Las celdas en las que se duda al rellenar son estas.
- El arranque En marcha es / — Se mantiene el estado en una sola variable y el arranque se acepta solo en Espera de arranque o En pausa. En un ladder que encadena flags de paso con SET / RST, el arranque pasa con la máquina en movimiento y se produce el doble arranque del principio. Decidido en la tabla, esta condición vive en un solo sitio: el circuito de arranque
- El arranque en Sin referenciar se rechaza con un aviso — Si no pasa nada, el operario pulsa arranque una y otra vez y llama a mantenimiento. El arranque en Parada por fallo se queda en /: el fallo ya está en pantalla y la pantalla explica por qué no se mueve
- El reset mientras la causa persiste es / — La señal de fallo vuelve a entrar mientras dura la causa. Rechazar el reset mantiene el fallo en pantalla y le dice al operario qué debe arreglar
- La pausa en Referenciando devuelve a Sin referenciar — Si se decide que un referenciado interrumpido se repite desde el principio, no hay nada que recordar. Continuar un referenciado a medias obliga a recordar hasta dónde llegó cada eje
La tabla se hace en Excel, se le pone un número de versión y se incluye en la especificación. Con una lista de validación de datos «/,×» y el mensaje de error desactivado, también se puede escribir «→ Espera de arranque». Pinte de rojo las celdas en blanco con la fórmula de formato condicional =ISBLANK(B2). Si añade un evento y no añade una fila y rellena las 7 celdas, el diagrama, la tabla y el ladder acaban discrepando.
4. Recoja los estados y los eventos, trace las flechas normales y después rellene la tabla
- Listar los estados Se toman de las condiciones de funcionamiento que se quieren mostrar en los pilotos del panel y en la pantalla. Es estado lo que se entra y se sale por una acción distinta: un botón del operario, un fallo, el fin del referenciado. El transporte y la sujeción, que avanzan por condiciones de sensores, son pasos y van al diagrama de flujo aunque la pantalla muestre «transportando».
- Recoger los eventos Se toman de los botones e interruptores del panel, los fines de proceso, las condiciones que solo se miran En marcha y los fallos. Los fallos de la lista de fallos se agrupan en una fila; solo la parada de emergencia tiene fila propia. Las operaciones que hacen lo mismo en todos los estados, como parar el zumbador, no entran en la tabla.
- Trazar las flechas normales y enmarcar lo que puede ocurrir desde cualquier sitio Primero, del encendido a En marcha y el camino de vuelta tras una parada. Fallo y parada de emergencia: una flecha cada uno, desde un marco.
- Hacer la tabla y rellenar los huecos Es la fase en la que se copian las flechas del diagrama y luego se rellenan las celdas restantes con /, × o texto. Las celdas que no puede decidir por sí mismo se dejan en blanco, anotando al lado quién puede decidirlas (cliente, diseño mecánico, responsable de seguridad).
5. En el PLC, mantenga el estado en una sola variable y cámbielo como mucho una vez por scan
- Mantener el estado como número en una sola variable Se guarda el número de estado en una única variable entera. Con un flag por estado, nada en el diseño impide que haya dos activos a la vez. Una variable no retentiva vale 0 al encender, así que Sin referenciar es el número 0.
- Evaluar las transiciones con el estado del principio del scan y cambiar como mucho una vez por scan La evaluación se hace sobre una copia del estado tomada al principio del scan. Escrito de arriba abajo como «si Espera de arranque y arranque, entonces En marcha», la línea de abajo ve el En marcha recién escrito y sigue avanzando. El estado siguiente se escribe una sola vez al final; en una sentencia CASE de ST solo se ejecuta una rama por scan.
- Escribir las transiciones «desde cualquier estado» después de las de cada estado El orden es: transiciones de cada estado → fallo → parada de emergencia. Como queda la última asignación, si en un mismo scan coinciden arranque y parada de emergencia, gana la parada de emergencia. Cada flecha de marco del diagrama es también un solo sitio en el programa.
- Separar las acciones de entrada de las salidas continuas Las acciones de entrada se ejecutan solo en el scan en que cambió el número. Si al entrar en Parada por fallo se registra el número en el historial en cada scan, el historial crece una entrada por scan. Las salidas que dependen solo del estado, como pilotos y pantallas, son una expresión por salida: «rojo = Parada por fallo o Parada de emergencia».
- Un número imposible lleva a Parada por fallo En la rama ELSE se pasa a Parada por fallo y se muestra el número en pantalla. Un ELSE vacío, o que vuelve a Espera de arranque, oculta una escritura desde otro circuito o un error de tecleo. Lo mismo vale cuando ocurre una celda × de la tabla.
- Los botones son eventos en el instante de pulsar; la parada de emergencia y los fallos se miran mientras se mantienen Los botones se miran solo en el scan del flanco de subida. Si se aceptan mientras están en ON, la máquina arranca en el instante en que se coloca una pieza con el arranque mantenido pulsado. La parada de emergencia y los fallos son lo contrario: se miran en cada scan mientras se mantienen, de modo que encender con el pulsador accionado también lleva a Parada de emergencia.
6. Se tropieza con el aviso de parada de ciclo, la cuenta de la espera de piezas y el papel de la parada de emergencia
- Al pulsar parada de ciclo no aparece nada en pantalla — Mientras el flag esté activo, muestre «Parada de ciclo aceptada». Si solo activa un flag y sigue En marcha hasta el fin de paso, el operario no sabe si se está parando o si la pulsación no entró
- No decidir si el tiempo de espera de piezas cuenta como producción — Los estados que cuentan como producción se acuerdan por escrito con el cliente antes de la recepción. En las fábricas que calculan la disponibilidad a partir de los tiempos de estado, la cifra cambia según dónde se cuente la espera de piezas que no llegan. En el ejemplo se incluyó en En marcha; PackML distingue Held (causas de la propia máquina) y Suspended (causas de antes o después)
- Creer que Parada de emergencia es un estado en el que para el PLC — Quien corta la potencia es el circuito de seguridad; el PLC solo recibe ese hecho. Si se intenta parar con la máquina de estados del PLC, no se puede parar cuando el propio PLC se ha parado. El trabajo del PLC es cortar las salidas de movimiento y las autorretenciones y hacer respetar el orden de recuperación (Diagrama de flujo de recuperación tras emergencia (ejemplo))
7. Las 58 celdas de la tabla que no son × pasan a ser los puntos de prueba de la recepción
Las 58 celdas de la tabla que no son × son, tal cual, los puntos de prueba. En una celda → se comprueban el estado de destino y la acción de entrada; en una celda /, se pulsa el botón y se comprueba que no pasa nada. Provoque fallos y paradas de emergencia desde todos los estados del marco, no solo desde En marcha. Un tiempo agotado en Referenciando y una parada de emergencia En pausa son las combinaciones que más se escapan de la prueba.
Comprobadas las celdas una a una, pruebe también combinaciones de dos operaciones seguidas. Pulsar parada de ciclo, luego pausa y luego arranque: ¿sigue activo el flag y se para en Espera de arranque al fin de paso? Apagar y volver a encender En marcha: ¿empieza en Sin referenciar sin que nada se mueva (o en Parada de emergencia, si el relé de seguridad es de rearme manual)? Comprobar la tabla celda a celda no encuentra estos errores de orden.
El editor para el diagrama de flujo de los pasos
- Flowchart Editor — Dibuja los pasos que se ejecutan En marcha (espera de pieza, transporte, sujeción, retirada) como números de paso con la condición para avanzar. No tiene función para dibujar el propio diagrama de estados.
Sin instalación ni registro. Funciona solo con el navegador.
Artículos relacionados
- Cómo dibujar un diagrama de flujo de control PLC
- Cómo escribir una especificación de control
- Cómo dibujar un cronograma
- Diagrama de flujo de recuperación tras emergencia (ejemplo)
- Diagrama de flujo de vuelta al origen (ejemplo)
- Especificación de la estructura de datos JSON — El formato que leen y escriben los cuatro editores, con esquema, validación y ejemplos
yk.builds