Protocole Modbus
Protocole Modbus
Protocole Modbus
Modbus / Jbus
56 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
Schneider Electric 57
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52348
Maître
Demande
Réponse
structure.
Code Zone de Zone de
E52350
N° esclave données
fonction contrôle Maître
CRC 16
Diffusion
Les demandes du maître sont adressées
soit :
b A un esclave donné (identifié par son
Esclave 1 Esclave 2 Esclave 3
numéro dans le premier octet de la trame
de demande).
b A tous les esclaves (diffusion).
58 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
Analyse de la réponse
et préparation de
E52351
l'échange suivant
Maître D D
Esclave N°1 R
Esclave N°n R
Support
physique
Temps
Echange i-1 Echange i Echange i+1
D Demande R Réponse
Attente Diffusion
Temps de Exécution par l'esclave
retournement
Schneider Electric 59
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52352
bit start
Silence 3 caractères
Caractère Caractère
Nota : Respectez un silence sur la ligne entre deux trames d'au moins trois
caractères.
Lorsque le message
est reçu par l'esclave
ce dernier lit le mot
de contrôle et accepte
ou refuse le message.
Information nécessaire
à la demande adresse
bits, mots valeur bits,
mots nombre de bits,
nombre de mots.
Ce code permet
de sélectionner
les commandes
disponibles.
b Réponse
60 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
Dans tous les cas, se reporter à la notice de mise en œuvre des modules.
Schneider Electric 61
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
Le maître émet une demande en indiquant : Contrôle des messages reçus par l'esclave
b Le numéro d'esclave. Contenu d'une réponse exception.
b Le code fonction.
b Les paramètres de la fonction.
E52357
N° esclave 1 CRC 16
(1 à FF)
Il calcule et émet le contenu du mot de PF * pf *
contrôle (CRC 16). 1 octet 1 octet 1 octet 2 octets
Lorsque l'esclave reçoit le message de
demande, il le range en mémoire, calcule le Code d'exception :
CRC et le compare au CRC 16 reçu : 1. - Code fonction inconnu
2. - Adresse incorrecte
b Si le message reçu est incorrect 3. - Donnée incorrecte
(inégalité des CRC 16), l'esclave ne répond 4. - Automate non prêt
5. - Acquittement
pas. 7. - Non acquittement
b Si le message reçu est correct mais que 8. - Défaut d'écriture
l'esclave ne peut le traiter (adresse erronée, 9. - Chevauchement de
zone
donnée incorrecte...), il renvoie une
réponse d'exception. Code fonction reçu et
Maître bit de poids fort à 1.
E52356
Esclave Exemple :
Zone de
N° esclave Fonction données CRC 16 Calcul du CRC
b Demande.
Comparaison CRC 16
E52358
1 9 0 0 0 0
pf * PF*
CRC 16
b Réponse.
Important : dans le CRC 16, l’octet de
poids faible (pf) est transmis en premier.
E52359
1 89 1
pf * PF*
CRC 16
62 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
Définition : Un bit est une unité élémentaire d'information ne pouvant prendre que
deux valeurs distinctes : 1 ou 0 . Les "bits" représentent le langage qu'utilisent les
ordinateurs pour fonctionner. Elles correspondent aux niveaux électriques suivant
dans l'ordinateur :
b "bit 0" = 0 volt.
b "bit 1" = 5 volts.
Important :
Lorsque les "bits" sont transmis sur un port série , ils correspondent aux niveaux
électriques suivants :
b "bit 0"= +3 à +15 V.
b "bit 1"= -3 à -15 V.
b Réponse.
Nombre
E52361
Dernier
N° esclave 1 ou 2 d'octets 1 er octet lu CRC 16
octet lu
lus pf * PF*
transmis transmis
Nota : Les bits non utilisés dans l'octet sont mis à zéro.
Exemple :
Lecture des bits 204 à 211 de l'esclave n° 1.
b Demande.
E52362
01 01 02 04 01 0E
CRC 16
b Réponse.
E52363
01 01 02 10101001 00101110
Schneider Electric 63
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52364
N° esclave 3 ou 4 1er mot à lire : lire n 125 : CRC 16
PF * pf * PF * pf * pf * PF*
b Réponse.
Exemple :
Lecture des mots 805 à 80A de l'esclave n° 2.
b Demande.
E52366
02 03 0805 0006
CRC 16
b Réponse.
E52367
02 03 OC XXXX YYYY
CRC 16
64 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52368
N° esclave 5 Adresse du bit Valeur du bit 0 CRC 16
PF * pf * pf * PF*
E52368
b Réponse.
Nota : Si le numéro d'esclave est 00, tous les esclaves exécutent le forçage sans
émettre de réponse.
Exemple :
Forçage à 1 du bit 210 de l'esclave n° 2.
E52369
02 05 02 10 FF 00
CRC 16
b Réponse.
E52370
Nota : Si le numéro d'esclave est 00, tous les esclaves exécutent le forçage sans
émettre de réponse.
Exemple :
01 06 810 1000
CRC 16
Schneider Electric 65
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52372
N° esclave 7 CRC 16
pf * PF*
b Réponse.
E52373
66 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52489
N° esclave 8 Code SS Données CRC 16
b Ces compteurs sont des mots de 16 bits. Fonction
Lors de la réponse
XXXX est le
contenu du
registre de
diagnostic (fixé
par l'utilisateur).
Modifie le caractère délimiteur de 03 XY00 XY fixé par
fin de trame (en mode ASCII). Par l'utilisateur : code
défaut, ce caractère est LF (OA). ASCII du
caractère de fin
de trame
Mode déconnecté l'esclave est 04 0000
forcé à ne plus répondre(utiliser la
sous-fonction 1 pour activer
l'esclave)
Remise à zéro des compteurs de 0A 0000
diagnostic
Lecture du nombre total des :
v trames reçues sans erreur CRC 0B XXXX(1)
(CPT 1)
v trames reçues avec erreur CRC 0C XXXX(1)
(CPT 2)
v nombre de réponses d'exception 0D XXXX(1)
(CPT 3)
v trames adressées à la station 0E XXXX(1)
(CPT 4) - (hors diffusion)
v demandes de diffusion reçues 0F XXXX(1)
(CPT 5)
v réponses NAQ (CPT 6) 10 XXXX(1)
v réponses de l'esclave non prêt 11 XXXX(1)
(CPT 7)
v caractères non traités (CPT 8) 12 XXXX(1)
Schneider Electric 67
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
b Demande.
E52374
N° esclave OB CRC 16
pf * PF*
1 octet 2 octets
b Réponse.
E52375
Contenu du
N° esclave OB 00 00 compteur de CRC 16
l'esclave pf * PF*
68 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
b Demande.
E52376
N° esclave 0C CRC 16
b Réponse.
Etat de Etat de
E52377
N°
esclave OC 46 00 00 compteur compteur 64 octets CRC
d'évènement de message
b En réception.
= 1 si
E52378
1 1 = 1 si mode 0
déconnecté
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0
(1) le mode déconnecté est utilisé pour l'analyse de certaines anomalies. Dans ce
mode, le coupleur surveille la ligne en incrémentant les compteurs et en mettant à
jour la table trace. Par contre, aucun transfert vers la mémoire de l'esclave n'est
effectué et aucune réponse n'est envoyée sur la ligne. Ce mode est piloté par la
commande 8 (sous fonction 01 et 04).
Schneider Electric 69
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
Remarques :
b La mémoire de données est accessible quel que soit l'état du coupleur (connecté
ou non). Cela permet de respecter le principe d'exclusion mutuelle.
b Une procédure de déconnexion automatique (time out, ...) sur l'esclave doit être
prévue dans le cas où la commande de déconnexion n'arrive pas (coupure ligne,
erreur caractère, ...).
70 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
Syntaxe :
b Demande.
E52382
N° esclave OE CRC 16
b Réponse.
Code Longueur
E52383
Le code sous fonction renvoyée est le code sous fonction de la dernière commande
programme exécutée, avec le bit de poids fort forcé à 1 si une erreur a été détectée
lors de l'exécution.
Exemple : 82 pour une demande de marche (sous fonction 2). Le type de l'erreur est
codé comme suit :
Schneider Electric 71
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52384
N°
esclave OF du 1er bit de bits à d'octet à des bits CRC 16
à forcer forcer forcer à f orcer
1 X 1968
1 n 246
b Réponse.
E52385
N° Adresse Nombre
esclave OF du 1 er bit de bits CRC 16
forcé forcés
Exemple :
Forcer à 1 les bits 200 et 201 de l'esclave 3.
b Demande.
E52386
3 OF 200 0002 01 03
CRC 16
b Réponse.
E52387
3 OF 200 0002
CRC 16
72 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52388
N°
esclave 10 du 1 er mot de mots d'octets mots à CRC 16
à forcer à forcer à forcer forcer
1 X 123
1 N 246
PF * pf * PF * pf * pf * PF *
b Réponse.
E52389
Adresse Nombre
N ° esclave 10 du 1er mot de mots CRC 16
forcé f orcés
Exemple :
Forçage des mots 0800 à 0803 de l'esclave n° 1.
(0800) = 0001
(0801) = 0010
(0802) = 0100
(0803) = 1000
b Demande.
E52390
CRC 16
b Réponse.
01 10 0800 0004
CRC 16
Schneider Electric 73
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52392
N° esclave 11 CRC 16
b Réponse.
E52393
Nota : Le nombre d'octets, l'ID esclave, les données disponibles, dépendent du type
d'esclave. Indicateur de fonctionnement : FF = ON & 00 = OFF.
b Demande.
E52394
01 11 CRC 16
b Réponse.
E52395
01 11 04 64 FF 01 E1 CRC 16
74 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
FFFF CRC 16
E52396
CRC 16 Octet CRC 16
n=0
n=n+1
octet suivant
fin
+ ou exclusif
n = nombre de bits d'information
POLY = polynôme de calcul du CRC 16 = 1010 0000 0000 0001
(polynôme générateur = 1 + x2 + x 15 + x 16)
Dans le CRC 16, le 1er octet émis est celui des poids faibles.
Schneider Electric 75
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
76 Schneider Electric
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
E52397
02 0B 41 17
E52398 Contenu du
02 0B 00 00 compteur A4 38
(ici 00 00)
CRC 16
E52399
+ 5V
OV 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 0 0 0 1
- 5V
LSB MSB
Start
Start
Stop
Stop
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
1 4 7 1
Schneider Electric 77
Guide d'intégration Le protocole Modbus (suite)
Modbus / Jbus
b Demande.
E52397
02 0B 41 17
b Réponse.
Contenu du
E52398
02 0B 00 00 compteur A4 38
(ici 00 00)
+ 5V
E52400
OV 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0
- 5V
2,86ms
Prise de
ligne
Stop
Stop
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
= 2 0 B 0
78 Schneider Electric