Contrôle d'erreur crc – Basler Electric DGC-2020HD Modbus Protocol Manuel d'utilisation

Page 17

Advertising
background image

9469370991 Rev A

11

DGC-2020HD Protocole Modbus

General Information

Contrôle d'erreur CRC

Ce champ contient une valeur CRC à 2 octets pour la transmission des erreurs détectées. Le dispositif
maître calcul tout d'abord la valeur CRC et l’ajoute au message de requête. Le DGC-2020HD recalcule la
valeur CRC pour la requête reçue et effectue une comparaison avec la valeur CRC de requête pour
déterminer si une erreur de transmission a eu lieu. Si tel est le cas, aucun message de réponse n'est
généré. Si aucune transmission d'erreur n'a eu lieu, l'esclave calcule une nouvelle valeur CRC pour le
message de réponse et l'ajoute au message pour transmission.

Le calcul de la valeur CRC est réalisé à l'aide de l'ensemble des octets des champs Adresse du dispositif,
Code de fonction et Bloc de données. Un registre CRC 16 bits est initialisé pour tous les « 1 ». Ensuite
chaque groupe d'octet de 8 bits du message est utilisé dans l'algorithme suivant :

Tout d'abord, la fonction OR est appliquée à l'octet de message à l'aide de l'octet de poids faible du
registre CRC. Le résultat, enregistré dans le registre CRC, est ensuite décalé à huit reprises vers la
droite. Le bit de poids fort du registre CRC est mis à zéro à chaque décalage. Au terme de chaque
décalage, le bit de poids faible est examiné. Si celui-ci vaut 1, une opération OR exclusif (XOR) est
réalisée entre le registre CRC et la valeur fixe polynomiale A001 (hex) avant le prochain décalage. Une
fois que tous les octets du message ont été traités par l'algorithme ci-dessus, le registre CRC contient la
valeur CRC du message à placer dans le champ Contrôle d'erreur.


Advertising