DOCA0105FR-09

Tables des registres Modbus

Description générale

Note for TechPub writer: see D-SE-33693 (Compact NSX MB) for similar content and wording consistency.

Les chapitres suivants décrivent les registres Modbus de l'unité de contrôle MicroLogic et les registres Modbus des modules qui y sont connectés. Ces registres fournissent des informations qui peuvent être lues, telles que des mesures électriques et des informations de contrôle. L'interface de commandes permet de modifier ces registres de façon contrôlée.

Les règles de présentation des registres Modbus sont les suivantes :

Pour rechercher un registre, utilisez la liste ordonnée des registres avec une référence croisée vers la page où ces registres sont décrits.

Format de table

Les tables de registres se composent des colonnes suivantes :

Adresse

Registre

RW

Unité

Type

Plage

Bit

Description

               
  • Adresse : une 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 : un numéro de registre de 16 bits sous forme de nombre décimal (registre = adresse + 1).

  • RW : état de lecture ou d'écriture du registre

    • R : le registre peut être lu en utilisant les fonctions Modbus

    • W : le registre peut être écrit en utilisant les fonctions Modbus

    • RW : le registre peut être lu et écrit en utilisant les fonctions Modbus

    • RC : le registre peut être lu en utilisant l'interface de commande

    • WC : le registre peut être écrit en utilisant l'interface de commande

  • Unité : unité de mesure de l'information.

  • Type : type de données de codage (voir la description des types de données ci-dessous).

  • Plage : valeurs permises pour cette variable, généralement un sous-ensemble de ce que permet le format.

  • Description : fournit des informations sur le registre et les restrictions qui s'appliquent.

Types de données

Types de données

Description

Plage

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

INT64U

Entier de 64 bits non signé

0 à 18 446 744 073 709 600 000

INT64

Entier de 64 bits signé

-9 223 372 036 854 775 808 à +9 223 372 036 854 775 807

FLOAT32

Entier de 32 bits signé à virgule flottante

2-126 (1.0) à 2127 (2 - 2-23)

OCTET STRING

Chaîne de texte

1 octet par caractère

XDATE

Date et heure des modules ULP

DATETIME

Date et heure au format CEI 60870-5

Format big-endian

Les variables INT32, INT32U, INT64 et INT64U sont stockées au format big-endian : le registre de poids fort est transmis d'abord, celui de poids faible ensuite.

Les variables INT32, INT32U, INT64 et INT64U sont constituées de variables INT16U.

Voici les formules de calcul de la valeur décimale de ces variables :

  • INT32: (0-bit31)x231 + bit30x230 + bit29x229 + ...bit1x21 + bit0x20

  • INT32U: bit31x231 + bit30x230 + bit29x229 + ...bit1x21 + bit0x20

  • INT64: (0-bit63)x263 + bit62x262 + bit61x261 + ...bit1x21 + bit0x20

  • INT64U: bit63x263 + bit62x262 + bit61x261 + ...bit1x21 + bit0x20

Exemple 1 :

L'énergie active totale du jeu de données standard est une variable INT64 codée dans les registres 32096 à 32099.

Si les valeurs des registres sont :

  • registre 32096 = 0

  • registre 32097 = 0

  • registre 32098 = 0x0017 ou 23

  • registre 32099 = 0x9692 ou 38546 comme variable INT16U et -26990 comme variable INT16 (utilisez la valeur INT16U pour calculer la valeur de l’énergie active totale).

Alors l'énergie active totale est égale à 0x248 + 0x232 + 23x216 + 38546x20 = 1545874 Wh.

Exemple 2 :

L'énergie réactive du jeu de données hérité est une variable INT32 codée dans les registres 12052 à 12053.

Si les valeurs des registres sont :

  • registre 12052 = 0xFFF2 = 0x8000 + 0x7FF2 ou 32754

  • registre 12053 = 0xA96E ou 43374 comme variable INT16U et -10606 comme variable INT16 (utilisez la valeur INT16U pour calculer la valeur de l’énergie réactive).

Alors l’énergie réactive est égale à (0-1)x231 + 32754x216 + 43374x20 = -874130 kVARh.

Type de données : FLOAT32

Le type de données FLOAT32 est représenté par le format simple précision IEEE 754 (norme IEEE pour l'arithmétique binaire en virgule flottante). Une valeur N est calculée de la manière suivante :

N = (-1)S x 2E-127 x (1+M)

Coefficient

Signification

Description

Nombre de bits

S

Signe

Définit le signe de la valeur :

0 = valeur positive

1 = valeur négative

1 bit

E

Exposant

Excédent de 127 ajouté sous forme d'entier en valeur binaire.

Lorsque 0 < E < 255, l'exposant réel est : e = E - 127.

8 bits

M

Mantisse

Magnitude, significande binaire normalisé

23 bits

Exemple :

0 = 0 00000000 00000000000000000000000

-1.5 = 1 01111111 10000000000000000000000

avec :

  • S = 1

  • E = 01111111 = 127

  • M = 10000000000000000000000 = 1x2-1 + 0x2-2 +...+ 0x2-23 = 0,5

  • N = (-1) x 20 x (1+0.5) = -1,5

Type de données : XDATE

XDATE est un type de données utilisé pour coder la date et l'heure définies par les modules ULP.

Registre

Type

Bit

Plage

Description

1

INT16U

0–7

0x01–0x1F

Jour

8–15

0x01–0x0C

Mois

2

INT16U

0–7

0x00–0x17

Heures

8–15

0x50–0xC7

Année

  • 0x50 (80) à 0x63 (99) correspond aux années 1980 à 1999

  • 0x64 (100) à 0xC7 (199) correspond aux années 2000 à 2099

Par exemple, 0x70 (112) correspond à l'année 2012.

3

INT16U

0–7

0x00–0x3B

Secondes

8–15

0x00–0x3B

Minutes

4

INT16U

0–15

0x0000–0x03E7

Complément en millisecondes

Type de données : 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) 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

Qualité des horodatages DATETIME

La qualité des horodatages codés avec le type de données DATETIME peut être indiquée dans le registre qui suit les 4 registres de l'horodatage. Dans ce cas, la qualité de l'horodatage est codée comme suit :

Bit

Description

0–11

Réservé

12

Synchronisée de façon externe :

  • 0 = Non valide

  • 1 = Valide

13

Synchronisée :

  • 0 = Non valide

  • 1 = Valide

14

Date et heure définies :

  • 0 = Non valide

  • 1 = Valide

15

Réservé

Qualité des bits dans les registres

La qualité de chaque bit d'un registre codé comme type de données INT16U en tant qu'énumération de bits peut être indiquée dans le registre précédent.

Exemple :

La qualité de chaque bit du registre 32001, état du disjoncteur, est donnée dans le registre précédent, 32000.

La qualité des données correspondant au bit 0 du registre 32001, Contact de signalisation d'état OF, est donnée dans le bit 0 du registre 32000 :

  • bit 0 du registre 32000 = qualité de signalisation d'état OF

  • bit 0 du registre 32001 = contact de signalisation d'état OF

Si

Alors

Le bit 0 du registre 32000 = 1 ET le bit 0 du registre 32001 = 0

Le contact OF indique que l'appareil est ouvert.

Le bit 0 du registre 32000 = 1 ET le bit 0 du registre 32001 = 1

Le contact OF indique que l'appareil est fermé.

Le bit 0 du registre 32000 = 0

La signalisation de contact OF est incorrecte.

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 telles que les mesures d'énergie 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.

  • 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 en langage C : 0xdddd. Par exemple, la valeur décimale 123 est représentée sous forme hexadécimale 0x007B.

  • Pour les mesures qui dépendent de la présence du neutre identifiée par le registre 3314, la lecture de la valeur renvoie 32768 (0x8000) si non applicable. Pour chaque tableau où cela apparaît, une explication est donnée en note de bas de page.

  • 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

INT64U

0xFFFFFFFFFFFFFFFF

INT64

0x8000000000000000

FLOAT32

0xFFC00000

QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

Contenu utile ?