Energie-Messgeräte per Modbus RTU in die IoT-Steuerung integrieren
Autor
Ueli Iff
Veröffentlicht
Lesezeit
4 Min.

Auch in der vermeintlich komplexen Welt des IoT kann die Anbindung eines Modbus-RTU-Slaves erstaunlich unkompliziert sein. Diese Anleitung zeigt Schritt für Schritt, wie sich ein solcher Slave in eine IoT-Steuerung einbinden lässt. Als Beispiel dient das Energiemeter EM122 von Weidmüller: Wir lesen einen Messwert aus dem Gerät aus und schreiben ihn in eine globale Variablenliste. Von dort lässt sich der Wert anschliessend an jeden beliebigen Ort im Ökosystem weiterreichen.
Kernidee: Ein Modbus-RTU-Messgerät liefert seine Werte über die RS485-Schnittstelle an den Modbus-RTU-Master der Steuerung – und steht nach Umrechnung als globale Variable für jede weitere Verarbeitung bereit.
Verkabelung: A und B bewusst vertauschen
Die korrekte Verdrahtung entscheidet über eine einwandfreie Kommunikation und Funktion des u-Remote-Moduls. Wichtig dabei: Draht A muss anstelle von B und Draht B anstelle von A angeschlossen werden, damit die Signalübertragung stimmt. Werden diese Drähte falsch belegt, kann es zu Fehlfunktionen und gestörter Kommunikation kommen. Führen Sie die Verkabelung daher sorgfältig aus, um einen reibungslosen Betrieb des u-Remote-Moduls sicherzustellen.
Energiemeter EM122 konfigurieren
Bei Baudrate und Slave-ID haben Sie volle Flexibilität. Entscheidend ist allein, dass Sie sich die gewählte Konfiguration merken, damit sich der Slave im nächsten Schritt reibungslos mit der IoT-Steuerung verbinden lässt. Die richtige Wahl dieser Parameter ist die Grundlage für eine erfolgreiche Kommunikation zwischen Energie-Messgerät und Steuerung – notieren Sie sich diese Einstellungen daher unbedingt.
Modbus-RTU-Master auf der IoT-Steuerung einrichten
Aktivieren Sie zunächst den Edit-Modus in der IoT-Steuerung. Anschliessend wählen Sie die u-Remote-Scheibe UR20-1COM-232-485-422 aus. Damit erhalten Sie Zugriff auf die Konfiguration des Modbus-RTU-Masters.
In diesem Abschnitt wählen Sie die passende Schnittstelle aus – in unserem Fall RS485. Stellen Sie ausserdem die Baudrate auf 9600 ein, wie im vorherigen Schritt am Messgerät festgelegt.
Neues Slave-Gerät hinzufügen
Klicken Sie in der Baumtopologie beim Modbus-RTU-Client-1 auf die drei Punkte und fügen Sie ein neues Slave-Gerät hinzu.
Register anlegen
Jetzt wird es interessant. Klicken Sie auf das soeben hinzugefügte Slave-Gerät und passen Sie die Slave-ID an die Konfiguration an, die Sie zuvor am Gerät festgelegt haben – in diesem Beispiel die 1.
Anschliessend legen Sie die Register an. Beachten Sie, dass jedes Gerät unterschiedliche Registerparameter haben kann. Ziehen Sie zur korrekten Einstellung immer die Produkt-Dokumentation des verwendeten Geräts heran. Sie enthält alle notwendigen Angaben, um die Register richtig zu konfigurieren und eine zuverlässige Kommunikation zwischen Modbus-RTU-Master und Slave-Gerät sicherzustellen.
Werte in eine globale Variable schreiben
Nachdem Sie auf der IoT-Steuerung drei neue Variablen angelegt haben, finden Sie im Mapping zwei Werte vor, die jeweils mit einem Index für Low- und High-Bit versehen sind. Diese beiden Werte müssen wir nun umrechnen, um eine korrekt interpretierbare Ausgabe zu erhalten. Die dritte Variable nimmt den umgerechneten Wert auf.
Sobald Low- und High-Bit mit dieser Variable verknüpft sind, erscheinen die entsprechenden Werte. Diese Verknüpfung und Umrechnung ist entscheidend, um die Rohdaten korrekt zu interpretieren und für Ihre Anwendungen nutzbar zu machen.
Keine Werte? Möglicherweise ist es zu einem Busabsturz gekommen. Starten Sie in diesem Fall die Steuerung neu oder entfernen Sie das Elektronikmodul der u-Remote-Scheibe für eine Sekunde.
Funktionsblock für die Umrechnung erstellen
Für die Umrechnung habe ich einen wiederverwendbaren Funktionsblock erstellt, sodass dieser Teil nur einmal aufgebaut werden muss. Sie können den Funktionsblock auf Ihrer Steuerung einfach nachbauen. Das ermöglicht eine effiziente, wiederholbare Konfiguration und Umrechnung der Werte und erleichtert die Verwaltung und Wartung Ihrer IoT-Steuerung.
Funktionsblock anwenden
Nach dem Erstellen erscheint der Funktionsblock im Katalog unter der Rubrik «Custom». Verknüpfen Sie nun das High-Bit (oben) und das Low-Bit (unten) auf der linken Seite; die zugehörigen Variablen finden Sie in der globalen Variablenliste. Auf der rechten Seite wird der umgerechnete, lesbare Wert ausgegeben, den Sie mit der zuvor angelegten dritten Variable verknüpfen.
Durch diese Verknüpfungen läuft die Umrechnung über den Funktionsblock automatisiert ab, und der berechnete Wert wird in der dritten Variable gespeichert. So bleibt die Datenverarbeitung in Ihrer IoT-Steuerung effizient und nachvollziehbar.
Ergebnis prüfen
Kehren Sie zur Echtzeitansicht zurück und öffnen Sie anschliessend die globale Variablenliste. Unter «Value» finden Sie nun den berechneten Wert der dritten Variable – den umgerechneten, interpretierbaren Wert, der aus High- und Low-Bit mithilfe des Funktionsblocks erzeugt wurde. Dieser Wert steht jetzt für Ihre IoT-Anwendungen und Steuerungsprozesse zur Verfügung.
Fazit
Die Integration eines Modbus-RTU-Slaves in die IoT-Steuerung ist mit der richtigen Vorgehensweise gut beherrschbar: korrekte Verkabelung mit vertauschten A-/B-Drähten, abgestimmte Konfiguration von Baudrate und Slave-ID, Einrichtung des Modbus-RTU-Masters über die u-Remote-Scheibe UR20-1COM-232-485-422 sowie die Umrechnung der High-/Low-Bits über einen wiederverwendbaren Funktionsblock. Am Ende steht ein sauber interpretierbarer Energiemesswert in einer globalen Variable – jederzeit weiterverwendbar im gesamten IoT-Ökosystem.

Virtuelle Maschinen vs. Docker — der Unterschied einfach erklärt
Virtuelle Maschinen oder Docker-Container? Architektur, Unterschiede (Grösse, Startzeit, Isolation) und wann sich was lohnt — verständlich mit Grafiken erklärt.

Lokales LLM-Setup mit Proxmox & GPU für KMU und Gemeinden
KI lokal betreiben — ohne Cloud, ohne Datenweitergabe. Mein praxiserprobtes LLM-Setup mit Proxmox, GPU, OpenWebUI und RAG für KMU und Gemeinden.

Tailscale-Client in Docker unter u-OS für sicheren Fernzugriff
Schritt-für-Schritt: Tailscale-Client in Docker unter u-OS einrichten — sicherer Fernzugriff auf Industriesteuerungen ohne offene Ports.
