- Startseite
- Glossar
- Modbus (Gebäudeautomation)
Modbus (Gebäudeautomation)
Modbus ist ein offenes Client-Server-Protokoll, mit dem Steuerungen Gerätedaten über serielle RS-485-Schnittstellen oder Ethernet lesen und schreiben können.
Modbus ist ein offenes Nachrichtenprotokoll, mit dem eine Steuerung die Daten lesen und schreiben kann, die in Feldgeräten gespeichert sind. Es läuft über einen seriellen RS-485-Bus, bekannt als Modbus RTU, oder über Ethernet, bekannt als Modbus TCP. Einige Photovoltaik-(PV-)Wechselrichter und Energiezähler bieten es an. Der Fronius GEN24 Wechselrichter zum Beispiel unterstützt beide Varianten und gibt Daten eines Fronius Smart Meter weiter.
Was ist Modbus und woher stammt es?
Modbus ist ein Nachrichtenprotokoll auf der Anwendungsschicht, angesiedelt auf Ebene 7 des OSI-Modells. Es ermöglicht die Client-Server-Kommunikation zwischen Geräten an unterschiedlichen Bussystemen und Netzwerken. Die Modbus-Spezifikation bezeichnet es seit 1979 als den serienmäßigen De-facto-Standard der Industrie. Ein Client sendet eine Anfrage, und ein Server antwortet. Das Protokoll legt das Nachrichtenformat und eine Reihe von Funktionscodes fest. Es legt jedoch nicht fest, was ein Register bedeutet, weshalb jeder Gerätehersteller dies in seiner eigenen Registerliste dokumentiert.
Ältere Dokumente verwenden die Begriffe Master und Slave. Die Richtlinie Modbus over Serial Line verwendet sie noch, während die Spezifikation des Anwendungsprotokolls Client und Server verwendet.
Wie funktioniert Modbus RTU auf einem seriellen Bus?
Modbus RTU ist die serielle Variante. Die Richtlinie zur seriellen Leitung bezeichnet die zweidrähtige RS-485-Schnittstelle als die gebräuchlichste. Sie macht den RTU-Modus für jedes Gerät verbindlich und behandelt den ASCII-Modus als optional. Der Übertragungsmodus und die Einstellungen der seriellen Schnittstelle müssen bei allen Geräten an einer Leitung gleich sein.
Ein Master startet jede Transaktion. Bis zu 247 Slave-Geräte teilen sich die Leitung, und jedes erhält eine eindeutige Adresse von 1 bis 247. Ein Slave sendet nur dann Daten, wenn der Master danach fragt. Jeder Frame endet mit einer CRC-Prüfung, sodass der Empfänger eine beschädigte Nachricht zurückweisen kann. Ein Master, der über ein Kabel einen Wechselrichter und einen Zähler abfragt, sendet eine Anfrage, wartet auf die Antwort und fragt dann das nächste Gerät ab.
Wie fügt Modbus TCP einen Ethernet-Header hinzu?
Modbus TCP überträgt dieselben Anfrage- und Antwortdaten innerhalb einer TCP/IP-Verbindung auf dem registrierten Port 502. Jede Nachricht beginnt mit einem 7-Byte-MBAP-Header. Er enthält eine Transaktionskennung, die Anfragen den Antworten zuordnet, eine Protokollkennung, die für Modbus null ist, ein Längenfeld und eine Unit-Kennung. Ein Gateway verwendet die Unit-Kennung, um ein dahinterliegendes Gerät an einer seriellen Leitung zu erreichen. Die Tabelle vergleicht die beiden Varianten.
| Merkmal | Modbus RTU | Modbus TCP |
|---|---|---|
| Übertragung | Serielle Leitung, meist zweidrähtiges RS-485 | TCP/IP über Ethernet |
| Geräteadressierung | Slave-Adresse von 1 bis 247 an einem Bus | IP-Adresse, plus eine Unit-Kennung hinter einem Gateway |
| Fehlerprüfung | CRC am Ende jedes Frames | Kein CRC-Feld im MBAP-Header. Der Ethernet-Frame trägt seinen eigenen CRC-32 |
| Registrierter Port | Nicht zutreffend | TCP-Port 502 |
| Maximale Nachrichtengröße | 256 Byte auf einer seriellen Leitung | 260 Byte über TCP |
Welche Daten kann ein Modbus-Gerät bereitstellen?
Die Spezifikation definiert vier Datentabellen. Discrete Inputs und Coils speichern einzelne Bits. Input Registers und Holding Registers speichern 16-Bit-Wörter. Discrete Inputs und Input Registers sind nur lesbar. Der Client kann Coils und Holding Registers beschreiben. Das Protokoll zählt Coils, Discrete Inputs und Register ab null. Coils mit den Nummern 1 bis 16 in einem Handbuch entsprechen den Adressen 0 bis 15 auf der Leitung. Die Protocol Data Unit umfasst höchstens 253 Byte, sodass eine Leseanfrage nur einen begrenzten Block von Werten zurückgibt.
| Datentabelle | Größe | Zugriff |
|---|---|---|
| Discrete Inputs | Einzelnes Bit | Nur lesbar |
| Coils | Einzelnes Bit | Lesen und Schreiben |
| Input Registers | 16-Bit-Wort | Nur lesbar |
| Holding Registers | 16-Bit-Wort | Lesen und Schreiben |
Wie nutzen PV-Wechselrichter, Zähler und Wärmepumpen Modbus?
Das Handbuch des Fronius GEN24 zeigt, wie dies bei einem Wechselrichter aussieht. Der Wechselrichter bietet Modbus TCP über Ethernet und Modbus RTU über RS-485. Er listet Registerblöcke für Wechselrichterdaten und für Zählerdaten auf. Ein angeschlossener Energiezähler kann über eine einstellbare Modbus-Geräte-ID ausgelesen werden. Ein Hausregler kann diese Werte lesen und in seiner Steuerlogik verwenden.
Ob eine Wärmepumpe Modbus unterstützt, hängt vom Modell und von seiner Steuerung ab. Fragen Sie den Hersteller vor dem Kauf nach der Registerliste des genauen Modells. Das Modbus-Protokoll legt nicht fest, welches Register welchen Wert enthält, daher ist die Registerliste im Handbuch des Herstellers die maßgebliche Referenz.
Worin unterscheiden sich Modbus, BACnet und KNX?
Modbus und BACnet sind verschiedene Protokolle. Modbus definiert Funktionscodes und Datentabellen, und die Bedeutung jedes Werts stammt vom Gerätehersteller. BACnet definiert Objekte mit Standardeigenschaften, die jedes Objekt für andere Geräte beschreiben. Der Eintrag BACnet erläutert das Objektmodell.
| Frage | Modbus | BACnet |
|---|---|---|
| Was legt das Protokoll fest? | Nachrichtenformat, Funktionscodes und Datentabellen | Objekte mit Standardeigenschaften |
| Wer gibt einem Wert seine Bedeutung? | Der Gerätehersteller, in einer Registerliste | Der Objekttyp und seine Eigenschaften |
| Wie beschreibt sich ein Gerät selbst? | Gar nicht. Dies übernimmt die Registerliste im Handbuch | Sein Geräteobjekt listet die Objekte und Dienste auf, die es unterstützt |
KNX ist ein drittes Protokoll. Die KNX Association beschreibt es als offenen Standard und führt Einfamilienhäuser unter ihren Projektkategorien auf. Ein Gebäudeautomationssystem kann mehr als ein Protokoll kombinieren, und ein Gateway verbindet sie. Modbus ist eine Möglichkeit, Messwerte eines PV-Wechselrichters oder eines Smart Meters in ein solches System einzubinden.
Was sollten Sie prüfen, bevor Sie Modbus-Geräte anschließen?
Beginnen Sie mit den Handbüchern der Geräte und nicht mit der Protokollspezifikation. Ermitteln Sie, ob das Gerät RTU, TCP oder beides unterstützt und welche Registerliste für seine Firmware-Version gilt. Vergeben Sie jedem seriellen Gerät eine eindeutige Adresse und verwenden Sie auf dem gesamten Bus dieselben Einstellungen. Tragen Sie die Registerliste in Ihre Projektdokumentation ein, denn die Nummerierung in den Handbüchern kann von der Nummerierung auf der Leitung abweichen.
Auch die Sicherheit verdient Aufmerksamkeit. Die Modbus Organization veröffentlicht ein eigenes Modbus Security Protocol, das Transport Layer Security (TLS) mit dem herkömmlichen Modbus-Protokoll kombiniert. Zur Authentifizierung werden X.509v3-Zertifikate verwendet. Die Modbus Organization kennzeichnet das Dokument zur seriellen Leitung von 1996 als veraltet, verwenden Sie daher für jede neue RS-485-Installation die Richtlinie zur seriellen Leitung V1.02.
Häufig gestellte Fragen
- Ist Modbus dasselbe wie BACnet?
- Nein. Modbus überträgt Funktionscodes und Datentabellen, und der Gerätehersteller legt fest, was jedes Register bedeutet. BACnet definiert Objekte mit standardisierten Eigenschaften, sodass ein Gerät seine Daten im Netzwerk selbst beschreibt.
- Warum wirkt eine Registeradresse in meiner Modbus-Zuordnung um eins verschoben?
- Das Protokoll zählt Register und Coils ab null, während Handbücher oft ab eins nummerieren. Register mit den Nummern 1 bis 16 im Handbuch entsprechen auf dem Bus den Adressen 0 bis 15. Lesen Sie den Hinweis zur Nummerierung in der Dokumentation, bevor Sie eine Adresse in die Steuerung eingeben.
- Ist Modbus für ein Heimenergiesystem sicher genug?
- Nicht von sich aus. Das traditionelle Modbus-Protokoll bietet keinen TLS-Schutz. Die Modbus Organization veröffentlicht ein Modbus Security Protocol, das TLS mit dem Protokoll kombiniert und X.509v3-Zertifikate verwendet. Fragen Sie daher nach, ob Ihre Geräte es unterstützen.
- Brauche ich ein Gateway, um Modbus-RTU-Geräte an Ethernet anzuschließen?
- Ja, wenn die Steuerung nur Ethernet hat und die Geräte an einem RS-485-Bus hängen. Ein Gateway übersetzt zwischen Modbus TCP und Modbus RTU. Der Unit Identifier im TCP-Header bestimmt, welches serielle Gerät die Anfrage erhält.
- Können ein PV-Wechselrichter und ein Energiezähler eine Modbus-Verbindung gemeinsam nutzen?
- Ja, sie können sich einen RS-485-Bus teilen, wenn beide Modbus RTU unterstützen und jeweils eine eindeutige Adresse haben. Manche Wechselrichter, etwa der Fronius GEN24, lesen auch einen angeschlossenen Zähler aus und geben dessen Daten über die eigene Modbus-Schnittstelle weiter. Prüfen Sie die Handbücher auf die Registerlisten und Einstellungen.
- Unterstützt meine Wärmepumpe Modbus?
- Das hängt vom Modell und von der Steuerung ab. Fragen Sie den Hersteller nach der Registerliste des genauen Modells. Veröffentlicht der Hersteller keine Registerliste, planen Sie einen anderen Weg, um deren Daten auszulesen.
Quellen
- MODBUS Application Protocol Specification V1.1b3 · Modbus Organization · Introduction (de facto standard since 1979), 1.1 Scope (OSI level 7), data model table, 4.1 PDU and ADU sizes, coils addressed from zero
- MODBUS over Serial Line Specification and Implementation Guide V1.02 · Modbus.org · 2.1 Master/slave principle, 2.5 Transmission modes, RS-485 interface
- MODBUS Messaging on TCP/IP Implementation Guide V1.0b · Modbus Organization · 3.1.3 MBAP Header description, port 502, section on error detection
- Specifications and Implementation Guides · Modbus Organization · Specification list
- Fronius GEN24: Modbus TCP and RTU · Fronius International GmbH · Modbus TCP and RTU operating instructions
- The Language of BACnet: Objects, Properties and Services · BACnet Committee website, article by Bill Swan (Alerton Technologies) · Objects, Device object
- KNX: One standard. Every brand. Every system. · KNX Association · Home page