Principe client-serveur Modbus
Présentation
Le protocole Modbus RTU échange des informations en utilisant un mécanisme de requête-réponse entre un client et un serveur. Le principe client-serveur est un modèle de protocole de communication dans lequel un appareil (le client) contrôle un ou plusieurs autres appareils (les serveurs). Un réseau Modbus standard comporte 1 client et jusqu'à 31 serveurs.
Une description détaillée du protocole Modbus est disponible sur www.modbus.org.
Caractéristiques du principe client-serveur
Le principe client-serveur présente les caractéristiques suivantes :
-
Un seul client à la fois est connecté au réseau.
-
Seul le client peut initier une communication et envoyer des requêtes aux serveurs.
-
Le client peut s'adresser individuellement à chaque serveur en utilisant son adresse spécifique ou simultanément à tous les serveurs via l'adresse 0.
-
Les serveurs peuvent uniquement envoyer des réponses au client.
-
Les serveurs ne peuvent pas initier une communication, ni vers le client, ni vers les autres serveurs.
Modes de communication client-serveur
Le protocole Modbus RTU permet d'échanger des informations en utilisant deux modes de communication :
-
mode requête-réponse
-
mode de diffusion générale
Mode requête-réponse
Mode de diffusion générale
Temps de réponse
Valeurs avec le protocole Modbus :
-
Valeur type < 10 ms dans 90 % des échanges
-
La valeur maximale est égale à 700 ms environ. Il est donc recommandé de mettre en œuvre un délai d'attente de 1 seconde après l'envoi d'une requête Modbus.
Echange de données
Le protocole Modbus utilise 2 types de données :
-
bits
-
mots de 16 bits appelés registres
Les relais VigiPacT prennent en charge ces deux types de données.
Chaque registre possède un numéro de registre. Chaque type de données (bit ou registre) possède une adresse de 16 bits.
Les messages échangés avec le protocole Modbus contiennent l'adresse des données à traiter.
Registres et adresses
L'adresse du registre numéro n est n-1. Les tableaux détaillés figurant dans les chapitres suivants de ce document indiquent à la fois les numéros de registres (au format décimal) et les adresses correspondantes (au format hexadécimal). Par exemple, l'adresse du registre numéro 100 est 0x0063 (99).
Trames
Toutes les trames échangées avec le protocole Modbus sont d'une taille maximale de 256 octets et se composent de 4 champs :
Champ |
Définition |
Taille |
Description |
---|---|---|---|
1 |
Numéro du serveur |
1 octet |
Destination de la requête :
|
2 |
Codes de fonction |
1 octet ou 2 octets |
Voir la section Fonctions de Modbus |
3 |
Données |
n registres |
Données de requête ou de réponse |
4 |
Contrôle |
2 octets |
CRC16 (pour vérifier les erreurs de transmission) |