Codes de fonction
6.3 Lecture de plusieurs registres
6.3
Lecture de plusieurs registres
Messages de commande
La fonction de lecture de plusieurs registres (03hex) permet au maître de demander des
informations à l'esclave. La structure du message de commande d'une lecture de plusieurs
registres est présentée ci-après. Chaque ligne dans le tableau correspond à un octet dans le
message. L'octet de poids fort (adresse de l'esclave) est transmis en premier.
L'adresse initiale de l'esclave est 1. L'adresse 0 (diffusion générale) et les autres valeurs
comprises entre 1 et 255 sont utilisables.
Le code de fonction de ce message est 03 hexa (lecture de plusieurs registres).
Le registre de début est le premier registre à être lu.
La quantité indique combien de registres de 16 bits consécutifs doivent être lus. Sa plage va
de 1 à 26 registres. Si la quantité est supérieure à 26, un code d'erreur égal à 03 hexa est
renvoyé dans le message d'anomalie.
Une valeur CRC est générée grâce à un calcul utilisant les valeurs de l'adresse d'esclave,
du code de fonction et de sections de données du message. Lorsque l'esclave reçoit le
message de commande, il calcule une valeur CRC de 16 bits et la compare à celle figurant
dans le champ CRC de 16 bits du message de commande. Une valeur identique des deux
CRC de 16 bits signifie que l'esclave a reçu un message de commande correct. En cas de
valeur différente des deux CRC de 16 bits, l'esclave ne répondra pas.
Si le message de commande contient une adresse d'esclave, un code de fonction, un
registre de début et une quantité valides, l'esclave répondra avec un message de réponse
normale. Si le message de commande contient un code de fonction, un registre de début
et/ou une quantité invalides, l'esclave répondra avec un message d'anomalie.
Tableau 6- 5 Messages de commande pour Lecture de plusieurs registres
Octet du message
Adresse d'esclave
Code de fonction
Registre de début
Quantité
CRC de 16 bits
Réponse normale
Le message de réponse normale contient les mêmes adresse d'esclave et code de fonction
que le message de commande.
"Nombre d'octets" est le nombre d'octets de données renvoyés dans le message de
réponse. Ce nombre est en fait égal à la quantité (dans le message de commande) fois 2
puisqu'il y a deux octets de données dans chaque registre.
La section de données du message de réponse contient 8 bits de poids fort et 8 bits de
poids faible de données pour chaque registre qui a été lu dans l'appareil.
26
Poids fort
Poids faible
Poids fort
Poids faible
Poids faible
Poids fort
Instructions de service, 06/2010, A5E03089265-01
Exemple
xxhex
03hex
00hex
20hex
00hex
04hex
xxhex
xxhex
Modbus RTU RS485