Modbus mit MQTT verbinden

Die Brücke zwischen Ihren Modbus-Feldgeräten und der IoT-/Cloud-Welt, einfach erklärt.

Modbus und MQTT: zwei Welten

Modbus ist ein in der Industrie entstandenes Feldbus-Protokoll. Es lässt SPS, Zähler, Wechselrichter und Sensoren Daten über Register (nummerierte Speicherzellen) austauschen, in einem Master-/Slave-Modell. Es gibt es in zwei Ausprägungen: Modbus RTU (seriell, über RS485) und Modbus TCP/IP (Ethernet). Einfach und universell — aber rein lokal.

MQTT ist ein für das IoT konzipiertes Messaging-Protokoll. Geräte veröffentlichen Nachrichten (oft JSON) zu Topics, und ein Broker verteilt sie an alle, die sie abonniert haben. Schlank, in Echtzeit und Cloud-orientiert, ist es die Sprache von IoT-Plattformen, Dashboards und Analyse-Tools.

Sie zu verbinden bedeutet, Daten, die auf einem Feldbus gefangen sind, in eine moderne Infrastruktur zu bringen — ohne die bestehenden Geräte zu ändern.

Warum sie verbinden

Anbindung von Modbus-Geräten an einen MQTT-Broker für den Cloud-Upload

Die Praxisfälle sind zahlreich: Zähler und SPS für Tracking und Abrechnung in eine Cloud übertragen, Echtzeit-Dashboards speisen, mehrere Standorte auf einer einzigen Plattform zusammenführen, Alarme auslösen oder ein Analyse-Tool / einen Data Lake speisen. Da MQTT schlank ist, eignet es sich auch für Verbindungen mit geringer Bandbreite (3G/4G).

So funktioniert es, Schritt für Schritt

  1. Die Modbus-Register lesen — das Gateway fragt das Gerät ab (Master) oder wird abgefragt (Slave) und ruft die relevanten Registerwerte ab.
  2. Jedes Register einem MQTT-Topic zuordnen — festlegen, wohin jeder Wert veröffentlicht wird (z. B. standort/werkstatt/zaehler1/energie).
  3. Den Wert transformieren — Skalierung, Einheitenwechsel, Datentypen und Endianness-Behandlung, JSON-Formatierung.
  4. An den Broker veröffentlichen — der Wert wird an den MQTT-Broker (private oder öffentliche Cloud) gesendet, mit der gewählten Frequenz oder bei Änderung.
  5. (Optional) Befehle empfangen — durch das Abonnieren eines Topics kann das Gateway aus einer eingehenden MQTT-Nachricht ein Modbus-Register schreiben (Sollwert, Befehl).

Best Practices & Fallstricke

  • Die Frequenz steuern — bei Änderung mit einer Hysterese veröffentlichen statt kontinuierlich, um Netzwerk oder Broker nicht zu überlasten.
  • Modbus-Typen und Endianness — ein Register ist 16 Bit; 32-Bit-Werte (Float, Int) erstrecken sich über zwei Register, deren Reihenfolge je nach Hersteller variiert. Prüfen Sie das.
  • Die Topics strukturieren — eine klare Hierarchie (Standort / Bereich / Gerät / Messwert) erleichtert die Verarbeitung auf Cloud-Seite.
  • Sicherheit — bevorzugen Sie MQTT über TLS mit Authentifizierung; setzen Sie niemals einen offenen Broker aus.
  • Robustheit — richten Sie ein MQTT-Last Will und automatische Wiederverbindung für instabile Verbindungen ein.

Mit einer WBox umsetzen

Das WBox-Gateway deckt all diese Schritte nativ ab: Modbus-RTU/TCP-Lesen, Drag-and-Drop-Mapping, Transformation in Blockly oder JavaScript, MQTT-Veröffentlichung (Broker oder Client) und das Zurückschreiben von Befehlen. Alles wird ohne aufwändige Entwicklung konfiguriert. Siehe die eigene Seite: Modbus ⇄ MQTT Gateway.

Sie benötigen ein WBox-Gateway, den Modbus-Treiber und den MQTT-Treiber. Zur Zählerauslesung siehe auch Zählerdaten in die Cloud.