7.3.10.1.2
Telegrammbeschreibung
Slave-
Funktions-
Adresse
code
1 Byte
1 Byte
Die maximale Länge eines Modbus RTU Telegramms ist 256 Bytes.
7.3.10.1.3
Modbus RTU Nachrichtentelegramm
Eine Modbus Nachricht wird von einem sendenden Gerät in ein Telegramm gefügt, das einen festge-
legten Anfangs- und Endpunkt hat. Dies ermöglicht empfangenden Geräten den Beginn und das Ende
der Nachricht zu erkennen. Teilnachrichten müssen erkannt und als Ergebnis ein Fehler gesetzt wer-
den. In der Betriebsart RTU werden Nachrichtentelegramme durch ein Ruheintervall von mindestens
3,5 Zeichen voneinander getrennt.
Start
Adresse
>= 3,5
8 Bits
Zeichen
Das gesamte Nachrichtentelegramm muss als zusammenhängender Zeichenfluss übertragen werden.
Falls ein Ruheintervall von mehr als 1,5 Zeichen zwischen zwei Zeichen auftritt, wird das Nachrichten-
telegramm als unvollständig gekennzeichnet und vom Frequenzumrichter verworfen.
7.3.10.1.4
CRC Prüfung
Die Betriebsart RTU enthält ein Fehlerprüffeld, welches auf einer zyklischen Blockprüfung (CRC – Cyc-
lic Redundancy Check) der Nachrichteninhalte basiert.
Das CRC-Feld prüft den Inhalt der gesamten Nachricht. Dies wird ungeachtet einer Paritätsprüfung
durchgeführt, welche die einzelnen Zeichen der Nachricht prüft.
Das CRC-Feld enthält einen 16-Bit Wert, ausgeführt als zwei Bytes (je 8 Bit).
Das CRC-Feld wird als letztes Feld an die Nachricht angehängt. Es wird in der Reihenfolge „niederwer-
tiges Byte", „höherwertiges Byte" angefügt. Das CRC höherwertige Byte ist das letzte Byte, das mit
der Nachricht gesendet wird.
Der CRC-Wert wird vom sendenden Gerät berechnet und an die Nachricht angehängt. Das empfan-
gende Gerät berechnet während des Empfangs der Nachricht einen CRC-Wert und vergleicht den be-
rechneten Wert mit dem aktuell empfangenen Wert des CRC-Feldes. Sind die beiden Werte nicht
gleich, wird ein Fehler ausgelöst.
Die CRC Berechnung beginnt mit dem Anfangsladen eines 16-Bit Registers mit allen Einerkomplemen-
ten (0xFFFF). Danach werden nacheinander die Bytes der Nachricht mit dem aktuellen Inhalt des Re-
gisters verknüpft.
Während der Erzeugung des CRC wird jedes 8-Bit Zeichen über eine ExOR (Exclusiv-ODER)-Funktion
mit dem Registerinhalt verknüpft. Das Ergebnis wird in Richtung des niederwertigsten Bit (LSB – least
significant bit) geschoben und eine Null in das höherwertigste Bit (MSB – most significant bit) ge-
schrieben. Das niederwertigste Bit (LSB) wird herausgezogen und geprüft. Falls das LSB eine 1 ist,
wird das Register mit dem festen Wert 0xA001 EXOR-verknüpft. Falls das LSB eine 0 ist, erfolgt keine
ExOR-Verknüpfung.
Dieser Ablauf wird wiederholt, bis acht Verschiebungen durchgeführt wurden. Nach der letzten (der
achten) Verschiebung wird das nächste 8-Bit Zeichen mit dem aktuellen Registerwert EXOR-verknüpft;
der Ablauf wird achtmal wiederholt, wie oben beschrieben. Der endgültige Inhalt des Registers nach
dem Durchlauf aller Bytes der Nachricht ist der CRC-Wert.
Zuerst wird das niederwertige Byte und dann das höherwertige Byte des CRC-Wertes an die Nachricht
angehängt.
38
Agile
Modbus
Daten
0 bis 252 Bytes
MODBUS Nachricht
Funktion
Daten
8 Bits
N x 8 Bits
Modbus Agile
02/2011
CRC (zyklische
Blockprüfung)
2 Bytes
(CRC-Lo, CRC-Hi)
CRC
16 Bits
38
Protokoll
Ende
>= 3,5
Zeichen
02/2011