2. Datenaustausch mit dem Modbus/TCP-Protokoll
Anfragen an den Modbus TCP-Server des iso685 erfolgen mittels Funktionscode FC3
(Eingangsregister auslesen). Der Server generiert eine funktionsbezogene Antwort und
sendet diese an den Modbus-Client.
Maximale Anzahl Modbus TCP-Abfragen in Byte pro Sekunde: 100/s
2.1 Exception-Code
Kann eine Anfrage aus irgendwelchen Gründen nicht beantwortet werden, sendet der
Server sogenannten Exception-Code, mit dessen Hilfe der mögliche Fehler eingegrenzt
werden kann.
Exception-Code
Beschreibung
0x01
Unzulässige Funktion
0x02
Unzulässiger Datenzugriff
0x03
Unzulässiger Datenwert
0x04
Slave-Geräte-Fehler
0x05
Annahmebestätigung (Antwort kommt zeitverzögert)
0x06
Anfrage nicht angenommen (ggf. Anfrage wiederholen)
0x08
Speicher: Parity Error
0x0A
Gateway-Pfad nicht verfügbar
0x0B
Gateway-Fehler
2.2 Modbus-Anfragen (Request)
Mit dem Funktionscode FC3 werden die gewünschten Words des Prozessabbilds aus den
Eingangsregistern des ISOMETER® iso685 ausgelesen. Dazu sind die Startadresse und die
Anzahl der auszulesenden Register in Byte anzugeben.
Beispiel:
Aus den Eingangsregistern soll der Isolationswert ausgelesen werden. 0x2000 ist die
Startadresse. Der Isolationswert ergibt sich aus den zwei auszulesenden Registern.
Byte
Name
Byte 0,1
Transaction identifier
Byte 2,3
Protocol identifier
Byte 4,5
Length field
Byte 6
Unit identifier
Byte 7
Modbus-Funktionscode
Register-Adresse aus
"Messwert
Byte 8,9
Informationen" auf Seite 6
Byte 10,11
Word-Anzahl Byte
5
Beispiel
0x0000
0x0000
0x0006
BCOM-Geräteadresse
0x03
0x2000
0x0002
2.3 Modbus-Antworten (Response)
Die Antworten bestehen aus je 2 Bytes pro Register. Die Bytefolge ist MSB zuerst.
Byte
Name
...
...
Byte 7
Modbus-Funktionscode
Byte 8
Byte count
Byte 9,10
Value Register 0
Byte 11,12
Value Register 1
2.4 Aufbau des Exception-Codes
Byte
Name
...
...
Byte 7
Modbus-Funktionscode
Byte 8
Exception code
Beispiel
...
0x03
0x04
0x1234 (fiktiver Wert)
0x2345 (fiktiver Wert)
Beispiel
...
0x83
0x01 oder 0x02
iso685_D00022_08_A_XXDE/08.2021