Fehlerprüfung – Basler Electric DGC-2020 Benutzerhandbuch
Seite 498

B-8
DGC-2020 Modbus
™Kommunikation
9400200990 Rev X
bestehend aus ausschließlich Einsen (keine Zahl) entspricht einem Wert 'momentan nicht zutreffend' oder
'deaktiviert'.
Beispiel: Der Wert 95.800 im Geleitkomaformat entspricht einem Hexadezimalwert von 47BB1C00. Diese
Zahl wird aus zwei aufeinander folgenden Halteregistern wie folgt gelesen:
Halteregister
Wert
K (Hi Byte)
hex 1C
K (Lo Byte)
hex 00
K+1 (Hi Byte)
hex 47
K+1 (Lo Byte)
hex BB
Die gleiche Byte Anordnung wird zum Schreiben benötigt.
Datenformat Doppelte Genauigkeit (Double Precision - DP)
Das Modbus Datenformat Double Precision (DP) verwendet zwei aufeinanderfolgende Register um einen
Datenwert darzustellen. Das erste Register enthält die höchstwertigen 16 Bit der DP Daten und entspricht
dem eigentlichen Datenwert / 10.000.
Das zweite Register enthält die niederwertigsten 16 Bit der DP Daten und entspricht dem eigentlichen
Datenwert Modulo 10.000.
Datenformat Dreifache Genauigkeit (Triple Precision - DP)
Das Modbus Datenformat Triple Precision (TP) verwendet drei aufeinanderfolgende Register um einen
Datenwert darzustellen. Das erste Register enthält die höchstwertigen 16 Bit der TP Daten und entspricht
dem eigentlichen Datenwert / 100.000.000. Der Modulo dieser Operation wird durch 10.000 geteilt, um
den Wert des zweiten Registers zu erhalten und der Modulo dieser letzen Operation entspricht dem Wert
des dritten Registers (die niedrigstwertigsten 16 Bit des TP Wertes).
Fehlerprüfung
Dieses Feld enthält einen zwei Byte langen CRC-Wert für das Erkennen von Übertragungsfehlern. Das
Master-Gerät berechnet zuerst den CRC-Wert und hängt diesen dann an die Abfragenachricht an. Das
DGC-2020 berechnet den CRC-Wert für die empfangene Abfrage nochmals und nimmt einen Vergleich
mit dem Abfrage-CRC-Wert vor, um festzustellen, ob ein Übertragungsfehler vorliegt. In diesem Fall wird
keine Antwortnachricht erzeugt. Ansonsten berechnet das Slave-Gerät einen neuen CRC-Wert für die
Antwortnachricht und hängt sie an die Nachricht zur Übertragung an.
Konsultieren Sie die "Modicon Modbus Protocol Reference Guide" (Modicon Modbus Protokoll Anleitung),
PI-MBUS-300 Rev. E, Seiten 112 - 115 für eine ausgezeichnete Erläuterung und Umsetzung des CRC-16
Algorithmus.
Die CRC-Berechnung wird unter Verwendung aller Byte der Geräteadressen-, Funktionscode- und
Datenblock-Felder durchgeführt. Ein 16-bit-CRC-Register wird bei allen Einsen initialisiert. Danach wird
jedes 8 Bit Byte der Nachricht im folgenden Algorithmus verwendet:
Zuerst erfolgt die Exklusiv-ODER Berechnung des Nachrichtenbyte mit dem niederwertigen Byte des
CRC-Registers. Das Ergebnis wird im CRC-Register gespeichert und wird danach achtmal nach rechts
verschoben. Bei jedem Verschieben wird das MSB des CRC-Registers mit Nullen aufgefüllt. Nach jedem
Verschieben wird das LSB des CRC-Registers geprüft. Falls es eine 1 ist, erfolgt die Exklusiv-ODER
Berechnung des CRC-Registers mit dem festen polynomischen Wert A001 (hex) vor dem nächsten
Verschieben. Sobald alle Bytes der Nachricht den obigen Algorithmus durchlaufen haben, enthält das
CRC-Register den Nachrichten-CRC-Wert, der in das Fehlerprüffeld einzutragen ist.
Wechselbeziehungen von 'Mehrere Register voreinstellen' Daten
Daten für das Voreinstellen mehrerer Register werden nur dann gemeinsam geschrieben, nachdem
festgestellt wurde, dass die Abfrage erlaubt ist, was eine Bereichsprüfung des gesamten Datenblocks
beinhaltet. Daher müssen Daten, die vor anderen Daten geschrieben werden sollen, eine separate
Abfrage verwenden. Eine Abfrage zum Voreinstellen mehrerer Register für den kompletten
zusammenhängenden Schreibblock (40023-40055) zum Setzen des Schwellwertes für den
Batterieüberspannung Voralarm auf den 24V Bereich und Änderung der Batteriespannung von
Batteriespannung 12V auf 24V wird beispielsweise fehlschlagen. Die Änderung auf 24V würde