< Retour

Protocole Modbus : bases de RTU, ASCII et TCP

1. Qu’est-ce que Modbus et quelle est la différence avec RS-485 ?

Modbus est un protocole de messagerie de la couche application qui permet l’échange de données entre des contrôleurs et des équipements. RS-485 et RS-232 définissent des interfaces électriques. Modbus RTU et ASCII sont des modes de transmission série, tandis que Modbus TCP transporte les messages Modbus sur TCP/IP. La présence d’une interface RS-485 ne suffit donc pas à établir qu’un équipement prend en charge Modbus.

Dans un système de contrôle des fluides, Modbus peut servir à lire l’état d’un équipement ou à transmettre des paramètres de commande. Le manuel de communication du modèle exact de contrôleur précise la prise en charge du protocole, les fonctions disponibles et les registres. L’interface doit être confirmée pour chaque produit Foreach et chaque configuration.

2. Quelles sont les différences entre Modbus RTU, ASCII et TCP ?

Le connecteur ne permet pas, à lui seul, d’identifier le mode de communication. Sur une liaison série, le mode de transmission, le débit en bauds et le format des caractères doivent correspondre aux deux extrémités. En TCP, il faut vérifier la connexion réseau et les paramètres du service de l’équipement.

ModeStructure du messagePoints à vérifier
Modbus RTUAdresse de l’équipement + Code de fonction + Données + CRCParamètres série, adresse de l’équipement et intervalle entre trames
Modbus ASCIIMessage codé en ASCII avec LRC et caractères de début et de fin définisParamètres série, codage et LRC
Modbus TCPEn-tête MBAP + Code de fonction + Données ; aucun CRC RTU n’est ajoutéAdresse IP, port, identifiant de transaction et identifiant d’unité (Unit Identifier)

3. Comment fonctionnent l’adressage série et les échanges requête-réponse ?

Sur une liaison série Modbus, les adresses individuelles des serveurs (esclaves) vont de 1 à 247. L’adresse 0 est réservée à la diffusion et les adresses 248–255 sont réservées. Le client (maître) émet une requête unicast et l’équipement adressé répond. Les requêtes d’écriture diffusées ne reçoivent aucune réponse. Un champ d’adresse de 8 bits ne rend donc pas toutes les valeurs de 0 à 255 utilisables comme adresses individuelles.

Ces règles d’adressage concernent la communication série. Modbus TCP comporte un identifiant d’unité (Unit Identifier) dans l’en-tête MBAP. Lorsqu’une passerelle achemine les messages, l’interprétation de ce champ dépend de l’implémentation de l’équipement. Consultez son manuel avant d’appliquer les règles d’adressage série à une connexion TCP.

4. Comment interpréter les codes de fonction Modbus avec la table des registres ?

Le code de fonction indique la catégorie de données et l’opération de lecture ou d’écriture. Le champ de données contient les adresses, les quantités ou les valeurs correspondantes. Deux équipements prenant en charge Modbus peuvent néanmoins avoir des tables de registres différentes.

Avant la mise en service, vérifiez s’il existe un décalage entre les numéros de registre du manuel et les adresses de départ codées dans les messages. Confirmez également la taille des données, la représentation signée ou non signée, les facteurs d’échelle, les unités et l’ordre des mots pour les valeurs réparties sur plusieurs registres. Une vitesse, une position et un volume de liquide correspondent à des grandeurs différentes et ne sont pas interchangeables.

Schéma des requêtes et réponses unicast Modbus RTU et ASCII, avec champs des messages et codes de fonction hexadécimaux courants
Échange série unicast avec réponse normale et codes de fonction Modbus courants. RTU utilise le CRC et ASCII le LRC. Les requêtes diffusées ne reçoivent aucune réponse. Le format TCP figure dans le tableau précédent.
Code de fonction (hex)Opération
01Lire les bobines
02Lire les entrées discrètes
03Lire les registres de maintien
04Lire les registres d’entrée
05Écrire une bobine
06Écrire un registre
0FÉcrire plusieurs bobines
10Écrire plusieurs registres
La figure représente un échange série unicast avec réponse normale. Les requêtes diffusées ne reçoivent aucune réponse. Les réponses d’exception utilisent un code de fonction d’exception et un code d’exception ; elles ne sont pas représentées ici. Pour TCP, utilisez le format avec en-tête MBAP indiqué ci-dessus. Les fonctions disponibles sont précisées dans le manuel de l’équipement.

5. Comment mettre en service un équipement de contrôle des fluides avec Modbus ?

Vérifiez d’abord le câblage et l’alimentation, puis réglez les paramètres de communication selon le manuel de l’équipement. Commencez par lire un état connu. Contrôlez l’adresse de l’équipement, le code de fonction et la signification des données reçues avant d’essayer les écritures de paramètres et les commandes de mouvement autorisées.

Validez séparément la communication, l’acceptation de la commande, la fin du mouvement et le volume effectivement délivré. Un acquittement d’écriture ne signifie pas que la pompe a terminé son mouvement. Après une expiration du délai d’attente, consultez l’état de l’équipement avant de répéter une commande de dosage afin d’éviter de délivrer deux fois la dose.

Consignez les requêtes, les réponses, les codes d’exception et les circonstances des dépassements de délai. Pour rechercher un défaut, vérifiez les fins de course, la prise d’origine, l’état des vannes et la chronologie des mouvements. Le manuel de communication de l’équipement détermine les commandes, les adresses et les unités de comptage exactes.

Références

Valider ensemble la communication et les exigences de mouvement

Transmettez le modèle du contrôleur, le manuel de communication, la table des registres, le schéma de câblage et la séquence de mouvement souhaitée. Avant l’intégration, confirmez l’interface prise en charge et les unités des commandes.