Comment fonctionne le Modbus ? Que devez-vous savoir sur ce protocole de communication ?
Comment fonctionne le Modbus ? Que devez-vous savoir sur ce protocole de communication ?
Modbus, un protocole fondamental dans le domaine de l'automatisation industrielle qui a toujours sa place aujourd’hui dans diverses industries.
Modbus est présent dans les systèmes d'automatisation industrielle. Ses origines remontent à la fin des années 1970. Depuis lors il est devenu une norme largement adoptée pour connecter des appareils électroniques dans diverses applications industrielles.
Dans cet article nous fournirons de quoi comprendre le fonctionnement de ce protocole de communication si particulier.
Le Modbus est un protocole de communication série qui utilise une architecture maître-esclave. Cela veut dire qu'un appareil (maître) initie et contrôle la communication, tandis qu'un ou plusieurs appareils (esclaves) répondent aux demandes du maître. Ainsi, Modbus utilise un moyen simple et efficace de représenter les données, impliquant généralement la lecture ou l'écriture de valeurs dans des registres de maintien ou des entrées/sorties discrètes.
Ce protocole est largement utilisé dans les systèmes d’automatisation industrielle, de contrôle de processus et de surveillance. Par exemple, il est présent sur la communication entre automates (automates programmables), les IHM (interface homme-machine) et les capteurs process.
Modbus est un protocole standard ouvert. Ceci contribue à son adoption importante dans le secteur de l'automatisation industrielle, permettant sa mise en œuvre dans différents appareils de plusieurs fabricants.
Différences et architectures de réseaux RTU & TCP/IP
Il existe différents types de protocoles Modbus, les plus utilisés étant le RTU (Remote Terminal Unit) et le TCP/IP (Transmission Control Protocol/Internet Protocol) :C'est quoi le Modbus RTU ?
Modbus RTU : il s'agit de la spécification Modbus originale qui utilise le codage binaire pour la communication sur des lignes série, telles que RS-232 ou RS-485. Le RS-232 a une configuration point à point, autorisant un seul maître et un esclave sur une distance de 50 mètres. Le RS-485 prend en charge une configuration multidrop, permettant 64 appareils sur une distance de 1 km.C'est quoi Modbus TCP ?
Modbus TCP/IP : c'est une extension de Modbus qui utilise le protocole TCP/IP pour la communication via les réseaux Ethernet. Ce protocole permet d'avoir plusieurs clients (équivalent au maître) et plusieurs serveurs (équivalent aux esclaves).Les structures Modbus
La structure de trame du Modbus RTU
C'est un paquet binaire qui contient les informations suivantes :- Champ Adresse (1 octet) : précise l'adresse de l'esclave auquel le message est destiné. La valeur de l'adresse peut aller de 1 à 247, et 0 convient aux messages diffusés.
- Code fonction (1 octet) : indique le type d'action que l'esclave destinataire doit effectuer. Les codes de fonction définissent diverses opérations telles que la lecture et l'écriture de registres de maintien, la lecture d'entrées discrètes, l'écriture de bobines simples, etc.
- Champ de données (longueur variable, jusqu'à 252 octets) : contient les données réelles en cours de transmission. La longueur de ce champ dépend du code de fonction spécifique et du type de demande ou de réponse.
- Champ de vérification des erreurs (2 octets) : permet la détection des erreurs pour la trame. La méthode habituellement utilisée est le contrôle de redondance cyclique (CRC), qui est calculé en fonction du contenu des champs d'adresse, de code de fonction et de données.
- Inter-Character Timeout (Variable) : spécifie l'intervalle de temps entre les caractères. Il indique la fin d'un caractère et le début du suivant. En règle générale, sa taille est supérieure à 3,5 octets.
La structure de trame du Modbus TCP/IP
Il est encapsulée dans des paquets TCP/IP standard, car elle est conçue pour être utilisée sur les réseaux Ethernet. La trame Modbus TCP/IP contient les informations suivantes :- Transaction Identifier (2 octets) : identifiant unique attribué à chaque transaction, permet au serveur d'associer la réponse à la requête correspondante.
- Identifiant du protocole (2 octets) : identifie le protocole Modbus, et pour TCP/IP, ce champ est généralement défini sur 0x0000.
- Champ de longueur (2 octets) : indique le nombre d'octets restants dans la trame suivant le champ de longueur. Il comprend l'identifiant de l'unité, le code de fonction et les données.
- Identifiant d'unité (1 octet) : spécifie l'adresse de l'appareil sur un réseau Modbus TCP/IP. Contrairement à Modbus RTU, où l'adresse fait partie de la trame, Modbus TCP/IP utilise l'identifiant de l'unité pour distinguer les appareils.
- Code fonction (1 octet) : comme RTU, il indique le type d'action que l'appareil destinataire doit entreprendre.
- Champ de données (longueur variable) : contient les données réelles en cours de transmission. La longueur de ce champ dépend du code de fonction spécifique et du type de demande ou de réponse.
- Ces structures de trame constituent un aperçu général et le contenu réel de la trame peut varier en fonction de l'opération Modbus spécifique effectuée et des données transmises.