6.0 Annexe : Informations supplémentaires sur le MODBUS

Pour plus d'informations sur le MODBUS, veuillez consulter le site www.modbus.org.

 

6.1 Ordre boutiste et compression des octets

MODBUS transfère les données en unités de bits et de registres. L'AquaVent utilise uniquement les fonctions Modbus qui opèrent sur les registres. Un registre MODBUS contient 16 bits.

MODBUS transfère toujours les données en ordre-boutiste ou en ordre de réseau, indépendamment de l'architecture du système qui accède le MODBUS. Normalement, la pile du protocole MODBUS est compilée pour le système cible d'une manière telle que toute conversion nécessaire pour déplacer correctement les données entre la couche application et le MODBUS est réalisée. Le protocole MODBUS déplace toujours plusieurs registres sur la ligne de communication dans l'ordre croissant des registres d'adresse et, dans chaque registre, les octets sont déplacés en ordre décroissant de poids arithmétique.

Dans les types de données à virgule flottante comme IEEE-754, les octets sont ordonnés par ordre de poids, de la même manière que les entiers. Cela est vrai aussi dans la plupart des systèmes modernes (à la fois les systèmes grandboutistes et petit-boutistes).

 

Exemples : (Les trois exemples utilisent le même registre de données).
Chaîne Unicode (UTF-8) « 21º »
ou int32 0x3231C2B0, ou signe IEEE-754e*(mantisse/2^23+1)*2^(exp-127) = décimal +1.388753891*2^-27 = +1.034702279e-8
Chaîne Unicode (UTF-8)   0x32 ('2') 0x31 ('1') 0xC2B0 ('°')
Valeurs des octets   0x32 0x31 0xC2 0xB0
Poids des octets (ordre de transmission)   Élevé (premier) Faible Élevé Faible (dernier)
Adresse du registre (ordre de transmission)   n+0 (premier)) n+1 (dernier)
Valeur du registre MODBUS   0x3231 0xC2B0
Valeur du registre (décimale)   12849 49840 (ou -15696 si signé)
Binaire   0011 0010 0011 0001 1100 0010 1011 0000
Constituants IEEE-754 Signe Exposant (base 2, biaisé par +127) Mantisse (parties par 2^23, 1<=normalisé<2, moins 1)
Valeurs binaires IEEE- 754 0 011 0010 0 011 0001 1100 0010 1011 0000
Équiv. décimal IEEE-754 + 100 3261104
Non biaisé ou dénormalisé IEEE-754 + -27 1.388753891

 

obtenez un devis