Modbus RTU, adressage et paramètres de communication
Référence de mise en service traduite et sélectionnée pour les deux modules. Les tables complètes de registres propres à chaque appareil sont liées ci-dessous.
Protocole et valeurs par défaut
Modbus RTU fonctionne sur RS-485. Les opérations standard comprennent la lecture des bobines (0x01), des entrées discrètes (0x02), des registres de maintien (0x03) et des registres d’entrée (0x04), ainsi que l’écriture d’une bobine (0x05), d’un registre de maintien (0x06), de plusieurs bobines (0x0F) ou de plusieurs registres de maintien (0x10).
Les paramètres série d’usine sont 9600 bit/s, 8 bits de données, aucune parité et 2 bits d’arrêt. Le micrologiciel actuel tolère une différence de bits d’arrêt, mais il reste préférable de faire correspondre les paramètres. Utilisez une adresse d’appareil unique de 1 à 247 ; l’adresse d’usine est imprimée sur le boîtier.
Détection et modification des adresses
Utilisez la fonction du contrôleur de balayage du bus pour détecter les appareils et résoudre les conflits d’adresses. Pour un accès direct en ligne de commande, arrêtez les autres logiciels utilisant ce port série, puis redémarrez-les après l’opération.
systemctl stop wb-mqtt-serial modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12 systemctl start wb-mqtt-serial
Cet exemple remplace l’adresse 1 par 12 en écrivant dans le registre de maintien 128. Remplacez le port, l’adresse et les paramètres série par ceux de l’appareil réel.
Si l’adresse est inconnue, une écriture en diffusion à l’adresse 0 peut attribuer une nouvelle adresse, mais ne raccordez que l’appareil concerné : chaque appareil recevant la diffusion peut appliquer le changement. Un dépassement du délai d’attente est normal, car les écritures en diffusion ne reçoivent pas de réponse. Préférez la détection lorsque c’est possible.
Débit en bauds et parité
Le registre de maintien 110 stocke le débit en bauds divisé par 100. Pour 115200 bit/s, écrivez 1152 avec les anciens paramètres de communication, puis réglez le maître sur le nouveau débit. Le registre 111 définit la parité (0 : aucune, 1 : impaire, 2 : paire) ; le registre 112 sélectionne 1 ou 2 bits d’arrêt.
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a12 -t0x06 -r110 1152
Les débits élevés nécessitent un câblage correct du bus. Tous les appareils partageant un port doivent utiliser des paramètres compatibles.
Fast Modbus
Fast Modbus ajoute la détection rapide des appareils et l’interrogation des événements. Le maître active explicitement cette extension ; les maîtres Modbus classiques restent compatibles. Tous les registres ne génèrent pas d’événements : les entrées compatibles sont marquées ⚡ dans les tables de registres. La transmission des événements réduit la latence lorsque de nombreux appareils partagent le bus.