Bus de terrain MODBUS

Le protocole :

Un protocole consiste en la définition de trames d'échange. Plusieurs protocoles en été définies. Le protocole le plus connu est le protocole Modbus (marque déposée par MODICON) et Profibus (Siemens) qui sont deux protocoles standards de dialogue basé sur une structure hiérarchisée entre un maître et plusieurs esclaves. Mikroelectronika propose aussi un protocole non standard pour communiquer des microcontrôleurs de type PIC, DsPIC, AVR et Intel. Néanmoins l'utilisateur est libre de définir son propre protocole.

MODBUS

Architecture MODBUS RS485

Il ne peut y avoir sur la ligne qu'un seul équipement en train d'émettre. Aucun esclave ne peut envoyer un message sans une demande préalable du maître. Le dialogue direct entre les esclaves est impossible.
1. Structure des messages :
Le maître envoie un message constitué de la façon suivante:

Trame MODBUS

Le protocole Modbus est très utilisé pour les communications des automates programmables industriels et des variateurs de vitesse des moteurs électriques.

2. Adressage

Les abonnés du bus sont identifiés par des adresses attribuées par l'utilisateur.
L'adresse de chaque abonné est indépendante de son emplacement physique.
Les adresses vont de 1 à 64 pour le protocole Modbus et de 1 à 255 en général et ne doivent pas obligatoirement être attribuées de manière séquentielle.
Deux abonnés ne peuvent avoir la même adresse.

3. Echange maître vers 1 esclave

Le maître interroge un esclave de numéro unique sur le réseau et attend de la part de cet esclave une réponse.

Echange maître vers 1 esclave

4 Echange Maître vers tous les esclaves

Le maître diffuse un message à tous les esclaves présents sur le réseau, ceux-ci exécutent l'ordre du message sans émettre une réponse.

Echange Maître vers tous les esclaves

5 Format général d'une trame

Deux types de codage peuvent être utilisés pour communiquer sur un réseau Modbus.
Tous les équipements présents sur le réseau doivent être configurés selon le même type.

La trame ne comporte ni octet d'en-tête de message, ni octets de fin de message.
Sa définition est la suivante :

-	Mode RTU (Unité terminale distante)

CRC16 : paramètre de contrôle polynomial (cyclical redundancy check).
La détection de fin de trame est réalisée sur un silence supérieur ou égal à 3 octets.

Chaque champ composant une trame est codé avec 2 caractères ASCII (2 fois 8 bits).

Mode ASCII

LRC : C'est la somme en hexadécimal modulo 256 du contenu de la trame hors délimiteurs, complémentée à 2 et transmise en ASCII.

6. Trame d'échange question/réponse

La question :
Elle contient un code fonction indiquant à l'esclave adressé quel type d'action est demandé.
Les données contiennent des informations complémentaires dont l'esclave a besoin pour exécuter cette fonction.
Le champ octets de contrôle permet à l'esclave de s'assurer de l'intégralité du contenu de la question.

La réponse
Si une erreur apparaît, le code fonction est modifié pour indiquer que la réponse est une réponse d'erreur.
Les données contiennent alors un code (code d'exception) permettant de connaître le type d'erreur.
Le champ de contrôle permet au maître de confirmer que le message est valide.

cours MODBUS MODBUS automate programmable programmable Process RS485 BUS structure automate Programmation API Tutoriel

Révisé le :18-11-2017 www.technologuepro.com Facebook Twitter RSS