Format des tables Modbus et types de données
Format des tables
Les tables de registres se composent des colonnes suivantes :
Adresse |
Registre |
No. |
RW |
X |
Unité |
Type |
Plage |
Valeur par défaut |
Svd |
Code fonction |
Description |
Désignation |
Description |
---|---|
Adresse |
Adresse de registre 16 bits en hexadécimal. L'adresse correspond aux données utilisées dans la trame Modbus. |
Registre |
Numéro de registre de 16 bits en décimal. Registre = Adresse + 1 |
No. |
Nombre de registres 16 bits à lire/écrire pour accéder à l'information complète. |
RW |
Registre accessible en lecture seule (R) ou en lecture-écriture (RW). |
X |
Facteur d'échelle :
|
Unité |
Unité de mesure :
|
Type |
Type de données de codage (voir le tableau des types de données). |
Plage |
Plage de valeurs permises pour la variable, généralement un sous-ensemble de ce que permet le format. Pour les données de type BITMAP, le contenu de ce domaine est "–". |
Valeur par défaut |
Valeur par défaut de la variable. |
Svd |
Enregistrement de la valeur en cas de coupure d'alimentation :
NOTE: Lors du démarrage ou d'une réinitialisation,
les valeurs disponibles sont récupérées.
|
Code fonction |
Code des fonctions utilisables dans le registre. |
Description |
Informations sur le registre et les restrictions qui s'appliquent. |
Types de données
Les types de données suivants apparaissent dans les tables de registres Modbus :
Nom |
Description |
Plage |
---|---|---|
UINT |
Entier de 16 bits non signé (1 mot) |
0 à 65535 |
INT |
Entier de 16 bits signé (1 mot) |
-32768 à +32767 |
UINT32 |
Entier de 32 bits non signé (2 mots) |
0 à 4 294 967 295 |
INT32 |
Entier de 32 bits signé (2 mots) |
-2 147 483 648 à +2 147 483 647 |
Float32 |
Valeur de 32 bits (2 mots) |
-3.4028E+38 à +3.4028E+38 |
ASCII |
Caractère alphanumérique de 8 bits |
Tableau des caractères ASCII |
BITMAP |
Champ de 16 bits (1 mot) |
– |
DATE |
Voir le tableau de dates |
– |
Données de type Float32 : nombre flottant à précision simple avec un bit signé, un exposant 8 bits, une mantisse 23 bits (réel normalisé positif et négatif).
Pour les informations de type ASCII, l'ordre de transmission des caractères dans les mots (registres de 16 bits) est le suivant :
-
caractère n en poids faible ;
-
caractère n + 1 en poids fort.
Tous les registres (16 bits ou 2 octets) sont transmis avec le codage Big Endian :
-
L'octet de poids fort est transmis en premier.
-
L'octet de poids faible est transmis en second.
Les variables de 32 bits enregistrées sur deux mots de 16 bits (comme les compteurs de consommation) sont au format Big Endian :
-
Le mot de poids fort est transmis d'abord, celui de poids faible ensuite.
Les variables de 64 bits enregistrées sur 4 mots de 16 bits (comme les dates) sont au format Big Endian :
-
Le mot de poids fort est transmis d'abord, et ainsi de suite.
DATETIME
DATETIME est un type de données utilisé pour coder la date et l'heure définies par la norme IEC 60870-5.
Registre |
Type |
Bit |
Plage |
Description |
---|---|---|---|---|
1 |
INT16U |
0-6 |
0x00–0x7F |
Année : 0x00 (00) à 0x7F (127), soit les années 2000 à 2127. Par exemple, 0x17 (23) correspond à l'année 2023. |
7-15 |
– |
Réservé |
||
2 |
INT16U |
0-4 |
0x01–0x1F |
Jour |
5-7 |
– |
Réservé |
||
8-11 |
0x00–0x0C |
Mois |
||
12-15 |
– |
Réservé |
||
3 |
INT16U |
0-5 |
0x00–0x3B |
Minutes |
6-7 |
– |
Réservé |
||
8-12 |
0x00–0x17 |
Heures |
||
13-15 |
– |
Réservé |
||
4 |
INT16U |
0-15 |
0x0000–0xEA5F |
Millisecondes |
Adressage direct de bit
L’adressage est autorisé pour les zones de type BITMAP avec les fonctions 1, 2, 5 et 15.
L'adresse du premier bit est construite comme suit : (adresse de registre x 16) + numéro de bit :
Ce mode d'adressage est spécifique à Schneider Electric.
Exemple : Pour les fonctions 1, 2, 5 et 15, le bit 3 du registre 0x0078 doit être adressé ; l'adresse du bit est donc 0x0783.
Exemple de trames Modbus
Requête
Définition |
Nombre d'octets |
Valeur |
Commentaire |
---|---|---|---|
Numéro du serveur |
1 octet |
0x05 |
Adresse Modbus I/O Smart Link |
Code fonction |
1 octet |
0x03 |
Lecture de n mots de sortie ou internes |
Adresse |
2 octets |
0x36E2 |
Adresse d'un compteur de consommation dont l'adresse est 14050 en décimal. |
Nombre de mots |
2 octets |
0x002C |
Lecture de 44 registres de 16 bits. |
CRC |
2 octets |
xxxx |
Valeur du CRC16. |
Réponse
Définition |
Nombre d'octets |
Valeur |
Commentaire |
---|---|---|---|
Numéro du serveur |
1 octet |
0x05 |
Adresse Modbus I/O Smart Link |
Code fonction |
1 octet |
0x03 |
Lecture de n mots de sortie ou internes |
Nombre d'octets |
2 octets |
0x0058 |
Nombre d'octets lus |
Valeurs des mots lus |
88 octets |
– |
Lecture de 44 registres de 16 bits |
CRC |
2 octets |
xxxx |
Valeur du CRC16. |
Adresse Modbus
La liste des adresses Modbus, définies par le protocole Modbus, commence à 0.
L'adresse du registre numéro n est n-1.
Les tableaux détaillés des chapitres suivants de ce guide indiquent les numéros de registre (au format décimal) et les adresses correspondantes (au format hexadécimal). Par exemple, l'adresse du registre numéro 3000 est 0x0BB7 (2999).