Question

Pour transmettre une valeur flottante 32 bits IEEE 754 en Modbus (registres 16 bits), on utilise typiquement 2 registres consécutifs, avec le byte order spécifié dans la documentation du slave.

ModbusApprendreData encodingDifficile
Réponse

Vrai

Modbus est nativement 16 bits, donc un float IEEE 754 ou un long 32 bits occupe deux registres consécutifs. Exemple : un compteur d'énergie qui affiche 12345.67 kWh code la valeur en IEEE 754 sur 0x4640E5C2 (4 octets), répartie en Big Endian sur le registre N (0x4640) et le registre N+1 (0xE5C2). Le client lit l'ensemble avec function 0x03 et count = 2, puis reconstitue le float côté applicatif. Les bibliothèques modernes (pymodbus, libmodbus) gèrent automatiquement la conversion à condition que le byte order soit précisé.

Conseil de préparation

Réflexe pymodbus : utilisez BinaryPayloadDecoder avec les paramètres byteorder et wordorder explicites. Ne vous fiez jamais à la valeur par défaut.

Liste d'attente

Banque Modbus en préparation

La banque complète Modbus n'est pas encore disponible. Mets ton email pour être prévenu du lancement et avoir un discount early-bird.

Rejoindre la waitlist
Vous voulez plus ?

Voir les 9 autres questions Modbus

Questions liées

Question issue de notre banque indépendante d'entraînement. Modbus est une marque déposée de Modbus Organization, non affiliée à CertifBus.

Dernière mise à jour : 19 mai 2026

Rejoindre la waitlist
Waitlist Modbus