Format de données à double précision (dp), Format de données à triple précision (tp), Contrôle d'erreur – Basler Electric DGC-2020 Manuel d'utilisation
Page 500

de « 1.0 » et les 23 octets suivants donnent une valeur fractionnelle. Tableau B-2 affiche le format de
virgule flottante.
Tableau B-2. Format des données à virgule flottante
Signal
Exposant + 127
Mantisse
1 octet
8 octets
23 octets
Le format de virgule flottante permet de traiter des données allant de 8.43X10-37 à 3.38X1038. Une
valeur de virgule flottante pour tous les « zéro » et la valeurs zéro. Une valeur de virgule flottante de tous
les « un » (pas un nombre) signifie une valeur courante qui ne s'applique pas où est désactivé.
Exemple : La valeur 95.800 représenté dans un format avec virgule flottante et sous forme hexadécimal
est 47BB1C00. Cette valeur est lue par les deux registres propriétaires consécutifs de la façon suivante :
Registre propriétaire
Valeur
K
(Octet Haut/Hi Byte) hex 1C
K
(Octet Bas/Lo Byte) hex 00
K+1 (Octet Haut/Hi Byte) hex 47
K+1 (Octet Bas/Lo Byte) hex BB
Pour pouvoir écrire, il est nécessaire de respecter le même alignement d'octets.
Format de données à double précision (DP)
Le format de données à double précision (DP) Modbus utilise deux registres propriétaires consécutifs
pour représenter une valeur de données. Le premier registre contient le haut niveau des 16 octets des
données à double précision, et correspond à la valeur actuelle / 10,000.
Le premier registre contient le bas niveau des 16 octets des données à double précision, et correspond à
la valeur actuelle / 10,000.
Format de données à triple précision (TP)
Le format de données à triple précision (TP) Modbus utilise trois registres propriétaires consécutifs pour
représenter une valeur de données. Le premier registre contient le haut niveau des 16 octets des
données à triple précision, et correspond à la valeur actuelle / 100,000,000. Le module de cette opération
est divisé par 10,000 pour obtenir la valeur du second registre, et le module de ces dernières opérations
est la valeur du troisième registre (le bas niveau des 16 octets de triple précision).
Contrôle d'erreur
Ce champ contient une valeur CRC à 2 octet pour la transmission des erreurs détectées. Le maître calcul
tout d'abord la valeur CRC et l’ajoute au message de requête. Le contrôleur DGC-2020 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 ce n'est pas le cas, aucun message de réponse
n'est généré. Dans le cas contraire, l'esclave calcule une nouvelle valeur CRC pour le message de
réponse et ajoute celle-ci au message devant être transmis.
Consultez le document « Modicon Modbus Protocol Reference Guide », PI-MBUS-300 Rev. E, pages
112 - 115 pour obtenir une explication sur l'implémentation de l'algorithme CRC-16.
Le calcul de la valeur CRC est réalisé en utilisant l'ensemble des octets des champs : Adresse du
dispositif, Code de fonction du Bloc de données. Un registre CRC 16 octets est initialisé pour toutes les
valeurs « 1 ». Ensuite chaque groupe d'octet 8 octets du message est utilisé dans l'algorithme suivant :
Tout d'abord, la fonction OU-exclusif est appliquée à l'octet de message avec l'octet de poids faible du
registre CRC. Le résultat, enregistré dans le registre CRC, est ensuite décalé huit fois à droite. L'octet de
poids fort du registre CRC est renseigné par une suite de zéros à chaque décalage. Après chaque
décalage, l'octet de poids faible du registre CRC est examiné : si celui-ci vaut 1, une opération OU-
exclusif est réalisée avec la valeur fixe polynomiale A001 (hexa) 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 devant être placé dans le champ du Contrôle d'erreur.
B-8
DGC-2020 - Communication Modbus™
9400270990 Rev X