Dans le monde réel de la communication automatisée, un dialogue entre dispositifs se produit systématiquement, dans de nombreux cas, sur différents types de réseaux de communication et dans différentes langues.

Selon le fabricant d’équipements d’automatisation des procédés, on peut utiliser soit un langage très spécifique ou langage propriétaire soit un langage communément utilisé par l’industrie (ouvert à cette industrie). Ce sont ces protocoles ouverts que de nombreux fabricants adaptent pour intégrer facilement leurs produits dans un marché.

Un « protocole Open Source » signifie que les spécifications sont publiées et peuvent être utilisées par n’importe qui, librement ou sous licence. Les protocoles ouverts sont généralement soutenus par une combinaison de sociétés, de groupes d’utilisateurs et de sociétés professionnelles. Cela permet aux utilisateurs de disposer d’un choix beaucoup plus large de dispositifs ou de systèmes pouvant être utilisés pour répondre à des applications spécifiques. Les avantages des protocoles Open Source comprennent le soutien de plusieurs fabricants, vendeurs de logiciels et organisations d’installation ou de service la possibilité de rester à jour et d’ajouter des fonctionnalités à l’avenir.

Le protocole Modbus est l’un des protocoles de communication les plus utilisés aujourd’hui pour connecter des appareils à un réseau industriel.

 

1. Qu’est-ce que le Modbus exactement ?

Modbus est un protocole de communication développé par la société américaine Modicon. En termes simples, il s’agit d’une méthode utilisée pour transmettre des informations sur des lignes série entre des appareils électroniques. L’appareil qui demande l’information est appelé le maître Modbus et les appareils qui fournissent l’information sont les esclaves Modbus.

Dans un réseau Modbus standard, il y a un maître et jusqu’à 247 esclaves, chacun ayant une adresse unique de 1 à 247. Le maître peut également écrire des informations aux esclaves.

 

2. Comment fonctionne-t-il ?

Les données Modbus sont transmis sur des lignes série entre les appareils. La configuration la plus simple serait un simple câble série reliant les ports série de deux appareils, un maître et un esclave.

Les données sont envoyées sous forme de séries de 1 et de 0 appelées bits. Chaque bit est envoyé sous forme de tension. Les 0 sont envoyés sous forme de tension positive et les 1 sous forme de tension négative. Les bits sont envoyés très rapidement. Une vitesse de transmission typique peut aller jusqu’à  9600 bits par seconde.

 

3. Qu’est-ce que la RTU dans Modbus ? Que signifie Modbus TCP ?

Modbus RTU est souvent utilisé pour connecter un ordinateur de supervision avec une unité terminale distante (remote terminal unit : RTU) dans les systèmes de contrôle et d’acquisition de données de supervision (SCADA).

Modbus TCP/IP (également Modbus-TCP) est simplement le protocole Modbus RTU avec une interface TCP qui fonctionne sur Ethernet. La structure de messagerie Modbus est le protocole d’application qui définit les règles d’organisation et d’interprétation de données indépendamment du support de transmission des données.

 

4. Qu’est-ce que l’hexadécimal ?

Lors de la résolution de problèmes, il peut être utile de voir les données brutes réelles transmises. Les longues chaînes de 1 et de 0 sont difficiles à lire, c’est pourquoi les bits sont combinés et affichés en hexadécimal. Chaque bloc de 4 bits est représenté par l’un des 16 caractères de 0 à F ci-dessous :

0000 = 0 0100 = 4 1000 = 8 1100 = C
0001 = 1 0101 = 5 1001 = 9 1101 = D
0010 = 2 0110 = 6 1010 = A 1110 = E
0011 = 3 0111 = 7 1011 = B 1111 = F

Chaque bloc de 8 bits (appelé octet) est représenté par l’une des 256 paires de caractères de 00 à FF.

 

5. Comment les données sont-elles stockées dans le Modbus standard ?

Les informations sont stockées dans le dispositif Esclave dans quatre tables différentes. Deux tables stockent des valeurs discrètes de marche/arrêt (bobines) et deux autres stockent des valeurs numériques (registres). Les bobines et les registres possèdent chacun une table de lecture unique et une table de lecture-écriture. Chaque table contient 9999 valeurs. Chaque bobine ou contact est de 1 bit et se voit attribuer une adresse de données entre 0000 et 270E. Chaque registre est de 1 mot = 16 bits = 2 octets et possède également une adresse de données entre 0000 et 270E.

Numéros de bobines/registres Adresses de données Type Nom de la table
1-9999 0000 à 270E Lecture-écriture Bobines à sortie discrète
10001-19999 0000 à 270E Lecture seule Contacts pour les entrées discrètes
30001-39999 0000 à 270E Lecture seule Registres d’entrée analogique
40001-49999 0000 à 270E Lecture-écriture Registres de conservation des sorties analogiques

Les numéros de bobines/registres peuvent être considérés comme des noms de lieux puisqu’ils n’apparaissent pas dans les messages proprement dits. Les adresses de données sont utilisées dans les messages.

 

6. Quel est l’identifiant de l’esclave ?

Chaque esclave d’un réseau se voit attribuer une adresse d’unité unique allant de 1 à 247. Lorsque le maître demande des données, le premier octet qu’il envoie est l’adresse de l’esclave. De cette façon, chaque esclave sait après le premier octet s’il doit ou non ignorer le message.

 

7. Qu’est-ce qu’un code de fonction ?

Le deuxième octet envoyé par le maître est le code de fonction. Ce numéro indique à l’esclave à quelle table il doit accéder et s’il doit lire ou écrire dans la table.

Code de fonction Action Nom de la table
01 (01 hex) Lecture Bobines de sortie discrète
05 (05 hex) Écriture seule Bobine de sortie discrète
15 (0F hex) Écriture multiple Bobines de sortie discrète
02 (02 hex) Lecture Contacts pour les entrées discrètes
04 (04 hex) Lecture Registres d’entrées analogiques
03 (03 hex) Lecture Registres de conservation des sorties analogiques
06 (06 hex) Écriture seule Registre de conservation des sorties analogiques
16 (10 hex) Écriture multiple Registres de conservation des sorties analogiques

8. Qu’est-ce qu’un CRC ?

CRC signifie Cyclic Redundancy Check (contrôle de la redondance cyclique). Il s’agit de deux octets ajoutés à la fin de chaque message Modbus pour la détection des erreurs. Chaque octet du message est utilisé pour calculer le CRC. L’appareil récepteur calcule également le CRC et le compare au CRC de l’appareil émetteur. Si un seul bit du message est mal reçu, les CRC seront différents et une erreur se produira.

 

9. Qu’est-ce que l’ordre des octets ?

La spécification Modbus ne définit pas exactement comment les données sont stockées dans les registres. Par conséquent, certains fabricants ont mis en œuvre le Modbus dans leur équipement pour stocker et transmettre le chiffre supérieur d’un octet supérieur en premier, suivi du chiffre inférieur d’un octet. D’autres stockent et transmettent l’octet inférieur en premier.

De même, lorsque des registres sont combinés pour représenter des types de données de 32 bits, certains appareils stockent les 16 bits supérieurs (octet supérieur) dans le premier registre alors que l’octet inférieur reste dans le second tandis que d’autres font le contraire.

L’ordre dans lequel les octets sont envoyés n’a pas d’importance, tant que le dispositif récepteur sait dans quel sens l’envoyer.

10. Qu’est-ce qu’une carte Modbus ?

Une carte Modbus est simplement une liste pour un dispositif esclave individuel qui définit :

  • Quelles sont les données (par exemple, les relevés de pression ou de température)
  • Où sont stockées les données (quelles tables et adresses de données)
  • La manière dont les données sont stockées (types de données, ordre des octets )

Certains appareils sont construits avec une carte fixe qui est définie par le fabricant. Alors que d’autres appareils permettent à l’opérateur de configurer ou de programmer une carte personnalisée pour répondre à ses besoins.

 

Passerelle Modbus Moxa