Der Modbus stellt eine einfache Möglichkeit zum Datenaustausch dar. Daher ist dieser in der Gebäudeautomation weiterhin sehr verbreitet, insbesondere bei einfachen Controlern. Er basiert auf einer Master/Slave bzw. Client/Server-Architektur und sieht nur die Übertragung von Bits und 16-Bit-Wörtern vor. Die Übertragung von z.B. Zähler mit 32-Bit kann durch Verbindung von zwei 16-Bit-Wörtern (Holding-Register) erfolgen. Gemäss Spezifikation wird bei einem Register immer zuerst das High-Byte, gefolgt vom Low-Byte übertragen.
Durch den Master wird die Übertragung gesteuert und überwacht sowie Timeouts überwacht. Slaves dürfen nur nach Anforderung des Masters Telegramme versenden.
Die gängigsten Betriebsarten sind:
- Modbus RTU (seriell RS 232 oder RS 485)
- Modbus TCP
Modbus RTU Telegrammaufbau
Geräte-Adresse | Funktion | Daten | CRC-Check |
8 Bits | 8 Bits | n * 8 Bits | 16 Bits |
Zwischen zwei Telegrammen muss eine Pause von mindestens 3,5 Zeichen eingehalten werden.
Geräte-Adresse:
Die Geräte-Adresse gibt an welches Gerät angesprochen werden soll bzw. welches Gerät antwortet. Es sind die Adressen von 1…247 gültig. Die Adresse 0 kann als Broadcast-Adresse verwendet werden.
Modbus TCP
Transaktions-Nr. | Protokoll-Kz. | Anzahl Bytes | Adresse | Funktion | Daten |
2 Byte | 2 Byte (immer 0x0) | 2 Byte (n+2) | 1 Byte | 1 Byte | n Byte |
Transaktions-Nr:
Identifikations-Nr. bei mehreren gleichzeitigen Anfragen.
Protkoll-Kz.:
Ist immer 0x0.
Adresse:
Hat hier keine Funktion und ist dementsprechend 0xFF.
Funktion:
Bestimmt den Datentyp, die Codes 1 bis 64, 73 bis 99 und 111 bis 255 sind offiziell definiert.
Verbreitete Funktionen:
Funktion | Beschreibung |
01 | Read Coils |
02 | Read Discrete Inputs |
03 | Read Holding Registers |
04 | Read Input Register |
05 | Write Single Coil |
06 | Write Single Register |
15 | Write Multiple Coils |
16 | Write Multiple Register |
22 | Mask Write Register |