Registres, bobines, codes fonction : que peut lire un logiciel ?
Un logiciel lit dans un équipement Modbus des bits et des mots de 16 bits, rangés dans quatre tables définies par la Modbus Application Protocol Specification V1.1b3.
| Table | Taille | Accès | Exemple courant |
|---|---|---|---|
| Entrées discrètes (Discrete Inputs) | 1 bit | Lecture seule | Porte de four fermée, capteur de présence |
| Bobines (Coils) | 1 bit | Lecture et écriture | Marche ou arrêt d'une pompe |
| Registres d'entrée (Input Registers) | 16 bits | Lecture seule | Température mesurée, intensité |
| Registres de maintien (Holding Registers) | 16 bits | Lecture et écriture | Consigne de vitesse, compteur paramétrable |
Chaque opération correspond à un code fonction public : 01 à 04 pour lire les quatre tables, 05 et 06 pour écrire une bobine ou un registre, 15 et 16 pour en écrire plusieurs, 23 pour écrire puis lire des registres dans la même transaction, 43 pour l'identification de l'équipement. Une requête lit au plus 2 000 bits ou 125 registres, et en écrit au plus 123 avec le code 16. Les registres sont transmis octet de poids fort en premier.
Le protocole ne dit pas ce que contient chaque registre : c'est la table d'échange du constructeur qui l'indique, avec les unités et les facteurs d'échelle. Une valeur sur 32 bits occupe deux registres consécutifs, et cette table précise dans quel ordre les assembler. Sans elle, aucune intégration sérieuse n'est possible.
Modbus TCP, liaison série, passerelle : comment les trames circulent
En Modbus TCP, chaque trame commence par un en-tête MBAP de 7 octets, décrit par le guide d'implémentation Modbus Messaging on TCP/IP :
- Transaction Identifier : apparie chaque réponse à sa requête, ce qui permet plusieurs requêtes en cours sur une même connexion ;
- Protocol Identifier : vaut 0 pour Modbus ;
- Length : nombre d'octets qui suivent ;
- Unit Identifier : adresse de l'esclave série visé derrière une passerelle, de 1 à 247 ; en liaison TCP directe, la valeur 0xFF est recommandée.
Le serveur écoute le port 502. Le guide recommande de garder la connexion TCP ouverte plutôt que de la rouvrir à chaque échange, et précise que le nombre de transactions simultanées va de 1 à 16 selon les capacités de l'équipement : le collecteur règle son rythme sur l'appareil le plus limité. La trame complète tient en 260 octets en TCP et 256 en liaison série.
Pour des équipements en liaison série (par exemple sur un bus RS-485), une passerelle TCP vers série permet au logiciel de joindre toute une chaîne de compteurs par une seule adresse IP, l'esclave visé étant désigné, de 1 à 247, dans le champ Unit Identifier.
Réponses d'exception : que doit faire le logiciel ?
Quand un équipement refuse une requête, il renvoie le code fonction augmenté de 0x80 et un code d'exception. Chaque code appelle une réaction différente du collecteur.
| Code | Signification selon la spécification | Réaction attendue du logiciel |
|---|---|---|
| 01 | Fonction illégale : non prise en charge ou non autorisée dans l'état actuel | Erreur de paramétrage à corriger, pas de nouvel essai en boucle |
| 02 | Adresse de données illégale : adresse et longueur incompatibles | Table d'échange mal saisie ou modèle d'équipement différent : alerte à l'intégrateur |
| 03 | Valeur de données illégale : requête mal construite | Défaut du collecteur, journalisé avec la trame envoyée |
| 04 | Défaillance de l'équipement pendant l'exécution | Nouvel essai espacé, puis alerte à la maintenance |
L'absence de réponse est le cas le plus fréquent : équipement hors tension, câble coupé, passerelle saturée. Le guide TCP ne fixe pas de délai de réponse, mais recommande que l'attente avant un nouvel essai dépasse le temps de réponse maximal attendu. Une valeur non lue est enregistrée comme inconnue, jamais comme zéro : un compteur à zéro fausserait la production du jour.
Quatre exemples de flux en PME industrielle
- L'énergie consommée par machine. Toutes les quinze minutes, le collecteur lit les registres d'index des compteurs électriques, les horodate et les range dans la base d'historique. Le logiciel de gestion rapproche ces consommations des ordres de fabrication et calcule un coût énergétique par série.
- La surveillance d'une chambre froide. Une sonde reliée à un régulateur expose la température dans un registre d'entrée. Lue chaque minute, la valeur alimente l'enregistrement des températures ; un dépassement prolongé envoie une alerte à l'astreinte. Voir notre page pour les entreprises agroalimentaires.
- Le compteur d'une presse ancienne. L'automate d'une presse sans connectivité moderne expose son compteur de coups dans un registre de maintien. Lu en fin de poste, il alimente la déclaration de production, sans modifier le programme.
- La consigne envoyée au variateur. Le planning fixe la cadence d'une ligne ; après validation du chef d'équipe, le logiciel écrit la consigne de vitesse dans le registre prévu, puis relit la valeur pour confirmer. Ce sens descendant ne s'active qu'après une période de lecture seule sans incident.
Ces flux s'insèrent dans une architecture plus large, décrite sur la page relier automates et supervision à votre ERP.
Un protocole sans mot de passe : comment le protéger ?
La spécification du protocole Modbus ne décrit aucune authentification : tout poste qui joint l'équipement sur le port 502 peut lire et écrire ses registres. La protection repose donc sur l'architecture.
- Les équipements Modbus restent sur un réseau d'atelier séparé du réseau bureautique, et le port 502 n'est jamais ouvert vers Internet.
- Un seul collecteur, dans une zone réseau dédiée, parle aux équipements ; le reste du système d'information ne parle qu'au collecteur.
- Les écritures sont limitées à une liste fermée de registres, décidée avec la maintenance.
La Modbus Organization a publié en 2021 la spécification Modbus/TCP Security (version 36, datée du 30 juillet 2021). Elle encapsule les trames Modbus/TCP, inchangées, dans une session TLS 1.2 ou plus récente, interdit le repli vers TLS 1.1, TLS 1.0 ou SSL 3.0, utilise le port 802 enregistré auprès de l'IANA et impose une authentification mutuelle par certificats X.509v3. Quand l'équipement applique un contrôle d'autorisation, le rôle du client est porté par une extension du certificat, et une requête non autorisée reçoit l'exception 01. Encore faut-il que vos équipements la prennent en charge : la documentation de chaque appareil le dit.
Modbus, OPC UA ou MQTT : lequel retenir ?
Modbus est souvent imposé par l'existant : compteurs, régulateurs, variateurs et automates déjà installés le parlent, et c'est parfois leur seule porte. Pour des machines récentes, OPC UA apporte un modèle de données décrit, des abonnements aux changements et une sécurité intégrée. Pour faire circuler les mesures entre plusieurs applications, un broker MQTT découple producteurs et consommateurs. Les trois cohabitent souvent : le collecteur lit en Modbus et republie vers le reste du système.
Quand une supervision du constructeur exporte déjà les données utiles, on part de cet export plutôt que d'interroger les équipements une seconde fois.
Ce que YMHB Web réalise et vous remet
YMHB Web programme des automates, par exemple Kinco avec KincoBuilder, et des interfaces opérateur, par exemple avec DTools : quand un compteur manque dans l'automate, il peut être ajouté au programme, avec une sauvegarde de la version d'origine. Pour la liaison au logiciel de gestion, nous livrons le collecteur et son code, la table d'échange documentée (adresse, type, unité, facteur d'échelle, sens), la cadence de lecture de chaque équipement, un journal des exceptions et des alertes quand un équipement ne répond plus. Le détail de l'offre figure sur la page automates, IHM et supervision, et les facteurs de coût sur prix d'un programme d'automate ou d'une IHM.
Questions fréquentes
Quelle différence entre Modbus TCP et Modbus sur liaison série ?
Modbus TCP transporte les requêtes Modbus sur un réseau Ethernet, avec un en-tête MBAP de 7 octets et le port 502. La liaison série, par exemple en RS-485, relie les équipements sur un bus avec une adresse d'esclave de 1 à 247. Une passerelle TCP vers série permet à un logiciel de joindre une chaîne d'équipements série par une seule adresse IP, en indiquant l'esclave dans le champ Unit Identifier.
Combien de registres Modbus peut-on lire en une seule requête ?
Selon la Modbus Application Protocol Specification V1.1b3, une requête lit de 1 à 125 registres de 16 bits ou de 1 à 2 000 bits, et le code fonction 16 écrit de 1 à 123 registres. Pour lire davantage de valeurs, le collecteur enchaîne plusieurs requêtes, en respectant le nombre de transactions simultanées que l'équipement accepte, entre 1 et 16 selon ses capacités.
Modbus est-il sécurisé ?
Le protocole Modbus classique ne prévoit aucune authentification : tout poste qui joint l'équipement peut lire et écrire ses registres. La Modbus Organization a publié en 2021 une variante, Modbus/TCP Security, qui encapsule les échanges dans TLS 1.2 ou plus récent sur le port 802, avec authentification mutuelle par certificats. À défaut, la sécurité repose sur la séparation des réseaux et un collecteur unique.
Que signifie l'exception Modbus 02 renvoyée par un équipement ?
L'exception 02, adresse de données illégale, signifie que l'adresse demandée, combinée à la longueur, ne correspond à aucune donnée de l'équipement. Dans une intégration, elle révèle presque toujours une table d'échange mal saisie, un décalage d'adresse ou un modèle d'équipement différent de celui prévu. Le collecteur doit alors alerter l'intégrateur plutôt que réessayer en boucle.
Faut-il remplacer ses équipements Modbus par de l'OPC UA ?
Pas nécessairement. Un équipement Modbus qui fonctionne peut être lu par un collecteur placé sur le réseau de l'atelier, qui republie ses données vers le logiciel de gestion ou en OPC UA. Le remplacement se discute au moment du renouvellement du matériel, ou quand la sécurité et la richesse du modèle de données d'OPC UA deviennent indispensables.
À lire aussi
- Relier automates, IHM et supervision à votre ERP
- Connexion aux machines : automates, IHM et supervision
- Connecter OPC UA à votre logiciel métier : atelier et ERP
- Relier capteurs et machines MQTT à votre logiciel métier
- Combien coûte un programme d'automate ou une IHM ?
- Logiciel de production sur mesure pour PME industrielle
Sources
- Modbus Organization, Modbus Application Protocol Specification V1.1b3 (tables de données, codes fonction, limites, exceptions, port 502)
- Modbus Organization, Modbus Messaging on TCP/IP Implementation Guide V1.0b (en-tête MBAP, Unit Identifier, adresses 1 à 247, port 502, connexions, transactions, délais)
- Modbus Organization, MODBUS/TCP Security Protocol Specification (MB-TCP-Security-v36, 30 juillet 2021 : TLS 1.2 ou plus, port 802, certificats X.509v3, rôles, exception 01)
