Modbus Protokoll in der Gebäudeautomation

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
Links zum Thema: