Modbus TCP und Modbus UDP ist das gleiche Nachrichtenformat, der Unterschied zwischen ihnen ist in der Tat der Unterschied zwischen TCP und UDP, so dass die folgenden Modbus TCP-Protokoll Analyse, Modbus TCP und Modbus Rtu (Modbus ASCII) Unterschied zwischen der folgenden Abbildung:

Wie man aus der obigen Abbildung sehen kann, entfernt Modbus TCP die Überprüfung auf der Basis der Modbus-serielichen Kommunikation.(Da TCP selbst eine Prüfsumme enthält) und Geräteadresse (ModbusTCP schwächt die Geräteadresse und ersetzt sie durch eine IP-Adresse) sowie einen MBAP-Header (7 Bytes), die folgende Analyse für MBAP beschreibt:
| 域 | Länge | Beschreibung | Client | Server |
|---|---|---|---|---|
| Transaktionsidentifier | 2 Bytes | Identifikation der Modbus-Anforderung / Antwort-Transaktion | Clientstart | Replikationsantwort |
| Protokoll-Identifier | 2 Byte | 0 = Modbus-Protokoll | Clientstart | Replikationsantwort |
| Länge | 2 Byte | Gesamtzahl der Bytes nach Länge | Clientstart | Serverstart |
| Einheitskennzeichen | 1 Byte | Slave-Identifikation für eine serielle Verbindung oder einen anderen Bus | Clientstart | Replikationsantwort |
Die folgende Analyse für die spezifische Nachricht zeigt das Nachrichtenformat des Modbus-Protokolls über die Ethernet-Verbindung wie folgt:
| Transaktionsbezeichner | Protokollbezeichner | Länge | Einheitbezeichner | Funktioncode | Daten |
|---|---|---|---|---|---|
| 2 bytes | 2 bytes | 2 bytes | 1 byte | 1 byte | N bytes |
Nach den oben genannten theoretischen Grundlagen werden die folgenden Funktionscodes detailliert analysiert:
Ausgangsspule lesen
Das Format der Nachricht ist wie folgt:

Senden Sie die Nachricht im folgenden Format:
Hier ist es wichtig zu beachten, dass die Anfangsadresse im Protokoll bezieht sich auf den Index, die folgende Adresse bezieht sich auf die spezifische Adresse, für einen beliebigen Speicherbereich, der Index beginnt mit 0, aber die entsprechende spezifische Adresse, die mit dem Speicherbereich in Verbindung steht, wie Ausgangsspulen, 0 entspricht 00001; Eingangsspulen, 0 entspricht 10001; Eingangsregister, 0 entspricht 30001; Haltenregister, 0 entspricht 40001.
Die Rückmeldung im folgenden Format:

Rückgabe Nachricht Bedeutung: Rückgabe Server 1 Ausgabe von Spule00020 - 00046, insgesamt 27 Spule Status Wert, Rückgabe Anzahl von 4 Bytes, bzw. CD6B B2 05.
CD = 1100 1101 entspricht 00020 - 00027
6B = 0110 1011 entspricht 00028 - 00035
B2 = 1011 0010 entspricht 00036 - 00043
05 = 0000 0101 entspricht 00044 - 00046
Lese-Eingangsspule
Senden Sie die Nachricht im folgenden Format:

Senden Sie die Bedeutung der Nachricht: Lesen Sie den Server Nr. 1 Slave Station Eingabe-Spule, die Startadresse ist 0xC4 = 196, die entsprechende Adresse ist 10197, die Anzahl der Spule ist 0x1D = 29, das heißt, Lesen Sie die Nr. 1 Slave Station Eingabe-Spule, die Adresse von 10197 - 10225, insgesamt 29 Spule Zustandwert.
Die Rückmeldung im folgenden Format:

Rückgabe Nachricht Bedeutung: Rückgabe Server 1 Slave Station Eingabe Spule 10197 - 10225, insgesamt 29 Spule Zustand Wert, Rückgabe Zahl von 4 Bytes, bzw. CD6B B205.
CD = 1100 1101 entspricht 10197 - 10204
6B = 0110 1011 entspricht 10205 - 10212
B2 = 1011 0010 Entsprechend 10213 - 10220
05 = 0000 0101 Entsprechend 10221 - 10225
Lese-Halt - Register
Senden Sie eine Nachricht im folgenden Format:

Senden von Nachrichten Bedeutungen: Lesen des Servers Nr. 1 Slave Station halten Register, die Startadresse ist 0x6B = 107, die entsprechende Adresse ist 40108, die Anzahl der Registers ist 0x02 = 2, das heißt Lesen Nr. 1 Slave Station halten Register, die Adresse von 40108 - 40109, insgesamt 2 Registers Wert.
Die Rückmeldung im folgenden Format:

Rückgabe Nachricht Bedeutung: Rückgabe Server 1 Slave Station hält Register 40108 - 40109, insgesamt 2 Registers Wert, Rückgabe Bytes Anzahl von 4, bzw. 02 2B 01 06, 40108 entspricht dem Wert 0x022B, 40109 entspricht dem Wert 0x0106.
Eingangsregister lesen.
Das Format der Nachricht ist wie folgt:

Senden Sie die Nachricht im folgenden Format:
Die Rückmeldung im folgenden Format:

Rückgabe Nachricht Format wie folgt:
Einzige Vorbereitung
Senden Sie die Nachricht im folgenden Format:

Senden Sie die Bedeutung der Nachricht: vorinstellter Server Nr. 1 Slave Station einzelne Spule Wert, Spule-Adresse ist 0x00AC = 172, die entsprechende Adresse ist 00173, Ausgeschaltet-Flag 0xFF00 bedeutet Set, 0x000 bedeutet Reset, das heißt Set 1 Slave Station Ausgabe Spule 00173.
Die Rückmeldung im folgenden Format:

Zurückgabe der Nachricht Bedeutung: Vorinstellte Einzel-Ausgangspulen Original-Meldung zurückgegeben.
Ein einziges Register vorlegen
Das Format der Nachricht ist wie folgt:

Senden Sie die Nachricht im folgenden Format:
Die Rückmeldung im folgenden Format:

Zurückgabe der Nachricht Bedeutung: Vorgefertigte Einheit hält Register die ursprüngliche Nachricht zurück.
Vorbereitung von mehreren Runden
Senden Sie die Nachricht im folgenden Format:

Senden Sie die Bedeutung der Nachricht: vorinstellte Server 1 Slave Station mehrere Spule, Spule Adresse 0x0013 = 19, entsprechende Adresse ist 00020, Spule Zahl 0x0A = 10, Schreibwert ist 0xCD00, dh vorinstellte 1 Slave Station Spule 00020 - 00027 = 0xCD = 1100 1101,00028 - 00029 = 0x00 = 00000000
Die Rückmeldung im folgenden Format:

Zurückgabe Nachricht Bedeutung: Vorinstellte Multi-Ausgangsspule Rückgabe Nachricht ist auf der Grundlage der ursprünglichen Nachricht entfernt Bytes Anzahl und spezifische Bytes zurückgegeben.
Vorbereitung von mehreren Registern
Senden Sie die Nachricht im folgenden Format:

Senden von Nachrichten Bedeutungen: vorinstellte Server 1 Slave-Station mehrere Registerwerte, Register-Adresse ist 0x0087 = 135, Start-Adresse ist 40136, Register-Zahl ist 0x02 = 2, End-Adresse ist 40137, Schreibwerte sind 0xCD00 und 0x0A10, d. h. vorinstellte 1 Slave-Station Register 40136 = 0x0105, 40137 = 0x0A10.
Die Rückmeldung im folgenden Format:

Rückgabe Nachricht Bedeutung: Vorgefertigte Multiple-Hold - Register Rückgabe Nachricht wird zurückgegeben, nachdem die Anzahl der Bytes und spezifische Bytes auf der Grundlage der ursprünglichen Nachricht entfernt.
Antwort veröffentlichen