
Connecteur Modbus
Principes généraux de Modbus
Modbus est un protocole de communication utilisé pour des réseaux d’automates. Historiquement, il a été conçu en pour des communications sur un interface série (RS232, RS422, RS485) et supporte depuis le mode TCP.
OIBus propose un connecteur Modbus en mode TCP uniquement.
Dans ce mode TCP, Modbus met en place une connexion client-serveur : le serveur met à disposition des données référencées par des adresses mais reste passif. C’est le client Modbus qui va chercher les valeurs des données. Le connecteur Sud Modbus d’OIBus est un client Modbus. Il faut donc indiquer au connecteur :
- L’hôte (
host
, soit l’adresse IP de la machine serveur Modbus) - Le port (
502
par défault) - Le
slave id
pour identifier la machine source Modbus si nécessaire.

Selon les automates, plusieurs paramétrages sont possibles sur la manière d’accéder aux données. Ces paramétrages sont communs à l’ensemble de l’automate. Il s’agit des paramètres suivants :
Address offset
: Pour la plupart des automates, il n’y a pas d’offset (option Modbus). Certains automates commencent la plage d’adresse à 1 au lieu de 0, il s’agit de l’option JBusEndianness
: Indique le type d’encodage des bits (Big Endian ou LittleEndian)Swap Bytes
: Indique si les octets au sein d’un groupe de 16 bits (unword) doivent être inversés ou nonSwap Words
: Indique si les words (groupe de 16 bits) doivent être inversés ou non au sein d’un groupe de 32 bits.
Le Mode d’Adressage
Les adresses de données Modbus suivent la convention Modicon Convention Notation (MCN) :
-
Coil = [0x00001 - 0x09999]
De 1 à 39,321 -
Discrete Input = [0x10001 - 0x19999]
De 65,537 à 104,857 -
Input Register = [0x30001 - 0x39999]
De 196,609 à 235,929 -
Holding Register = [0x40001 - 0x49999]
De 262,145 à 301,465
Une version étendue de MCN permet à l’utilisateur de spécifier des espaces d’adresses plus large :
-
Coil = [0x000001 - 0x065535]
-
Discrete Input = [0x100001 - 0x165535]
-
Input Register = [0x300001 - 0x365535]
-
Holding Register = [0x400001 - 0x465535]
Lors de l’ajout d’un point dans OIBus, il est nécessaire de spécifier plusieurs informations :
- Le
point id
correspond à la référence de la donnée pour l’application cible (endpoint destinataire). - L’address correspond à l’adresse de la variable dans l’automate, en hexadécimal sans le chiffre de type de donnée. Par exemple :
- Pour la donnée Holding
Register
0x40001
, il faut entrer l’adresse0x0001
et spécifier le Modbus type holdingRegister. - Pour la donnée Coil
0x009C
, il faut entrer0x009C
et spécifier le Modbus type coil. - Le
scan mode
indique l’intervalle de temps entre deux requêtes au serveur. - Le
data type
est utilisé dans le cas des Holding Registers et Input Registers (le champ est ignoré sinon). Ce paramètre indique le type de la donnée récupérée sur le registre.

Pour aller plus loin
Vous pouvez consulter le site web de la Modbus Organization et plus particulièrement le document Modicon Modbus Protocol Reference Guide