7
Modbus über Ethernet
7.1
Modbus/TCP
Modbus/TCP nutzt die Ethernet-Schnittstelle zur Kommunikation der Modbus-Daten.
Die Modbus-Telegramme werden dabei mit Hilfe des TCP-Protokolls der
TCP/IP-Protokollfamilie über ein Ethernet-Netzwerk (IEEE 802.3) übertragen. Das
Versatronic wird ausschließlich als Slave betrieben. Ein Master kann alle Gerätevariablen
entsprechend der Modbus-Adresstabellen dieses Slaves abfragen.
Ä Kapitel 8 „Modbus-Adresstabellen" auf Seite 43.
ð
Für Anfragen eines Masters mit Modbus/TCP an den Versatronic sind folgende Punkte zu
berücksichtigen:
n
der TCP-Port für Modbus im Versatronic ist fest auf 502 eingestellt
n
Anfragen müssen an die korrekte Ziel-IP-Adresse des Versatronic gerichtet sein
n
die UNIT-ID (Geräteadresse) für Modbus im Versatronic ist fest auf 255 eingestellt
HINWEIS!
Nur zwei Modbus-Master (Clients) können per Modbus/TCP gleichzeitig auf
diesen Slave (Server) zugreifen. Eine von einem Master geöffnete
Verbindung wird nach 30 Sekunden Inaktivität vom Slave geschlossen.
Ein geschlossener Modbus/TCP-Port (vom Slave oder von der Gegenseite)
kann erst nach 10 Sekunden wieder geöffnet werden!
Aufbau eines Modbus/TCP-Telegramms
Modbus/TCP ist ein standardisiertes Verfahren, bei dem ein Modbus-Telegramm in ein
TCP-Segment eingekapselt über Ethernet übertragen wird.
Das Modbus-Telegramm (ohne CRC) wird mit einem zusätzlichen, 6 bzw. 7 Byte großen
„MBAP-Header" (Modbus Application Header) übertragen.
Das siebte Byte entspricht dem ersten seriellen Byte, wird aber hier anders bezeichnet.
MBAP-Header
2 Byte Transaction-
ID
Identisch in Anfrage
und Antwort
Zum Vergleich: Das „normale" Modbus- Telegramm
Slave- Adresse 1 Byte
Mit diesem Protokoll kann z. B. ein geeignetes Prozessdaten-Visualisierungsprogramm
über ein firmenweites Ethernet-Netzwerk Werte des Systems lesen und schreiben. Alle
Gerätevariablen aus den Modbus-Adresstabellen können angesprochen werden.
Ä Kapitel 8 „Modbus-Adresstabellen" auf Seite 43.
ð
Beispiel: Lesen von n Worten
Lesen der IP-Adresse des Gerätes. Es handelt sich hier im Beispiel um die Adresse
10.10.1.69. Da jedes Oktett der IP-Adresse in einem Wort abgelegt wird, ist es hier
erforderlich, dass 4 Worte (8 Bytes) eingelesen werden.
Siehe auch Modbus-Beispiel in
2 Byte Protokoll- ID
2 Byte Länge
Länge von Frage
Muss für Modbus
bzw. Antwort in Byte
0 sein
ab (inkl.) „Unit-ID"
Funktions- code 1 Byte
Ä Kapitel 3.4.1 „Lesen von n Worten" auf Seite 19.
41
Modbus über Ethernet
1 Byte Unit-ID
Entspricht der
Geräteadresse und
muss bei Modbus/
TCP 0xFF bzw. 255
sein
Datenfeld x Byte
417102397 Rev. 1-10.2019
Modbus-
Telegramm
Weitere Bytes wie
unten jedoch ohne
CRC
CRC16 2 Byte