Ir al contenido

Depuración en vivo con OpenPLC

9 de junio de 2025 por
Boot & Work Corp. S.L, Arnau Tena

OpenPLC nos permite depurar en vivo un PLC remoto. Es una herramienta muy potente, pero hay algunos aspectos que conviene tener en cuenta para evitar posibles problemas.

Posts anteriores

Este post forma parte de una serie de posts sobre OpenPLC en Arduino y M-Duino. Si todavía no te has familiarizado con el software, te recomendamos que leas primero los posts anteriores:

Primeros pasos con OpenPLC

Modbus en Arduino con OpenPLC

OpenPLC en M-Duino 42+

Mapeo de cualquier M-Duino en OpenPLC

MQTT en M-Duino con OpenPLC

HTTP en M-Duino con OpenPLC

MQTT en M-Duino con OpenPLC y Raspberry PLC

Hardware utilizado

Para este post hemos utilizado un M-Duino 42+, pero puedes usar cualquier M-Duino o cualquier placa compatible con OpenPLC. El M-Duino está conectado por Ethernet a un ordenador que ejecuta el OpenPLC Editor.

Activación de Modbus

Para poder depurar un programa, hay que cargarlo con alguna de las opciones de Modbus activada, o con ambas si lo prefieres. La depuración por serie solo funciona si Modbus RTU está activado con una velocidad de al menos 38400 baudios. Si quieres depurar por Ethernet, se usará para ello la IP que hayas configurado para Modbus TCP.

Activación de Modbus

Depuración por Ethernet

Depurar por Ethernet es muy sencillo. Usaremos el ejemplo Blink. Primero, carga un programa en tu M-Duino con Modbus por Ethernet activado. Después, haz clic en el icono de depuración de la barra superior:

Depuración por Ethernet

Aparecerá una nueva ventana. Selecciona "Ethernet - TCP" y cambia la IP por la que configuraste para el Modbus por Ethernet:

Depuración por Ethernet

Después de conectar, haz clic en el icono de las gafas en la parte izquierda de la pantalla:

Depuración por Ethernet

Ahora estarás en la instancia de depuración, donde puedes ver el diagrama de escalera funcionando en tiempo real. También puedes depurar variables individuales haciendo clic en sus iconos de gafas, tras lo cual aparecerán en la ventana "Debugger" de la parte derecha de la pantalla:

Depuración por Ethernet

Si haces clic en el icono del candado, puedes cambiar el valor de las variables siempre que no estén asociadas a una E/S del PLC.

Depuración por serie

Si es posible, te recomendamos depurar siempre por Ethernet, ya que es más fiable. La depuración por serie requiere tomar algunas precauciones que explicamos a continuación.

Abre el ejemplo blink y añade una extensión de Arduino. Si no sabes cómo añadir una extensión de Arduino, se explica aquí:

HTTP en M-Duino con OpenPLC

Abre la extensión de Arduino y configúrala así:

//////////////////////////////// sketch section ////////////////////////////////
void sketch_setup()
{
    Serial.begin(9600);
}

void sketch_loop()
{

}

Carga el programa en el M-Duino con Modbus RTU activado. Después, haz clic en el icono de depuración, selecciona "Serial - RTU" e inicia la depuración. Asegúrate de usar los mismos ajustes que usaste al activar Modbus RTU.

Depuración por serie

Al hacer clic en "Connect" te encontrarás con este problema:

Depuración por serie

El mensaje de error no describe la causa real: el proyecto no coincide con el programa en ejecución. El error real es que, en la extensión de Arduino, estamos usando el puerto Serial a 9600 baudios, lo que no coincide con la velocidad que seleccionamos para Modbus RTU.

Para evitar estos problemas al depurar por serie, debes tener en cuenta lo siguiente:

  • La velocidad de Modbus debe ser de al menos 38400 baudios.
  • La velocidad de depuración debe coincidir con la de Modbus.
  • Si usas el puerto serie en tu extensión de Arduino, su velocidad debe coincidir con la de Modbus.

También puedes encontrarte con estos problemas al usar bloques de función MQTT. En cualquier caso, te recomendamos depurar por Ethernet para evitarlos por completo.

Siguiente post:

Uso de ESP32 PLC, M-Duino y Ardbox con OpenPLC


Buscar en nuestro blog

Boot & Work Corp. S.L, Arnau Tena 9 de junio de 2025
Compartir esta publicación
Etiquetas

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.

Comparativa de PLCs