DOCA0213FR-02

Fonctions de Modbus

Description générale

Le protocole Modbus propose un certain nombre de fonctions permettant de lire ou d'écrire des données sur le réseau Modbus. Le protocole Modbus offre également des fonctions de diagnostic et de gestion de réseau.

Seules les fonctions Modbus gérées par le disjoncteur sont décrites ici.

Fonctions de lecture

Les fonctions de lecture suivantes sont disponibles :

Code de fonction

Code de sous-fonction

Nom

Description

3 (0x03)

Lecture de registre de maintien

Lecture de n registres de sortie ou de n registres internes.

4 (0x04)

Lecture de registres d'entrée

Lecture de n registres d'entrée

43 (2x0B)

14 (0x0E)

Lecture de l'identification du produit

Lecture des données d'identification du serveur

43 (0x2B)

15 (0x0F)

Obtention de la date et de l'heure

Lecture de la date et de l'heure du serveur

NOTE: Le nombre de registres (n) est limité à 52 avec le déclencheur MasterPacT MicroLogic E.

Exemple de lecture de registre

Le tableau suivant indique comment lire le courant efficace sur la phase 1 (I1) dans le registre 1016. L'adresse du registre 1016 est 1016 - 1 = 1015 = 0x03F7. L'adresse Modbus du serveur Modbus est 47 = 0x2F.

Requête du client

Réponse du serveur

Nom de champ

Exemple

Nom de champ

Exemple

Adresse du serveur Modbus

0x2F

Adresse du serveur Modbus

0x2F

Code de fonction

0x03

Code de fonction

0x03

Adresse du registre à lire (MSB)

0x03

Longueur des données en octets

0x02

Adresse du registre à lire (LSB)

0xF7

Valeur du registre (MSB)

0x02

Nombre de registres (MSB)

0x00

Valeur de registre (LSB)

0x2B

Nombre de registres (LSB)

0x01

CRC (MSB)

0xXX

CRC (MSB)

0xXX

CRC (LSB)

0xXX

CRC (LSB)

0xXX

Le contenu du registre 1016 (adresse 0x03F7) est 0x022B = 555. Le courant efficace sur la phase 1 (I1) est donc 555 A.

Exemple d’obtention de date et d'heure

Le tableau suivant indique comment obtenir la date et l'heure d'un serveur Modbus. L'adresse Modbus du serveur Modbus est 47 = 0x2F.

Requête du client

Réponse du serveur

Nom de champ

Exemple

Nom de champ

Exemple

Adresse du serveur Modbus

0x2F

Adresse du serveur Modbus

0x2F

Code de fonction

0x2B

Code de fonction

0x2B

Code de sous-fonction

0x0F

Code de sous-fonction

0x0F

Réservé

0x00

Réservé

0x00

Date et heure

Voir le type de données DATETIME

Exemple de définition de la date et de l'heure

Le tableau suivant indique comment définir la date et l'heure d'un serveur Modbus. L'adresse Modbus du serveur Modbus est 47 = 0x2F, la nouvelle date est le 2 octobre 2014 et la nouvelle heure est 14:32:03:500.

NOTE: Utilisez le mode diffusion (avec adresse de serveur Modbus = 0) pour définir la date et l'heure de tous les serveurs Modbus.

Requête du client

Réponse du serveur

Nom de champ

Exemple

Nom de champ

Exemple

Adresse du serveur Modbus

0x2F

Adresse du serveur Modbus

0x2F

Code de fonction

0x2B

Code de fonction

0x2B

Code de sous-fonction

0x10

Code de sous-fonction

0x10

Réservé1

0x00

Réservé1

0x00

Inutilisé

0x00

Inutilisé

0x00

Année = 2014

0x0E

Année = 2014

0x0E

Mois = Octobre

0x0A

Mois = Octobre

0x0A

Jour du mois = 2

0x02

Jour du mois = 2

0x02

Heure = 14

0x0E

Heure = 14

0x0E

Minutes = 32

0x20

Minutes = 32

0x20

3 s 500 ms

0x0DAC

3 s 502 ms

0x0DAE

La réponse normale fait écho à la requête. Elle est renvoyée une fois que la date et l'heure ont été mises à jour sur l'équipement distant. Si la structure d'horodatage n'est pas cohérente avec une date-heure réelle (horodatage invalide), la valeur renvoyée dans le champ Date / Heure est définie sur 0 par l'équipement.

En cas de perte d'alimentation 24 VCC, la date et l'heure des serveurs Modbus sans batterie ne sont plus actualisées. Il est donc obligatoire de régler la date et l'heure de tous les serveurs Modbus après avoir rétabli l'alimentation 24 VCC.

De plus, en raison de l'écart d'horloge de chaque serveur Modbus, il est impératif de régler périodiquementt la date et l'heure de tous les serveurs Modbus. La fréquence recommandée est d'au moins une fois toutes les 15 minutes.

Fonction de lecture de registres de maintien répartis

La fonction de lecture de registres de maintien répartis est disponible :

Code de fonction

Code de sous-fonction

Nom

Description

100 (0x64)

4 (0x04)

Lecture de registres de maintien répartis

Lecture de n registres non contigus.

La valeur maximale de n est 100, mais avec un déclencheur MasterPacT MicroLogic A ou E, il est recommandé que n ne dépasse pas 21.

Grâce à la fonction de lecture de registres de maintien répartis, l'utilisateur peut :

  • éviter de lire un gros bloc de registres contigus lorsque seuls quelques registres sont nécessaires.

  • éviter une utilisation multiple des fonctions 3 et 4 afin de lire des registres non contigus.

Exemple de lecture de registres de maintien répartis

Le tableau suivant indique comment lire les adresses du registre 664 (adresse 0x0297) et du registre 666 (adresse 0x0299) d'un serveur Modbus. L'adresse Modbus du serveur Modbus est 47 = 0x2F.

Requête du client

Réponse du serveur

Nom de champ

Exemple

Nom de champ

Exemple

Adresse du serveur Modbus

0x2F

Adresse du serveur Modbus

0x2F

Code de fonction

0x64

Code de fonction

0x64

Longueur des données en octets

0x06

Longueur des données en octets

0x06

Code de sous-fonction

0x04

Code de sous-fonction

0x04

Numéro de transmission(1)

0xXX

Numéro de transmission(1)

0xXX

Adresse du premier registre à lire (MSB)

0x02

Valeur du premier registre lu (MSB)

0x12

Adresse du premier registre à lire (LSB)

0x97

Valeur du premier registre lu (LSB)

0x0A

Adresse du deuxième registre à lire (MSB)

0x02

Valeur du deuxième registre lu (MSB)

0x74

Adresse du deuxième registre à lire (LSB)

0x99

Valeur du deuxième registre lu (LSB)

0x0C

CRC (MSB)

0xXX

CRC (MSB)

0xXX

CRC (LSB)

0xXX

CRC (LSB)

0xXX

(1) Le client indique le numéro de transmission dans la requête. Le serveur renvoie le même numéro dans la réponse.

Fonctions d'écriture

Les fonctions d'écriture suivantes sont disponibles :

Code de fonction

Code de sous-fonction

Nom

Description

6 (0x06)

Preset single register

Ecriture d'un registre

16 (0x10)

Preset multiple registers

Ecriture de n registres

43 (0x2B)

16 (0x10)

Set date and time

Ecrire la date et l'heure du serveur

NOTE: Le nombre de registres n est limité à 52 avec les déclencheurs MasterPacT MicroLogic E.

Fonctions de diagnostic

Les fonctions de diagnostic suivantes sont disponibles :

Code de fonction

Code de sous-fonction

Nom

Description

8 (0x08)

Diagnostic

Gestion des compteurs de diagnostic

8 (0x08)

10 (0x0A)

Clear counters and diagnostic register

Réinitialisation de tous les compteurs de diagnostic

8 (0x08)

11 (0x0B)

Return bus message counter

Lecture du compteur de messages de bus corrects gérés par le serveur

8 (0x08)

12 (0x0C)

Return bus communication error counter

Lecture du compteur des messages de bus incorrects gérés par le serveur

8 (0x08)

13 (0x0D)

Return bus exception error counter

Lecture du compteur des réponses d'exception gérées par le serveur

8 (0x08)

14 (0x0E)

Return server message counter

Lecture du compteur des messages envoyés au serveur

8 (0x08)

15 (0x0F)

Return server no response counter

Lecture du compteur des messages de diffusion générale

8 (0x08)

16 (0x10)

Return server negative acknowledge counter

Lecture du compteur des messages envoyés au serveur mais restés sans réponse en raison du code d'exception 07 d'acquittement négatif

8 (0x08)

17 (0x11)

Return server busy counter

Lecture du compteur de messages envoyés au serveur mais restés sans réponse en raison du code d'exception 06 d'équipement serveur occupé

8 (0x08)

18 (0x12)

Return bus overrun counter

Lecture du compteur des messages de bus incorrects dus à des erreurs de surcharge

11 (0x0B)

Get communication event counter

Lecture du compteur des événements Modbus

Compteurs de diagnostic

Modbus utilise des compteurs de diagnostic pour permettre la gestion des erreurs et des performances. Les compteurs sont accessibles à l'aide des fonctions de diagnostic Modbus (codes de fonction 8 et 11). Les compteurs de diagnostic Modbus et le compteur d'événements Modbus sont décrits dans le tableau suivant :

Numéro du compteur

Nom du compteur

Description

1

Bus message counter

Compteur des messages de bus corrects gérés par le serveur

2

Bus communication error counter

Compteur des messages de bus incorrects gérés par le serveur

3

Server exception error counter

Compteur des réponses d'exception gérées par le serveur et des messages de diffusion générale incorrects

4

Server message counter

Compteur des messages envoyés au serveur

5

Server no response counter

Compteur des messages de diffusion générale

6

Server negative acknowledge counter

Compteur des messages envoyés au serveur mais restés sans réponse à cause du code d'exception 07 d'acquittement négatif

7

Server busy count

Compteur des messages envoyés au serveur mais restés sans réponse en raison du code d'exception 06 d'équipement serveur occupé

8

Bus character overrun counter

Compteur des messages de bus incorrects dus à des erreurs de surcharge

9

Comm. event counter

Compteur d'événements Modbus (ce compteur est lu avec le code de fonction 11)

Réinitialisation des compteurs

Les compteurs de diagnostic sont réinitialisés à 0 :

  • lorsque la valeur maximum 65535 est atteinte ;

  • ils sont réinitialisés par une commande Modbus (code de fonction 8, code de sous-fonction 10)

  • lorsque l'alimentation électrique est coupée ;

  • lorsque les paramètres de communication sont modifiés.

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

Contenu utile ?