top of page

Détails du protocole Modbus : Du contexte, de l'évolution, des principes à la configuration pratique

24 nov. 2025
33 min de lecture

Dernière mise à jour : 12 oct.

Détails du protocole Modbus : Du contexte, de l'évolution, des principes à la configuration pratique

Introduction : Pourquoi Modbus est-il encore largement utilisé ?

Modbus est utilisé dans les communications industrielles depuis que Modicon l’a introduit en 1979. Son modèle de requête/réponse reste utile pour lire des mesures, l’état des appareils et des registres de commande dans les secteurs de l’énergie, de l’eau, des procédés industriels et de la fabrication. Sa présence durable s’explique surtout par le parc d’équipements installé, l’accessibilité des spécifications et la simplicité de mise en œuvre, plutôt que par des estimations non étayées de part de marché ou de nombre d’appareils.

Modbus se concentre sur l’échange d’un petit ensemble de données d’appareil au moyen de codes fonction définis. Cette simplicité peut réduire le travail d’implémentation et d’intégration, à condition que l’ingénieur vérifie aussi l’interface physique, la table des registres de l’appareil et les exigences de l’application. Ses atouts pratiques comprennent :

  • Modèle de communication simple : sur une liaison série, le client planifie les requêtes et le serveur répond ; sur TCP, le même modèle applicatif est utilisé au-dessus d’une connexion réseau.

  • Spécifications publiques : les implémenteurs peuvent obtenir les documents du protocole auprès de la Modbus Organization. Une spécification ouverte est distincte de la licence d’une pile logicielle ou d’un produit donné.

  • Large choix d’implémentations : des automates, instruments et passerelles de différents fabricants peuvent échanger des données lorsque les fonctions prises en charge et les tables spécifiques aux appareils concordent.

  • Besoins de mise en œuvre modestes : les petits appareils embarqués peuvent implémenter les fonctions dont ils ont besoin ; les ressources mémoire, l’alimentation et le coût des composants dépendent de la conception réelle.

  • Câblage pratique d’un bus RS-485 : plusieurs appareils adressés peuvent partager un bus correctement conçu. Les adresses 1–247 sont disponibles sur Modbus série, mais la charge électrique, la topologie et la temporisation déterminent le nombre d’appareils qu’un segment peut prendre en charge.

  • Parc installé établi : remplacer des appareils de terrain encore fonctionnels peut nécessiter un important travail d’intégration. Les passerelles peuvent rendre leurs données Modbus disponibles à des systèmes de supervision plus récents.

Une passerelle qui prend explicitement en charge la conversion de protocoles ou la collecte de données peut lire des appareils Modbus et publier certaines valeurs par MQTT, HTTP ou OPC UA. Le mappage des registres, les unités, l’intervalle de mise à jour et les fonctions prises en charge par la passerelle doivent être configurés ; une simple connexion IP ne les fournit pas automatiquement. Ce guide présente Modbus depuis son contexte et son modèle de données jusqu’au tramage, au déploiement et aux pratiques de configuration, afin de pouvoir l’utiliser avec les manuels exacts des appareils.

Modbus est un protocole de communication client/serveur permettant de lire et d’écrire des bobines et des registres. RTU et ASCII utilisent des trames série ; Modbus TCP utilise TCP/IP. Vérifiez la table de registres de l’appareil et la convention d’adressage du client avant la configuration.

Lors d'une modernisation, un automate peut communiquer en Modbus RTU sur une liaison série alors que le système de supervision attend du Modbus TCP. Le seul mot « Modbus » ne dit pas si une passerelle convertira les trames, ni quelle adresse correspond à la référence d'un registre.

Ce guide distingue le modèle de données, le transport et le format des messages. Il compare RTU, ASCII et TCP, puis explique pourquoi une référence telle que 40001 n'est pas toujours l'adresse à saisir dans un client. Une petite fiche de correspondance aide à préparer la mise en service.

Contexte historique et évolution de Modbus

Contexte de la création

Avec la diffusion des automates programmables dans l’automatisation industrielle, les automates et les instruments de terrain ont eu besoin d’un moyen pratique pour échanger des mesures et des commandes. Les interfaces propres à chaque fabricant compliquaient l’intégration. Modbus est apparu chez Modicon dans ce contexte, sous la forme d’un protocole de requête/réponse destiné aux équipements industriels ; le protocole ne rend pas pour autant interchangeables toutes les tables d’appareils ni toutes les interfaces électriques.

Modicon a introduit Modbus en 1979. Un client envoie un code fonction et les données de requête ; le serveur adressé renvoie les données demandées ou une réponse d’exception si une requête bien formée ne peut pas être satisfaite. Sur un bus série, le client pilote les échanges. Ce modèle réutilisable permet aux automates et aux instruments d’exécuter des opérations définies, tandis que la table des données de l’appareil reste propre à son fabricant.

Parcours de développement

L’évolution principale est la réutilisation d’un protocole applicatif commun sur les liaisons série et les communications TCP/IP. Les jalons ci-dessous distinguent l’origine du protocole, les éditions documentées des spécifications et les pratiques actuelles d’intégration :

Période / date du document

Étape marquante

Importance pour l’ingénierie

1979

Modicon introduit Modbus

Un protocole de requête/réponse destiné aux automates et équipements industriels.

Implémentations série

Tramage RTU et ASCII

Un modèle applicatif commun peut utiliser des trames RTU binaires compactes ou des trames série encodées en ASCII.

Intégration Ethernet

Modbus TCP/IP

Le PDU applicatif est transporté sur une connexion TCP avec un en-tête MBAP ; il ne s’agit pas d’une trame RTU transmise sans modification.

24 octobre 2006

Guide de mise en œuvre TCP/IP V1.0b

Documente les communications client/serveur et l’intégration aux systèmes TCP/IP et aux passerelles.

20 décembre 2006

Guide de ligne série V1.02

Documente l’adressage série, le tramage, la temporisation et les exigences de mise en œuvre.

26 avril 2012

Spécification du protocole applicatif V1.1b3

Définit le modèle de données, l’adressage, les codes fonction et les réponses d’exception utilisés dans ce guide.

Pratiques actuelles d’intégration

Interrogation périodique et passerelles protocolaires

Certaines valeurs d’appareils peuvent être mappées vers MQTT ou OPC UA si la passerelle et l’application prennent explicitement ces fonctions en charge.

Ces évolutions permettent aux appareils de terrain existants de participer à des systèmes plus récents sans modifier le sens des requêtes applicatives. Le transport, le comportement de la passerelle et l’interprétation des registres doivent toujours être vérifiés séparément.

Pourquoi Modbus n'a-t-il pas été supprimé ?

Modbus reste utile lorsque les appareils exposent déjà une table de registres connue et que l’application a besoin d’une acquisition ou d’un contrôle simples. Le remplacement de ces appareils peut nécessiter des changements de câblage, une validation et une intégration logicielle. Les ressources utilisées et le coût de migration dépendent de l’implémentation réelle ; des affirmations fixes sur la taille du code, la proportion d’équipements anciens ou les rapports de coûts ne constituent pas une base de sélection fiable.

Modbus peut compléter MQTT ou OPC UA dans une architecture IIoT. Une passerelle peut interroger un compteur via Modbus, interpréter ses registres et exposer les mesures obtenues à une application de supervision ou cloud. Ces protocoles ont des modèles de communication et d’information différents ; ce mappage relève de l’application et n’est pas une fonction automatiquement fournie par Modbus.

Architecture du protocole Modbus

Modbus est un protocole applicatif client/serveur fondé sur des requêtes et des réponses. Sur une liaison série, le client (traditionnellement appelé maître) initie les transactions et le serveur adressé (esclave) répond. Un bus série partagé comporte normalement un seul client. Modbus TCP peut accepter plusieurs connexions clientes, dans les limites prises en charge par le serveur. Aucune des deux formes ne garantit un temps de réponse fixe : le temps de scrutation dépend du débit de la liaison, du traitement, des délais d’attente et de la charge réseau.

Architecture de base

Client (PLC / gateway / HMI)  -- request -->  Server (instrument / controller)
Client                        <-- response --  Server

Serial bus: one client schedules transactions.
TCP: client connections depend on the server implementation.
  • Client : initie les requêtes et planifie les interrogations et les nouvelles tentatives. Plusieurs clients série indépendants ne doivent pas émettre sur le même bus sans système de coordination spécialement conçu.

  • Serveur série : utilise une adresse individuelle comprise entre 1 et 247. L’adresse 0 est réservée aux écritures de diffusion prises en charge ; les serveurs ne répondent pas aux diffusions.

  • Chemin de communication : tramage RTU ou ASCII sur une interface série prise en charge, ou PDU applicatif Modbus sur TCP/IP.

Modèle de données

Modbus abstrait l'appareil en une « carte de registres » :

  • Groupes de bits : les coils (bobines) sont des valeurs d’un bit qui peuvent être lues et écrites ; les entrées discrètes sont des valeurs d’un bit lues par le client.

  • Groupes de registres : les registres de maintien sont des mots de 16 bits qui peuvent être lus et écrits ; les registres d’entrée sont des mots de 16 bits lus par le client. Un appareil peut limiter les opérations et les accès pris en charge.

Distinguez le message applicatif de son tramage et de sa liaison physique :

  • Application : l’unité de données de protocole (PDU) contient un code fonction et ses données.

  • Tramage série : une adresse et un champ de contrôle d’erreur encadrent le PDU ; RTU et ASCII encodent et délimitent la trame différemment.

  • Tramage TCP/IP : l’en-tête MBAP précède le PDU dans un flux d’octets TCP. Ethernet est un support réseau sous-jacent courant ; RS-485 est une interface électrique série courante.

Le PDU applicatif est limité à 253 octets. Une ADU RTU peut atteindre 256 octets et une ADU TCP 260 octets, tramage correspondant compris. La longueur réelle des requêtes et des réponses dépend de la fonction et de la quantité. Ces limites de taille ne garantissent aucun débit ni pourcentage de fiabilité particulier.

Modbus définit des requêtes et des réponses entre un client et un serveur. Le protocole applicatif répartit les données en quatre groupes :

Groupe de données

Unité

Accès courant

Coils (bobines)

Bits individuels

Lecture et écriture

Discrete Inputs (entrées discrètes)

Bits individuels

Lecture

Input Registers (registres d'entrée)

Mots de 16 bits

Lecture

Holding Registers (registres de maintien)

Mots de 16 bits

Lecture et écriture

Les codes fonction indiquent l'opération demandée : lire des bits ou des registres, écrire une valeur, etc. Un appareil peut n'en accepter qu'une partie. Sa documentation fournit la table propre à ce modèle : fonctions prises en charge, signification des adresses, droit d'écriture et encodage des valeurs.

Un registre de 16 bits ne suffit pas à définir la grandeur mesurée.

Une valeur plus longue peut occuper plusieurs registres. Le signe, l'ordre des octets et des mots, le facteur d'échelle et l'unité doivent être relevés dans la documentation de l'appareil avec la référence du registre.

La spécification du protocole applicatif Modbus définit le modèle de données et les codes fonction. Elle ne fournit pas la table de registres d'un produit donné.

Distinguer les fonctions de lecture et d’écriture

La spécification d'application Modbus attribue 0x01 et 0x02 à la lecture des bobines et des entrées discrètes, et 0x03 et 0x04 à la lecture des registres de maintien et d'entrée. L'écriture utilise d'autres fonctions : notamment 0x05 pour une bobine, 0x06 pour un registre, 0x0F pour plusieurs bobines et 0x10 pour plusieurs registres. Un équipement peut n'en prendre en charge qu'une partie. Choisissez la fonction indiquée dans son manuel et vérifiez l'autorisation du point avant tout accès en écriture.

Une réponse réussie indique que la requête a été traitée, sans garantir la justesse de la valeur d'ingénierie affichée. Les quatre groupes de données définissent l'adressage ; signe, échelle, unité et ordre des mots d'une valeur sur plusieurs registres restent propres à l'équipement. Commencez par une valeur connue et en lecture seule. Si l'appareil répond par une exception Modbus, vérifiez fonction et adresse avant de changer câblage ou routes IP.

Les trois principales versions : RTU / ASCII / TCP

RTU, ASCII et TCP partagent le modèle de données applicatif Modbus, mais utilisent des trames et des liaisons différentes. Choisissez la forme prise en charge par les appareils et le chemin d’intégration réels au lieu de supposer une part de marché ou une compatibilité universelle des produits.

Modbus RTU (Le plus classique et le plus courant)

Environnement d’exploitation : une liaison série prise en charge par l’appareil. Le guide de la ligne série décrit les interfaces RS-485 ; certains équipements proposent aussi RS-232 ou d’autres interfaces série explicitement documentées. Le fonctionnement différentiel semi-duplex est courant en RS-485 deux fils, mais ce n’est pas une caractéristique commune à toutes les interfaces série.

Caractéristiques :

  • Transmission binaire : l’adresse, le code fonction et les données sont des octets binaires. Les trames RTU sont séparées par au moins 3.5 temps de caractère ; au-delà de 19,200 bit/s, le guide série recommande des valeurs de temporisation fixes.

  • Détection des erreurs : la trame RTU se termine par un CRC de 16 bits. Il détecte les erreurs de transmission ; il n’authentifie pas l’émetteur et ne garantit pas une transmission sans erreur.

  • Paramètres série : utilisez le débit en bauds, la parité et le nombre de bits d’arrêt pris en charge et indiqués dans les manuels. Tous les appareils qui communiquent doivent avoir les mêmes paramètres ; ne supposez pas qu’il existe une valeur par défaut universelle.

  • Distance et charge : le type de câble, le débit en bauds, les émetteurs-récepteurs, les charges unitaires, la terminaison et la topologie déterminent les limites du segment. Les 247 adresses série ne garantissent pas la capacité électrique d’un segment.

  • Avantages : trames compactes et intégration simple à un bus de terrain lorsque les appareils prennent déjà en charge la même interface série.

  • Limites : l’interrogation d’un bus partagé et la temporisation série limitent le débit ; le diagnostic peut nécessiter des captures de trames et des outils série adaptés.

Topologie typique :

RS-485 trunk (termination at the two physical ends, as specified):
[Client] =======+==========+==========+======= [end]
               |          |          |
           [Server 1] [Server 2] [Server 3]

Keep device drops short and follow the equipment wiring guide.
Match documented signal polarity; A/B labels vary between vendors.

Applicable : Systèmes hérités, surveillance de terrain.

Modbus ASCII (Version précoce)

Environnement d’exploitation : une liaison série prise en charge. Chaque octet binaire de l’adresse, du code fonction et des données est représenté par deux caractères ASCII hexadécimaux (0–9 et A–F).

Caractéristiques :

  • Détection des erreurs : ASCII utilise un contrôle de redondance longitudinale (LRC), plutôt que le CRC de RTU.

  • Délimiteurs de trame : la trame commence par « : » et se termine par CR/LF.

  • Surcharge d’encodage : deux caractères représentent chaque octet encodé ; ASCII transmet donc plus de caractères que RTU pour la même charge utile applicative.

  • Inspection : le flux de caractères hexadécimaux peut être examiné dans une capture série, mais il faut toujours une table de registres pour interpréter les données.

  • Compatibilité : choisissez ASCII uniquement si les deux extrémités le prennent explicitement en charge et sont configurées en conséquence.

Adapté à : la maintenance ou l’intégration d’appareils nécessitant Modbus ASCII. Un environnement pédagogique ou de test peut également l’utiliser, mais sa prise en charge doit être vérifiée et non déduite du seul terme Modbus.

Modbus TCP (Version Ethernet)

Environnement d’exploitation : un réseau TCP/IP orienté connexion. Modbus TCP utilise couramment le port serveur 502 ; confirmez le port configuré et les rôles client/serveur pris en charge.

Caractéristiques :

  • En-tête MBAP : sept octets contenant l’identifiant de transaction, l’identifiant de protocole, la longueur et l’identifiant d’unité.

  • Tramage : l’ADU Modbus TCP n’ajoute pas le CRC série RTU. Les contrôles et retransmissions du transport TCP sont distincts de la validation applicative Modbus.

  • Conception réseau : le débit et la portée dépendent d’Ethernet ou d’autres supports réseau ainsi que de l’ensemble du chemin routé ; ils ne constituent pas des garanties de débit ou de latence Modbus.

  • Concurrence : les appareils peuvent accepter plusieurs clients TCP, mais les limites de connexions, la planification des requêtes et le traitement des transactions dépendent de l’implémentation. Une variante fondée sur UDP n’est pas le transport TCP décrit ici.

  • Avantages : s’intègre aux réseaux IP existants et peut relier des clients de supervision à des passerelles ou à des serveurs TCP natifs.

  • Sécurité : Modbus TCP de base ne fournit ni authentification utilisateur ni chiffrement. Utilisez un chemin réseau protégé et une politique d’accès adaptée ; une extrémité qui ne l’implémente pas ne peut pas activer TLS.

Une passerelle protocolaire peut convertir les transactions RTU et TCP qu’elle prend en charge. Vérifiez son mode de fonctionnement, l’adressage en aval et ses limites ; un port Ethernet seul ne prouve pas qu’elle prend en charge cette conversion.

RTU et ASCII sont des formats de messages série. Modbus TCP transporte la requête applicative sur TCP/IP avec un autre en-tête. RS-485 est une couche physique courante pour Modbus série, pas un format de message Modbus en soi.

Modbus RTU: Trame série binaire avec adresse de l'appareil, code fonction, données et CRC; Interface série, adresse de l'appareil, débit, parité, bits d'arrêt et contraintes de temporisation

Modbus ASCII: Trame série avec données hexadécimales codées en caractères ASCII, caractère de début, LRC et fin de ligne; Prise en charge réelle d'ASCII et paramètres série exigés

Modbus TCP: Requête applicative dans un message TCP précédé d'un en-tête MBAP; IP du serveur, port TCP, rôles client/serveur et éventuelle utilisation de l'Unit Identifier pour choisir un appareil en aval

Le guide Modbus sur ligne série décrit les trames RTU et ASCII. Le guide Modbus TCP/IP décrit l'en-tête MBAP. Le port TCP 502 est courant, mais il faut vérifier le port configuré sur l'équipement.

Les codes fonction et le modèle de données peuvent rester familiers d'une variante à l'autre. Les trames, elles, ne sont pas interchangeables : un client série ne peut pas envoyer directement une trame RTU à un serveur TCP en supposant qu'elle sera convertie. Cette conversion demande une passerelle ou un mode conçu pour cet usage.

Examiner la trame avant la charge utile

Une trame série RTU contient adresse d'équipement, fonction et données suivies d'un CRC. Le format série ASCII représente les données hexadécimales par des caractères, commence par un marqueur et utilise un LRC et une fin de ligne. Modbus TCP place la requête applicative après un en-tête MBAP comportant notamment identifiant de transaction, identifiant de protocole, longueur et Unit Identifier. Le CRC RTU n'est pas repris dans TCP. Ce choix de trame détermine l'outil de capture et le mode de passerelle adaptés.

Sur une liaison série, vérifiez port, câblage et paramètres des deux côtés : adresse, débit, parité, bits d'arrêt et temporisation exigée par l'appareil. Un bus RS-485 exige aussi une topologie et une terminaison conformes au matériel. En TCP, contrôlez adresse et port du serveur, service à l'écoute, route et pare-feu. Le port 502 est courant ; une socket TCP qui répond ne prouve pas que le point Modbus recherché existe.

Structure des trames et détail des codes fonction

Le « cœur » de Modbus est sa trame (Frame), la standardisation assure l'interopérabilité. Toutes les versions partagent le PDU (données d'application), l'encapsulation diffère.

Structure de la trame Modbus RTU

Une ADU RTU contient un octet d’adresse, le PDU applicatif et deux octets de CRC, pour un maximum de 256 octets. La longueur des données varie selon la fonction. Les trames doivent être séparées par au moins 3.5 temps de caractère. Au-delà de 19,200 bit/s, le guide série recommande un délai intertrame fixe de 1.750 ms ; cette valeur ne doit pas être présentée comme le calcul du temps de caractère à 9,600 bit/s.

Champ

Octets

Signification

Requête 0x03 illustrative

Adresse du serveur

1

Cible série 1–247 ; 0 correspond à une diffusion pour les écritures prises en charge

01

Code fonction

1

Opération applicative ; 0x03 lit des registres de maintien

03

Données

Dépend de la fonction ; au plus 252

Cette requête utilise deux octets pour l’adresse de début et deux pour la quantité

00 0A 00 01

CRC

2

Champ de contrôle d’erreur RTU, octet de poids faible suivi de l’octet de poids fort

<CRC low> <CRC high>

Requête illustrative : serveur 1, fonction 0x03, adresse de début 10 selon un adressage qui commence à zéro, quantité 1 : 01 03 00 0A 00 01 <CRC low> <CRC high>. Une réponse normale illustrative contenant la valeur non signée 100 est 01 03 02 00 64 <CRC low> <CRC high>. Les champs CRC sont volontairement des espaces réservés ; ces chaînes ne sont donc pas des trames complètes prêtes à être transmises pour un test.

Une réponse d’exception active le bit de poids fort du code fonction demandé ; par exemple, 0x03 devient 0x83, et inclut un code d’exception. Parmi les exemples courants figurent 0x01 (fonction illégale), 0x02 (adresse de données illégale) et 0x03 (valeur de données illégale). Une trame série rejetée en raison d’une erreur de transmission peut ne recevoir aucune réponse.

Structure de la trame Modbus TCP

Modbus TCP ajoute l’en-tête MBAP de sept octets devant le PDU applicatif. La longueur totale dépend de la fonction et de la réponse ; une requête normale 0x03 portant sur un registre fait 12 octets, tandis que sa réponse normale en fait 11. N’utilisez pas 12 octets comme minimum universel.

Champ

Octets

Signification

Identifiant de transaction

2

Associe une réponse à une requête sur la connexion

Identifiant de protocole

2

0x0000 identifie le protocole Modbus

Longueur

2

Nombre d’octets suivants : identifiant d’unité plus PDU

Identifiant d’unité

1

Peut sélectionner un appareil série en aval via une passerelle ; suivez le manuel de l’extrémité

PDU

Jusqu’à 253

Code fonction et données de requête, de réponse normale ou d’exception propres à la fonction

Pour une même requête applicative, TCP transporte le code fonction et les données après MBAP, au lieu d’ajouter le tramage RTU avec adresse et CRC. Comme TCP est un flux d’octets, un paquet réseau ne correspond pas nécessairement à une ADU Modbus ; le récepteur utilise la longueur MBAP pour retrouver la limite du message.

Codes fonction courants (Point de connaissance le plus important)

Les codes fonction identifient les opérations. La spécification distingue des plages publiques, définies par l’utilisateur et réservées. Le bit de poids fort est utilisé dans les réponses d’exception ; les codes 128–255 ne constituent pas une plage générique de fonctions privées. Dans le tableau ci-dessous, les longueurs ne comptent que les données propres à la fonction après l’octet du code fonction, hors tramage RTU ou MBAP. N est le nombre de bits ou de registres demandé ; ceil(N/8) désigne le nombre d’octets nécessaires pour contenir N bits.

Décimal

Hexadécimal

Fonction

Données / opération

Octets de données de requête

Octets de données de réponse normale

Exemple d’utilisation

1

0x01

Lire les bobines

Lire les valeurs de bits

4

1 + ceil(N/8)

Lire les états de bobines documentés

2

0x02

Lire les entrées discrètes

Lire les valeurs des bits d’entrée

4

1 + ceil(N/8)

Lire l’état d’entrée documenté

3

0x03

Lire les registres de maintien

Lire des mots de registre de 16 bits

4

1 + 2N

Lire une mesure documentée

4

0x04

Lire les registres d’entrée

Lire des mots de registre d’entrée

4

1 + 2N

Lire une valeur d’entrée documentée

5

0x05

Écrire une seule bobine

0xFF00 = ON ; 0x0000 = OFF

4

4 (écho)

Écrire un point de commande approuvé

6

0x06

Écrire un seul registre

Une valeur de 16 bits

4

4 (écho)

Écrire une consigne approuvée

15

0x0F

Écrire plusieurs bobines

Valeurs de bits compactées

5 + ceil(N/8)

4

Écrire une plage de bobines approuvée

16

0x10

Écrire plusieurs registres

Plusieurs mots de 16 bits

5 + 2N

4

Écrire une plage de registres approuvée

17

0x11

Signaler l’identifiant du serveur

Type de serveur, indicateur de marche et données propres à l’appareil (liaison série)

0

Variable

Lire le type de serveur et son état de fonctionnement

43 / 14

0x2B / 0x0E

Lire l’identification de l’appareil

Type MEI, code de lecture et identifiant d’objet

3

Variable

Lire les objets d’identification pris en charge

Les limites propres aux fonctions diffèrent : 0x01/0x02 peuvent lire jusqu’à 2,000 bits ; 0x03/0x04, jusqu’à 125 registres ; 0x0F peut écrire jusqu’à 1,968 bobines ; et 0x10, jusqu’à 123 registres. Les appareils peuvent imposer des limites inférieures. La plage demandée doit exister et l’opération doit être prise en charge ; consultez les sections correspondantes sur les fonctions et les réponses d’exception de la spécification applicative.

Table de définition des adresses de registres (Important)

Les références telles que 00001, 10001, 30001 et 40001 sont des désignations conventionnelles de groupes de données distincts. Le préfixe du groupe n’est pas transmis dans l’adresse du PDU. Une requête contient une adresse sur 16 bits indexée à partir de zéro dans le groupe sélectionné, mais un outil client peut demander à l’utilisateur une désignation, un numéro dont la numérotation commence à un ou un décalage. Vérifiez la convention du manuel et du client avant de saisir une adresse.

Désignation conventionnelle

Groupe de données

Fonction de lecture

Accès habituel

Premier point en notation conventionnelle

Adresse transmise

0xxxx

Coils (bobines)

0x01

Lecture/écriture bit, si prise en charge

00001

0x0000

1xxxx

Entrées discrètes

0x02

Bit en lecture seule

10001

0x0000

3xxxx

Registres d’entrée

0x04

Mot de 16 bits en lecture seule

30001

0x0000

4xxxx

Registres de maintien

0x03

Mot de 16 bits en lecture/écriture, si pris en charge

40001

0x0000

Ces exemples de premier point supposent les désignations conventionnelles à indexation commençant à un indiquées dans le tableau ; ils ne correspondent pas à des affectations universelles d’appareils. Une température peut occuper n’importe quel point documenté. Un FLOAT de 32 bits occupe généralement deux registres de 16 bits, mais le client doit décoder sa représentation IEEE 754 en respectant l’ordre des octets et des mots documenté par l’appareil. Modbus transmet d’abord l’octet de poids fort d’un registre de 16 bits ; la signification et l’ordre des valeurs sur plusieurs registres restent propres à l’appareil.

Les manuels et logiciels d'ingénierie affichent souvent des références telles que 00001, 10001, 30001 ou 40001. Elles désignent généralement un groupe de données et un numéro de registre lisible par un humain. La requête Modbus contient un champ d'adresse numérique : la référence affichée n'est pas forcément le nombre attendu par le client.

Par exemple, 40001 désigne souvent le premier holding register, tandis que l'adresse de requête de ce point est souvent zéro. C'est une convention répandue, pas une règle applicable à tous les manuels, pilotes et passerelles. Certains outils demandent la référence complète; d'autres demandent un décalage à partir de zéro ou une adresse à partir de un.

Avant de configurer une lecture, noter :

  • Le groupe de données : coil, discrete input, input register ou holding register.

  • Le code fonction requis par l'appareil.

  • La référence exacte figurant dans son manuel.

  • L'adresse ou le décalage attendu par le logiciel client.

  • Le type de valeur, le signe, l'ordre des octets et des mots, l'échelle et l'unité.

Ne soustrayez pas un à toutes les adresses par réflexe. Comparez l'exemple du manuel avec la convention du client ou de la passerelle, puis vérifiez un point connu en lecture seule. Le champ d'adresse et les codes fonction sont décrits dans la spécification Modbus.

Dérouler un exemple de registre

Supposons qu'un manuel appelle une température « registre de maintien 40001 » et donne une échelle de 0,1 unité par compte. Beaucoup de clients enverraient la fonction 0x03 à l'adresse zéro pour ce premier registre, mais d'autres demandent la référence affichée. Consignez le libellé du manuel et l'adresse réellement envoyée. Une valeur brute 253 ne vaut 25,3 unités que si le manuel confirme cette échelle et le type numérique supposé. Il s'agit d'un exemple, pas d'une carte universelle.

Pour une valeur 32 bits répartie sur deux registres de 16 bits, la documentation doit aussi fixer l'ordre des octets et des mots. Une valeur plausible mais fausse provient souvent de l'interprétation plutôt que du réseau. Vérifiez convention d'adresse et encodage avec un point en lecture seule dont la valeur physique est contrôlable avant de traiter une liste plus longue.

Vérifiez ensemble la référence du manuel, le code fonction et l’adresse réellement transmise ; 40001 n’est pas une entrée universelle pour les clients.

Différences techniques entre Modbus RTU et TCP

Choisissez RTU ou TCP en fonction des interfaces des appareils installés, du câblage, de la charge d’interrogation, de la conception réseau et des exigences de protection. La comparaison suivante présente des considérations d’ingénierie, et non des résultats de référence mesurés en 2025 ni des limites de performance garanties :

Critère

Modbus RTU

Modbus TCP

Analyse et conseils de sélection / validation

Liaison sous-jacente

Interface série prise en charge, souvent RS-485

TCP/IP, souvent sur Ethernet

Vérifiez l’interface de l’appareil et le mode de la passerelle.

Portée

Dépend du câble, du débit en bauds, des émetteurs-récepteurs et de la topologie

Dépend des supports réseau et du chemin routé

Suivez les spécifications des équipements ; aucune distance universelle de bout en bout.

Débit

Débit série, espacement des trames et surcharge d’interrogation

Réseau et traitement serveur, plus la planification des requêtes

Mesurez tout le cycle d’interrogation sous la charge prévue.

Bruit / isolation

Le câblage, la mise à la terre, l’isolation et la terminaison comptent

Les supports, l’isolation, le blindage et l’installation comptent

Aucun choix de tramage ne garantit l’immunité.

Nombre d’appareils

Adresses 1–247 ; la capacité électrique du segment peut être inférieure

Limité par les connexions, les ressources serveur et la conception réseau

Validez la charge physique et les limites applicatives.

Configuration

Paramètres série, câblage, adresse et table de registres

IP, port, rôles, identifiant d’unité et table de registres

Un ping réussi ou un port ouvert ne valide pas l’application.

Alimentation / coût

Dépend de l’implémentation et du matériel

Dépend de l’implémentation et du matériel

Comparez les spécifications réelles des appareils et les coûts du projet.

Sécurité

Aucune authentification utilisateur ni chiffrement natifs dans RTU de base

Aucune authentification utilisateur ni chiffrement natifs dans TCP de base

Utilisez une architecture protégée ; vérifiez toute implémentation de sécurité ajoutée.

Temps de réponse

Traitement de l’appareil, débit série, interrogations et nouvelles tentatives

Traitement de l’appareil, charge, délai réseau et connexions simultanées

Aucun des deux ne constitue une garantie de temps réel strict.

Scénarios d'application industriels réels

Modbus est utilisé pour l’acquisition et le contrôle supervisé dans de nombreux contextes industriels. Les exemples ci-dessous illustrent des modes d’application possibles, et non des déploiements clients vérifiés ni des tables de registres universelles de fabricants. Chaque adresse, facteur d’échelle et écriture autorisée doit provenir du manuel exact de l’appareil.

Secteur de l'électricité

  • Compteurs et appareillages de distribution : lisez les points documentés de tension, de courant, d’énergie ou d’état au moyen des fonctions de lecture prises en charge.

  • Équipements de protection et de commande : collectez les données de diagnostic prises en charge ; une réinitialisation ou toute autre écriture exige l’opération documentée et l’accord du responsable du procédé.

  • Surveillance environnementale : lisez les mesures documentées de gaz ou d’état de l’armoire, ainsi que les alarmes de l’appareil. Une désignation de groupe de données ne définit pas à elle seule une mesure.

Environnement et Eau

  • Pompes et instruments de niveau : collectez le niveau et l’état de fonctionnement ; les écritures de vitesse ou de commande dépendent de la table de registres en écriture documentée pour l’équipement.

  • Transmetteurs de pression et de débit : confirmez le modèle exact, l’adresse de registre, le type de données, le facteur d’échelle et l’unité. L’adresse 40001 n’est pas une adresse de pression générique applicable à tous les transmetteurs.

  • Une installation possible utilise un segment RS-485 conçu à cet effet et une passerelle protocolaire pour desservir un client SCADA. La capacité du segment et la prise en charge de la conversion doivent être validées pour cette installation.

Pétrole et Pétrochimie

  • Instruments de procédé : lisez les mesures stockées sur plusieurs registres en utilisant l’interprétation FLOAT ou entière et l’ordre des mots documentés.

  • Intégration à la supervision : un serveur Modbus TCP ou une passerelle RTU/TCP peut exposer certains points à un DCS ou à un client de supervision si ses fonctions et ses performances sont vérifiées.

  • Paramètres de commande : les écritures groupées telles que 0x10 doivent viser une plage documentée et approuvée, avec un effet attendu et une procédure convenue pour vérifier le résultat sur le procédé.

Fabrication en usine

  • Acquisition des données d’équipement : collectez des compteurs, états et mesures documentés auprès d’automates prenant en charge Modbus ou via une passerelle d’interface vérifiée.

  • L’intégration à un autre réseau industriel nécessite une application ou une passerelle qui implémente les deux protocoles et un mappage configuré. Il ne faut pas la déduire d’un routeur ordinaire ni d’un exemple d’usine non vérifié.

Énergie Nouvelle Photovoltaïque

  • Onduleurs et boîtiers de convergence : collectez les mesures de fonctionnement et les alarmes documentées au moyen de la table Modbus du modèle exact.

  • Instruments environnementaux : mappez les points d’irradiance, de météo ou d’alarme à partir du manuel du capteur plutôt que d’utiliser une affectation universelle de registres.

  • Une architecture possible de site solaire associe une collecte série locale à une passerelle connectée par IP et à une plateforme de supervision. Le budget de liaison, les intervalles de mise à jour et la publication vers le cloud doivent être validés pour chaque projet.

Déploiement typique de Modbus dans les passerelles/routeurs industriels

Une passerelle industrielle compatible Modbus peut relier des appareils série de terrain à un système IP de supervision ou collecter certains registres pour une autre application. Son utilité dépend des fonctions réellement implémentées par le modèle et le firmware exacts. La conversion RTU/TCP, le transport série transparent, le routage IP et la publication MQTT sont des fonctions distinctes qui nécessitent chacune une configuration et une validation propres.

Architecture typique

[Serial field devices] -- RTU / RS-485 -- [RTU/TCP protocol gateway] -- Modbus TCP -- [Client]

Optional, only if supported and configured:
[Polling / data application] -- mapped MQTT data --> [Broker / cloud]
[Polling / data application] -- mapped OPC UA data --> [Supervisory system]
  • Conversion de protocole : une passerelle RTU/TCP associe les transactions TCP et les identifiants d’unité au bus série. Le transport série transparent sur IP est un mode différent.

  • Routage IP : transporte le trafic IP entre réseaux ; il n’analyse pas à lui seul les registres et ne convertit pas RTU en TCP. Vérifiez toute fonction de filtrage Modbus ou de VPN dans la documentation du produit exact.

  • Collecte de données et logique en périphérie : une application prise en charge peut interroger les registres, interpréter les unités, publier des données ou évaluer une règle d’alerte. Les langages de script, les charges utiles MQTT et les opérations prises en charge dépendent du produit.

Un routeur IP transmet des paquets entre interfaces réseau. Cela ne signifie pas qu'il lit des registres Modbus ou transforme une trame série RTU en requête Modbus TCP. La conversion se fait au niveau applicatif et nécessite une passerelle ou un mode d'appareil prévu à cet effet. La RFC 1812 décrit les fonctions de transmission d'un routeur IPv4.

La distinction compte lorsqu'un automate est raccordé en série tandis que le client de supervision se trouve sur un réseau IP. Un serveur de ports série peut transporter des octets série sur IP sans modifier le protocole série. Une passerelle de protocole peut, elle, terminer une variante Modbus puis créer des requêtes dans une autre.

Vérifiez le mode réellement utilisé, l'endroit où s'effectue l'interrogation et la correspondance des identifiants d'appareil et des registres. Les mentions « routeur industriel » ou « compatible Modbus » ne prouvent ni la présence d'un port série ni une fonction de conversion. Consultez le manuel du modèle et du firmware concernés.

Définir la fonction de la passerelle entre série et IP

Un serveur série peut transporter des octets série sur IP sans convertir les requêtes RTU en Modbus TCP. Une passerelle de protocole termine un côté et produit des messages de l'autre ; elle doit associer rôles client/serveur, identifiants des appareils en aval, délais et conventions d'adresse. Le Unit Identifier de Modbus TCP peut sélectionner un appareil série derrière la passerelle ; sa signification pour un serveur TCP direct dépend de l'appareil. Vérifiez le mode exact dans le manuel.

Si le client d'interrogation est dans un réseau central, suivez client, route IP et pare-feu, service de la passerelle, bus série, appareil cible et réponse. Notez où se fait l'interrogation et quel équipement gère reprises et délais. Le lien peut être actif alors que la passerelle cible une mauvaise adresse série ou un décalage de registre incorrect. Un port Ethernet ou l'étiquette « compatible Modbus » ne prouve pas la conversion applicative.

Le routage IP, le transport série transparent et la conversion de protocole RTU/TCP sont des fonctions distinctes. Vérifiez le mode exact de la passerelle.

Aperçu des étapes de déploiement

  1. Choisissez le matériel selon les interfaces série réelles, les besoins Ethernet, l’environnement, le montage et l’alimentation ; le nombre de ports série et l’indice de protection dépendent du modèle.

  2. Choisissez le mode de fonctionnement approprié et consignez les rôles client/serveur, les adresses série, les identifiants d’unité TCP, les mappages de registres, les délais d’attente et les intervalles de mise à jour.

  3. Prévoyez un chemin réseau protégé adapté et une politique d’accès. Modbus de base n’est pas une extension de sécurité AES ; n’utilisez les fonctions de sécurité que si toutes les extrémités requises les implémentent et sont configurées correctement.

  4. Activez la journalisation de diagnostic et la supervision prises en charge, puis vérifiez une transaction de lecture seule documentée avant d’élargir la liste d’interrogation.

Pour une installation de terrain distante, consignez quel appareil interroge les instruments série, quel système reçoit les valeurs et comment le chemin de retour est protégé. Ne revendiquez un résultat de déploiement ou une économie de maintenance que si les mesures du projet l’étayent ; l’architecture illustrative ci-dessus n’en affirme aucun.

Une page suffit d'abord pour décrire les appareils et les valeurs nécessaires :

Élément

À consigner

Extrémité

Modèle, firmware et rôle client ou serveur

Variante

RTU, ASCII ou TCP

Liaison

Paramètres série et adresse de l'appareil, ou adresse IP et port TCP configuré

Point de données

Groupe, code fonction, référence du manuel et adresse/décalage côté client

Interprétation

Type, signe, ordre des octets/mots, échelle et unité

Accès

Lecture seule ou écriture autorisée d'après le manuel

Procédure de configuration Modbus (très détaillée)

La configuration commence par les manuels de l’appareil et du client. Consignez la variante prise en charge, l’interface électrique, les paramètres série ou IP, la convention d’adressage des requêtes et l’interprétation des données avant les essais. Un simulateur peut aider à valider la configuration d’un client, mais une simulation réussie ne prouve pas qu’un appareil réel utilise la même table ou le même comportement.

Configuration Modbus RTU (RS485)

Étape 1 : Déterminer les paramètres de communication

Consignez les paramètres suivants à partir du manuel et des réglages configurés du serveur exact. Les valeurs ci-dessous sont des exemples et non des valeurs par défaut universelles :

Paramètre

Réglage illustratif

Éléments à vérifier

Débit en bauds

9,600 bit/s

Le débit est pris en charge et identique sur les appareils en communication.

Bits de données

8 pour RTU

RTU utilise huit bits de données par caractère.

Parité

Even

Le réglage par défaut du guide série est Even ; les extrémités peuvent prendre en charge d’autres modes configurés.

Bits d’arrêt

1 avec parité Even/Odd ; 2 sans parité

Le mode sans parité du guide série ajoute un bit d’arrêt. Si un appareil documente 8N1, respectez son implémentation prise en charge et configurez les deux extrémités de façon cohérente.

Adresse du serveur

1–247 ; exemple : 1

Utilisez l’adresse unique configurée, et non une valeur d’usine supposée.

Utilisez une capture série ou l’interface de diagnostic de l’appareil pour vérifier le tramage et les réponses réels. Un utilitaire de terminal générique n’est utile que s’il sait envoyer et afficher le format d’octets série et la temporisation requis.

Étape 2 : Câblage et matériel

  • Faites correspondre la polarité des signaux et le conducteur de référence indiqués dans les deux manuels d’équipement. La nomenclature A/B varie selon les fabricants ; ne considérez pas A+ et B− comme des étiquettes universelles.

  • Utilisez une topologie en bus/tronc avec de courtes dérivations et une terminaison à ses deux extrémités physiques, conformément aux exigences du câble et des équipements. Appliquez la polarisation, le blindage et la mise à la terre selon la conception de l’installation.

  • Vérifiez d’abord la continuité, les courts-circuits, l’alimentation et l’isolation documentée. Évaluez la qualité du signal avec des instruments appropriés ; une seule tension mesurée au repos ne valide pas toute une installation RS-485.

Étape 3 : Table des registres d'entrée

Établissez une table de projet à partir de la documentation du fabricant. Les points inventés suivants illustrent les champs à consigner ; ils ne constituent pas une table utilisable pour un produit nommé :

Point

Référence du manuel

Adresse de requête / fonction

Type / mots

Échelle

Unité

Température

40001

0 / 0x03, si le client utilise des un adressage où les décalages commencent à zéro

UINT16 / 1

brut ÷ 10

°C

Humidité

40002

1 / 0x03, selon la même convention

UINT16 / 1

brut ÷ 10

% RH

État

00001

0 / 0x01, selon la même convention

Coil / 1 bit

Signification documentée du bit

—

Étape 4 : Configurer l'interrogation dans le maître

  • Choisissez un client automate ou passerelle prenant en charge la variante Modbus requise et consultez la documentation exacte du bloc fonction ou de l’application.

  • Pour cette table illustrative uniquement : serveur série 1, fonction 0x03, adresse de début 0 selon un adressage qui commence à zéro, quantité 2. Ne choisissez un intervalle initial, par exemple 1 s, que si le temps de traitement de l’appareil et la charge du bus le permettent.

  • La requête générique ci-dessous illustre les notions nécessaires ; il s’agit de pseudo-code, et non d’un appel de bloc fonction Siemens ni d’une API de bibliothèque logicielle validée.

request = {
    variant: "RTU",
    server_address: 1,
    function_code: 0x03,
    start_address: 0,   // only for the illustrative map
    quantity: 2
}
response = modbus_client.read(request)
verify_normal_response(response, expected_registers=2)

Étape 5 : Analyser les types de données

  • Exemple d’échelle : l’entier brut 256 correspond à 25.6 °C uniquement si l’échelle documentée est brut ÷ 10.

  • Valeurs multiregistres : reconstruisez la séquence d’octets documentée et décodez le type déclaré. Un décalage de bits suivi d’une opération OU bit à bit produit un motif binaire entier ; cela ne convertit pas en soi la valeur en FLOAT.

  • Le pseudo-code de lecture seule ci-dessous évite de supposer une version particulière de bibliothèque. Le code de production doit gérer les échecs de connexion, les exceptions, la longueur des réponses et la libération des ressources.

Pseudo-code illustratif :

response = serial_client.read_holding_registers(
    server_address=1, start_address=0, quantity=1
)
if response.is_normal and len(response.registers) == 1:
    temperature_c = response.registers[0] / 10.0  # illustrative scale
else:
    record_error(response)

Configuration Modbus TCP

Une connexion TCP réussie au port 502 ne prouve ni la validité d’une transaction Modbus ni l’exactitude de la mesure.

Étape 1 : Confirmer l'IP de l'esclave

  • Confirmez l’adresse IP et le sous-réseau configurés du serveur, par exemple 192.168.1.10/24. Une passerelle par défaut est nécessaire pour le trafic hors sous-réseau et doit correspondre à la conception réelle du réseau.

  • Confirmez le point d’écoute Modbus TCP configuré et n’autorisez via le pare-feu que le chemin client prévu ; le port 502 est courant.

  • Un ping ou un test de connexion TCP ne vérifie qu’une partie du chemin. Effectuez une requête Modbus de lecture seule documentée pour valider l’application.

Étape 2 : Définir les paramètres de connexion

  • Réglez les délais d’attente, les nouvelles tentatives, les intervalles d’interrogation et le nombre de connexions autorisées dans les limites du client et du serveur, puis validez-les sous la charge prévue.

  • Le keep-alive TCP peut aider à détecter une connexion défaillante, mais ne fournit aucune authentification applicative. Modbus TCP de base n’active pas TLS par le simple réglage d’une option générique du client ; utilisez une extrémité sécurisée prise en charge ou un chemin réseau protégé.

Étape 3 : Configurer la lecture des registres

Utilisez la même fonction documentée et la même interprétation des registres que pour le serveur, selon le cas, tout en configurant son point de terminaison TCP et l’identifiant d’unité exigé par l’extrémité ou la passerelle. Il s’agit de pseudo-code conceptuel et non d’une API Python propre à une version donnée :

Pseudo-code illustratif :

client = tcp_modbus_client(host="192.168.1.10", port=502)
response = client.read_holding_registers(
    unit_identifier=1, start_address=0, quantity=1
)
verify_normal_response(response, expected_registers=1)
client.close()
# Address 0 and Unit Identifier 1 are illustrative, not universal settings.

Exemple : Cas de configuration Modbus RTU/TCP sur site industriel

Scénario illustratif : une installation de traitement de l’eau collecte les mesures de température et de pH d’un appareil série, puis rend les mesures mappées accessibles à une application MQTT autorisée. Un chemin Modbus TCP facultatif dessert un client de supervision. L’objectif est de valider toute la chaîne d’acquisition et d’interprétation ; il ne s’agit pas d’un déploiement client mesuré.

Appareils :

  • Appareil de terrain : un instrument de mesure dont la documentation confirme la prise en charge des points Modbus RTU requis ; adresse illustrative 5, 9,600 bit/s, 8E1. Confirmez l’interface et les paramètres réellement pris en charge.

  • Passerelle ou contrôleur périphérique : prend explicitement en charge l’interrogation RTU, l’interprétation requise des données et la publication MQTT ; la conversion RTU/TCP facultative ou le serveur TCP doivent être vérifiés séparément.

  • Point de terminaison applicatif : un broker MQTT et un abonné autorisés, avec un accès réseau et une protection du transport adaptés au déploiement.

Processus détaillé :

  1. Connectez l’appareil de terrain aux bornes série documentées de la passerelle et reliez son interface Ethernet au réseau prévu. Respectez les exigences de polarité, terminaison, référence et isolation.

  2. Configurez le port série conformément à l’appareil, en utilisant les paramètres illustratifs 9,600 bit/s, 8E1 et l’adresse serveur 5 uniquement si le manuel les autorise.

  3. Créez une tâche d’interrogation en lecture seule pour la table de registres documentée. Pour une table illustrative dont les adresses commencent à zéro, la fonction 0x03, l’adresse de début 0 et la quantité 2 lisent les mots de température et de pH. Confirmez la table réelle et l’intervalle pris en charge avant d’utiliser une période de 5 s.

  4. Décodez les valeurs UINT16 illustratives avec l’échelle documentée : température = premier mot ÷ 10 et pH = deuxième mot ÷ 100. Vérifiez séparément une valeur physique connue.

  5. Configurez le broker autorisé, les identifiants, le transport et le topic dans l’application qui prend réellement MQTT en charge. Mappez les mesures nommées et, si disponible, un horodatage d’acquisition valide dans une charge utile ; ne supposez pas que toute passerelle RTU/TCP publie du MQTT.

  6. Si nécessaire et pris en charge, configurez séparément l’exposition Modbus TCP avec l’identifiant d’unité et le mappage des registres documentés. Limitez l’accès et validez le fonctionnement en lecture seule avant toute écriture approuvée.

  7. Testez les réponses série, les valeurs mappées, la livraison MQTT et le résultat interprété par l’abonné. Comparez les délais d’attente et erreurs de transmission observés aux critères d’acceptation du projet au lieu d’inventer un taux d’erreur universel.

Exemple de sortie (Message MQTT) :

Charge utile JSON illustrative :

{
  "device": "PH001",
  "temperature_c": 23.6,
  "ph": 7.12,
  "status": "OK"
}

Pannes courantes et méthodes de dépannage

Diagnostiquez à partir du résultat observé plutôt qu’en supposant des probabilités de panne. Le tableau distingue les défaillances de chemin, les erreurs de transmission, les exceptions applicatives et l’interprétation des valeurs. Consignez la requête, la réponse et la configuration de l’appareil exactes lorsque l’équipement le permet :

Symptôme

Causes possibles

Vérifications / action

Éléments utiles

Aucune réponse / délai dépassé

Mauvaise extrémité ou adresse série ; câblage, paramètres série, point d’écoute, route ou pare-feu

Vérifiez le chemin concerné et les paramètres documentés. Sur RS-485, confirmez la polarité à partir des manuels avant de modifier le câblage.

Diagnostics de l’appareil, capture de requête, trace réseau/série

Erreurs CRC / LRC

Liaison série endommagée ou bruitée, tramage incohérent, terminaison ou polarisation incorrecte

Vérifiez débit en bauds, parité, bits d’arrêt, câbles, topologie et isolation. Appliquez la conception de terminaison et de mise à la terre de l’équipement.

Capture série, oscilloscope si nécessaire

Exception Modbus

Fonction non prise en charge, plage d’adresses inexistante ou valeur de requête invalide

Interprétez l’exception et vérifiez la fonction, la plage et les droits d’accès dans le manuel avant de modifier le réseau.

Code d’exception, PDU demandé, table de registres de l’appareil

Valeur incorrecte ou décalée

Convention d’adresse, signe, échelle, unités ou ordre multiregistre

Lisez un point connu ; comparez l’adresse transmise et décodez la représentation documentée.

Mots bruts, manuel, mesure connue indépendamment

Valeur intermittente ou obsolète

Charge, comportement des interrogations/nouvelles tentatives, alimentation, cache applicatif ou instabilité de la liaison physique

Corrélez les horodatages et les erreurs, vérifiez les intervalles de mise à jour et la charge, puis isolez l’étape défaillante.

Journaux de la passerelle, charge du serveur, horodatages d’acquisition

Aucune réponse à la diffusion

Une réponse était attendue à tort pour l’adresse série 0

Les écritures de diffusion série prises en charge ne reçoivent aucune réponse ; n’effectuez pas de lecture en diffusion et n’utilisez pas d’écriture de diffusion pour les essais initiaux.

Spécification série et documentation de prise en charge des appareils

Capturez localement les requêtes et réponses brutes si l’équipement le permet. Consignez ensemble la fonction, l’adresse série ou l’identifiant d’unité, l’adresse de requête, les données reçues et la temporisation pertinente. Utilisez des outils de diagnostic fiables et les définitions officielles des trames ; une valeur affichée plausible ne suffit pas à valider la transaction.

Commencez par un point documenté en lecture seule. Vérifiez la réponse et la valeur interprétée avant d'ajouter d'autres points ou d'autoriser les écritures. Si une réponse arrive mais que la valeur affichée est fausse, revoyez d'abord la correspondance des registres et le format des données avant de changer le chemin réseau.

Pour une valeur d'automate, de variateur ou de SCADA absente ou périmée, consultez le guide de diagnostic PLC/Modbus.

Diagnostiquer selon le résultat observé

Sans réponse, contrôlez destination, service, route et pare-feu en TCP, ou câblage, réglages série et adresse en RTU. Une exception signifie qu'un endpoint Modbus a répondu : examinez fonction, plage et droit d'accès. Une mauvaise valeur suggère convention d'adresse, signe, échelle ou ordre des octets et des mots. Une valeur ancienne peut venir de l'intervalle d'interrogation, du cache applicatif ou d'une valeur stable sur l'appareil. Traitez ces situations séparément.

Pour la mise en service, commencez par un point documenté en lecture seule et conservez requête et réponse si l'équipement permet une capture. Ajoutez les points par petits groupes, avec carte des registres, unités et réglages client validés. N'autorisez une fonction d'écriture qu'après accord du responsable du procédé, avec cible connue et retour sûr. Si l'accès distant traverse un réseau non fiable, protection du transport, pare-feu et droits utilisateur sont des exigences distinctes ; Modbus de base ne les fournit pas.

Commencez par un seul point de lecture documenté. Vérifiez sa réponse et son interprétation avant d’élargir la liste d’interrogation ou d’autoriser une écriture approuvée.

Conclusion

Modbus reste utile depuis son introduction en 1979 grâce à son modèle de données de requête/réponse simple et à sa prise en charge par les équipements industriels établis. Sa force pratique ne tient pas à un pourcentage de fiabilité universel : elle réside dans la capacité à échanger des points documentés lorsque la table de l’appareil, l’interface et le comportement du client sont compris et validés.

Les passerelles peuvent intégrer une installation Modbus existante à une application IP, de supervision ou cloud lorsque la conversion et les fonctions de données nécessaires sont prises en charge. Des réseaux plus rapides ou une connexion 5G ne garantissent à Modbus ni temps de scrutation, ni horodatages synchronisés, ni comportement TSN. Évaluez l’ensemble du chemin d’acquisition, l’interprétation et les exigences de protection de l’application.

Utilisez ce guide avec les spécifications applicatives, série et TCP/IP de la Modbus Organization, ainsi qu’avec les manuels exacts des appareils. Commencez par un point documenté en lecture seule, vérifiez la réponse réelle et la valeur d’ingénierie, puis élargissez la configuration. Une table de registres claire et des paramètres testés sont plus utiles qu’une recette universelle supposée.

Questions fréquentes

Modbus RTU et Modbus TCP sont-ils le même protocole ?

Ils partagent le modèle de données applicatif et des codes fonction apparentés, mais diffèrent par la trame et le transport. RTU utilise une trame série; Modbus TCP ajoute un en-tête MBAP et passe par TCP/IP.

Le registre 40001 correspond-il toujours à l'adresse zéro ?

Non. 40001 désigne souvent le premier holding register, souvent représenté par l'adresse zéro dans la requête. Les manuels, pilotes et passerelles peuvent afficher ou demander les adresses autrement. Vérifiez la convention de l'appareil et celle du client.

Un routeur industriel ordinaire convertit-il Modbus RTU en Modbus TCP ?

Pas automatiquement. Routage IP et conversion Modbus sont deux fonctions différentes. Le modèle concerné doit offrir un mode passerelle ou conversion; sa documentation doit expliquer le rattachement des appareils série et des requêtes de registre.

Quelles informations fournir pour diagnostiquer une connexion Modbus ?

Indiquez l'appareil et son firmware, la variante RTU/ASCII/TCP, les rôles client/serveur, les paramètres série ou IP, l'identifiant d'appareil, la table de registres, le code fonction demandé, la convention d'adresse et le codage de la valeur. Ajoutez une courte capture requête/réponse si l'équipement le permet.

Une connexion au port TCP 502 prouve-t-elle que Modbus est prêt ?

Non. Elle établit seulement qu'un chemin TCP et un service répondent. Envoyez une requête Modbus documentée en lecture seule et vérifiez fonction, Unit Identifier s'il est utilisé, adresse et valeur interprétée.

Que signifie une exception Modbus renvoyée par l'appareil ?

La trame a atteint un endpoint Modbus. Examinez l'exception, la fonction demandée et la plage d'adresses avant de modifier les routes. Le manuel précise les opérations et les points réellement implémentés.

Peut-on tester une écriture pendant la mise en service ?

Lisez d'abord un point documenté en lecture seule. Une écriture peut modifier un procédé actif ; elle exige l'accord du responsable, une cible connue, une vérification du résultat et une possibilité de retour sûr.

Références

MODBUS Application Protocol Specification V1.1b3 — Modèle de données, adressage, formats des codes fonction, limites de quantité et réponses d’exception.

MODBUS over Serial Line Specification and Implementation Guide V1.02 — Adressage série, tramage RTU/ASCII, temporisation, parité, bits d’arrêt et mise en œuvre physique.

MODBUS Messaging on TCP/IP Implementation Guide V1.0b — En-tête MBAP, échanges client/serveur TCP et intégration des passerelles.

Posts récents

Voir tout
bottom of page