Ir al contenido

PLC Solution Library · Simulador de control de compuertas PLC

Convierte filas de tu base de datos en movimientos de compuertas y mantén un estado conocido si cae la red

Tu base de datos ya sabe qué compuerta tiene que abrirse. En este simulador, dos ESP32 PLC 42 convierten esas filas en el movimiento de 18 compuertas neumáticas a través de una isla de válvulas de ejemplo, y 9 pilotos de señalización muestran el estado a pie de máquina.

Escribe una orden, corta la red o lanza una ráfaga de filas. Mira qué hacen tus PLC y qué devuelven a tu tabla. Ves cada paso.

Elige un escenario

08:00:00 Modo libre · escribe tus propias filas Valores simulados
0compuertas abiertas
18compuertas cerradas
0en movimiento
0filas PENDING
OKred
-desde la última fila

    INSERT INTO gate_commands (gate_id, command) VALUES ('G01', 'OPEN');

    Acerca de este panel

    Distribución de ejemplo para que la pruebes: el PLC A gobierna G01 a G09 y el PLC B, G10 a G18, a través de una isla de válvulas con una válvula por compuerta. Salida de válvula en ON significa "abrir" (ejemplo: electroválvula monoestable con retorno por muelle).

    9 pilotos de señalización. Las funciones que ves son ejemplos para este simulador.

    Haz clic en una compuerta para seleccionarla. Con doble clic envías su orden directamente.

    Los valores son simulados. El recorrido simulado de cada compuerta dura 4 s y el watchdog de tu PLC es de 5 s.

    PLC A · compuertas G01 a G09

    PLC B · compuertas G10 a G18

    Haz clic en una compuerta para seleccionarla. Con doble clic envías su orden directamente.

    Escribe una orden

    INSERT INTO gate_commands (gate_id, command) VALUES ('G01', 'OPEN');

    Controles de la simulación

    Estos tres ajustes son las decisiones de diseño que tomas en tu propio proyecto, y las explicamos más abajo. Aquí, el recorrido simulado de cada compuerta dura 4 s y el watchdog de tu PLC es de 5 s.

    Tabla gate_commands

    idgate_idcommandcreated_atstatusupdated_by

    PENDING: la ha escrito tu cliente de base de datos. SENT: tu PLC ha leído la fila. DONE: tu PLC confirma que la compuerta ha llegado a su posición. SKIPPED: tu PLC no ha ejecutado la fila y explica por qué.

    ¿Qué pasa con las compuertas si se cae el enlace con la base de datos?

    Las compuertas pasan al estado que tu programa de PLC define para cuando se pierde el enlace. Tu PLC no puede saber por sí solo que la base de datos ya no responde, así que le pones un watchdog. Si tu PLC pasa un tiempo fijado sin contacto con tu tabla (5 s en este simulador), lleva sus compuertas al estado por defecto que hayas elegido, por ejemplo mantenerlas todas o cerrarlas todas, y enciende un piloto de alarma.

    Mientras dura el corte, tu base de datos sigue aceptando filas nuevas. Se quedan en PENDING, así que no pierdes ninguna orden. Tu PLC guarda sus propias confirmaciones (DONE, SKIPPED) en una cola. Cuando vuelve el enlace, escribe esas confirmaciones en tu tabla y vuelve a pedir todas las filas sin terminar antes de aceptar órdenes nuevas.

    Este estado por defecto es un valor de proceso que fijas en tu programa de PLC. La protección de las personas cerca de compuertas en movimiento (paro de emergencia, válvula de descarga de presión, resguardos) necesita un circuito de seguridad certificado, separado de esta lógica.

    Lanza el escenario Caída de red y prueba los dos estados por defecto. Después compara lo que ves en tu tabla.

    La arquitectura, en resumen

    Tu base de datos guarda cada orden como una fila con un estado. Tu PLC recibe las filas nuevas por la red. Tú decides cómo: tu PLC pide filas nuevas a intervalos fijos, por ejemplo a través de una pequeña API delante de tu tabla, o un pequeño servicio lee tu tabla y reenvía las órdenes por MQTT o Modbus TCP. Tu PLC activa la salida de la válvula de esa compuerta y escribe el resultado en la misma fila, así que tu tabla se convierte en el registro de cada movimiento.

    Lee en el blog cómo montar la arquitectura completa

    Una instalación real

    Caso real

    Un cliente controla 18 compuertas neumáticas y 9 pilotos de señalización con 2 ESP32 PLC 42. Las órdenes de abrir y cerrar llegan por la red desde una base de datos MySQL. El propio equipo del cliente programó y puso en marcha el sistema con la documentación de Industrial Shields y los cursos de MQTT y Modbus de esta web. El sistema funciona sin problemas.

    Lo que ves en este simulador es un patrón general. El reparto de compuertas entre los PLC, el protocolo, el estado por defecto, la isla de válvulas, el tipo de válvula y el cableado de una válvula por compuerta son ejemplos, no el diseño de esa instalación.

    Lee el caso de estudio

    Las decisiones de diseño que tomas

    1. Estado por defecto si se pierde el enlace

    Decide, para cada compuerta, qué estado necesita tu proceso cuando tu PLC deja de tener noticias de tu base de datos: mantener la última posición, cerrar o abrir. Usa un watchdog: si tu PLC pasa un tiempo fijado sin contacto, va a ese estado y enciende un piloto de alarma. Las filas escritas durante el corte se quedan en PENDING en tu tabla, así que no se pierde nada.

    Este estado por defecto es un valor de proceso que se fija en el programa del PLC. La protección de las personas cerca de compuertas en movimiento (paro de emergencia, válvula de descarga de presión, resguardos) necesita un circuito de seguridad certificado, separado de esta lógica.

    Perder la red y perder la alimentación son casos distintos. Una electroválvula monoestable con retorno por muelle vuelve a su posición de reposo cuando la bobina se queda sin tensión. Una electroválvula biestable conserva la última posición conmutada cuando las dos bobinas están sin tensión, así que el cilindro completa esa carrera o se queda en ella. Para parar un cilindro a mitad de carrera necesitas una válvula 5/3 de centro cerrado. El tipo de válvula lo eliges pensando en el corte de alimentación; el corte de red lo resuelves en tu programa de PLC.

    2. Polling o push

    Con polling, el intervalo que elijas fija el peor retardo entre una fila nueva y el movimiento, y también la carga sobre tu base de datos. Con push por MQTT el retardo es menor, pero necesitas un broker y un plan para los mensajes enviados mientras tu PLC estaba desconectado. En los dos casos, tras una reconexión tu PLC debería volver a pedir todas las filas sin terminar. La referencia es tu tabla, no el último mensaje.

    3. Confirmación de la orden

    Necesitas al menos tres estados: escrita, recibida y hecha. En el simulador ves DONE cuando termina el recorrido de la compuerta. En tu sistema, confirma la posición con un final de carrera o un sensor de posición en el cilindro. Un temporizador solo te demuestra que la válvula ha recibido la señal. Añade un estado de tiempo agotado, por ejemplo FAULT, para la compuerta que no llega a su posición a tiempo.

    4. Dos órdenes para la misma compuerta

    Tú decides si gana la fila más reciente o si las filas se ejecutan en orden. Usa el id de fila de tu base de datos para decidir el orden, no el reloj del cliente que la escribió. Escribe SKIPPED con el motivo en cada fila que no ejecutes, para que tu tabla siempre diga la verdad. Consulta con quien diseña la parte mecánica si un cilindro puede invertir el sentido en pleno movimiento. Guarda el último id de fila que ha procesado cada uno de tus PLC, para que una fila leída dos veces nunca mueva dos veces una compuerta.

    Aprende los protocolos

    Estos tutoriales y ejemplos cubren la parte de comunicaciones que necesitas para este patrón con el ESP32 PLC.

    Más ejemplos: PLC Solution Library · todos los simuladores.

    ESP32 PLC 42: las especificaciones que importan aquí

    Salidas16: 10 digitales optoaisladas y 6 analógicas/digitales/PWM (0-10 V, 12 bits), de 5 a 24 Vdc. Sin salidas de relé.
    Entradas26: 14 digitales optoaisladas y 12 analógicas/digitales (0-10 V, 11 bits), de 5 a 24 Vdc
    RedEthernet 10/100 Mbit (RJ45), Wi-Fi 2,4 GHz, Bluetooth LE
    SerieRS-485 half duplex, RS-232 y TTL, I2C, SPI
    AlimentaciónDe 12 a 24 Vdc con protección contra inversión de polaridad
    MontajeCarril DIN TS35, IP20, dentro de un armario
    ProgramaciónArduino IDE con el paquete de placas ESP32 de Industrial Shields, por USB o Ethernet
    AmpliaciónHasta 127 módulos por I2C. Una placa de comunicaciones opcional: 4G, LoRa o CAN

    Cuenta las bobinas de tus válvulas y tus pilotos antes de elegir el cableado. Por ejemplo: con cableado directo o relés de interfaz, cada bobina necesita una salida del PLC, así que una electroválvula monoestable necesita una salida y una biestable, dos. Con una interfaz de bus en una isla de válvulas, el PLC escribe el estado de las bobinas por la red, así que comprueba que la isla admite un protocolo que tu PLC pueda usar, por ejemplo Modbus TCP. Después revisa los valores eléctricos en la hoja de datos de la familia ESP32 PLC. Especificaciones completas: ESP32 PLC 42 · familia ESP32 PLC.

    Preguntas frecuentes

    ¿Qué pasa con las salidas del PLC si se pierde la red?

    Las salidas hacen lo que les dice tu programa. Tu PLC no sabe por sí solo que tu base de datos ya no responde. Le añades un watchdog: si pasa un tiempo fijado sin contacto, tu PLC lleva todas las compuertas a un estado por defecto que defines tú (mantener, cerrar o abrir) y enciende un piloto de alarma. Cuando vuelve el enlace, vuelve a pedir todas las filas sin terminar antes de aceptar órdenes nuevas. Este estado por defecto es un valor de proceso que se fija en el programa del PLC. La protección de las personas cerca de compuertas en movimiento (paro de emergencia, válvula de descarga de presión, resguardos) necesita un circuito de seguridad certificado, separado de esta lógica.

    ¿Qué significan los estados PENDING, SENT, DONE y SKIPPED?

    PENDING significa que la fila está en tu tabla y ningún PLC la ha leído todavía. SENT significa que tu PLC ha leído la fila. DONE significa que tu PLC confirma que la compuerta ha llegado a su posición. SKIPPED significa que tu PLC no ha ejecutado la fila, y la fila explica el motivo, por ejemplo que hay una fila más reciente para la misma compuerta. Con estos cuatro estados, tu tabla muestra qué ha pasado de verdad con cada orden.

    ¿Qué cambia el intervalo de consulta?

    El intervalo de consulta es cada cuánto pide tu PLC filas nuevas. Fija el peor retardo entre una fila nueva y el inicio del movimiento, y el número de consultas que recibe tu base de datos. En el simulador puedes elegir 1, 2 o 5 s y comparar. Si necesitas un retardo menor, un servicio puede enviar tus órdenes al PLC en modo push, por ejemplo por MQTT.

    ¿Cómo se conectan las bobinas de las válvulas al PLC?

    Depende del cableado que elijas. Con cableado directo o relés de interfaz, cada bobina necesita una salida del PLC. Con una interfaz de bus en una isla de válvulas (un ejemplo de cableado), tu PLC escribe el estado de las bobinas por la red, así que comprueba que tu isla admite un protocolo que tu PLC pueda usar, por ejemplo Modbus TCP. Si cableas directo, compara la tensión y la corriente de tus bobinas con los valores de las salidas en la hoja de datos.

    ¿Qué distribución de compuertas y válvulas usa el simulador?

    Pruebas una distribución de ejemplo. El PLC A gobierna las compuertas G01 a G09 y el PLC B, G10 a G18, a través de una isla de válvulas de ejemplo con una válvula por compuerta. Cada válvula es una electroválvula monoestable con retorno por muelle, así que cuando tu PLC pone la salida en ON, la compuerta se abre. Los 9 pilotos muestran funciones de ejemplo que puedes adaptar a tu propio cuadro, como red OK, alarma de enlace y filas pendientes. En el simulador, el recorrido de la compuerta dura 4 s y el watchdog es de 5 s. La instalación real usa 18 compuertas neumáticas, 9 pilotos de señalización y 2 ESP32 PLC 42, pero no publicamos su reparto, sus válvulas ni su cableado.

    ¿Tengo que saber programar para montar esto?

    El programa del PLC se escribe en C++ con el Arduino IDE. Para la parte de comunicaciones (MQTT, Modbus TCP, Modbus RTU) tienes tutoriales y ejemplos públicos, enlazados más arriba. En la instalación real de esta página, el propio equipo del cliente programó y puso en marcha el sistema con esa documentación y esos cursos. Si lo prefieres, un integrador puede escribirte el programa a partir del diseño de tu tabla.

    Quiero esta arquitectura

    Cuéntanos cómo son tus compuertas, tus señales y tu base de datos. Nuestro equipo te responde con una propuesta de arquitectura para tu caso. Los ajustes que has usado en el simulador se envían con la solicitud.