2
Description du protocole
2.7
Format de transmission (valeurs entières, flottantes et texte)
Valeurs entières
Avec le protocole Modbus, les valeurs entières sont transmises sous la forme suivante :
d'abord l'octet de poids fort, ensuite l'octet de poids faible.
Exemple
Consultation de la valeur entière à l'adresse 0x0021 lorsque le contenu à cette adresse
est "4" (valeur du mot 0x0004).
Demande : 01 03 0021 0001 (+ 2 octets CRC16)
Réponse : 01 03 02 0004 (+ 2 octets CRC16)
Valeurs flottantes
Le protocole Modbus traite les valeurs flottantes conformément au format standard IEEE
754 (32 bits) ; toutefois il y a une différence : les octets 1 et 2 sont échangés avec les
octets 3 et 4.
Format des valeurs flottantes simples (32 bits) suivant le standard IEEE 754
SEEEEEEE
octet 1
S - Bit de signe
E - Exposant (complément à 2)
M - Mantisse normalisée sur 23 bits
Format flottant Modbus
Adresse Modbus x
MMMMMMMM
octet 3
Exemple
C onsultation de la valeur flottante à l'adresse 0x0035 lorsque le contenu à cette adresse
est 550.0 (0x44098000 au format IEEE 754).
Demande : 01 03 0035 0002 (+ 2 octets CRC16)
Réponse : 01 03 04 8000 4409 (+ 2 octets CRC16)
A près le transfert depuis l'appareil, il faut échanger les octets de cette valeur.
D e nombreux compilateurs (par ex. Microsoft Visual C++) manipulent les valeurs
flottantes dans l'ordre suivant :
Valeur flottante
Adresse x
MMMMMMMM
octet 4
D éterminez le mode de stockage des valeurs flottantes dans votre application. Le cas
échéant, après la consultation de l'enregistreur sans papier, il faudra échanger les octets
dans votre programme d'in t erface.
EMMMMMMM
MMMMMMMM
octet 2
MMMMMMMM
octet 4
Adresse x+1
MMMMMMMM
octet 3
MMMMMMMM
octet 3
Adresse Modbus x+1
SEEEEEEE
EMMMMMMM
octet 1
Adresse x+2
EMMMMMMM
octet 2
octet 4
octet 2
Adresse x+3
SEEEEEEE
octet 1
nVent.com | 37