Définition du protocole Modbus RTU
Modbus RTU (Remote Terminal Unit) est un protocole de communication série Modbus conçu pour les systèmes d'automatisation industrielle.
Il facilite notamment l'échange de données entre divers dispositifs, tels que des capteurs, des actionneurs et des contrôleurs, connectés à un canal de communication partagé.
Nous examinerons ici les principales caractéristiques du protocole Modbus RTU qui mettent en évidence sa simplicité, sa fiabilité et sa large utilisation dans différents secteurs d'activité.
Structure de trame Modbus
La structure de trame RTU constitue l'épine dorsale du protocole de communication Modbus RTU, définissant l'organisation et la transmission des données Modbus entre les appareils. Cette transmission est assurée par la couche transport, qui englobe les protocoles et les techniques utilisés pour garantir un transfert de données fiable et efficace. Une trame Modbus RTU se compose de plusieurs éléments qui permettent une transmission efficace et précise des données. La structure de la trame comprend les éléments suivants :
- Adresse de l'esclave (1 octet) : Ce champ est un identifiant unique attribué à chaque appareil esclave du réseau, permettant à l'appareil maître de communiquer avec des appareils esclaves spécifiques. Comme il s'agit d'une valeur de 8 bits, elle peut être comprise entre 0 et 247.
- Code de fonction (1 octet) : Il s'agit d'un code numérique qui spécifie le type d'action ou de demande effectuée par l'appareil maître, comme la lecture ou l'écriture de données.
- Données : Le champ de données est le message modbus réel transmis, qui peut être les valeurs écrites ou lues dans les registres de l'esclave. La taille peut varier en fonction du code de fonction et de l'opération spécifique à effectuer.
- Contrôle d'erreur (2 octets) : Modbus RTU utilise un contrôle de redondance cyclique (CRC) pour vérifier les erreurs. Il permet de vérifier l'intégrité des données transmises et de détecter les erreurs de communication potentielles.
- Période de silence : La période de silence est le temps mort entre deux trames consécutives, pendant lequel la ligne de communication reste silencieuse. Il s'agit d'une période minimale qui sépare deux trames, indiquant le début et la fin du message. La période de silence joue un rôle crucial dans la synchronisation des trames et contribue à garantir la fiabilité de la transmission des trames Modbus RTU sur la ligne de communication.
La combinaison de ces composants permet un échange de données efficace et fiable entre les appareils d'un réseau Modbus RTU.
Adressage Modbus RTU
L'adressage Modbus RTU est essentiel pour garantir que les données sont envoyées et reçues par les bons appareils. Il existe différents types d'adresses utilisés dans Modbus RTU :
- Adresses esclaves : Chaque dispositif esclave du réseau se voit attribuer une adresse unique, comprise entre 1 et 247. L'appareil maître utilise ces adresses pour communiquer avec des appareils esclaves spécifiques. Les valeurs 248 à 255 sont réservées à d'autres fins.
- Adresses de données : Modbus RTU utilise un système d'adressage hiérarchique pour les données, qui comprend quatre types principaux d'objets de données : les bobines, les entrées discrètes, les registres d'entrée et les registres de maintien. Chaque objet de données a une plage d'adresses spécifique, ce qui permet au dispositif maître d'accéder aux données souhaitées dans un dispositif esclave.
Dans Modbus RTU, les données d'un seul bit sont généralement échangées entre les appareils à l'aide de bobines ou d'entrées discrètes. Les bobines représentent les sorties, permettant aux signaux de commande d'être envoyés du maître à l'esclave, tandis que les entrées discrètes représentent les entrées surveillées par l'esclave et fournissent des informations d'état au maître. La nature monobloc de Modbus RTU permet un contrôle et une surveillance efficaces et précis des signaux numériques individuels dans les applications industrielles.
Voyons comment fonctionne l'adressage des données dans Modbus RTU, à l'aide d'un exemple.
La communication Modbus RTU implique l'échange de données par l'intermédiaire des registres Modbus, qui sont des emplacements de mémoire prédéfinis dans les dispositifs esclaves. Les registres Modbus peuvent contenir différents types de données, tels que des registres de maintien pour les valeurs numériques ou des bobines pour les états d'un seul bit. L'appareil maître peut lire ou écrire dans ces registres Modbus, ce qui permet un accès efficace et normalisé aux données critiques au sein du réseau Modbus RTU.
Considérons un scénario dans lequel vous souhaitez lire les données du registre de maintien d'un dispositif esclave, adressé à 17. L'adresse de départ des 3 registres est comprise entre 40108 et 40110. Cela correspond à la valeur hexadécimale 6B (en soustrayant 40108 de la valeur de décalage 40001, on obtient 107, ce qui correspond à 6Bh). Comme la fonction à exécuter est la lecture du registre de maintien des sorties analogiques, le code de fonction sera 03.
La commande appropriée pour effectuer cette opération sera 11 03 006B 0003 xxxx.
- 11 : C'est l'équivalent hexadécimal de 17, l'identifiant de l'esclave.
- 03 : code de fonction pour la lecture des données du registre de maintien.
- 6B : équivalent hexadécimal de la première adresse enregistrée.
- 0003 : Nombre de registres nécessaires.
- xxxx : Somme de contrôle CRC.
La commande ci-dessus entraîne une réponse de l'appareil esclave avec les valeurs de registre stockées qui ont été adressées par l'appareil maître.
En utilisant un système d'adressage bien défini, Modbus RTU garantit un échange de données précis et efficace entre les appareils d'un système d'automatisation industrielle.