Format des tables Modbus et types de données
Format des tables
Les tables de registres se composent des colonnes suivantes :
Adresse |
Registre |
Nb |
RW |
X |
Unité |
Type |
Plage |
Valeur par défaut |
Svd |
Code de fonction |
Appareils applicables |
Description |
Désignation |
Description |
---|---|
Adresse |
Adresse de registre de 16 bits au format hexadécimal. L'adresse correspond aux données utilisées dans la trame Modbus. |
Registre |
Numéro de registre de 16 bits au format décimal. Registre = Adresse + 1 |
Nb |
Nombre de registres de 16 bits qui ont besoin d'être lus/écrits pour accéder à l'information complète. |
R/RW |
Registre en lecture seule (R/RW) ou en lecture-écriture (RW). |
X |
Facteur d'échelle :
|
Unité |
Unité de mesure :
|
Type |
Type de données de codage (voir le tableau Type de données ci-dessous). |
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 |
Valeur enregistrée lorsque la passerelle PowerTag Link est mise hors tension :
NOTE: Lors du démarrage ou d'une réinitialisation,
les valeurs disponibles sont récupérées.
|
Code de fonction |
Code des fonctions utilisables dans le registre. |
Appareils applicables |
Code indiquant les types des appareils pour lesquels le registre est disponible. |
Description |
Informations sur le registre et les restrictions qui s'appliquent. |
Types de données
Nom |
Description |
Plage |
---|---|---|
INT16 |
Entier de 16 bits signé (1 mot) |
-32768 à +32767 |
UINT16 |
Entier de 16 bits non signé (1 mot) |
0 à 65535 |
INT32 |
Entier de 32 bits signé (2 mots) |
-2 147 483 648 à +2 147 483 647 |
UINT32 |
Entier de 32 bits non signé (2 mots) |
0 à 4 294 967 295 |
INT64 |
Entier de 64 bits signé (4 mots) |
-9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 |
UINT64 |
Entier de 64 bits non signé (4 mots) |
0 à 18 446 744 073 709 600 000 |
Float32 |
Valeur de 32 bits (2 mots) |
-3.4028E+38 à +3.4028E+38 |
ASCII |
Caractère alphanumérique de 8 bits |
Table des caractères ASCII |
BITMAP |
Champ de 16 bits (1 mot) |
– |
DATETIME |
Voir la section DATETIME |
– |
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 (ex. : 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 (ex. les dates) sont au format Big Endian :
-
Le mot de poids fort est transmis d'abord et ainsi de suite.
DATETIME
Le type de données DATETIME est 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) correspond aux années 2000 à 2127. Par exemple, 0x0D (13) correspond à l'année 2013. |
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 d'un 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
Demande
Définition |
Nombre d'octets |
Valeur |
Commentaire |
---|---|---|---|
Numéro du serveur |
1 octet |
0x05 |
Adresse Modbus PowerTag Link |
Code de 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 PowerTag Link |
Code de 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. |
Registre Modbus
L'adresse du registre numéro n est n-1. Les tableaux détaillés dans les parties suivantes du document fournissent 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).