Un compteur sur un bus RS-485 et le même compteur équipé d’un port Ethernet répondent aux mêmes requêtes Modbus, selon la même table de registres. Seul le transport change : Modbus RTU sur la liaison série et Modbus TCP sur le réseau IP. Sur un site existant, le choix suit généralement l’interface dont l’équipement dispose déjà.
Ce guide fait partie de la série Modbus et RS-485.
Comparaison
| Modbus RTU | Modbus TCP | |
|---|---|---|
| Transport | Liaison série : RS-485, ou RS-232 pour un seul appareil | TCP/IP sur Ethernet ou Wi-Fi |
| Adresse de l’appareil | 1 à 247 sur le bus, 0 pour la diffusion | Adresse IP, plus un identifiant d’unité pour les appareils derrière une passerelle |
| Trame | Adresse, code de fonction, données, CRC sur 16 bits | En-tête MBAP (7 octets), code de fonction, données |
| Contrôle d’erreur | CRC dans chaque trame | Sommes de contrôle TCP ; aucun CRC Modbus |
| Séparation des trames | Silence d’au moins 3,5 temps de caractère | Champ de longueur dans l’en-tête |
| Requêtes simultanées | Une seule à la fois sur le bus | Plusieurs connexions ; l’identifiant de transaction associe chaque réponse à sa requête |
| Réglages courants | Débit, parité, bits d’arrêt, adresse | Adresse IP, port 502, identifiant d’unité |
| Câblage | Paire torsadée en chaîne, avec terminaison aux deux extrémités | Réseau du site |
Le guide RS-485 et Modbus explique la couche série sous Modbus RTU et sa différence avec RS-232. Les codes de fonction, comme 03 pour lire des registres de maintien, 04 pour lire des registres d’entrée et 06 et 16 pour écrire, sont identiques dans les deux variantes. Les types de données, l’ordre des mots et les facteurs d’échelle le sont aussi. Le guide des tables de registres les détaille.
Comparaison des trames
Une requête de lecture de trois registres de maintien à partir de l’adresse 0x006B, sur l’appareil 17, se présente ainsi :
| Variante | Octets (hexadécimal) |
|---|---|
| Modbus RTU | 11 03 00 6B 00 03, puis le CRC sur 2 octets |
| Modbus TCP | 00 01 00 00 00 06 11 03 00 6B 00 03 |
Dans la trame TCP, les sept premiers octets forment l’en-tête MBAP : identifiant de transaction (0x0001), identifiant de protocole (toujours 0 pour Modbus), longueur de la suite (6 octets) et identifiant d’unité (0x11). L’unité de données de protocole qui suit est identique. Le calculateur de CRC et LRC Modbus produit les octets de contrôle RTU :
Temporisation et débit utile
Sur un bus RTU, une seule requête est en cours à la fois. Sa durée comprend la transmission de la requête et de la réponse, le temps de réponse de l’appareil et l’intervalle entre trames. À 9 600 bauds avec parité paire, chaque caractère occupe 11 bits ; un octet prend donc environ 1,15 ms. Le guide Modbus série fixe l’intervalle entre trames à 1,75 ms au-dessus de 19 200 bauds. Le calculateur de temporisation Modbus RTU additionne ces durées pour tout un bus :
Le guide d’interrogation et de nouvelles tentatives montre l’effet d’un seul appareil hors ligne sur ce cycle. En Modbus TCP, le réseau est rarement le facteur limitant ; ce sont généralement le temps de traitement de l’appareil et son nombre maximal de connexions simultanées. De nombreux compteurs n’acceptent que quelques connexions TCP, parfois une seule. Vérifiez cette limite avant que plusieurs systèmes interrogent le même compteur.
Identifiants d’unité et passerelles
Une passerelle série vers Ethernet permet aux clients Modbus TCP de joindre des appareils RTU. Le client envoie une requête TCP à l’adresse IP de la passerelle, en plaçant l’adresse série de l’appareil dans l’identifiant d’unité. La passerelle envoie la requête sur le bus, attend la réponse et la renvoie par TCP.
Trois points exigent de l’attention :
- Identifiant d’unité pour un appareil TCP direct. Le guide Modbus TCP indique que ce champ n’est pas utilisé lorsque le serveur est adressé par son IP et recommande 0xFF. Beaucoup d’appareils l’ignorent ; certains exigent 1 ou leur propre adresse série. Suivez la documentation de l’appareil.
- Délais d’expiration. Le délai TCP du client doit dépasser celui de la liaison série de la passerelle, augmenté de l’attente des autres requêtes sur le bus. Sinon, le client abandonne alors que la passerelle attend encore.
- RTU sur TCP. Certains convertisseurs transmettent les trames RTU, avec leur CRC et sans en-tête MBAP, telles quelles sur une connexion TCP. Ce n’est pas du Modbus TCP et le client doit être configuré dans le bon mode. Le guide des passerelles de protocole distingue un pont d’une passerelle de traduction.
Pour chaque point, consignez l’adresse IP, le port, l’identifiant d’unité et l’appareil physique qui répond. Après le remplacement d’une passerelle, vérifiez d’abord ce routage.
Choisir pour un site
Choisissez le transport déjà présent sur l’équipement :
| Situation | Choix habituel |
|---|---|
| Compteurs avec bornes RS-485 uniquement, dans un ou deux tableaux | Modbus RTU sur un bus court, ou interface locale |
| Équipement avec port Ethernet sur un réseau géré | Modbus TCP, avec un plan d’adressage validé par l’équipe informatique du site |
| Bus RTU existant déjà interrogé par un BMS | Lire les données depuis le BMS ou une passerelle ; n’ajoutez pas un second maître |
| Nombreux appareils série à lire par plusieurs systèmes | Passerelle Modbus TCP devant le bus |
| Compteurs série éloignés du Gateway sans chemin de câble | Interface Modbus sans fil près des compteurs |
Pour les deux variantes, obtenez la table de registres du modèle et du micrologiciel exacts avant de choisir le matériel. La mention « Modbus pris en charge » ne précise pas les valeurs publiées par l’appareil.
Sécurité
Modbus TCP et Modbus RTU ne comportent ni authentification ni chiffrement. Tout client pouvant joindre le port 502 peut lire et, si l’appareil l’autorise, écrire. Protégez-les par la conception du réseau : réseau ou VLAN séparé pour les équipements de commande, règles de pare-feu limitant l’accès aux systèmes qui en ont besoin et aucune exposition à Internet.
La Modbus Organization publie un protocole Modbus Security distinct, qui encapsule Modbus dans TLS avec des certificats X.509 sur le port 802. Les deux extrémités doivent le prendre en charge. Une passerelle devant un appareil Modbus non protégé ne sécurise pas cet appareil ; elle déplace seulement la frontière de sécurité.
Vérifiez les lectures avant toute écriture. Traitez les écritures comme une étape distincte approuvée par le responsable de l’équipement.
Modbus TCP et RTU avec Edge
Edge sur le Gateway ZGW-20 est un client Modbus pour les deux variantes. Il interroge les appareils Modbus TCP du réseau du site, y compris les convertisseurs RTU sur TCP, ainsi que les appareils Modbus RTU raccordés à un port série du Gateway. Chaque connexion possède sa propre file d’attente, ses délais d’expiration et sa fréquence d’interrogation. Pour un compteur qu’aucun câble de données ne peut relier au Gateway, une interface Modbus ZMB le lit sur RS-485 et transmet ses registres par le réseau maillé Zigbee. Edge comprend également un serveur Modbus ; un BMS ou un système SCADA peut ainsi lire les données du site sur le Gateway sous forme de registres Modbus TCP. Le guide de mise en service Modbus RS-485 détaille la partie série.
Questions fréquentes
Quelle différence entre Modbus TCP et Modbus RTU ?
Modbus RTU utilise une liaison série telle que RS-485 : trames binaires, CRC de contrôle d’erreur et un maître qui interroge les appareils par adresse. Modbus TCP utilise un réseau IP : mêmes requêtes dans un en-tête MBAP de 7 octets, envoyées par TCP au port 502, avec contrôle d’erreur assuré par TCP. Les codes de fonction et les tables de registres sont identiques.
Quel port utilise Modbus TCP ?
Le port TCP 502. Le protocole Modbus Security, qui encapsule Modbus dans TLS, utilise le port 802.
Qu’est-ce que l’identifiant d’unité en Modbus TCP ?
Un champ d’un octet de l’en-tête MBAP. Une passerelle l’utilise pour acheminer une requête vers l’appareil série situé derrière elle : il porte donc l’adresse de cet appareil. Pour un appareil Modbus TCP direct, le guide recommande 0xFF, mais beaucoup d’appareils attendent 1 ou acceptent toute valeur.
Qu’est-ce que Modbus RTU sur TCP ?
Une trame RTU, avec son adresse et son CRC, envoyée telle quelle sur une connexion TCP, sans en-tête MBAP. Certains convertisseurs série vers Ethernet fonctionnent ainsi. Ce n’est pas du Modbus TCP ; le client doit être configuré dans le bon mode pour chaque appareil.