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

Convertisseur RS-485 USB

  • Nombre de maître : 1
  • Nombre d'esclaves : 32
  • Distance max : 1200m 
  • 2 fils

RS-232

Câble série RS-232

  • Nombre de maître : 1
  • Nombre d'esclaves : 1
  • Distance max : 15m
  • 3 fils (Rx, Tx, GND)

tcp/ip

Câble réseau RJ45

  • 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

RTU, ASCII or Ethernet
Start bit
Stop bit
Tous les appareils ont le même format de 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 

Il existe 19 fonctions Modbus RS485. Les principales sont les suivantes : 

  • 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

1 bit
1 bit
16 bits
16 bits

REGISTRE

00001 - 09999
10001 - 19999
30001 - 39999
40001 - 49999

EXEMPLE DE TABLE MODBUS : 
La table modbus est essentielle pour communiquer avec un appareil modbus. Il s'agit de l'ensemble des registres que l'on peut lire ou sur lesquels on peut écrire. 

CRC

Le code CRC est calculé à partir des données du message. Cela permet de vérifier l'intégrité du message. 

Exemple de communication Modbus

Matériel utilisé : 

  • un compteur Modbus 
  • Un convertisseur Modbus USB
  • Le logiciel commit 1.4

Paramètres : 

  • 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)