Cómo integrar sensores Modbus TCP en Grafana con Node-RED y MQTT
Aprende paso a paso cómo leer datos de PLC industrial usando Modbus TCP, publicar vía MQTT con Node-RED y mostrar gráficos en tiempo real en Grafana.
Resumen
- El protocolo Modbus TCP actúa como un traductor universal que permite a computadoras y PLCs comunicarse en redes estándar.
- Node-RED funciona como la herramienta de flujo visual que recolecta datos de planta sin requerir código complejo desde cero.
- El protocolo MQTT actúa como un cartero ligero y rápido, ideal para entregar mensajes de sensores en tiempo real a cualquier sistema.
- Grafana transforma números crudos de sensores en paneles visuales intuitivos que simplifican el monitoreo de máquinas industriales.
- Construir una arquitectura modular basada en tópicos MQTT desacoplados garantiza fácil mantenimiento y alta escalabilidad.
El reto de conectar la planta de producción a la nube
En el entorno industrial moderno, extraer datos de maquinaria nueva y antigua es el primer paso para optimizar la producción. A menudo, estos equipos hablan idiomas propietarios o protocolos tradicionales difíciles de acceder directamente con herramientas modernas de visualización. Para resolver esto, creamos puentes de datos eficientes que transforman señales eléctricas en métricas web legibles, de forma similar a cuando diseñamos una arquitectura de bus de eventos resiliente para sistemas distribuidos.
El ecosistema que une Modbus TCP, Node-RED, MQTT y Grafana resuelve este problema con elegancia, bajo costo y alta confiabilidad. El PLC, o Controlador Lógico Programable, es el cerebro electrónico que controla motores, cintas y válvulas en la planta. Almacena variables en registros internos que se pueden leer mediante solicitudes de red directas usando el protocolo Modbus TCP.
Entendiendo la arquitectura de lectura y transporte
Modbus TCP es una evolución del clásico Modbus Serial, adaptado para ejecutarse sobre redes TCP/IP comunes. Funciona bajo un modelo de solicitud y respuesta, donde la computadora solicita el valor de una dirección específica y el PLC responde con el dato bruto recolectado de los sensores. En la práctica, esto significa que necesitamos un sistema que consulte al PLC repetidamente sin saturar la red.
Aquí es exactamente donde entra Node-RED, una herramienta de programación visual basada en flujos que simplifica la integración de APIs, hardware y bases de datos. Con bloques visuales arrastrados al lienzo, configuramos nodos que solicitan datos del PLC vía Modbus a intervalos regulares. Además, antes de reenviar estos datos, podemos aplicar lógica de filtrado similar a las rutinas automatizadas que usamos al auditar flujos de datos en pipelines de infraestructura.
Configurando Node-RED para interactuar con el PLC
Para comenzar a extraer datos del PLC, instalamos los nodos de comunicación adecuados en el entorno Node-RED. El proceso implica conectar un bloque de inyección de tiempo a un bloque de lectura Modbus, apuntando a la dirección IP del controlador industrial. Cada registro Modbus tiene un número específico correspondiente a una temperatura, presión o estado del motor.
A continuación, presentamos un script auxiliar en JavaScript que Node-RED puede ejecutar para procesar el paquete bruto recibido del PLC antes de publicarlo en la red:
// Ejemplo de script de procesamiento en Node-RED para datos Modbus TCP
msg.payload = {
sensor_id: 'caldera_temp_01',
valor_bruto: msg.payload[0],
temperatura_celsius: (msg.payload[0] * 0.1).toFixed(2),
timestamp: new Date().toISOString()
};
return msg;
Este procesamiento inicial garantiza que cualquier fluctuación eléctrica o dato fuera de rango sea limpiado antes de avanzar. En la práctica, ahorramos ancho de banda y evitamos contaminar la base de datos con ruido innecesario.
Publicando métricas industriales vía protocolo MQTT
Tan pronto como Node-RED extrae y limpia los datos del PLC, debemos enviarlos a un intermediario ligero que distribuya esta información a quien la requiera. MQTT cumple este papel a la perfección, funcionando como un sistema de mensajería basado en tópicos donde los dispositivos publican y se suscriben a actualizaciones al instante.
Configuramos Node-RED para enviar el objeto JSON procesado a un broker MQTT local, como Mosquitto, utilizando una estructura de tópicos limpia y jerárquica. Por ejemplo, publicar en una estructura como fabrica/linea1/horno/temperatura permite que cualquier aplicación o base de datos escuche ese canal específico sin saturar el PLC con cientos de conexiones directas simultáneas.
Almacenando datos para historial y análisis
Aunque MQTT es excelente para el transporte en tiempo real, no está diseñado para almacenamiento histórico a largo plazo. Para alimentar gráficos que muestran el comportamiento de la fábrica durante días o semanas, debemos inyectar estos mensajes MQTT en una base de datos optimizada para series temporales como InfluxDB o TimescaleDB.
Creamos un flujo simple en Node-RED que escucha el tópico MQTT del horno y escribe el valor recibido directamente en la base de datos junto con la fecha y hora exactas. Este paso garantiza que si el panel de visualización cae un instante, no se pierda ningún dato histórico valioso en el proceso.
Visualizando todo en tiempo real con Grafana
Con los datos almacenados de forma estructurada, llega el momento de construir el panel visual definitivo en Grafana. Conectamos Grafana a nuestra base de datos de series temporales y creamos gráficos de líneas, medidores de aguja y alertas visuales basadas en umbrales críticos de temperatura o presión.
Grafana permite configurar actualizaciones automáticas cada segundo, ofreciendo a los operadores de planta una visión quirúrgica e instantánea de los eventos en el piso de producción. Si la temperatura de un motor supera el límite seguro, el panel cambia de color inmediatamente, permitiendo acciones correctivas antes de que ocurra una parada imprevista.
Consideraciones finales sobre el monitoreo industrial
Integrar sensores Modbus TCP con paneles modernos usando Node-RED, MQTT y Grafana democratiza el acceso a los datos industriales sin requerir inversiones millonarias en software privativo. Este enfoque modular garantiza resiliencia, flexibilidad y control total sobre la infraestructura de telemetría de su empresa, modernizando operaciones heredadas con herramientas ágiles y de código abierto.