Print

Adressage Modbus / Chaîne d’adresse de données Modbus standard / Codes de fonction Modbus

 

Coils = sorties TOR équivalent à une bobine dans un schéma à relais.
Le type de données Modbus est 0.
On le note souvent 0x, ce qui facilite l’adressage.
Les données de type 0x sont disponibles en lecture et en écriture.
Pour la lecture, le code fonction 1 (01 en hexadécimal) est utilisé.
Pour l’écriture d’une donnée de ce type, le code fonction 5 (05h) est utilisé.
Pour l’écriture de plusieurs données consécutives, le code fonction 15 (0Fh) est utilisé.
Ce type de données est note de différentes façons:
%M1, 00001, 000001 (pour la première variable)…
Après interprétation du standard, la notation devrait être 0x0000 (jusqu’à 0xFFFF), en hexadécimal donc.

Input Status = entrées TOR équivalent à un contact dans un schéma à relais.
Le type de données Modbus est 1.
On le note souvent 1x, ce qui facilite l’adressage.
Les données de type 1x sont disponibles en lecture seulement.
Pour la lecture, le code fonction 2 (02h) est utilisé.
Ce type de données est note de différentes façons:
%i1, 10001, 100001..,
La notation devrait être 1×0000 (jusqu’à 1xFFFF).

Input Registers = entrées numériques équivalent a un registre (d’où le nom), ou une valeur non binaire (un mot de 16 bites).
A l’époque le choix n’étais pas comme de nos jours…
Le type de données Modbus est 3.
On le note souvent 3x, ce qui facilite l’adressage.
Les données de type 3x sont disponibles en lecture seulement.
Pour la lecture, le code fonction 4 (04h) est utilisé.
Ce type de données est note de différentes façons:
%IW1, 30001, 300001..,
La notation devrait être 3×0000 (jusqu’à 3xFFFF).

Holding Registers = sorties numériques équivalent a un registre (d’où le nom), ou une valeur non binaire (un mot de 16 bits).
Le type de données Modbus est 4.
On le note souvent 4x, ce qui facilite l’adressage.
Les données de type 4x sont disponibles en lecture et en écriture
Pour la lecture, le code fonction 3 (03h) est utilisé.
Pour l’écriture d’une donnée de ce type, le code fonction 6 (06h) est utilisé.
Pour l’écriture de plusieurs données consécutives, le code fonction 16 (10h) est utilisé.
Ce type de données est note de différentes façons:
%MW1, 40001, 400001..,
La notation devrait être 4×0000 (jusqu’à 4xFFFF).

Il y a souvent une confusion entre la notation (qui est virtuelle) et l’adresse.
Le fait d’utiliser l’adresse en hexadécimal, permet de s’affranchir des différentes notations comme décrit plus haut.
En effet, pour de petites application, il n’y aura pas de problème, la valeur décimale de l’adresse n’est pas supérieur a 9999.
Mais quand on passe a des bases de données plus importantes, c’est le foutoir

49999 est par exemple le 10000eme mot de type 4, qu’en est il si le 10001eme mot doit être utilisé ? En général, cela est note 410000 (mais on change d’échelle, ce n’est pas pratique), il est souvent e rit 50000 (mais ce n’est pas très logique, le type est 4, pas 5).
Certains le notent aussi 4×9999, puis 4×10000…
En notant en hexadécimal, on peut s’utiliser l’ensemble des adresses disponibles et la notation est plus lisible.
Le 10000eme mot est 4×2710, le suivant sera 4×2711… La conversion est aisée avec la calculatrice Windows, ou dans l’automate lui-même.