Modbus RTU
Der serielle Klassiker der Anlagentechnik: Einer fragt, alle Geräte antworten nur auf Zuruf.
Das ist der Aufbau: ein Master und drei Geräte an einer Leitung. Jedes Gerät hat eine feste Adresse.
In 30 Sekunden
Modbus RTU ist die einfache, uralte Sprache, mit der Maschinen und Messgeräte in Anlagen miteinander reden. Ein einziges Leitgerät (der Master) stellt Fragen, alle anderen Geräte (die Slaves) antworten nur, wenn sie direkt angesprochen werden. Es läuft meist über eine simple Zweidraht-Leitung, und die Grundidee ist seit 1979 stabil geblieben. Genau das macht es so zuverlässig und überall verfügbar, weshalb es heute noch in fast jeder Fabrik, Heizzentrale und Solaranlage steckt. Wichtig für die Praxis: Modbus RTU kennt von sich aus keine Verschlüsselung oder Anmeldung und gehört deshalb nur in ein geschütztes Netz.
Stell dir eine Schulklasse vor, in der nur die Lehrerin sprechen darf. Sie ist der Master. Die Schüler sind die Slaves, jeder hat eine feste Nummer. Die Lehrerin ruft einen Schüler beim Namen auf, zum Beispiel "Nummer 1, wie viel Strom hast du gemessen?". Alle Schüler hören die Frage, aber nur Nummer 1 fühlt sich gemeint und antwortet. Die anderen bleiben still, obwohl sie mitgehört haben. Warum diese strenge Regel? Es gibt nur eine einzige Sprechleitung für alle. Würden zwei gleichzeitig reden, verstünde man beide nicht mehr, deshalb darf immer nur einer sprechen und niemand ruft je von sich aus etwas rein. Damit sich niemand verhört, hängt jeder Schüler an seine Antwort eine kleine Prüf-Nummer an, mit der die Lehrerin sofort merkt, ob sie alles richtig verstanden hat. So arbeitet sich die Lehrerin ruhig durch die ganze Klasse, einen nach dem anderen. Genau so fragt der Modbus-Master seine Geräte der Reihe nach ab.
Wo trifft man Modbus RTU an?
Energiezähler
Strom-, Wasser- und Wärmezähler in Gebäuden liefern ihre Zählerstände über Modbus RTU an die Gebäudeleittechnik.
Frequenzumrichter und Motoren
Antriebe in Produktionsmaschinen bekommen Sollwerte per Modbus und melden Drehzahl und Störungen zurück.
Photovoltaik-Anlagen
Wechselrichter und Batteriespeicher geben Ertrags- und Ladezustände über Modbus an das Monitoring weiter.
Heizung und Klima (HLK)
Regler, Pumpen und Temperaturfühler in Heizzentralen tauschen ihre Werte über den Modbus-Bus aus.
Industrie-Sensorik
Druck-, Füllstand- und Temperaturmessgeräte werden an eine SPS oder ein IoT-Gateway angebunden.
IoT-Gateways
Kleine Rechner lesen alte Modbus-Geräte aus und schicken die Daten weiter in die Cloud.
Gut geeignet für
- Einfache, robuste Anbindung vieler Messgeräte über eine einzige Zweidraht-Leitung, weil das Protokoll extrem schlank ist.
- Bestandsanlagen und günstige Geräte, weil praktisch jedes industrielle Gerät Modbus versteht.
- Situationen, in denen es nur auf Zahlenwerte ankommt (Temperatur, Strom, Drehzahl), weil Register genau dafür gemacht sind.
- Lange Kabelwege in elektrisch gestörter Umgebung, weil RS-485 als Zweidraht-Technik sehr störfest ist.
- Projekte mit knappem Budget, weil weder Lizenzkosten noch teure Hardware nötig sind.
Weniger geeignet für
- Schnelle Ereignis-Meldungen (z. B. ein Alarm sofort), weil Geräte nie von selbst senden und der Master erst nachfragen muss. Besser: MQTT oder OPC UA.
- Grosse Datenmengen wie Bilder, Logs oder Dateien, weil ein Telegramm auf gut 250 Bytes (maximal 125 Register) begrenzt ist. Besser: Ethernet-basierte Protokolle.
- Anlagen mit vielen gleichberechtigten Teilnehmern, weil es immer nur einen Master gibt. Besser: Bussysteme, bei denen mehrere Geräte gleichberechtigt senden dürfen (z. B. CAN aus der Fahrzeugtechnik oder der Industrie-Ethernet-Standard PROFINET).
- Kommunikation über das Internet, weil Modbus RTU keinerlei Verschlüsselung oder Anmeldung kennt. Besser: Modbus TCP im geschützten Netz oder OPC UA.
Fakten
- 1979, von Modicon veröffentlicht
- Modbus Organization (offener De-facto-Standard)
- binär (RTU) über serielle Leitung, meist RS-485 Zweidraht
- Master/Slave, neu auch Client/Server genannt
- 1 bis 247 je Gerät, 0 = Broadcast (nur Schreiben, keine Antwort)
- 02/04 Eingänge und Messwerte lesen, 03 Halteregister lesen, 06/16 Register schreiben
- Register sind 16 Bit gross, Absicherung per CRC-16
- keine Verschlüsselung/Anmeldung, nur im geschützten Netz einsetzen
- 9600 oder 19200 Baud
Im Detail
Ein Master fragt, die Slaves antworten nur
Modbus RTU kennt eine strenge Rangordnung. Es gibt genau ein Leitgerät, den Master (in neueren Ausgaben der Spezifikation Client genannt). Das ist zum Beispiel eine SPS (speicherprogrammierbare Steuerung, der Industrie-Computer einer Anlage) oder ein IoT-Gateway. Alle anderen Geräte sind Slaves (neu: Server) und warten passiv.
Der entscheidende Punkt: Ein Slave sendet niemals von sich aus. Er spricht nur, wenn der Master ihn direkt anspricht. Der Grund ist einfach: Alle Geräte hängen an einer einzigen gemeinsamen Leitung. Würden zwei gleichzeitig senden, überlagern sich ihre Signale und man verstünde keinen von beiden mehr. Weil immer nur einer redet, ist der Ablauf sehr berechenbar. Der Master arbeitet seine Geräte der Reihe nach ab, das nennt man Polling (regelmässiges Abfragen). Der Preis dafür: Eine wichtige Meldung erreicht den Master erst, wenn er zufällig gerade nachfragt.
Adressen: Wer ist gemeint?
Jeder Slave am Bus bekommt eine eindeutige Nummer, seine Adresse. Erlaubt sind die Werte 1 bis 247. Der Master schreibt diese Adresse an den Anfang jeder Frage. Alle Geräte am Bus hören die Frage mit, aber nur das Gerät mit der passenden Adresse fühlt sich angesprochen und antwortet.
Die Adresse 0 ist ein Sonderfall, der Broadcast. Damit gibt der Master allen Geräten gleichzeitig denselben Wert vor. Das funktioniert aber nur zum Schreiben, nicht zum Auslesen, denn sonst würden alle Antworten auf einmal kollidieren. Deshalb antwortet auf einen Broadcast niemand. In der Praxis wird das nur selten gebraucht.
Register und Funktionscodes
Die Daten in einem Modbus-Gerät liegen in Registern. Ein Register ist ein kleiner Speicherplatz von 16 Bit, damit lässt sich zum Beispiel eine Zahl von 0 bis 65535 ablegen. Ein Temperaturfühler legt seinen Messwert etwa in Register 100 ab. Für Kommazahlen, negative Werte oder grosse Zählerstände werden mehrere Register zusammengefasst. Genau das (die richtige Reihenfolge und Skalierung der Register) ist beim Anschluss eines echten Geräts der häufigste Stolperstein.
Was der Master will, sagt er über den Funktionscode, eine Art Befehl. Am häufigsten sind: 02 und 04 lesen Eingänge und Messwerte (bei vielen Sensoren liegen die Werte in solchen Eingangsregistern, nicht in Halteregistern), 03 liest Halteregister (die klassischen les- und schreibbaren Zahlenwerte), 01 liest Coils (einzelne schaltbare Ausgänge, also an/aus), 06 schreibt einen einzelnen Wert und 16 schreibt mehrere Werte auf einmal. Mit diesen wenigen Codes deckt man fast jede Aufgabe ab.
CRC-Prüfsumme und die Pause dazwischen
Damit auf einer langen, störanfälligen Leitung kein Wert verfälscht ankommt, hängt jeder Sender eine Prüfsumme an sein Telegramm, den CRC-16 (eine 16 Bit lange Kontrollzahl). Der Empfänger rechnet dieselbe Zahl aus seinen empfangenen Daten nach. Stimmen beide überein, ist alles korrekt angekommen. Andernfalls wird die Antwort verworfen.
Ein Telegramm besteht also immer aus vier Teilen: Adresse, Funktionscode, den eigentlichen Daten und dem CRC am Schluss. Woran erkennt ein Gerät, wo ein Telegramm endet? An der Stille. Eine winzige Sendepause (nur ein Bruchteil einer Millisekunde, technisch: die Dauer von mindestens 3,5 Zeichenlängen, wobei ein Zeichen eine einzelne übertragene Dateneinheit ist) trennt zwei Telegramme voneinander. Danach weiss jeder: Jetzt beginnt etwas Neues.
