3 Description du protocole Modbus
3.8
Somme de contrôle (CRC16)
La somme de contrôle (CRC16) permet de détecter les erreurs de transmission. Si une erreur est dé-
tectée lors de l'analyse, l'appareil correspondant ne répond pas.
Mode de calcul
CRC = 0xFFFF
while (tous les octets du message ne sont pas traités) ;
REMARQUE !
L'octet de poids faible de la somme de contrôle est transmis en premier !Exemple : la somme de contrôle
CRC16 0x1234 est transmise et affichée dans l'ordre 0x3412.
Exemple
Ecrire la valeur binaire 1 sur l'entrée numérique externe 1 (adresse de mot 0x37A1) :
Ordre : (CRC16 = 9C17) :
01
Esclave
Réponse :
01
Esclave
22
CRC = CRC XOR ByteOfMessage
For (1 à 8)
CRC = SHR(CRC)
if (drapeau report à droite = 1)
then
CRC = CRC XOR 0xA0001
06
Fonction
06
Fonction
37 A1
00 01
Adresse du mot
Valeur
37 A1
00 01
Adresse du mot
Valeur
else
17 9C
CRC
17 9C
CRC