Ausführliche Erläuterung des Modbus RTU-Protokolls

Ausführliche Erläuterung des Modbus RTU-Protokolls

2020-08-05 17:31: 44Zongheng Intelligente Steuerung 5

MODBUS_RTU-Kommunikationsprotokoll

MODBUS_RTU-Kommunikationsprotokoll (bei dieser Vereinbarung wird die Master-Slave-Frage-Antwort-Methode verwendet)

Zähler/Übertragungsgeräte der Serie PDM: Die Zähler/Übertrager der PDM-Serie haben ein brandneues Design, das das Konzept der traditionellen Stromzähler revolutioniert; sie verfügen über Multifunktion, hohe Präzision, digital, programmierbar, kompakte Struktur und Multi-Screen-Display. Mit seinen Eigenschaften kann er die künftige Nachfrage nach Stromzählern in der Energiewirtschaft erfüllen.

MODBUS-Kommunikationsprotokoll: Das ModBus-Kommunikationsprotokoll ermöglicht die Kommunikation der Geräte/Messumformer der Serie PDM mit speicherprogrammierbaren Steuerungen (SPS), RTU, SCADA-Systemen, DCS oder Drittanbietern von vielen international bekannten Marken wie Schneider, Siemens, AB, GE usw. Informationsaustausch und Datenübertragung zwischen ModBus-kompatiblen Überwachungssystemen.

Die Messgeräte/Übertrager der PDM-Serie können durch einfaches Hinzufügen einer computer- (oder industriecomputer-) basierten Überwachungssoftware (wie Kingview, in ouch, FIX, synall, etc.) zu einem Stromüberwachungssystem zusammengefügt werden.

Umfassende Systemintegration: Die Geräte/Messumformer der PDM-Serie verfügen über eine standardmäßige RS-485/422-Kommunikationsschnittstelle und ein ModBus-Kommunikationsprotokoll. Dieses Kommunikationsprotokoll ist als Standard für die Systemintegration in der Energiewirtschaft und der industriellen Steuerungsindustrie im In- und Ausland weit verbreitet.

Art und Format der Kommunikationsdaten: Die Informationsübertragung erfolgt asynchron und in Bytes.

Die Kommunikationsinformationen, die zwischen der Master-Station und der Slave-Station übertragen werden, sind im 11-Bit-Wortformat:

Wortformat (serielle Daten) 11-Bit-Binär

Startbit 1

Datenbits 8 Bits

Paritätsbit 1 Bit: Mit Paritätsbit/Keine: Kein Paritätsbit

Stoppbit 1 Bit: mit Paritätsbit/2 Bits: ohne Paritätsbit

● Format der Kommunikationsdaten (Informationsrahmen)

Datenformat: Adresscode Funktionscode Datenbereich Fehlerprüfung

Datenlänge: 1 Byte 1 Byte N Bytes 16-Bit-CRC-Code (redundanter Zyklus)

Code)

Hinweis

1. Ein Byte besteht aus 8-Bit-Binärzahlen (d. h. 8 Bits).

2. ModBus ist ein eingetragenes Warenzeichen der Modicon Company.

3. Der Begriff "Slave-Maschine" bezieht sich in diesem Dokument auf PDM.

1. Prozess der Übertragung von Informationen:

Wenn der Kommunikationsbefehl vom sendenden Gerät (Host) an das empfangende Gerät (Slave) gesendet wird, empfängt der Slave, der den entsprechenden Adresscode erfüllt, den Kommunikationsbefehl und liest die Informationen entsprechend dem Funktionscode und den damit verbundenen Anforderungen. Wenn die CRC-Prüfung korrekt ist, wird die entsprechende Aufgabe ausgeführt, und die Ausführungsergebnisse (Daten) werden an den Host zurückgegeben. Die zurückgegebenen Informationen umfassen Adresscode, Funktionscode, Daten nach der Ausführung und CRC-Prüfcode. Wenn die CRC-Prüfung fehlschlägt, werden keine Informationen zurückgegeben.

1.1 Adresscode:

Der Adresscode ist das erste Byte (8 Bits) eines jeden Kommunikationsinformationsrahmens, von 0 bis 255. Dieses Byte zeigt an, dass der Slave mit einer vom Benutzer eingestellten Adresse die vom Master gesendeten Informationen erhalten wird. Jeder Slave muss einen eindeutigen Adresscode haben, und nur der Slave, der mit dem Adresscode übereinstimmt, kann auf die Rückmeldung antworten. Wenn der Slave Informationen zurücksendet, beginnen die zurückgesendeten Daten mit ihrem jeweiligen Adresscode. Der vom Master gesendete Adresscode gibt die Slave-Adresse an, an die gesendet werden soll, und der vom Slave zurückgesendete Adresscode gibt die zurückgesendete Slave-Adresse an. Der entsprechende Adresscode gibt an, woher die Informationen stammen.

1.2 Funktionscode:

Es ist das zweite Byte, das in jedem Kommunikationsinformationsrahmen übertragen wird. Das ModBus-Kommunikationsprotokoll kann Funktionscodes von 1 bis 127 definieren. Die Geräte/Sender der Serie PDM verwenden nur einen Teil der Funktionscodes. Der Funktionscode wird als Host-Anforderung gesendet und dient dazu, dem Slave mitzuteilen, welche Aktion er durchführen soll. Als Slave-Antwort ist der vom Slave zurückgesendete Funktionscode derselbe wie der vom Host gesendete Funktionscode und zeigt an, dass der Slave auf den Host geantwortet und die entsprechenden Operationen ausgeführt hat.

Tabelle 8.1 Einige Funktionscodes des MODBUS

Funktionscode-Definitionsvorgang (binär)

02 Schaltereingang lesen Lesen eines oder mehrerer Schalterstatus-Eingangsdaten

01 Schaltausgang lesen Lesen eines oder mehrerer Schaltausgangsstatusdaten

03 Registerdaten lesen Daten aus einem oder mehreren Registern lesen

05 Schreiben des Schaltausgangs zur Steuerung des "Schließen/Öffnen"-Ausgangs eines Relais

06 Schreiben eines einzelnen Registers Schreiben eines Satzes von Binärdaten in ein einzelnes Register

10 Schreiben mehrerer Register Schreiben mehrerer Sätze von Binärdaten in mehrere Register

1.3 Datenbereich:

Der Datenbereich enthält die Informationen, die vom Slave zurückgesendet werden müssen, oder die auszuführende Aktion. Bei diesen Informationen kann es sich um Daten (z. B. Schaltereingang/-ausgang, Analogeingang/-ausgang, Register usw.), Referenzadressen usw. handeln. Wenn der Host dem Slave beispielsweise mit dem Funktionscode 03 mitteilt, dass er den Wert des Registers (einschließlich der Anfangsadresse des zu lesenden Registers und der Länge des gelesenen Registers) zurückgeben soll, dann enthalten die zurückgegebenen Daten die Datenlänge und den Dateninhalt des Registers. Für verschiedene Slave-Geräte sind die Adress- und Dateninformationen unterschiedlich (eine Tabelle mit Kommunikationsinformationen sollte angegeben werden).

Die Messgeräte/Sender der Serie PDM verwenden das Modbus-Kommunikationsprotokoll. Der Host (PLC, RTU, PC, DCS, etc.) kann das Datenregister mit Hilfe des Kommunikationsbefehls (Funktionscode 03) lesen (siehe Anhang für die Dateninformationstabelle). Das Datenregister des Messgeräts/Messumformers der Serie PDM speichert Hunderte von elektrischen Größen (wie z.B. Strom, Spannung, Leistung, 0~31. harmonische Komponenten, usw.), und sie sind alle 16-Bit (2 Bytes) Binärdaten. Die maximale Anzahl von Registern, die auf einmal gelesen werden können (d.h. die Anzahl der verschiedenen Leistungsarten), beträgt 50.

Das Befehlsformat der PDM-Antwort ist Slave-Adresse, Funktionscode, Datenbereich und CRC-Code. Die Daten im Datenbereich sind alle zwei Bytes, wobei das höherwertige Bit zuerst kommt (außer bei elektrischer Energie).

Anmerkung: 1. die Werkzeuge PDM-820AC/ACM/ACR, PDM-800AC/ACM

Es gibt die Funktionscodes "03", "06" und "10";

2. Wenn der PDM das MODBUS-ASCII-Kommunikationsprotokoll verwendet, ist sein Kommunikationsdatenformat: 7

Datenbits, 1 Stoppbit, gerade Parität.

2. Einführung in die MODBUS-Funktionscodes

2.1 Funktionscode "02": Lesen eines oder mehrerer Schalterstatus-Eingänge

Beispiel: Der Host möchte den Eingangsstatus der Schalter DI1-DI4 mit der Adresse 01 lesen.

Die Adresse und die Daten des Slave (PDM) Datenregisters sind:

Startbitadresse DI-Registerdaten (hexadezimal) Bemerkungen 0000 0B

The status of DI1/DI2/DI4 is “1”, and the status of DI3 is “0”

The message format sent by the host:

Number of bytes sent by the host Information sent Remarks

Slave address 1 01 is sent to the slave with address 01

Function code 1 02 reads switch input status

Starting BIT bit 2 0000 The starting BIT bit address is 0000

Read data length 2 0004 Read 4-way switch input status bits

CRC code 2 79C9 The CRC code is calculated by the host

The message format returned by the slave (PDM) response:

Slave response number of bytes returned information remarks

Slave address 1 01 comes from slave 01

Function code 1 02 reads switch input status

Data length 1 01 1 byte (8 BIT bits)

DI status data 1 0B DI register content

CRC code 2 E04F The CRC code is calculated by the slave machine

2.2 Function code “01”: Read the status of one or more switch outputs

For example: the host wants to read the output status of switch DO1 and DO2 with address 01.

Die Adresse und die Daten des Slave (PDM) Datenregisters sind:

Starting bit address DO register data (hexadecimal) Remarks

0000 02 DO2 output status is “1”, DO1 output status

Status is “0”

The message format sent by the host:

Number of bytes sent by the host Information sent Remarks

Slave address 1 01 is sent to the slave with address 01

Function code 1 01 reads switch output status

Starting BIT bit 2 0000 The starting BIT bit address is 0000

Read data length 2 0002 Read 2 relay output status bits

CRC code 2 BDCB The CRC code is calculated by the host

The message format returned by the slave (PDM) response:

Slave response number of bytes returned information remarks

Slave address 1 01 comes from slave 01

Function code 1 01 reads switch output status

Data length 1 01 1 byte (8 BIT bits)

DO status data 1 02 DO register content

CRC code 2 D049 The CRC code is calculated by the slave machine

2.3 Function code “03”: Read multiple register inputs

For example: the host wants to read the number of 3 slave registers with address 01 and starting address 0116.

according to.

Die Adresse und die Daten des Slave (PDM) Datenregisters sind:

Register address Register data (hexadecimal) Corresponding PDM power

0116 1784UA

0117 1780UB

0118 178A UC

The message format sent by the host:

Number of bytes sent by the host Information sent Remarks

Slave address 1 01 is sent to the slave with address 01

Function code 1 03 Read register

Starting address 2 0116 Starting address is 0116

Data length 3 0003 Read 3 registers (6 bytes in total)

CRC code 2 E5F3 The CRC code is calculated by the host

The message format returned by the slave (PDM) response:

Slave response number of bytes returned information remarks

Slave address 1 01 comes from slave 01

Function code 1 03 Read register

Read word 1 06 3 registers total 6 bytes

Register data 1 2 1784 The contents of the memory at address 0116

Register data 2 2 1780 The contents of the memory at address 0117

Register data 3 2 178A The content of the memory at address 0118

CRC code 2 5847 The CRC code is calculated by the slave machine

2.4 Function code “05”: write 1 switch output (“remote control”)

Example 1: Switch output point DO1, its current status is “minute”, the host wants to control this relay

The device “joins”.

The control commands are:

“FF00” means the control relay is “closed”;

“0000” is the control relay “minute”;

The message format sent by the host:

Number of bytes sent by the host Information sent Remarks

Slave address 1 01 is sent to the slave with address 01

Function code 1 05 writes switch output status

Output BIT bit 2 0000 corresponds to the output relay BIT bit (DO1)

Control command 2 FF00 controls the relay output to be “on” status bit

CRC code 2 8C3A The CRC code is calculated by the host

The message format returned by the slave (PDM) response:

The format and data content of the message sent by the host are exactly the same.

Example 2: Switch output point DO2, its current status is “closed”, and the host wants to control this relay

The device “points”.

Message format sent by the host

Number of bytes sent by the host Information sent Remarks

Slave address 1 01 is sent to the slave with address 01

Function code 1 05 writes switch output status

Output BIT bit 2 0001 corresponds to the output relay BIT bit (DO2)

Control command 2 0000 controls the relay output to be “on” status bit

CRC code 2 9C0A The CRC code is calculated by the host

The message format returned by the slave (PDM) response:

CRC code calculated by the host

The message format returned by the slave (PDM) response:

The format and data content of the message sent by the host are exactly the same.

2.6 Function code “10”: Write multiple registers

The host uses this function code to save multiple data to the data memory of the PDM table.

The register in the Modbus communication protocol refers to 16 bits (ie 2 bytes), and the high-order bit is first.

In this way, the memory of PDM is two bytes.Since the Modbus communication protocol allows up to

Save 60 registers, so PDM allows up to 60 data registers to be saved at one time.

For example: the host wants to save 0064, 0010 into the slave registers with addresses 002C, 002D

Go (slave address code is 01). After the communication data is saved, the PDM with address 002C/002D

The information stored in the table is:

Address originally stored data (hexadecimal)

002C 04B0

002D 1388

The message format sent by the host:

CRC code calculated by the host

The message format returned by the slave (PDM) response:

Slave response number of bytes number of bytes example

Slave address 1 01 comes from slave 01

Function code 1 10 Write multiple registers

Starting address 2 002C The starting address is 002C

Save data word length 2 0002 Save 2 word length data

CRC code 2 8001 CRC code calculated by the slave machine

3. Error check code (CRC check):

4. Processing of communication error information and data:

When the PDM table detects an error other than the CRC code error, it must send a message back to the host

information, the highest position of the function code is 1, that is, the function code returned from the slave to the host is sent by the host.

Add 128 based on the function code sent.The following codes indicate that an unexpected error occurred

born.

If the information received by PDM from the host has CRC errors, it will be ignored by the PDM table.

The format of the error code returned by PDM is as follows (except CRC code):

Address code: 1 byte

Function code: 1 byte (the highest bit is 1)

Error code: 1 byte

CRC code: 2 bytes.

The PDM response returns the following error code:

81. Illegal function code. The function code received is not supported by the PDM table.

82. Illegal data location.The specified data location exceeds the scope of the PDM table

around.

83. Illegal data value.The data value received from the host exceeds the PDM phase

The data range of the corresponding address.

DTU/Edge-Gateway/IoT-Plattform/Gateway-Modul

Tags: Modbus RTU protocolRTU serial port format

  • Detailed explanation of Modbus RTU protocol [2020-08-05]

  • Vorheriger Artikel : Die Entwicklungsgeschichte der Kommunikation
  • Nächster Artikel : What are link addresses and running addresses in embedded systems

Kontakt