Protocole Modbus : bases de RTU, ASCII et TCP
1. Qu’est-ce que Modbus ?
Modbus est un protocole de messages de couche application pour échanger des données entre contrôleurs et dispositifs. RS-485 et RS-232 sont des interfaces électriques ; Modbus RTU, ASCII et TCP définissent les formats de messages et transports associés. Une interface RS-485 n’implique pas automatiquement la prise en charge de Modbus.
En contrôle des fluides, il peut lire un état ou transmettre des paramètres. Prise en charge, fonctions et registres doivent être confirmés dans le manuel du contrôleur exact. Cet article ne prétend pas que tous les produits FOREACH disposent de ces interfaces.
2. Comment distinguer RTU, ASCII et TCP ?
Le connecteur ne suffit pas à identifier le mode. En série, mode, débit en bauds et format de trame doivent correspondre ; TCP exige des réglages réseau et de service compatibles.
| Mode | Structure du message | À vérifier |
|---|---|---|
| Modbus RTU | Adresse + Code fonction + Données + CRC | Paramètres série, adresse et temporisation des trames |
| Modbus ASCII | Codage ASCII avec LRC et caractères de début/fin définis | Paramètres série, codage et LRC |
| Modbus TCP | En-tête MBAP + Code fonction + Données ; sans CRC RTU supplémentaire | IP, port, identifiant de transaction et Unit Identifier |
3. Adresses série et requête–réponse
Les adresses individuelles série vont de 1 à 247 ; 0 est la diffusion et 248–255 sont réservées. Le contrôleur initie normalement une requête unicast et le dispositif adressé répond. Les écritures diffusées ne reçoivent pas de réponse. Un champ de 8 bits ne rend pas toutes les valeurs 0–255 valides comme adresses individuelles.
Ces règles concernent les liaisons série. Modbus TCP comporte un Unit Identifier dans MBAP ; son rôle d’acheminement par passerelle dépend de l’implémentation. N’appliquez pas aveuglément l’adressage série à toute configuration TCP.
4. Lire les fonctions avec la table des registres
Le code fonction indique le type de données et l’opération de lecture/écriture ; les données contiennent adresses, quantités ou valeurs. Deux dispositifs Modbus n’ont pas nécessairement les mêmes registres.
Vérifiez le décalage éventuel entre numéros du manuel et adresses de départ du message. Confirmez largeur, signe, échelle, unités et ordre des mots pour les valeurs multiregistres. Vitesse, position et volume liquide ne sont pas interchangeables.
| Sens | Message unicast série normal |
|---|---|
| Contrôleur → Dispositif | Adresse | Code fonction | Données | CRC (RTU) / LRC (ASCII) |
| Dispositif → Contrôleur | Adresse | Code fonction | Données | CRC (RTU) / LRC (ASCII) |
| Code fonction (hex) | Opération |
|---|---|
| 01 | Lire les bobines |
| 02 | Lire les entrées discrètes |
| 03 | Lire les registres de maintien |
| 04 | Lire les registres d’entrée |
| 05 | Écrire une bobine |
| 06 | Écrire un registre |
| 0F | Écrire plusieurs bobines |
| 10 | Écrire plusieurs registres |
5. Mise en service d’un dispositif de contrôle des fluides
Confirmez câblage et alimentation, puis réglez la communication selon le manuel. Lisez d’abord un état connu et vérifiez adresse, fonction et données avant de tester les écritures autorisées et les mouvements.
Vérifiez séparément communication, acceptation de commande, fin du mouvement et volume délivré. Un acquittement d’écriture ne prouve pas que la pompe a terminé. Après expiration du délai, interrogez l’état avant de répéter un dosage pour éviter de le doubler.
Enregistrez requêtes, réponses, exceptions et délais. Utilisez limites, référencement, état des vannes et chronologie pour localiser les problèmes. Commandes, adresses et unités exactes proviennent du manuel du dispositif.