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.