le MODBUS
Rappel
La Modbus est un protocole de communication ouvert conçu pour faire communiquer des équipements industriels, basé sur une architecture maître/esclave.
Par exemple des compteurs électriques Modbus peuvent communiquer avec un ordinateur.
différents type de réseaux
Il existe différents type de réseaux pour le Modbus
RS-485
- Nombre de maître : 1
- Nombre d'esclaves : 32
- Distance max : 1200m
- 2 fils
RS-232
- Nombre de maître : 1
- Nombre d'esclaves : 1
- Distance max : 15m
- 3 fils (Rx, Tx, GND)
tcp/ip
- Réseau : Ethernet
- Distance : Tout le réseau Ethernet
Règle de communication du modbus
- Il ne peut y avoir sur un bus qu'un seul équipement en train d'émettre
- Les esclave ne communiquent pas sans demande préalable du maître
- Le dialogue entre esclave est impossible
Types d'echanges
Diffusion (Broadcast) :
Le maître s'adresse à l'ensemble des esclaves. Ce sont forcément des commandes d'écriture. Il n'y a pas de réponse de la part des esclaves.
Demande :
Le maître s'adresse à un esclave à la fois. L'esclave est identifié dans le premier octet de la trame de demande.
caractéristiques communes
Adresse
Elle est comprise entre 1-247
Tous les appareils ont une adresse unique. (Slave ID)
Vitesse
Appelé Baud Rate, elle est comprise entre 300 et 19 200 baud.
Tous les appareils doivent communiquer avec la même vitesse.
Format données
Parité
Even, odd ou none
Tous les appareils sur le même bus doivent avoir la même parité.
TRAME modbus RTU
Il existe différents type de trame Modbus. Nous vous présentons la plus souvent utilisée : Le modbus RTU
code fonction
- 01 Lecture coil status
- 02 Lecture input status
- 03 lecture holding register
- 04 lecture input register
- 05 écriture d'un coil status
- 06 écriture d'un register
- 15 écriture de plusieurs coils
- 16 écriture de plusieurs register
Data
Type de donnée
Coil
Discrete Input
Input Register
Holding Register
fonction
Lecture - Ecriture
Lecture uniquement
Lecture uniquement
Lecture - Ecriture
Taille
REGISTRE
CRC
Exemple de communication Modbus
- un compteur Modbus
- Un convertisseur Modbus USB
- Le logiciel commit 1.4
- Vitesse : 9 600 Baud
- Data bit : 8
- Stop bit : 1
- Parité : EVEN
Trame envoyée :
Adresse du compteur : 01
Fonction lecture : 03
Registre du nombre de Baud : 1020
Taille du registre 0001
Le CRC est automatiquement généré : 81 00
Trame reçue :
Adresse du compteur : 01
Fonction lecture : 03
Nombre de registres à lire : 02
Réponse 25 80 en Hexa (HEX) converti en décimale ça donne 9600 baud
Le CRC est 74
Je n'arrive pas a communiquer en modbus : les erreurs fréquentes.
- Vérifier la polarité du bus RS-485
- Vérifier l'alimentation du maître et de l'esclave
- Tous les appareils branchés sur le bus doivent avoir la même parité (EVEN par exemple)
- Tous les appareils branchés sur le bus doivent avoir la même vitesse de communication (9 600 baud par exemple)