¿Por qué convertir Modbus RTU a MQTT?
Modbus RTU es el lenguaje de la máquina. MQTT es el lenguaje de la nube. El puente Modbus RTU → MQTT actúa como traductor entre estos dos mundos: permite que tus equipos industriales heredados se comuniquen con las plataformas modernas de IoT sin necesidad de modificar la instalación existente.
Ventajas de MQTT para la transmisión de datos industriales:
- Ligereza: 2 bytes de encabezado como mínimo, ideal para 4G y conexiones costosas
- Publicación/suscripción: separación entre la producción (pasarela) y el consumo (panel de control, API)
- Sesión persistente: los mensajes se ponen en cola durante los cortes de red
- QoS configurable: garantía de entrega adaptada a cada tipo de datos
- TLS nativo: cifrado y autenticación sin capa de aplicación adicional
Arquitectura del puente Modbus RTU → MQTT
El puente funciona en dos fases distintas e independientes:
Fase 1 — Recopilación de datos Modbus RTU (lado de campo) La pasarela actúa como maestro Modbus. Envía solicitudes de lectura (FC01/02/03/04) a los esclavos RS485 según un programa de sondeo configurable. Cada respuesta se decodifica, se escala y se marca con la fecha y la hora localmente.
Fase 2 — Publicación MQTT (en la nube) Los valores descodificados se encapsulan en mensajes JSON y se publican en el broker MQTT. Si la conexión no está disponible, los mensajes se almacenan temporalmente en la memoria local (72 h) y se retransmiten al restablecerse la conexión con su marca de tiempo original.
Bus RS485, pasarela Eziwan y servidor MQTT
────────── ────────────────── ────────────
Esclave 1 ──┐ ┌── Modbus RTU master AWS IoT Core
Esclave 2 ──┤── RS485 ──►│ Polling FC03/FC04 MQTT Azure IoT Hub
Esclave 3 ──┤ │ Decode + Scale ──TLS► HiveMQ
Esclave n ──┘ └── JSON builder Mosquitto
Buffer 72h Eziwan Cloud
Estructura de los temas MQTT para Modbus RTU
La organización de los temas MQTT es fundamental para la facilidad de mantenimiento y la integración:
Código recomendado:
{sitio}/{zona}/{instalación}/{etiqueta}
Ejemplos:
usine/atelier_a/variateur_01/frequence_hz
usine/atelier_a/variateur_01/courant_a
usine/tgbt/compteur_principale/puissance_active_kw
usine/tgbt/compteur_principale/energie_kwh
Temas de metadatos (Sparkplug B):
spBv1.0/fábrica/NBIRTH/pasarela_01 ← Aviso de conexión
spBv1.0/fábrica/NDATA/pasarela_01 ← Datos de proceso
spBv1.0/fábrica/NDEATH/pasarela_01 ← Desconexión (LWT)
Brokers compatibles con MQTT
La pasarela Eziwan es compatible con los principales brokers MQTT del mercado:
| Broker | Alojamiento | Protocolo | Casos de uso |
|---|---|---|---|
| AWS IoT Core | Nube de AWS | MQTT TLS | Integración con AWS (Lambda, S3, Timestream) |
| Azure IoT Hub | Nube de Azure | MQTT / AMQP | Integración con Azure (Stream Analytics, Cosmos DB) |
| HiveMQ Cloud | Nube gestionada | MQTT 5.0 + TLS | Sparkplug B, UNS, multibroker |
| Mosquitto | Autohospedado | MQTT 3.1.1 | SCADA local, latencia mínima |
| Eziwan Cloud | Nube gestionada | MQTT TLS | Listo para usar, panel de control integrado |
Gestión de la desconexión y el almacenamiento en búfer
Las redes industriales (4G, Wi-Fi en entornos difíciles) son propensas a sufrir cortes. El puente Modbus RTU → MQTT gestiona esta situación mediante:
- Last Will Testament (LWT): mensaje automático publicado por el broker cuando la pasarela se desconecta
- Sesión persistente: el broker conserva las suscripciones y los mensajes QoS 1/2 en espera
- Búfer local: la pasarela almacena las mediciones en la memoria flash durante la interrupción
- Resincronización: al volver a conectarse, los mensajes se retransmiten en orden cronológico
Este mecanismo garantiza que no se pierda ningún dato, incluso en caso de cortes prolongados de la red, lo cual es fundamental para aplicaciones de medición de energía o de seguimiento de la producción.
Integración con las bases de datos TSDB en la nube
Los datos MQTT suelen almacenarse en una base de datos de series temporales (Time Series Database):
- InfluxDB: de código abierto, excelente para métricas industriales
- AWS Timestream: sin servidor, integrado en AWS IoT Core
- Azure Data Explorer: alto rendimiento para grandes volúmenes
- TimescaleDB: PostgreSQL ampliado, SQL nativo
- Eziwan Storage: almacenamiento incluido, retención configurable
Desde la TSDB, los datos se incorporan a los paneles de control de Grafana, a los informes de rendimiento y a los modelos de mantenimiento predictivo.