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
- Quelle variante Modbus est aujourd'hui la plus utilisée pour les nouvelles installations en environnement IT/OT moderne ?2. Variants · RTU vs. TCP vs. ASCII
- Lorsqu'un slave Modbus ne peut pas exécuter une requête (adresse invalide, valeur hors plage, etc.), il répond par un "Exception Response" : function code d'origine avec le bit 7 force a 1, suivi d'un Exception Code précisant la cause.4. Function codes · Exception Responses
- La function 0x05 "Write Single Coil" écrit une seule sortie binaire sur un slave Modbus. La valeur ON est codée 0xFF00 et OFF est codée 0x0000 ; toute autre valeur est invalide.4. Function codes · Write Single Coil (0x05)
- La function 0x08 "Diagnostic" (Modbus série RTU/ASCII uniquement) permet de tester la communication et d'accéder aux compteurs d'erreurs internes du slave via des sous-fonctions (Return Query Data, Restart Communications, Return Bus Message Count, etc.).4. Function codes · Diagnostic (0x08)
- Quand une passerelle Modbus TCP/RTU fait pont vers un segment RTU comportant plusieurs slaves, le client Modbus TCP utilisé le Unit ID du header MBAP pour cibler le slave RTU spécifique situe derriere la passerelle.5. Modbus TCP · Unit ID Gateway