Lors de l'intégration d'un nouveau slave Modbus dont le byte order est inconnu, tester systématiquement les 4 combinaisons (ABCD, DCBA, BADC, CDAB) sur une valeur float connue est plus rapide que d'éplucher une documentation vendor souvent incomplète ou erronée.
Vrai
Le debug pragmatique en terrain : la documentation vendor reste souvent ambigue sur le byte order ("Big Endian" peut désigner ABCD ou BADC selon l'auteur). En pratique on connait une grandeur (par exemple une sonde de temperature affichant 22.5), on lit les deux registres concernes, on teste les quatre décodages et on retient celui qui restitue 22.5. Une fois identifié, l'ordre est cohérent pour tous les floats du même slave. Outils utiles : option -F de mbpoll, utilitaire pymodbus, ou simple script Python avec struct.unpack en variant le format.
Mnémo : ABCD = Big Endian naturel, CDAB = word swap (le plus fréquent en Modbus !), BADC = byte swap dans chaque mot, DCBA = inversion totale (Little Endian complet).
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 →Voir les 9 autres questions Modbus
Questions liées
- Un bus Modbus RTU sur RS-485 supporte jusqu'à 32 noeuds par segment (extensible avec des répétéurs), exige des résistances de terminaison (typiquement 120 ohms) aux deux extrémités du bus, ainsi que des résistances de polarisation pour fixer l'état de repos.3. Modbus RTU · RS-485 Multi-Drop
- Quel function code Modbus est utilisé pour LIRE les Holding Registers (registres 16 bits lecture/écriture) d'un slave ?4. Function codes · Lesen Coils/Register
- La function 0x06 "Write Single Register" écrit un seul Holding Register 16 bits sur un slave Modbus, avec adresse et valeur codees sur 16 bits chacune dans la requête.4. Function codes · Write Single Register (0x06)
- 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.5. Data encoding · 32-Bit-Float
- Modpoll (focus-sw.com) et mbpoll (Linux/macOS) sont des outils gratuits en ligne de commande pour interroger un slave Modbus depuis un PC, indispensables au diagnostic et à la mise au point d'intégrations Modbus.6. Practical · Modpoll / mbpoll