Introduction
On ne présente plus modbus RTU dans le monde l’automatisme industriel. Ce protocole de communication série permet l’échange de données entre les équipements de contrôle et les dispositifs de terrain. Il utilise des interfaces physiques comme RS-485 et RS-232 pour transmettre des informations dans les environnements industriels.
Pour ceux qui ne sont pas encore initiés cet article vous présentera le fonctionnement de Modbus RTU et ses applications pratiques.
Principes fondamentaux du protocole Modbus RTU
Caractéristique du réseau Modbus RTU
Les performances des protocoles de communication sont déterminées par plusieurs facteurs comme la vitesse de communication, la distance maximale de transmission et la topologie de réseau utilisée.
- Vitesse de communication : De 1200 à 115200 bauds (vitesses les plus courantes est de 9600 ou 19200 bauds).
- Distance de transmission : La distance maximale de communication dépend du type de câble et de la vitesse de communication configurée :
- Câble RS-485 :
- A 9600 bauds, la longueur maximale : environ 1200 mètres.
- À des débits plus élevés, comme 115200 bauds : 400 à 500 mètres
- Câble RS-232 :Longueur maximale : 15 mètres
- Câble RS-485 :
- Topologie de réseau : Modbus RTU utilise une topologie en bus ou en chaîne, permettant de connecter jusqu’à 32 dispositifs (1 maître et 31 esclaves) sur un réseau. Au-delà, des répéteurs ou convertisseurs sont nécessaires pour étendre la portée ou ajouter plus d’appareils.
Les modes de communication maître/esclave
Modbus RTU fonctionne selon le principe maître/esclave :
Les types de données échangés via Modbus RTU
On distingue plusieurs types/format de données qui peuvent être échangés dans un réseau Modbus :
Type d’objet | Description |
---|---|
Coils | Interrupteurs binaires activés/désactivés qui peuvent être lus et modifiés via Modbus. Utilisés couramment pour contrôler des relais ou d’autres dispositifs d’entrée/sortie booléens. |
Discrete Inputs | Entrées binaires qui ne peuvent être que lues. Ces entrées sont typiquement utilisées pour des capteurs ou tout autre dispositif d’entrée fournissant un état binaire, comme un bouton-poussoir ou un interrupteur de limite. |
Input Registers | Registres de 16 bits qui ne peuvent être que lus. Ils sont souvent utilisés pour lire les entrées numériques de dispositifs de mesure comme les capteurs de température ou les compteurs d’énergie. |
Holding Registers | Registres de 16 bits qui peuvent être lus ou écrits. Ils sont utilisés pour stocker et récupérer des valeurs numériques utilisées par l’application. |
Multiple Registers | Réfère à des opérations sur plusieurs registres simultanément, soit pour la lecture ou l’écriture, permettant des transferts de données plus efficaces et groupés. |
Les codes fonctions Modbus
Les codes de fonction Modbus définissent les actions à réaliser, comme la lecture ou l’écriture de données. Voici quelques exemples de codes courants :
Code de fonction | Description |
---|---|
01 | Lire les bobines (Read Coils) : Lit l’état des variables binaires dans un dispositif esclave. |
04 | Lire les registres d’entrée (Read Input Registers) : Lit la valeur des registres d’entrée de 16 bits, souvent utilisés pour des données de capteurs (lecture seule). |
05 | Forcer une bobine (Write Single Coil) : Modifie l’état d’une bobine (0 ou 1). Utilisé pour contrôler une sortie numérique telle qu’un relais ou un moteur. |
06 | Écrire dans un registre de maintien (Write Single Holding Register) : Écrit une valeur dans un registre de maintien de 16 bits. Utilisé pour mettre à jour des paramètres de configuration. |
16 | Écrire plusieurs registres de maintien (Write Multiple Holding Registers) : Modifie plusieurs registres simultanément. |
Implémentation de Modbus RTU dans l’automatisation industrielle
Ok maintenant qu’on a vu les principes de base passons à la pratique (concrètement comment met on en place une communication Modbus RTU. premièrement on parlera de la couche hardware puis de la couche software.
Couche physique (harware)
Pour commencer on va parler de la couche physique pour installer un réseau modbus RTU. Pour ca on peut utiliser différents connecteurs :
Couche logiciel (software)
Après avoir installé la couche physique (hardware) passons à la couche logiciel (software).
L’exemple est tiré d’une configuration sur le logiciel CodeSys de programmation d’automate, on retrouve l’arborescence décrite ci-dessus.
1 Config port série Modbus RTU
Cette section contient des champs pour définir les paramètres de communication du port série Modbus.
- COM Port : Permet de sélectionner le numéro de port COM utilisé pour la communication.
- Débit en bauds : Définit la vitesse de transmission en bauds. Ici, la vitesse est réglée à 9600 bauds.
- Parité : Option pour définir le type de parité (None, Even, Odd). Ici, elle est configurée sur « EVEN » pour la parité paire.
- Bits de données : Spécifie le nombre de bits de données dans chaque unité de transmission.
- Bits d’arrêt : Nombre de bits d’arrêt utilisés pour terminer une unité de transmission.
2 Config maitre Modbus RTU
- Mode de transmission :
- RTU pour une transmission binaire efficace et rapide.
- ASCII pour une transmission en texte clair, plus facile à débugger.
- Délai d’expiration de réponse (ms) : Ce paramètre détermine combien de temps le maître attend une réponse de l’esclave avant de considérer la requête comme perdue.
- Temps entre les télégrammes (ms) : Ce temps garantit un intervalle suffisant entre l’envoi de deux messages pour éviter les interférences.
- auto-restart communication : Si activée, cette fonction permet de redémarrer automatiquement la communication en cas de problème.
3 Config escalve Modbus RTU
- Adresse esclave [1..247] :Numéro d’identification de l’esclave sur le réseau Modbus, permettant au maître de cibler spécifiquement cet esclave pour la communication. Le numéro peut varier de 1 à 247.
- Délai d’expiration de réponse [ms] : Temps maximum en millisecondes que le maître attendra pour recevoir une réponse de cet esclave après avoir envoyé une requête.
4 Config trame modbus RTU
- Canal : Déclaration d’un réseau Modbus.
- Nom :indique le nom attribué à ce canal de communication (utilisation interne au programme). Il est conseiller de donné un titre évocateur.
- Type d’accès : fonction utilisée pour lire ou écrire les différents types de variables (liste des fonctions Modbus plus haut dans l’article)
- Déclencheur : « Cyclic » pour que la lecture est effectuée de manière cyclique à intervalle de temps régulier.
- Registre : paramètre relatif au champs de donnée qui va être lu.
- Offset : Définit l’adresse de départ à partir de laquelle les registres seront lus par le maitre en fonction des emplacements modbus de l’esclave (se référer à la doc du composant esclave pour paramétrer)
- Longueur : spécifie le nombre de registres à lire ou écrire à partir de l’offset.
- Gestion d’erreurs : Choisir de « Conserver dernière valeur » ou « remettre à zéro » quand on a une erreur
5 Config esclave Modbus RTU
- Variable :Chaque variable est mappée à un canal spécifique pour la communication Modbus.
- Mappage : Chaque variable peut être mappée a une variable interne au programme
- Canal : Chaque variable est associée à un canal, préalablement définît
- Type : Définit le type de variable que la trame Modbus va lire
- Description : On retrouve ici le type de fonction Modbus utilisé (ici lecture seule de registre)
Les conseils bien intégré Modbus RTU
Pour une intégration optimale, suis ces bonnes pratiques :
- Utilise une topologie en chaîne pour les réseaux RS-485.
- Choisis des câbles de haute qualité, comme les paires torsadées CAT5E.
- Installe une résistance de terminaison de 120 ohms en fin de ligne.
- Applique des techniques de mise à la terre appropriées pour réduire le bruit électrique (perturbation électromagnétique).
Gestion des erreurs et dépannage
Mécanismes de détection d’erreurs
Le protocole Modbus RTU utilise un contrôle de redondance cyclique (CRC) pour détecter les erreurs de transmission. Le CRC est un algorithme mathématique qui calcule une valeur de contrôle basée sur le contenu de la trame. L’émetteur ajoute cette valeur à la trame, et le récepteur la recalcule à la réception. Si les valeurs correspondent, la trame est considérée comme sans erreur. Sinon, une erreur est détectée et le récepteur peut demander une retransmission.
Codes d’exception Modbus RTU
Lorsqu’un appareil esclave rencontre une erreur lors du traitement d’une requête, il répond avec un message d’exception contenant un code d’erreur. Ces codes fournissent des informations sur la nature de l’erreur.
Techniques de résolution des problèmes courants sur Modbus RTU
Pour résoudre les problèmes de communication Modbus RTU, tu peux suivre ces étapes :
Ma méthode consiste à toujours considérer la couche hardware en premier pour cela :
- Vérifie le câblage et les connexions entre les appareils. ainsi que la polarité du bus RS-485
- Vérifie qu’il n’y a pas de problème d’alimentation des composants maitre ou esclave
- Identifie les sources potentielles de bruit électrique (perturbation électromagnétique) ou d’interférences qui pourraient affecter la communication
Ensuite considère la couche software
- Analyse les codes d’erreur retournés par les appareils esclaves.
- Assure toi que la configuration des appareils maître et esclave est correcte (tous les appareils sur le réseau ont la même parité et la même vitesse de communication)
- Vérifie que l’adresse de l’esclave dans la requête du maître correspond à l’adresse réelle de l’esclave.
- Ajuste les paramètres de temporisation pour tenir compte des délais de communication.
Si les appareils reçoivent des données incohérentes
- Inspecte le schéma d’adressage des données pour vérifier que tu vas chercher le bon type de donnée avec le bon offset à la bonne adresse d’esclave avec le bon code fonction Modbus.
- Vérifie également que les variable interne à ton programme qui sont mappé sont cohérente avec les types de variable lue ou écrite sur l’esclave
Applications et cas d’utilisation de Modbus RTU
Systèmes de contrôle industriel
Modbus RTU est largement utilisé en automatisme industrielle. Il permet une communication entre divers appareils comme les automates programmables (API), les interfaces homme-machine (IHM), les systèmes SCADA ou des appareils de mesure. Dans les usines, centrales électriques et raffineries, Modbus RTU surveille et contrôle les équipements et processus.
Gestion technique du bâtiment
Modbus RTU est également utilisé pour les systèmes de gestion technique (GTB). Il transmet les informations des dispositifs de contrôle vers le contrôleur central et permet de collecter localement les données de capteurs (électricité, eau, gaz, qualité de l’air) et de les centraliser dans une interface conviviale.
Intégration avec d’autres protocoles
Modbus RTU s’intègre facilement à d’autres protocoles :
- HART : Des convertisseurs HART vers Modbus permettent d’extraire les données HART.
- Réseaux sans fil : Modbus fonctionne sur des liaisons radio, réduisant les coûts de câblage.
- Ethernet : Modbus TCP offre plus d’adresses et des vitesses supérieures.
- IoT industriel : Modbus s’intègre aux dispositifs IoT.
Limites de Modbus RTU et Alternatives
Bien que Modbus RTU soit largement utilisé dans l’automatisme industrielle, il présente certaines limites qui peuvent affecter son efficacité dans des environnements modernes.
Premièrement, sa nature série et sa dépendance aux topologies de réseau peuvent limiter la vitesse et la distance de communication, ce qui est moins adapté aux grands systèmes distribués. De plus, Modbus RTU ne supporte pas nativement la sécurité des données, rendant les communications vulnérables aux interférences et aux attaques malveillantes.
Face à ces défis, plusieurs alternatives ont émergé :
- Modbus TCP/IP : Une évolution de Modbus RTU qui utilise le protocole TCP/IP pour la communication sur des réseaux Ethernet
- EtherNet/IP : Un autre protocole industriel basé sur Ethernet qui supporte la communication en temps réel et est utilisé pour des applications nécessitant de hauts niveaux de données et une intégration système avancée.
- Profinet : Orienté principalement vers les applications industrielles, Profinet est conçu pour la collecte de données à grande échelle et la commande en temps réel.
Conclusion
Modbus RTU s’impose comme un protocole incontournable dans l’automatisation industrielle. Il assure la communication entre les équipements de contrôle et les dispositifs de terrain.
Ce type de protocole de communication s’intègre de la gestion technique du bâtiment aux systèmes de contrôle industriel.
Cependant aujourd’hui de nouvelles alternatives basées notamment sur des réseaux Ethernet permettent plus de fiabilité, de sécurité et d’adaptabilité.