LoRaWAN und Modbus: RS485-Feldgeräte drahtlos anbinden

Modbus-RTU-Feldgeräte über LoRaWAN anbinden: ein Controller pollt RS485-Register in Uplinks, du decodierst in ChirpStack und steuerst per Downlink.

LoRaWAN
Architektur

Der Datenfluss

Alte RS485-Feldgeräte (Energiezähler, SPS, Durchfluss- und Füllstandsmesser) über kilometerweite Funkreichweite auslesen, ohne neues Kabel. Ein LoRaWAN-Controller pollt Modbus-RTU-Register, codiert sie in Uplinks, und du decodierst und steuerst sie aus deinem Dashboard.

Sensor / Controller

Misst oder steuert vor Ort und sendet LoRaWAN-Uplinks.

LoRaWAN-Gateway

Empfängt die Funkpakete und reicht sie an den Server weiter.

ChirpStack

Network-Server: verwaltet Sessions und decodiert das Payload.

ThingsBoard / Grafana

Dashboards, Alarme, Regeln und Reports.

Wie die Bridge funktioniert

Der Controller ist als Modbus-Master am RS485-Bus konfiguriert. Nach Zeitplan pollt er jedes konfigurierte Register, packt die Ergebnisse in ein LoRaWAN-Payload und sendet ein Uplink. Ab hier ist der Weg derselbe wie bei jedem LoRaWAN-Gerät: ein Gateway empfängt ihn, ChirpStack decodiert ihn, dein Dashboard zeigt ihn an. Kein neues Kabel zur Leitwarte, der Controller sitzt neben den Feldgeräten und die Daten reisen drahtlos. Ein konkretes Beispiel haben wir in Milesight UC100: Modbus zu LoRaWAN beschrieben.

Die Modbus-Channels konfigurieren

Das ist der Teil, der je Deployment spezifisch ist. Für jeden gewünschten Wert konfigurierst du am Controller einen Modbus-Channel (beim Milesight UC300 in der ToolBox-App):

Channel 1
  Slave address: 1
  Function code: 0x03   (read holding registers)
  Start register: 0x0000
  Data type:     UINT32  (2 registers, check the word order)
  Polling:       every 600 s

Channel 2
  Slave address: 1
  Function code: 0x04   (read input registers)
  Start register: 0x0008
  Data type:     INT16
  Polling:       every 600 s

Der Controller codiert dann jeden gepollten Channel in das Uplink. Weil dieses Mapping deins ist, liefern der Milesight UC300 und ähnliche Controller einen Decoder, der ein Framework ist, kein fixer Drop-in.

Das Payload decodieren

Das Uplink kommt weiterhin als rohe Bytes an, braucht also einen ChirpStack-Payload-Decoder, der deinen Channel- und Register-Mapping abbildet. Einmal decodiert, fließt das saubere JSON weiter ins Dashboard, etwa über die ChirpStack-zu-ThingsBoard-Integration.

Downlink: Register schreiben und Ausgänge schalten

Bridging ist nicht nur lesend. Als Class-C-Gerät hält der Controller sein Empfangsfenster offen, daher kann ein LoRaWAN-Downlink ein Modbus-Register schreiben oder einen Relais-Ausgang schalten, etwa um eine Pumpe zu starten oder ein Ventil zu schließen. Der Befehl gilt nahezu in Echtzeit, was die Bridge für Steuerung nutzbar macht, nicht nur für Monitoring. Der Downlink trägt Zielregister und Wert, der Controller führt den Modbus-Write am Bus aus.

Stolpersteine aus der Praxis

  • RS485-Terminierung: Bei langen oder schnellen Bussen führen fehlende Abschlusswiderstände zu wackeligen Reads. Beide Enden terminieren.
  • Polling-Intervall vs. Registeranzahl: Zu aggressiv für die Registerzahl pollen, und Uplinks stauen sich gegen den Duty-Cycle. Intervall an die Funkkapazität anpassen.
  • Word- und Byte-Order: 32-Bit- und Float-Register unterscheiden sich je Hersteller in der Word-Order. Gegen einen bekannten Wert prüfen, sonst ist die decodierte Zahl Unsinn.
  • Class-C-Versorgung: Dauerempfang braucht Netz oder Solar, nicht batterie-only.
  • Fail-Safe-Zustände: Festlegen, was Ausgänge bei Kommunikationsverlust tun, damit ein Ventil bei einem Ausfall nicht offen bleibt.

So betreibt merkaio das für dich

Wir übernehmen die ganze Kette: RS485-Bus inventarisieren, Controller konfigurieren, Register mappen, Decoder schreiben, Daten ins Dashboard leiten und die Downlink-Steuerung verdrahten. Das Ergebnis ist eine drahtlose, steuerbare Sicht auf Anlagen, die früher hinter einem lokalen Kabel lagen. Sprich uns auf Managed-ChirpStack-Hosting an, dann betreiben wir die Decode-, Forwarding- und Downlink-Schicht für dich.

Hardware

Geräte mit fertigem Decoder

Häufige Fragen

Ein LoRaWAN-Controller, der als Modbus-Master arbeitet, etwa der Milesight UC300 oder UC50x. Er pollt den RS485-Bus und codiert die Registerwerte in LoRaWAN-Uplinks. Ein reiner Sensor kann das nicht.
Der drahtlose Bridge-Fall ist Modbus RTU über RS485, das sprechen diese Controller. Modbus TCP läuft über IP und braucht ein anderes Gateway. Diese Anleitung behandelt RTU.
Nein. Der Controller pollt Register in einem Intervall und sendet Uplinks innerhalb des LoRaWAN-Duty-Cycles, also eher Minuten als Millisekunden. Downlink-Befehle an einen Class-C-Controller gelten nahezu in Echtzeit.
Ja. Als Class-C-Gerät hört der Controller dauerhaft, daher kann ein LoRaWAN-Downlink ein Modbus-Register schreiben oder ein Relais schalten. Wir bauen und bestätigen diese Befehle während der Integration.
Konfigurationsabhängig: Der Controller codiert jedes gepollte Register in einen Channel, der Decoder bildet also deinen konkreten Register-Mapping ab. Wir schreiben ihn nach der Milesight-Byte-Spezifikation und passen ihn an dein Deployment an.
Ja. Wir mappen die Register, konfigurieren den Controller, schreiben den Decoder, leiten die Daten ins Dashboard und verdrahten die Downlink-Steuerung, alles auf europäischer Infrastruktur.

Sprechen wir über Ihre Infrastruktur. Digital und vor Ort.

Ob IoT-Plattformentwicklung, Hardwareauswahl, Managed Hosting für ChirpStack, ThingsBoard, Grafana oder NetBird VPN, oder Migration von einem Self-Hosted-Setup - wir finden die passende Lösung für Ihren Anwendungsfall. Buchen Sie ein kostenloses 30-Minuten-Gespräch, unverbindlich.

Timo Wevelsiep

Ihr Ansprechpartner

Timo Wevelsiep

Gründer, merkaio

15 Minuten, unverbindlich, direkt mit Timo.

Mit dem Absenden stimmen Sie unserer Datenschutzerklärung zu.

merkaio ist unabhängiger Integrator und nicht mit Milesight affiliiert.