Guide de communication
Modbus RTU


Dans cet article, nous allons expliquer les différents aspects liés à la communication Modbus RTU. Quelle est la différence entre Modbus RTU et ASCII, entre Modbus RTU et TCP/IP ? Comment tester le protocole Modbus RTU avec un logiciel de supervision dédié.

Sommaire


  1. Qu'est-ce que le protocole Modbus RTU ?
  2. Comment tester Modbus RTU avec Serial Port Monitor
  3. Comment fonctionne Modbus RTU ?
  4. Modbus RTU par rapport à TCP
  5. Modbus RTU par rapport à ASCII

Qu'est-ce que le protocole Modbus RTU ?


Le protocole Modbus RTU est un moyen de communication permettant l'échange de données entre des contrôleurs logiques programmables (PLC) et des ordinateurs. Les appareils électroniques peuvent échanger des informations via des lignes série à l'aide du protocole Modbus.

Ce protocole est très bien supporté et très utilisé dans la gestion technique de bâtiment (BMS) ainsi que les systèmes industriels automatisés (IAS). Son succès est dû à sa simplicité d'utilisation, à sa fiabilité et au fait qu'il soit open source, pouvant être utilisé pour tous types de périphériques et d'applications sans avoir à s'acquitter de droits d'auteur.

Le protocole a été développé et publié par Modicon® en 1979 pour être utilisé avec ses contrôleurs logiques programmables. Il est basé sur une architecture maître/esclave et supporte les périphériques série utilisant les protocoles RS232/RS485/RS422. Modbus intervient souvent dans les cas où de nombreux appareils de mesure et de contrôle doivent transmettre des signaux vers un système ou un contrôleur central pour récupérer des données et les analyser. L'automatisation industrielle et les systèmes de contrôle et d’acquisition de données en temps réel (SCADA) utilisent également le protocole Modbus de manière intensive.

Que signifie Modbus RTU ?


Modbus RTU (Remote Terminal Unit) est l'un des deux modes de transmission définis dans la spécification Modbus originale. Ces deux modes, Modbus RTU et ASCII, sont conçus pour être utilisés avec les périphériques série supportant les protocoles RS232, RS485 et RS422. L'une des caractéristiques spécifiques de Modbus RTU est son utilisation du codage binaire et sa méthode de recherche d'erreurs CRC avancée. Modbus RTU est l'implémentation du protocole Modbus la plus utilisée pour les applications industrielles et les systèmes de production automatisés.

Comment tester Modbus RTU avec Serial Port Monitor


Il existe quelques cas pour lesquels le test de Modbus RTU peut s'avérer très utile. Si vous développez ou déboguez des périphériques ou des applications série, vous devez être à même de pouvoir superviser et analyser la transmission de données entre les périphériques et les applications. Un outil de supervision Modbus RTU est également indispensable si vous êtes en charge de la maintenance du réseau et des périphériques associés dans un environnement de production industrielle automatisée.

Serial Port Monitor est un logiciel performant permettant de tester et de déboguer le protocole Modbus RTU.
Serial Port Monitor logo

Serial Port Monitor

Enregistrez et analysez l'activité des ports série
4.8 Classement basé sur 41+ utilisateurs, Revue(75)
Télécharger 14-jours d’essai entièrement fonctionnel
Serial Port Monitor

Serial Port Monitor d'Eltima est un logiciel Modbus RTU complet permettant de superviser et d'analyser l'ensemble de l'activité de l'interface Modbus RTU de votre système. Tous les périphériques supportant les protocoles RS232, RS485 et RS422 peuvent voir leurs communications supervisées et analysées pour faciliter les tâches de développement ou de débogage.

Cet utilitaire a été conçu avec une interface intuitive et polyvalente, un terminal intégré et des fonctionnalités d'exportation de données. Il peut s'avérer très utile pour diagnostiquer les problèmes de communication Modbus RTU dans un environnement Windows. Voici quelques-unes des principales fonctionnalités de Serial Port Monitor.

  • Analyse de l'activité Modbus RTU. Cet outil de suivi de ports série peut ouvrir n'importe quel port série, même ceux étant déjà ouverts par une autre application, et débuter instantanément la supervision de toute l'activité passant par cette interface. La récupération des données en temps réel vous permet de détecter facilement les erreurs et problèmes. Ces données peuvent être redirigées dans des fichiers ou copiées dans le presse-papiers pour une analyse ultérieure.
  • Supervision simultanée de plusieurs ports série. Cette fonctionnalité vous permet d'observer comment vos applications interagissent avec les ports et les périphériques dans une même session de supervision. Les données capturées sont affichées par ordre chronologique dans un fichier log central pour simplifier leur analyse.
  • Choix du mode d'affichage des données. Quatre modes de vue peuvent être affichés séparément ou simultanément pour vous permettre de visualiser différemment vos données : en tableau, en ligne, en vrac et dans un terminal. La vue en vrac vous offre la possibilité de consulter les paramètres de port, et vous pouvez utiliser des filtres pour limiter le nombre de données affichées et vous concentrer sur les événements qui vous paraissent les plus importants.
  • Émulation de la transmission de données. Vous pouvez envoyer des données vers des périphériques série en différents formats, notamment en chaîne de caractères, en binaire, en décimal et en hexadécimal pour observer le comportement du périphérique série vis-à-vis de chaînes de données ou de commandes spécifiques.
  • Option de lecture de session. Vous pouvez répéter une transmission vers un port série pour obtenir des informations de supervision plus précises. Les sessions peuvent être comparées entre elles et les différences automatiquement mises en valeur pour une analyse simplifiée.
  • Exportation des données analysées en différents formats. Vous pouvez exporter vos données dans un fichier en HTML, en texte ASCII ou UNICODE ou au format CSV Exсel. Il est également possible d'ajouter des données analysées dans un fichier existant.
  • Interface intuitive. Serial Port Monitor est conçu pour accéder à des interfaces et ports série sans aucune notion de programmation. Les filtres permettant de contrôler les données affichées sont facilement personnalisables dans la barre d'outils de l'application.
  • Suivi des codes de contrôle d'entrée/sortie. Vous pouvez obtenir les informations et paramètres complets de tous les codes de contrôle d'entrée/sortie série (IOCTL) grâce à Serial Port Monitor.

Cet outil d'analyse de protocole Modbus RTU est indispensable pour toutes les personnes utilisant de manière régulière des périphériques série et le protocole Modbus. Vous pouvez l'utiliser en mode RTU ou ASCII, ce qui en fait un logiciel polyvalent. Il s'agit d'une solution performante permettant de superviser l'ensemble des interfaces série de votre système sans avoir à installer le moindre matériel supplémentaire. Serial Port Monitor d'Eltima fonctionne sur Windows 10 ainsi que Windows Server 2012 et 2016.

Comment fonctionne Modbus RTU ?


Le protocole Modbus est un système traitant les requêtes et les réponses provenant d'appareils électroniques. L'architecture maître/esclave est utilisée, dans laquelle le maître envoie les requêtes et les esclaves y répondent.

Qu'est-ce qu'un maître Modbus RTU ?

Le maître Modbus RTU est le périphérique central demandant des informations aux périphériques esclaves qui y sont connectés. Un contrôleur central dans un système de production automatisé peut jouer le rôle d'un maître Modbus RTU. Une implémentation Modbus ne peut avoir qu'un seul maître. Les périphériques maîtres collectent les informations des esclaves et peuvent également écrire dans les registres des périphériques esclaves.

Qu'est-ce qu'un esclave Modbus RTU ?

L'esclave Modbus RTU est le périphérique répondant aux requêtes envoyées par le maître. Il ne peut pas initier les transferts d'informations et est en phase d'attente tant qu'il n'a pas à répondre à une requête du maître.

Comme nous l'avons indiqué, il y a un seul périphérique maître dans une implémentation Modbus RTU et il peut y avoir jusqu'à 247 périphériques esclaves. Chaque esclave est identifié par une adresse numérotée de 1 à 247.

Au cœur du protocole Modbus se trouve le composant appelé Protocol Data Unit (PDU). Le PDU se compose de données et d'un code de fonction créés toujours de la même manière quel que soit le mode de transmission Modbus utilisé. Le code de fonction indique quelles données sont demandées par le maître.

Dans le mode de transmission Modbus RTU, des informations supplémentaires sont ajoutées autour du PDU pour former l'Application Data Unit (ADU). En mode Modbus RTU, un identifiant d'esclave de 1 octet est envoyé dans le flux du signal, avant le code de fonction, pour indiquer le périphérique esclave devant répondre à la requête. Un CRC de 2 octets est également ajouté au PDU pour s'assurer que la bonne quantité de données a été envoyée et reçue.

Les périphériques Modbus supportent quatre tableaux de données qui sont utilisés pour faciliter la communication entre eux. Il s'agit des entrées distinctes, sorties distinctes (bobines), registres d'entrée et registres d'attente. Les registres effectuent différentes fonctions et ne sont pas tous inclus dans chaque périphérique. Dans certains cas, seuls les registres d'attente sont utilisés pour les fonctionnalités d'entrée/sortie.

Domaine Accès Taille Description
Entrées distinctes
lecture seule
1 bit
utilisé comme entrée
Sorties bobines
lecture/écriture
1 bit
utilisé pour contrôler la sortie distincte
Registres d'entrée
lecture seule
16 bits
utilisés pour l'entrée
Registres d'attente
lecture/écriture
16 bits
utilisés pour différents éléments tels que les entrées, les sorties, les données de configuration, etc.

Les codes de fonction indiquent comment le maître interagit avec le périphérique esclave spécifié par l'identifiant de ce dernier. Selon le code de fonction envoyé, le périphérique maître peut lire l'un des registres de l'esclave ou y écrire.

Les esclaves renvoient des codes d'erreur lorsqu'ils reçoivent un paquet contenant une erreur de requête. Des codes d'erreur sont envoyés en cas de problèmes tels que la demande d'une fonction illégale, des adresses de registre illégales ne pouvant être contactées par l'esclave indiqué, et des messages indiquant que le périphérique esclave est occupé ou a rencontré un problème.

Modbus RTU vous oblige à connaître ou à définir des paramètres tels que la rapidité de modulation, le format des caractères (8 bits sans parité, etc) et l'identifiant de l'esclave en établissant une communication. Une erreur dans l'un de ces paramètres empêchera toute communication.

Modbus RTU par rapport à TCP


Modbus RTU est l'un des premiers modes de transmission de données ayant été défini dans le protocole Modbus. Modbus TCP est une extension du protocole récemment développée permettant aux protocoles Modbus de pouvoir fonctionner sur des réseaux TCP/IP. La latence inhérente et les autres aspects de la communication sur un réseau ont nécessité quelques modifications sur le mode de synchronisation des requêtes et des réponses entre elles afin d'assurer que des données non souhaitées ne soient pas envoyées par un périphérique esclave.

Modbus TCP met en évidence une différence dans la manière avec laquelle le PDU est empaqueté par rapport à Modbus RTU. Le cadre TCP contenant le PDU débute avec un identifiant de transaction de protocole d'application MODBUS (MBAP) de 2 octets au lieu d'utiliser l'identifiant du périphérique esclave. Le CRC n'a par ailleurs pas besoin d'effectuer une recherche d'erreurs étant donné que la couche TCP effectue déjà cette opération.

Modbus RTU par rapport à ASCII


Étant donné qu'ils faisaient tous les deux partie de la spécification originale du protocole Modbus, vous pouvez vous demander quelle est la différence entre Modbus ASCII et Modbus RTU. Modbus RTU utilise le codage binaire et la méthode CRC pour la recherche d'erreurs. Ces choix ont été faits pour privilégier les performances et constituent la principale raison pour laquelle le mode RTU est le plus utilisé dans les milieux industriels. Comme vous l'avez sans doute deviné, Modbus ASCII utilise des caractères ASCII pour l'envoi de messages.

L'utilisation de caractères ASCII fait que les messages sont plus facilement lisibles par les utilisateurs mais limite également les performances en terme de transmission de données. L'autre principale différence se situe au niveau de la recherche d'erreurs. Modbus ASCII utilise la méthode LRC, qui s'avère relativement moins efficace que la méthode CRC du mode RTU.

Bien que Modbus RTU et Modbus ASCII soient tous les deux conçus pour être utilisés avec des protocoles et périphériques série, ils ne sont pas compatibles entre eux en raison des différences mentionnées ci-dessus. Si vous avez l'habitude d'utiliser des périphériques série, vous devez déjà connaître certains aspects du protocole Modbus.

Serial Port Monitor

Configuration requise: Windows (32-bit et 64-bit): XP/2003/2008/Vista/7/8/10, Windows Server 2012, Windows Server 2012/2016/2019 , 9.16MB taille
Version 7.0.342 (le 13 Jan, 2018) Notes de mise à jour
Catégorie: Communication Application