-->

samedi 2 mars 2019

Comment fonctionne le protocole de communication Modbus?

Comment fonctionne le protocole de communication Modbus?

Dans la vidéo précédente, vous avez appris le protocole de communication Modbus et les types de communication Modbus utilisés dans le secteur. Comme promis, dans cette vidéo, vous allez découvrir comment fonctionne le protocole de communication Modbus entre les périphériques.

image

1. Structure de message du protocole Modbus

Chaque message Modbus a la même structure. Quatre éléments de base sont présents dans chaque message. La séquence et l'ordre de ces éléments sont les mêmes pour tous les messages. Cela permet une analyse facile du contenu du message Modbus.

Une conversation est toujours lancée par un maître du réseau Modbus. Un maître Modbus envoie un message et, en fonction du contenu du message, l'esclave interprète le message et y répond.


L'adressage esclave physique dans l'en-tête du message est utilisé pour définir le périphérique esclave qui doit répondre à un message. Tous les autres nœuds du réseau Modbus ignorent le message si le champ d'adresse ne correspond pas à leur propre adresse.


image

Les fonctions Modbus exécutent des instructions de lecture et d’écriture dans les registres de la mémoire interne de l’esclave pour configurer, surveiller et contrôler les entrées et les sorties de l’esclave.

1.1. Dispositifs de protocole Modbus

Les dispositifs à protocole Modbus incluent généralement une carte de registre indiquant où la configuration, les données d'entrée et de sortie peuvent être écrites et lues. Vous devez toujours vous référer à la carte de registre de l’esclave de votre appareil pour mieux comprendre son fonctionnement général.

Le modèle de données Modbus a une structure simple décrite dans quatre types de données de base:

1. Entrées discrètes

2. Sorties de bobines

3. Registres d'entrée (Données d'entrée)


4. Registres de maintien (données de sortie)


image

1.2. Unité de données de protocole Modbus (PDU)

La zone de demande de service du message ou de l’unité de données du protocole Modbus ou de l’unité PDU comprend:

- Code de fonction.


- Un nombre d'octets «données» demandé par  le maître.

image

Les registres de mémoire Modbus d'un appareil s'organisent autour des quatre types de référence de données de base. Ce type de données est également identifié par le numéro principal utilisé dans l'adresse de la mémoire de l'appareil, par exemple:

- Registre basé sur zéro (0) référençant un message à lire ou écrire «bobines ou sorties discrètes».

- Un (1) registre basé référençant la lecture «entrées discrètes».

- Trois (3) registres basés sur la référence «registres d’entrée».

- Quatre (4) registres basés référençant Lecture ou Écriture à des «registres de sortie ou de maintien».

1.2.1. Message Modbus «Champ de code de fonction»

Le «champ de code de fonction» spécifie le groupe de données de registre qu'il lit ou écrit vers et depuis l'esclave.

Par exemple, un code de fonction 03, lu dans les registres de stockage 40001-40002, est appelé registre de données 0000 dans le champ d'adresse de données du message envoyé à l'esclave.


Le code de fonction 03 fonctionne sur le type de registre de maintien (4xxxx) dans la mappe de données de l’esclave, car la demande spécifie l’utilisation d’une opération de type de données du registre de maintien et l’adressage 4xxxx dans la demande est implicite.

image

Les champs de la PDU sont décomposés en octets et regroupés par nom de champ.

Le message de demande contient:

- L'adresse esclave de 01.

- Le “Code de fonction” de 03 (Lecture des registres de stockage 4xxxx).

- Les «adresse de départ» HI et LO octets (0000) qui spécifient le «registre de départ».


- Le «nombre d'adresses» à lire dans l'esclave, les octets HI et LO de la valeur de comptage (0002) spécifiant le «nombre de registres» à lire dans l'esclave.

image

Exemple de demande de "lecture" des "deux premiers registres" dans la zone "Registre de maintien" 0 à 1 (registres 40001 à 40002) à partir de l'esclave 1 est présenté ci-dessous.

image


Il est révélé dans l'image ci-dessus que le registre de maintien 40108 est effectivement adressé en tant que registre 107 dans la zone de données de message de la PDU.

Beaucoup de types de données sont nommés à partir de son utilisation; Par exemple, une sortie physique à un bit s'appelle une bobine et une entrée physique à un bit s'appelle une entrée discrète ou un contact.


image


Le champ de code de fonction du message contiendra un octet indiquant à l'esclave le type d'action à exécuter.

Les codes de fonction valides sont compris entre 1 et 255, mais tous les codes ne s'appliqueront pas à un esclave particulier.


Le tableau présenté dans l'image ci-dessous met en évidence un sous-ensemble de fonctions de protocole Modbus standard.

image

1.2.2. Message «Modbus» du champ Modbus

De plus, le champ «données» de la demande du maître fournit à l’esclave toutes les informations supplémentaires requises par l’esclave pour mener à bien l’action spécifiée par le «code de fonction» dans la demande du maître.

La demande du capitaine comprend généralement:

- L'adresse du registre de carte esclave.

- Le nombre de registres à fournir dans la requête.

- Toute écriture de données du maître.

2. Traitement des erreurs de message Modbus

La réponse normale de l’esclave reprend simplement le code de fonction original de la demande, mais la réponse d’erreur de l’esclave renvoie un code équivalent au code de fonction d’origine avec le bit de poids fort défini sur logique 1.

Par exemple, la commande «Lire les registres de maintien» (code de fonction 03) a le code de fonction avec 1 octet contenant 8 bits est binaire 0000 0011 (03 Hex). Si le périphérique esclave accepte la demande sans erreur, il retournera le même code dans sa réponse.

Toutefois, si une erreur se produit, l’esclave renvoie 1 octet contenant 8 bits binaires 1000 0011 (le bit le plus significatif défini sur logique 1) dans le champ «code de fonction» et ajoute un code unique (code d’exception) dans «données». champ du message de réponse indiquant au périphérique maître le type d'erreur survenu ou la raison de l'erreur.


3. Codes de fonction les plus courants de Modbus RTU

Ce code de fonction 01, «Lire les bobines», permet de lire de 1 à 2000 registres contigus indiquant l’état des bobines dans un appareil esclave. La PDU de demande spécifie l’adresse de la première bobine des registres de mémoire de l’esclave et le nombre de bobines à lire à partir du périphérique esclave.

Le code de fonction 02, code «Lire entrée discrète», permet de lire de 1 à 2000 l'état contigu des sorties TOR dans un esclave distant. L’unité PDU de demande spécifie la première adresse d’entrée des registres de mémoire de l’esclave et le nombre d’entrées à lire à partir du périphérique esclave.

Le code de fonction 03, code «Read Holding Registers», permet de lire le contenu d’un bloc contigu de registres de maintien dans un esclave distant. L'unité PDU de demande spécifie l'adresse du registre de départ et le nombre de registres à lire à partir du périphérique esclave.

Le code de fonction 04, code «Lire les registres d’entrée», permet de lire entre 1 et 125 registres d’entrée contigus dans un appareil distant. L'unité PDU de demande spécifie l'adresse du registre de départ et le nombre de registres.


Le code de fonction 05, code «Write Single Coil», permet d’écrire une seule sortie sur ON ou OFF dans un appareil esclave distant.

Le code de fonction 06, code «Write Single Register», permet d’écrire un seul registre de maintien dans un appareil esclave distant. L'unité PDU de demande spécifie l'adresse de l'adresse du registre de mémoire esclave dans laquelle écrire.

Le code de fonction 15, code «Écrire plusieurs bobines», permet de forcer chaque bobine d'une séquence de bobines à être activée ou désactivée dans un appareil esclave distant. La PDU de demande spécifie l'adresse mémoire des bobines à forcer sur ON ou OFF.


Et le code de fonction 16, «Ecrire plusieurs registres», permet d’écrire un bloc de registres contigus de 1 à 123 registres dans un appareil esclave distant.

Bien que ces codes de fonction Modbus représentent les fonctions de lecture et d'écriture les plus courantes, il serait utile de consulter les spécifications du protocole Modbus pour obtenir des informations supplémentaires.

Et pour plus d'informations sur les différents protocoles utilisés avec l'automatisation, consultez cette page Web.

4. Logiciel de simulateur de protocole Modbus

La communication avec des périphériques esclaves, des automates maîtres ou des ordinateurs peut être réalisée avec le logiciel de simulateur Modbus pour s'exécuter sur votre ordinateur personnel.

La connexion peut être série ou Ethernet et sous la forme d'un maître ou d'un esclave. Le logiciel vous permettra d’exécuter tout le code de la fonction de communication de protocole Modbus pour lire ou écrire sur un esclave existant.


Vous pouvez configurer un ordinateur pour exécuter le logiciel de simulation esclave et un autre pour exécuter le logiciel de simulation maître.

image


La connexion à un esclave est d'abord effectuée en définissant les paramètres de communication pour votre port COM série.


Ensuite, en entrant l’adresse de l’esclave dans le champ ID d’appareil, par exemple 1, en sélectionnant le code de fonction 01 pour lire les bobines de l’esclave, indiquant l’adresse 0001 et en lisant une longueur de 100 bobines.


En outre, plusieurs sociétés proposent des produits et une assistance pour vous aider avec la communication de protocole. ProSoft Technologies, HMS Industrial Communication et MOXA en sont quelques-uns.

Ceci conclut l’article, Comment fonctionne le protocole de communication Modbus. J'espère que vous avez appris ce qu'il faut faire pour créer votre propre projet de contrôle du mouvement.

Merci encore pour la lecture. Laissez vos questions et commentaires et nous discuterons avec vous bientôt!

Bonne apprentissage

NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
Disqus
Blogger
حدد نظام التعليق الذى تريده ... وأترك تعليقك

Aucun commentaire

NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
 

About

-->