Tables des registres Modbus
Format des tables
Adresse |
Registre |
RW |
Unité |
Type |
Plage |
Usine |
Enregistré |
Bit |
Description |
---|---|---|---|---|---|---|---|---|---|
-
Adresse : adresse de registre de 16 bits sous forme de nombre hexadécimal. L'adresse correspond aux données utilisées dans la trame Modbus.
-
Registre : numéro de registre de 16 bits sous forme de nombre décimal (registre = adresse + 1).
-
L/E : état de lecture ou d'écriture du registre.
-
L : accès en lecture seule
-
L/E : accès en lecture et en écriture à l'aide des fonctions Modbus
-
-
Unité : unité dans laquelle l'information est exprimée.
-
Type : type de données de codage (voir la section Types de données).
-
Plage : plage des valeurs autorisées pour cette variable, généralement un sous-ensemble de ce qui est autorisé par le format.
-
Usine : valeur de la variable d'un nouvel appareil, également appliquée après le rétablissement des réglages d'usine.
-
Enregistré :
-
OUI : la valeur est enregistrée en cas de coupure de courant.
-
NON : la valeur n'est pas enregistrée en cas de coupure de courant.
-
-
Bit : numéro de bit pour la description BITMAP.
-
Description : fournit des informations sur le registre et les restrictions qui s'appliquent.
Types de données
Types de données |
Description |
Gamme |
---|---|---|
INT16U |
Entier de 16 bits non signé |
0 à 65535 |
INT16 |
Entier de 16 bits signé |
-32768 à +32767 |
INT32U |
Entier de 32 bits non signé |
0 à 4 294 967 295 |
INT32 |
Entier de 32 bits signé |
-2 147 483 648 à +2 147 483 647 |
STRING |
Chaîne de texte |
1 octet par caractère |
BITMAP |
registre de 16 bits |
– |
Type de données : BITMAP
Un registre BITMAP est un registre de 16 bits pouvant être lu :
-
comme un entier de 16 bits non signé, à l'aide de la fonction de lecture de plusieurs registres (code de fonction 0x03) ;
-
comme un ensemble de bits, à l'aide des fonctions de lecture de bits (code de fonction 0x01 ou 0x02).
Remarques
-
La colonne du type indique le nombre de registres à lire pour obtenir la variable. Par exemple, INT16U nécessite la lecture d'un registre, alors que INT32 nécessite la lecture de 2 registres.
-
Certaines variables doivent être lues comme un bloc de plusieurs registres. La lecture partielle du bloc provoque une erreur.
-
La lecture à partir d'un registre non documenté aboutit à une exception Modbus. Reportez-vous à la section Codes d'exception Modbus.
-
Les valeurs numériques sont données sous forme décimale. Lorsqu'il est utile de disposer de la valeur correspondante au format hexadécimal, celle-ci est indiquée comme une constante 0xdddd en langage C. Par exemple, la valeur décimale 123 est représentée comme suit sous forme hexadécimale : 0x007B.
-
Les variables INT32U ou INT32 sont stockées au format big-endian : le registre de poids fort est transmis d'abord, celui de poids faible ensuite.
-
Les valeurs hors service et non applicables dépendent du type de données.
Type de données |
Valeurs hors service et non applicables |
---|---|
INT16U |
65535 (0xFFFF) |
INT16 |
-32768 (0x8000) |
INT32U |
4294967295 (0xFFFFFFFF) |
INT32 |
0x80000000 |