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.
Vrai
L'Exception Response correspond au function code original combine en OR avec 0x80. Par exemple, une requête 0x03 (Read Holding) génère une exception 0x83. L'Exception Code qui suit détaille la cause : 0x01 Illegal Function (function code non supporté), 0x02 Illégal Data Address (adresse hors plage), 0x03 Illégal Data Value (valeur invalide), 0x04 Slave Device Failure (erreur interne), 0x05 Acknowledge (requête acceptée, traitement long), 0x06 Slave Device Busy (a retenter plus tard). Ces codes sont essentiels pour le diagnostic terrain dans les logs Modbus.
Sur un debug, distinguez bien un timeout (slave muet) d'une exception (slave a répondu "non") : le timeout pointe vers du câblage ou un ID erroné, l'exception vers un mapping de registres incorrect.
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