4 Description du protocole Modbus
4.7 Format de transmission (entier, flottant, double et texte)
Entier
Exemple
Valeurs
flottantes
Exemple
24
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.
Consultation de la valeur entière à l'adresse 0x1017 lorsque le contenu à cette
adresse est "4" (valeur mot 0x0004).
Demande : 01031017000130CE (CRC16 = CE30)
Réponse : 0103020004B987 (CRC16 = 87B9)
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 754
SEEEEEEE
Octet 1
S - Bit de signe
E - Exposant (complément à 2)
M - Mantisse normalisée sur 23 bits
Format des valeurs flottantes avec le protocole Modbus
Adresse Modbus x
MMMMMMMM
Octet 3
Consultation de la valeur flottante à l'adresse 0x0035 lorsque le contenu
à cette adresse est 550.0 (0x44098000 au format IEEE-754).
Demande : 140300350002D6C0 (CRC16 = C0D6)
Réponse : 140304800044096434 (CRC16 = 3464)
Après le transfert depuis l'appareil, les octets de la valeur flottante doivent être
échangés.
De nombreux compilateurs (par ex. Microsoft Visual C++) manipulent les
valeurs flottantes dans l'ordre suivant :
Valeur flottante
Adresse x
MMMMMMMM
4
Octet
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'interface.
EMMMMMMM
MMMMMMMM
Octet 2
MMMMMMMM
Octet 4
Adresse x+1
MMMMMMMM
3
Octet
MMMMMMMM
Octet 3
Adresse Modbus x+1
SEEEEEEE
Octet 1
Adresse x+2
EMMMMMMM
2
Octet
Octet 4
EMMMMMMM
Octet 2
Adresse x+3
SEEEEEEE
1
Octet