EngyVolt RV12
Übertragungszeit
der Anfrage
Anfrage
Start der
Anfrage
å 12
Datenübertragung Modbus
11.4.5
Methoden zur Fehlerüberprüfung
Serielle Standard-Modbus-Netzwerke verwenden 2 Prozesse zur Fehlerprüfung.
Die Verwendung eines Fehlerprüfungsbyte, wie oben beschrieben, dient zur Integritätsprüfung der
Nachricht. Die Paritätsprüfung (gleich oder ungleich) kann für jedes Byte der Nachricht angewendet
werden.
Prüfung der Parität
Bei aktivierter Paritätsprüfung, entweder durch Auswahl von gerader oder ungerader Parität, wird
die Menge aller 1. im Dateninhalt aller übermittelten Daten gezählt. Das Paritätsbit wird dann als
„0" oder „1" gesetzt, um als Ergebnis ein gerades oder ungerades Resultat an 1. zu erzeugen.
Paritätsüberprüfung kann nur dann einen Fehler erkennen, wenn eine ungerade Anzahl an Bit in
der Übertragung eines übermittelten Zeichens aufgenommen oder abgegeben wird. Falls beispiels-
weise zwei 1. beschädigt sind und als 0. wiedergegeben werden, wird die Paritätsüberprüfung den
Fehler nicht erkennen. Falls die Paritätsüberprüfung nicht spezifiziert ist, wird kein Paritätsbit über-
mittelt und somit die Paritätsprüfung nicht vorgenommen. Falls ebenso keine Paritätsprüfung spe-
zifiziert ist und 1 Stoppbit gewählt wurde, wird die übermittelte Nachricht im Ergebnis um 1 Bit
gekürzt.
CRC-Überprüfung
Die Fehlerprüfbytes der Modbus-Nachricht beinhalten einen Wert der zyklischen Redundanzprü-
fung (Cyclical Redundancy Check-CRC), der zur Prüfung des Inhaltes der gesamten Nachricht
genutzt wird. Das Fehlerprüfbyte muss, um dem Modbus-Protokoll zu entsprechen, immer vor-
handen sein. Es besteht keine Möglichkeit zur Deaktivierung. Die Fehlerprüfbyte repräsentieren
einen 16 Bit Binärwert, der durch das übertragende Gerät errechnet wird. Das empfangende Gerät
muss diesen CRC-Wert während des Empfangs der Nachricht erneut berechnen und mit dem Wert
des empfangenen Fehlerprüfbyte vergleichen. Falls die beiden Werte nicht übereinstimmen, ist die
Nachricht zu verwerfen.
Die Fehlerprüfberechnung wird gestartet, in dem zunächst ein 16 Bit Register zu allen 1. (z.B.
Hex(FFFF) je aufeinanderfolgendem 8-Bit-Byte der Nachricht, zu den Inhalten aller Register beauf-
schlagt wird.
Nur die 8 Bit der Daten einer übermittelten Nachricht werden zur Generierung des CRC
genutzt. Startbit, Stoppbit und ein ggf. verwendetes Paritätsbit sind im Fehlerprüfbyte nicht
enthalten. Während der Erzeugung des Fehlerprüfbyte wird jedes 8-Bit-Byte der Nachricht, in
der unteren Hälfte des 16-Bit Registers, mit XOR (Exlusiv Oder) beaufschlagt.
Das Register wird dann 8 mal in die Richtung des niedrigstwertigen Bit (LSB) verschoben, wobei in
die Position des höchstwertigen Bit eine „0" geschrieben wird. Nach jeder Verschiebung des LSB,
vor erneuter Verschiebung, wird das LSB extrahiert und untersucht. Falls das LSB den Wert „1"
aufweist, wird das Register mit einem vorgegebenen festen XOR-Wert beaufschlagt. Falls das LSB
den Wert „0" aufweist, wird keine XOR- Beaufschlagung vorgenommen. Dieser Vorgang wird
solange wiederholt, bis 8 Verschiebungen durchgeführt wurden. Nach der letzten Verschiebung
wird das nächste 8-Bit-Nachrichtenbyte mit XOR in der unteren Hälfte des 16-Bit-Registers beauf-
Slave
Bearbeitungszeit
Anfrage durch
Start der
Slave empfangen
Rückmeldung
Übertragungszeit
der Rückmeldung
Rückmeldung
Rückmeldung durch
Master empfangen
Anhang
A0016524-DE
49