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 |