7. REGISTRES MODBUS
PROTOCOLE DE COMMUNICATIONS DU RÉGULATEUR CONTROL CAD-REG
Le protocole utilisé est MODBUS mode RTU, avec les caractéristiques suivantes : RS-485 (2 wire). Nombre maximal
d'éléments dans le bus: 32 (1 master + 31 slaves).
FR
• Vitesse de communication: 9600 bauds.
• Format de données:
− 8 bits.
− Sans parité.
− 1 bit de stop.
• Registres de 16 bits (2 bytes).
Format de variables: High Word First [H/L].
• CRC selon polynôme x16 + x15 + x2 + 1.
Note: Il est recommandé de réaliser de nouvelles tentatives dans les communications.
Timeout: 1 s. Note : durée minimale Wait To Send recommandée = 100 ms.
LECTURE DE REGISTRES
Pour lire des registres, il est possible d'utiliser les codes de commande 3 ou 4 selon la structure de message suivante:
Nº esclave (1 byte) – Code (03 ou 04) (1 byte) – Adresse du 1er registre à lire (00-XX) (2 bytes) – Nº de registres à
lire (00-YY) (2 bytes) – CRC16 (2 bytes)
Nº maximal de registres à lire dans le même message = 32 (du registre 0 au registre 31)
La réponse du régulateur a la structure de message suivante:
Nº esclave (1 byte) – Code (03 ou 04) (1 byte) – Nº de bytes de données (XX) (1 byte) – Données (AA-BB-CC-DD...)
(2 bytes pour chaque registre) – CRC16 (2 bytes)
Nº de bytes de données = 2 * Nº de registres à lire
ÉCRITURE DE REGISTRES
Pour écrire des registres, il est possible d'utiliser le code de commande 6 selon la structure de message suivante:
Nº esclave (1 byte) – Code (06) (1 byte) – Adresse du registre à lire (00-XX) (2 bytes) – Données à écrire dans le
registre (AA- BB) (2 bytes) – CRC16 (2 bytes)
La réponse du régulateur a la structure de message suivante:
Nº esclave (1 byte) – Code (06) (1 byte) – Adresse du registre écrit (00-XX) (2 bytes) – Donnée écrite dans le re-
gistre (AA- BB) (2 bytes) – CRC16 (2 bytes)
ERREURS
En utilisant un code différent de celui de lecture ou d'écriture indiqué, la réponse reçue est:
Nº esclave – Code OR 80Hex – Code d'erreur (1) – CRC16 (2 bytes)
En essayant d'accéder en lecture ou en écriture à un registre avec une adresse inexistante, la réponse reçue est la
suivante:
Nº esclave – Code OR 80Hex – Code d'erreur (2) – CRC16 (2 bytes)
En essayant d'écrire dans un registre de lecture seule ou d'écrire une valeur illicite dans un registre, la réponse reçue
est:
Nº esclave – Code OR 80Hex – Code d'erreur (3) – CRC16 (2 bytes)
CARTE DE REGISTRES
Les bits inutilisés des registres suivants sont 0.
Note: dans quelques programmes de communications, la première adresse de mot confi gurée est 400001 de sorte
que le registre 0 du régulateur correspond à l'adresse de mot 400001. En bref, l'adresse de mot à laquelle correspond
chaque registre du régulateur est calculée en ajoutant 1 au numéro de registre de la carte de registres décrite ci-après.
60