podrzędnego
(slave'a)
Adres
urządzenia
podrzędnego
(slave'a)
Kod funkcji
Adres startowy
Zapisane dane
Kod CRC
Address Function code Start address high bit Start address low 8
bits Data high 8 bits Data low 8 bits CRC low 8 bits CRC high 8
bits
01 06 10 00 07 CF CF 6E
4. Kod kontroli błędu (kontrola CRC)
Urządzenie nadrzędne (master) lub podrzędne (slave) mogą użyć kodu
kontrolnego do weryfikacji poprawności otrzymanych danych. Z powodu
szumów czy innych zakłóceń mogą występować błędy w przesyle danych. Kod
kontroli błędu (CRC) pozwala na weryfikację czy transmisja danych przebiegła
poprawnie i umożliwia odrzucenie błędnych danych, co zwiększa
bezpieczeństwo i wydajność systemu.
Kod CRC w komunikacji w protokole Modbus zawiera 2 bajty. Młodsze 8
bitów znajduje się z przodu, a starsze 8 bitów z tyłu, co daje 16 bitową
binarną liczbę. Kod CRC jest obliczamy przez urządzenie wysyłające (host),
znajduje się na ostatniej pozycji w ramce informacyjnej. Urządzenie
odbiorcze (slave) ponownie oblicza kod CRC i porównuje czy wyznaczony oraz
otrzymany kod są takie same. Jeśli kody różnią się między sobą oznacza to
wystąpienie błędu podczas transmisji danych.
5. Metoda obliczania kodu CRC
Metoda obliczania kodu CRC przedstawia się w następujący sposób:
1
1
2
2
2
01
06
1000
07CF
CF6E
Informacja od
urządzenia o
adresie 01
Zapis wielu
rejestrów
Adres
początkowy
rejestru do
zapisania
Liczba
spisanych
rejestrów
Kod CRC
obliczony przez
urządzenie
podrzędne