Transmit Character = Start Bit + Data Byte + 1 Stop Bit (10 bit total):
Übertragener Charakter = Startbit + Datenbyte + 1 Stoppbit (10 Bit insgesamt)
Start
Der „Master" ist durch den Anwender so konfiguriert das ein voreingestelltes „Timeout / Pausenzeit" Intervall
abgewartet wird. Durch den „Master" wird dieser Zeitraum abgewartet, bevor die Entscheidung getroffen wird,
dass der „Slave" keine Rückmeldung sendet und die Übertragung abgebrochen werden soll. Es muss sorgfältig
vorgegangen werden, wenn sowohl die spezifizierten „Timeout / Pausenzeit" Zeiten des „Master" und des
„Slave" berücksichtigt werden. Der „Slave" kann unter Umständen die Rückmeldezeit als die Periode zwischen
dem Empfang des letzten Bit der Anfrage und der Übertragung des ersten Bit der Rückmeldung interpretieren.
Der „Master" kann unter Umständen die Rückmeldezeit als Periode zwischen der Übertragung des ersten Bit
der Anfrage bis zum Empfang des letzten Bit der Rückmeldung interpretieren. Nachfolgend wird dargestellt,
dass die Übertragungszeit einer Nachricht, welche eine Funktion der Baudrate ist, in der Berechnung des
„Timeout / Pausenzeit" berücksichtigt werden muss.
Query Transmission Time /
Übertragungszeit der Anfrage
Query / Anfrage
Start of Query / Start
der Enrage
3.5
Methoden zur Fehlerüberprüfung
Serielle Standard MODBUS Netzwerke verwenden 2 Prozesse zur Fehlerprüfung.
Die Verwendung von 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.
3.5.1
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 Charaktere 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 Charakters aufgenommen oder abgegeben wird. Falls, beispielsweise, 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 übermittelt und somit die Paritätsprüfung
nicht vorgenommen. Falls ebenso keine Paritätsprüfung spezifiziert ist und 1 Stoppbit gewählt wurde, wird der
übermittelte Charakter im Ergebnis um 1 Bit gekürzt.
3.5.2
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 vorhanden 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
aufeinander folgendem 8 Bit Byte der Nachricht, zu den Inhalten aller Register beaufschlagt wird. Hinweis: Nur
die 8 Bit der Daten eines übermittelten Charakters werden zur Generierung des CRC genutzt. Startbit, Stoppbit
und ein ggf. verwendetes Paritätsbit, sind in 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 8mal in die Richtung des am wenigsten signifikanten Bit (LSB) verschoben, wobei in
die Position des am meisten signifikanten Bit eine „0" geschrieben wird. Nach jeder Verschiebung des LSB, vor
erneuter Verschiebung wird LSB extrahiert und untersucht. Falls LSB den Wert „1" aufweist, wird das Register
1
2
3
Slave Processing Time / "Slave"
Bearbeitungszeit
Query received by slave /
Anfrage durch "Slave"
empfangen
4
5
6
Response Transmission Time /
Übertragungszeit der Rückmeldung
Response / Rückmeldung
Start of Response
/ Start der
Rückmeldung
17
7
8
Stop /
Stopp
Response received y master / Rückmeldung durch
"Master" empfangen