Vous êtes sur la page 1sur 28

18/01/2022

Communication Modbus

Présentation MODBUS
• Le protocole MODBUS a été crée en 1979 par Modicon (Télémécanique, Schneider Automation)
• Chaque esclave possède une adresse qui sert d'identifiant dans le bus. De très nombreux appareils
sont disponibles avec le protocole Modbus.
• Modbus est un bus de terrain industriel
• Le protocole MODBUS est couramment utilisé dans l'industrie, notamment pour dialoguer avec des
automates programmables.
• Certains appareils (compteur, variateur de vitesse...) sont uniquement esclaves, d'autre (automate,
PC...) peuvent être maître ou esclave.
• Le maître peut venir interroger les différents esclaves grâce à leur adresse et différentes fonctions
(lecture, écriture...).
• Le maître a la possibilité de connaître les informations de chaque esclave et/ou de les piloter.
• Les informations disponibles à la lecture ou à l'écriture sont disponibles dans la documentation des
appareils.

1
18/01/2022

MODBUS et modèle O.S.I.

• Le protocole MODBUS ne définit que la structure des messages et leur mode d’échange.
• MODBUS est indépendant de la couche physique: Il peut être implémenté sur des liaisons
RS232, RS422, ou RS485, ainsi que sur une grande variété d’autres médias (ex: fibre optique,
radio, etc...),
• La liaison RS 485 est la plus répandue car elle autorise le «multipoints».

Présentation MODBUS

Il existe 3 variantes de MODBUS:

1. MODBUS liaison série: sur liaison série fonctionnant de 1200 à 56 kbits/s


avec une méthode d’accès maître/esclave.

2. MODBUS +: est un bus fonctionnant à 1 Mbit/s basé sur une méthode


d’accès par anneau à jeton.

3. Ethernet TCP/IP MODBUS: utilise le protocole TCP/IP et Ethernet 10 Mbit/s


ou 100 Mbits/s pour transporter une trame MODBUS.

2
18/01/2022

Modbus dans les architectures réseaux


Modbus peut être utilisé dans plusieurs architectures réseaux

Modbus sur
Ethernet TCP-IP

Modbus Plus Modbus Modbus


sur RS232 sur RS485

Modbus liaison série et le modèle OSI

3
18/01/2022

MODBUS série et modèle OSI

MODBUS+ et modèle OSI

4
18/01/2022

Ethernet TCP/IP MODBUS et modèle OSI

ModBus : Couche Physique

• Médium: Typiquement une paire torsadée blindée.

• Topologie: bus avec dérivations et terminaisons de fin de ligne.

• Longueur maximale: 1.2 km sans répéteur.

• Débit: 9600 ou 19200 bits/s (56 kbits/s sur certains produits).

• Nombre maxi d’équipements: 32 = 1 maître + 31 esclaves.

10

5
18/01/2022

MODBUS série
• RS232 : norme électrique caractérisant la transmission d’un signal sur
un seul fil référencé par rapport à la masse (liaison point à point).
• RS422 et RS485 : norme électrique caractérisant la transmission d’un
signal sur un support différentiel (liaison multipoints ou bus). Deux fils
correspondant à des niveaux complémentaires sont utilisés pour
coder l’information.

11

ModBus : Couche de liaison

• Méthode d ’accès au médium: Maître / esclave.


• Méthode de transmission: Client / serveur.
• Le maître est client, l’esclave est serveur.
• Le CLIENT est une entité demandant un service sur le réseau (une requête).
Une programmation des requêtes est nécessaire. Tous les clients sont actifs.
• Le SERVEUR est l’entité qui répond à la demande d’un client. Le serveur est
complètement passif
• Taille maxi des données utiles: 128 mots (256 octets).

12

6
18/01/2022

ModBus : Couche de liaison (Types de trames)


• Un protocole consiste en la définition de trames d’échange.
• La trame MODBUS existe en 2 versions :
• Le Modbus RTU (Remote Terminal Unit) : les données sont sur 8 bits.
• Le Modbus ASCII : les données sont sur 7 bits (les trames sont donc visibles en
hexadécimal et il faut deux caractères pour représenter un octet).
• Le principal avantage du mode RTU est qu’il transmet plus rapidement les informations.
• Le mode ASCII permet d’avoir un intervalle de temps d’une seconde entre 2 caractères
consécutifs, pour ne pas générer d’erreur de transmission.

13

Trame MODBUS
• Le protocole MODBUS utilise des trames dont le début et la fin sont standards.
L'adresse est placée en début de trame.
• Mode de communication : half-duplex. (2 fils ou 4 fils)
• Le maître parle à un esclave et attend sa réponse,
• Le maître parle à l'ensemble des esclaves, sans attente de réponse (diffusion
générale).
• Il ne peut y avoir sur la ligne qu'un seul équipement en train d'émettre.
• Aucun esclave ne peut envoyer un message sans une demande préalable du
maître.
• Le dialogue entre les esclaves est impossible.
14

7
18/01/2022

Trame MODBUS
• Echange maître vers 1 esclave : le maître envoie une demande et attend une
réponse.

• Echange Maître vers toutes les stations esclaves : le maître diffuse un message à
tous les esclaves présents sur le réseau, ceux-ci exécutent l’ordre du message
sans émettre une réponse.

15

PDU = Protocol Data Unit


Le protocole Modbus utilise un format de message unique appelé PDU : Protocol Data Unit
indépendant des couches basses. Ce format de PDU est utilisé pour la requête et pour la réponse.

PDU = Protocol Data Unit

octet
Code Contrôle
Adresse Data
Fonction d’erreur

Identifie le = 1 à 127 Complément Contrôle de


destinataire Action à d’information dépendant la validité
réaliser du code fonction

Le champ “adresse” sert à identifier le destinataire de la requête.


Le champ “Contrôle d’erreur” permet de contrôler la validité de l’ensemble du message.
Le format des champs « Adresse » et « Contrôle d’erreur » dépend du support réseau utilisé
16

8
18/01/2022

Trame MODBUS
Tout échange contient deux trames :
1. une demande du maître
2. une réponse de l'esclave
 Chaque trame contient 4 types d'informations

Code CRC
Adresse data
fonction Ou LRC

1 octet 1 octet X octets 2 octets


Entre 1 et 247 Entre 1 et 127 Complément Contrôle de
Identifie d'informations validité
Le destinataire (dépend du code
Fonction)
 Code fonction 1 octet
– code fonction [1;127]
– code exception [128;255] 17

Requête ModBus
• Numéro d’Esclave
• Identifie l’Esclave concerné par la trame Variable de 1 à 247
• Code fonction
• Identifie le rôle et la finalité de la trame Variable de 01 à 19
• Premier paramètre
• Adresse du bit ou mot adressé
• Composé de son octet de poids fort (PF) et son octet de poids faible (Pf)

• Autres paramètres (ou données)


• Informations additionnelles liées au code fonction
• Quantité de mots adressés, valeur du bit ou du mot, …
• Ecrites dans plusieurs mots consécutifs

• Contrôle de Redondance Cyclique


• Détection des erreurs de transmission avec un CRC16
• Composé de son octet de poids fort (PF) et son octet de poids faible (Pf)

18

9
18/01/2022

Trame d’échange question/réponse :


• La question :
Elle contient un code fonction indiquant à l’esclave adressé le type d’action demandé.
Les données contiennent des informations complémentaires dont l’esclave a besoin pour exécuter
cette fonction.
Le mot de contrôle permet à l’esclave de s’assurer de l’intégralité du contenu de la question.

- Le code fonction indique à l’esclave le type d’action à réaliser.


Exemple :
lecture de registre, code de fonction (03)HEX,
écriture dans un registre, code de fonction (10)HEX.
19

Trame d’échange question/réponse :


• La réponse :
La réponse est toujours sous une forme identique à la question.

20

10
18/01/2022

Mot de contrôle
Le mot de contrôle d’une trame Modbus est un code de vérification
d’erreur appelé contrôle de redondance cyclique sur 16 bits ou CRC16.

• Le CRC (Cyclical Redundancy Check ) est calculé par l’émetteur avant


d’être transmis.
• Le récepteur calcule aussi un CRC avec la trame reçue et le compare
avec le CRC reçu : des valeurs différentes indiqueront une erreur dans
la transmission du message.

21

Contrôle d ’erreur
MAITRE Esclave

Code Code
N°esclave Données CRC16 N°esclave Données CRC16
fonction fonction

Calcul du CRC16 Calcul du CRC16

Comparaison des CRC16

Ne renvoie rien CRC16 identique

Exécute l ’action et répond au client

• Lorsque le maître émet une demande, il calcule le CRC. Lorsque l’esclave reçoit le
message, il le range en mémoire, calcule le CRC et le compare au CRC reçu.
• Si le message est incorrect (CRC différents), l’esclave ne répond pas.
• Si le message est correct mais que l’esclave ne peut le traiter, il renvoie une réponse d’exception.22

11
18/01/2022

Déroulement d’une transaction sans erreur


Requête
Client Serveur

1 Initialise les données Réponse

2 Transmet la requête
Code 3
Data requête Réalise l’action demandée
Fonction
4 Initialise la réponse
1 à 127 Complément
d’information 5 Transmet la réponse

6 Traite la réponse Code


Fonction
Data réponse

Egal au Code fonction Données


de la requête demandées
23

Déroulement d’une transaction avec erreur


Requête
Client Serveur

1 Initialise les données Réponse

2 Transmet la requête
Code
Fonction
Data requête 3 Détecte une erreur dans l’action demandée

4 Initialise données message d’erreur


1 à 127 Complément
d’information 5 Transmet le message d’erreur

6 Traite la réponse Code fonction


Code Exception
Exception

Code fonction Exception =


Code fonction + 80H Code Exception indique la
raison du refus
Valeur entre 129 et 255
24

12
18/01/2022

Traitement des erreurs


• Si l'esclave reçoit la requête, mais détecte une erreur, aucune réponse n'est retournée.
• Si l'esclave reçoit la requête sans erreur, mais ne peut pas la traiter, il peut retourner une réponse
d'exception informant le maître de la nature de l'erreur.
• La trame de la réponse d'exception est :

Adresse Code fonction + 80h Code erreur CRC Fin


1 octet 1 octet 1 octet 2 octets 3,5 caractères

• Ex code lecture de n bits = 01H code exception 81H


• Les différents code erreurs :

25

Fonctionnement détaillé coté serveur


Attente réception
requête Réception
Validation code
fonction
Invalide
Code d’exception = 1
Valide

Validation adresse
données
Invalide
Code d’exception = 2
Valide

Validation valeurs
données
Invalide
Code d’exception = 3
Valide

Execution de la fonction

Code d’exception = Invalide


4, 5 ou 6 Valide

Envoi de la réponse Envoi de la réponse


Exception Modbus

26

13
18/01/2022

Accéder aux registres MODBUS


il reste à savoir quel registre demander à l'appareil pour obtenir les mesures, et quel registre modifier
pour changer sa configuration.
A ce niveau, les adresses des registres changent d'un appareil à l'autre, mais il y a des conventions
MODBUS utiles à connaître pour savoir décoder les manuels techniques.

Le protocole Modbus permet d’accéder à distance à 4 types de variables :

• Les “Discrete Inputs” : sont des variables au format bit accessibles en lecture uniquement, ce type
de variable est supporté par des produits supportant des entrées TOR par exemple.

• Les “Coils” (b
• obine en anglais) : sont des variables format bit accessibles en lecture et écriture, supportés par des
produits supportant des données binaires modifiables par application.

• Les “Input Registers” : sont des variables au format mot (16 bits) accessible en lecture uniquement,
ce type de variable est supporté par des produits supportant des entrées analogiques, par exemple.

• Les “Holding Registers” : sont des variables au format mot (16 bits) accessible en lecture et écriture,
27
ce type de variable est supporté par des produits supportant des données modifiables par
application.

Principales fonctions MODBUS


Voici la liste des codes fonction (tous les équipements ne supportent pas tous les codes fonction)

Fonction Code
Discrete Read Lecture de n bits d'entrée 02H
inputs Discrete Inputs param1=adresse param2=quantité
Accès Read Coils Lecture de n bits de sortie 01H
bits Coils param1=adresse param2=quantité
Write Écriture d'un bit interne ou de sortie 05H
Single Coil param1=adresse param2=0000 ('0') ou FF00('1')
Write Écriture de n bits internes ou de sortie consécutifs 0FH
Multiple Coils param1=adresse param2=Nbre bits, param3=Nbre d'octets params[i]=valeurs
Input Read Lecture de n mots registre d'entrée 04H
registers Input Registers param1=adresse param2=quantité
Read Lecture de n mots internes 03H
Accès Holding Registers param1=adresse param2=quantité
Holding
mots registers
Write Écriture d'un mot registre ou registre 06H
Single Register param1=adresse param2=valeur
Write Écriture de n mots internes ou de registres consécutifs 16H
Multiple param1=adresse param2=Nbre mots, param3=Nbre d'octets, params[i]=valeurs
Registers

28

14
18/01/2022

Write Single Register : code fonction 06


La requête « Write Single Register » permet d’accéder en écriture à un seul registre.

Requête :
1 octet 2 octets 2 octets
Code
Fonction Adresse du Valeur du
registre registre
06

0 à 65 535 0 à 65 535

Réponse :

1 octet 2 octets 2 octets


Code
Fonction Adresse du Valeur du
registre registre
06

0 à 65 535 0 à 65 535 29

Write Multiple Registers : code fonction 16H


La requête « Write Multiple Registers » permet d’accéder en écriture à plusieurs registres consécutifs.

Requête :
1 octet 2 octets 2 octets 1 octet 2 octets 2 octets
Code Adresse du Nombre de Nombre Valeur du Valeur du
Fonction premier registres à d’octets à premier dernier
16 registre écrire écrire registre registre

0 à 65 535 n = 1 à 123 2xn 0 à 65 535 0 à 65 535

Réponse :
1 octet 2 octets 2 octets
Code Adresse du
Fonction Nombre de
premier
registres écrits
16 registre

0 à 65 535 n = 1 à 123
30

15
18/01/2022

Read Holding Registers : code fonction 03


La requête « Read Holding Registers » permet d’accéder en lecture à plusieurs registres consécutifs.

Requête :
1 octet 2 octets 2 octets
Code Adresse du
Fonction Nombre de
premier
registres à lire
03 registre

0 à 65 535 n = 1 à 125

Réponse :
1 octet 1octets 2 octets 2 octets
Code Valeur du Valeur du
Fonction Nombre
premier dernier
d’octets lus
03 registre registre

0 à 65 535 0 à 65 535
31

Read Holding Registers : code fonction 03


La requête « Read Holding Registers » permet d’accéder en lecture à plusieurs registres consécutifs.

Requête :
1 octet 2 octets 2 octets
Code Adresse du
N°esclave Fonction Nombre de CRC16
premier
registres à lire
03 registre

Réponse :
1 octet 1octets 2 octets 2 octets
Code Valeur du Valeur du
Fonction Nombre
N°esclave premier dernier CRC16
d’octets lus
03 registre registre

32

16
18/01/2022

Read Coils : code fonction 01

La requête « Read Coils » permet d’accéder en lecture à plusieurs sorties digitales consécutives.

Requête :
1 octet 2 octets 2 octets
Code Adresse de la Nombre de
Fonction première sortie sorties
01 digitale digitales à lire

0 à 65 535 n =1 à 2000

Réponse :
1 octet 1 octet 1 octet 1 octet
Code
Fonction Nombre Valeur du Valeur du
d’octets lus premier octet dernier octet
01

n/8 + 1 si R 0 à 255 0 à 255


33

Read Discrete inputs : code fonction 02h


La requête « Read Discrete inputs » permet d’accéder en lecture à plusieurs entrées digitales consécutives.

Requête :
1 octet 2 octets 2 octets
Code Adresse de la Nombre
Fonction première d’entrées
02 entrée digitale digitales à lire

0 à 65 535 n =1 à 2000

Réponse :
1 octet 1 octet 1 octet 1 octet
Code
Fonction Nombre Valeur du Valeur du
d’octets lus premier octet dernier octet
02

n/8 + 1 si R 0 à 255 0 à 255


34

17
18/01/2022

Write Multiple Coils : code fonction 0FH


La requête « Write Multiple Coils » permet d’accéder en écriture à plusieurs sorties digitales consécutives.

Requête :
1 octet 2 octets 2 octets 1 octet 1 octet 1 octet
Code Adresse de la Nombre de Nombre
Fonction Valeur du Valeur du
première sortie sortie digitales d’octets à
premier octet dernier octet
0F digitale à écrire écrire

0 à 65 535 n =1 à 1968 n/8 + 1 si R 0 à 255 0 à 255

Réponse :
1 octet 2 octets 2 octets
Code Adresse de la Nombre de
Fonction première sortie sortie digitales
0F digitale écrites

0 à 65 535 n =1 à 1968
35

MODBUS série
MODBUS RTU ET MODBUS ASCII

36

18
18/01/2022

MODBUS série
• 2 modes de transmission
• RTU (Remote Terminal Unit) Unité terminale distante.
• les octets sont transmis directement sans conversion ASCII.

• Le numéro d'esclave par exemple "01" sera envoyé tel que (00000001)

• ASCII (American Standard Code for Information Interchange)


• Transmission des 2 octets correspondant au code ASCII codé BCD des caractères.

• Le numéro d'esclave par exemple "01" sera envoyé : "0" et "1" soit 0x30 et 0x31 (00110000 et 00110001).

• le mode de transmission doit être configuré de façon identique pour tous les équipements
branchés sur le bus.

• Ces deux formats de trames peuvent êtres utilisés dans le protocole MODBUS, mais sont
incompatibles entre eux.

• Environ 95% des modules communicants sur MODBUS utilisent des trames "RTU". 37

MODBUS série : Formats de trames


MODBUS RTU/MODBUS ASCII

38

19
18/01/2022

Transmission RTU
• La trame ne comporte ni octet d’en-tête de message, ni octets de fin
de message.

Sa définition est la suivante :

CRC16 : Mot utilisé pour détecter les erreurs de transmission (cyclical redundancy check) ou test de
redondance cyclique.
La détection de fin de trame est réalisée sur un silence supérieur ou égal à 3,5 caractères.
39

Mode RTU : Format général d’une trame

- N° esclave : de 1 à 247.
- N° fonction : Il existe 19 fonctions possibles sur Modbus. Ces fonctions sont codées sur 1
octet en hexadécimal.
- 1er paramètre : Adresse du bit ou du mot adressé.
- 2ème paramètre :Quantité de mots adressés ou valeur du bit ou du mot écrit selon la
fonction utilisée.
- Autres paramètres : Données écrites dans plusieurs mots consécutifs.
- CRC16 : Contrôle par redondance cyclique pour détecter les erreurs de transmission
- La détection de fin de trame est réalisée sur un silence supérieur ou égal à 3,5 caractères.
40

20
18/01/2022

Mode RTU
• Trame MODBUS

• Envoi d ’un octet sur le support physique


• 1 bit de start
• 8 bits de donnée (LSB en premier)
• 1 bit de parité (paire)
• 1 bit de stop
Start Data parité Stop
Forme physique des données, un caractère = 11 Bits
1 bit 8 bits 1 bit 1 bit 41

Mode RTU : format des caractères 11 bits

42

21
18/01/2022

Transmission RTU
Mode RTU (Unité terminale distante):
• Ce mode RTU est à temps contrôlé : les temps entre les caractères et entre les trames doivent être
respectés, sinon le protocole sera refusé.

Transmission d’un message


• Avant et après chaque message, il doit y avoir un silence équivalent à 3,5 fois le temps de transmission d’un
caractère.

• L’ensemble du message doit être transmis de manière continue. Si un silence de plus de 3 fois le
temps de transmission d’un mot intervient au cours de la transmission, le destinataire du message
considérera que la prochaine information sera l’adresse du début d’un nouveau message.

43

Transmission RTU : Format de la trame

Start Data parité Stop


Forme physique des données, un caractère = 11 Bits
1 bit 8 bits 1 bit 1 bit
44

22
18/01/2022

Transmission RTU
le temps de
le temps de transmission 3,5 fois le temps d’un
débit de transmission transmission d’un
d’un bit caractère
caractère

2400 bits/s 417 us 4.6 ms 16 ms

4800 bits/s 208 us 2.3 ms 8.0 ms

9600 bits/s 104 us 1.2 ms 4.0 ms

19200 bits/s 52 us 573 us 2.0 ms

38400 bits/s 26 us 286 us 1.0 ms

115200 bit/s 8.7 us 95 us 0.33 ms

45

Mode RTU : Algorithme de calcul du CRC16


Le CRC16 (Cyclic Redundancy Check sur
16 bits) réalise une série de décalage à
droite et de OU exclusif avec le
polynôme A001 (hex) avec chacun des
octets de la trame.

46

23
18/01/2022

Exemple de lecture d'un mot sur l'esclave 1


• Numéro d'esclave : 1
• Fonction : 3
• Adresse du mot à lire : 800 (PF : 03 pf : 20)
• Nombre de mots à lire : 1 (PF : 00 pf : 01)
• CRC : -31356 (PF : 85 pf : 84)

• La trame qui sera envoyée est la suivante :


01 03 0320 0001 8584

47

Mode ASCII
Chaque champ composant une trame est codé avec 2 caractères ASCII (2 fois 8 bits).
Les fonctions et les adresses disponibles sont identiques à celles de la version RTU sauf que caractères transmis sont en
ASCII et que la fin du message n’est pas établie sur la base d’une durée mais en fonction des caractères de retour à la
ligne.
Sa définition est la suivante :

: Adresse Fonction Données LRC CR LF


2 caractères 2 caractères (N caractères) 2 caractères

• Le début du message est indiqué par le caractère ‘:’ (ASCII 3Ah)


• Le champ Adresse contient l’adresse de l’appareil esclave auquel le message est envoyé.
• Le champ Fonction contient le code de la fonction que l’esclave doit exécuter.
• Le champ Données contient les données transmises a l’esclave ou celles envoyées par l’esclave comme réponse à une
interrogation.
• LRC : Le champ LRC permet au Maitre et a l’esclave de s’assurer de l’absence d’erreurs de transmission.
• CR LF : deux caractères ASCII, le caractère 13 (0x0D) suivi du caractère 10 (0x0A).
48

24
18/01/2022

Calcul du LRC (CHECKSUM pour ASCII)


• LRC : C’est la Somme en hexadécimal, modulo 256 du contenu de la trame
hors entêtes; complémentée à 2 et codée en ASCII
• Le calcul pratique du LRC se fait par :
• S = (n°esclave + fonction + data) mod 256
• S=~S
• S=S+1
• Le contrôle de validité se fait par : (n°esclave + fonction + data + LRC reçu) = 0x00
• Exemple:
• esclave 0x01
• fonction 0x05 écriture bit n°1
• MSB adresse 0x00
• LSB adresse 0x01
• MSB data 0xFF valeur d'écriture
• LSB data 0x00

• LRC 0xFA
49

• Exemple:
le message à envoyer est le suivant:

Message dans lequel:


: = ASCII 3Ah - délimiteur début de message
08 = ASCII 30h 38h - adresse esclave
04 = ASCII 30h 34h - fonction de lecture position
00 03 = ASCII 30h 30h 30h 33h - adresse de la position contenant les valeurs à lire
00 02 = ASCII 30h 30h 30h 32h - nombre de registres à lire à partir de l’adresse 03
La réponse est la suivante:
EF = ASCII 45h 46h - checksum LRC
CRLF = ASCII 0Dh 0Ah - délimiteur de fin de message
Réponse dans laquelle:
: = ASCII 3Ah - délimiteur début de message
08 = ASCII 30h 38h - adresse (Esclave 08)
04 = ASCII 30h 34h - fonction requise par le Maitre
04 = ASCII 30h 34h - nombre de byte envoyés par l’esclave
00 00 01 A0 = ASCII 30h 30h 30h 30h 30h 31h 41h 30h - valeur hexadécimale
4F = ASCII 34h 46h - checksum LRC
CRLF = ASCII 0Dh 0Ah - délimiteur de fin de message 50

25
18/01/2022

Exemple
• Écriture de la valeur 1968H à l'adresse 00A8H sur l'esclave N° 11

51

Lecture de N mots: fonctions n°3 et 4


• Fonction 3 : lecture de mots de sortie.
• Fonction 4 : lecture de mots d'entrée.

• Exemple

Lecture des mots 40h à 43h de l'esclave n°1


• Demande : 01 03 00 40 00 04 45 DD
• Réponse : 01 03 08 00 00 80 00 80 00 80 00 C2 17

52

26
18/01/2022

Ecriture d'un mot : fonction n°6

Exemple
Ecriture du mot 30h de l'esclave n°1, sous-adresse 0 à la valeur 0001h
• Demande : 01 06 00 30 00 01 48 05
• Réponse : 01 06 00 30 00 01 48 05
53

• Exemple de communication maître/esclave

54

27
18/01/2022

Exemple d’échange entre le maître (TSX 37 Micro) et l’esclave (ATV-28)


• Trame émise par le maître : 04 03 00 02 00 01 25 CA
• Adresse esclave : 04
• Code fonction 03 = lecture registre
• N° du registre de début de lecture : MSB : 00 et LSB : 02
• Nombre de registre de lecture : MSB : 00 et LSB : 01
• CRC : 25 CA

• Réponse de l’esclave sans erreur : 04 03 02 02 58 B8 DE


• Adresse esclave : 04
• Code fonction : lecture registre : 03
• Nombre d’octets données : 02
• Données du registre 0002 : MSB 02 et LSB : 58
• CRC : B8 DE

• Trame émise par le maître pour lire des mots du registre 450 au registre 456 : 04 03 01 C2 00 07 5A C8
• Adresse esclave : 04
• Code fonction 03 = lecture registre
• N° du registre de début de lecture : MSB : 01 et LSB : C2 (450)10=(01C2)16
• Nombre de registre de lecture : MSB : 00 et LSB : 07
• CRC : 5A C8 55

28

Vous aimerez peut-être aussi