Certains slaves Modbus exotiques implémentent des function codes non standard ou des comportements vendor-specific (par exemple Read Coil qui retourne un uint16 au lieu d'un bit) ; il faut toujours vérifier la documentation vendor avant de presupposer la conformité au standard.
Vrai
Les deviations vendor les plus fréquentes sont : Read Coils qui retourne un uint16 chez certains constructeurs ASCII (coil = 0/1 mais code sur 16 bits), function codes custom dans la plage utilisateur 65-72 ajoutes par Schneider ou d'autres vendors pour leurs commandes propriétaires, et des données packées de façon non standard (plusieurs compteurs emballés dans un seul registre). La solution est de RTFM avant l'intégration et de valider le comportement réel avec Wireshark ou mbpoll, sans présupposer la conformité littérale au document Modbus Application Protocol.
Piège classique : un Read Discrete Inputs qui répond effectivement mais avec un layout d'octets inverse par rapport au standard. Toujours croiser le décodage applicatif avec une capture Wireshark.
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