You are on page 1of 39

Protocole MODBUS TCP

Protocole MODBUS TCP

4/10/17 WGom:FESTO France : MODBUS TCP 1


Protocole MODBUS TCP
Protocole MODBUS TCP : Introduction (1)

Le protocole MODBUS a t propos et mis au point en 1979 par la


socit GOULD MODICON (MODicon BUS) pour interconnecter ses
automates programmables via liaison srie.

La spcification du protocole MODBUS est gratuite, les droits sont


toujours libres et seulement la conformit doit juste tre vrifie (par
modbus.org)

MODBUS est indpendant du mdium de transmission (cbles, fibres


optiques,...).

Les implmentations du protocole MODBUS, bases sur la transmission


srielle RS232, RS485 (MODBUS-RTU, MODBUS-ASCII) ou sur le
rseau jeton (MODBUS+) ont t largement rependues et bien
approuves par les industriels.

4/10/17 WGom:FESTO France : MODBUS TCP 2


Protocole MODBUS TCP
Protocole MODBUS TCP : Introduction (2)
Couche applicative MODBUS

MODBUS TCP

TCP

IP

MODBUS RTU/ASCII MODBUS + /HDLC Ethernet II / 802.3

Liaison srie Couche physique Couche physique


RS-232 ou RS-485 (rseau jeton) Ethernet

Avec larriv de lEthernet TCP/IP, le protocole a t implment sur ce


rseau sous le nom : MODBUS TCP
Comme ses prdcesseurs, MODBUS TCP est un standard ouvert bas sur
le mme protocole et lEthernet TCP/IP est simplement utilise comme un
nouveau moyen de communication et de transmission de donnes.
Le dialogue entre deux stations se fait en mode Client Server et les
messages MODBUS TCP (requtes/rponses) sont encapsuls dans le
segment TCP
Tous les message du Client sont envoyes vers le port 502 de la station
Server
4/10/17 WGom:FESTO France : MODBUS TCP 3
Protocole MODBUS TCP
Message (trame) MODBUS TCP
Liaison srie : Message MODBUS RTU/ASCII : max 256 octets
1 octet 1 octet Max 252 octets 2 octets
Adresse Esclave CODE FONCTION DONNEES CRC-16
(Slave Addresse) (Function Code) (Data) (Error Check)

PDU (Protocol Data Unit)

Modbus Header Function Code Data


1 octet Max 248 octets

TrID ProID Length UnitID


2 octets 2 octets 2 octets 1 octet

Ethernet : Message MODBUS TCP : max 256 octets

La spcification du protocole MODBUS dfinit simplement la partie PDU (Protocol Data


Unit) qui est indpendant des couches de communication.
La spcification du protocole MODBUS dfinit trois types de trames PDU:
MODBUS Request PDU : requte du Client (Matre)
MODBUS Response PDU : rponse du Serveur (Esclave)
MODBUS Exception Response PDU : rponse du Serveur en cas derreur
Un message MODBUS TCP est compose de lentte (Header) et de donnes (PDU)
Par rapport Modbus RTU (liaison srie) : dans le MODBUS TCP, le CRC-16 nest pas
ncessaire car le contrle est fait au niveau de la trame Ethernet
4/10/17 WGom:FESTO France : MODBUS TCP 4
Protocole MODBUS TCP
Message (trame) MODBUS TCP : lEntte (MBAP
Header)

Modbus Header Function Code Data

Champ Longueur Description Client Serveur

TrID 2 octets Identification de la Initialis par Recopi par le


Transaction transaction le Client Serveur dans le
Identifier MODBUS rponse
(Request/Respons
e)
ProID 2 octets Toujours 0 Initialis par Recopi par le
Protocol Pour le protocole le Client Serveur dans le
Identifier MODBUS rponse

Length 2 octets Nombre des octets Initialis par Initialis par le
suivants le Client Serveur dans sa
(request) rponse

UnitID 1 octet Identification de Initialis par Recopi par le


Unit Identifier participant distant le Client Serveur dans le
connect sur le rponse
bus
(idem No
desclave)

4/10/17 WGom:FESTO France : MODBUS TCP 5


Protocole MODBUS TCP
Dialogue MODBUS TCP (sans erreurs)

Client Server

Initialisation et
Envoie de
Requte
Ralisation de laction
Request PDU Code Donnes Client
Initialisation et
Fonction
envoie de la rponse

Rception de
Rponse Code Donnes Response PDU
Fonction Demandes

Requte Client Rponse du


Server
Loctet FUNCTION CODE (Code Quand le Serveur rpond, il utilise loctet
Fonction) indique Serveur laction quil FUNCTION CODE pour indiquer
doit raliser. lexcution correcte ou errone (exception)
Les valeurs FC doivent tre entre 1 et de requte.
127 car les valeurs 128 255 sont Pour une rponse correcte, le Serveur
rserves pour des rponses recopie simplement loctet
dexception (Erreurs) du Serveur. FUNTIONCODE du MODBUS Request
Le champ DATA (Donnes) peut PDU, et insert dans le champ DATA de la
contenir linformation supplmentaire rponse les donnes demandes par le
(p.ex. adresse et nombre des oprandes Client (p.ex. les valeurs des oprandes).
traiter, nombre des octets de donnes,
etc..) que le Serveur utilise pour raliser
laction dfinie par le FUNCTION
4/10/17 CODE.
WGom:FESTO France : MODBUS TCP 6
Protocole MODBUS TCP
Dialogue MODBUS TCP (le cas derreurs; exception answer)
Client Server

Initialisation et
Envoie de
Requte
Erreur Dtecte
Request PDU Code Donnes Client
Envoie de la
Fonction
rponse
dexception
Rception de
Code Fonction + Code
Rponse
0x80 dexception

Rponse du Exception Response


Server PDU

Si la trame de requte ntait pas correcte ou la fonction demande na pas


t ralise correctement, le Serveur utilise loctet FUNCTION CODE pour
indiquer lexcution errone (exception) de la requte.
Erreur est signale en retournant loctet FUNCTION CODE avec une valeur
quivalente au Code dorigine mais avec le bit 7 (MSB) forc 1.
Cet octet est suivie par un octet du EXCEPTION CODE (Code dexception) qui
explique la nature du dfaut (erreur transaction).

4/10/17 WGom:FESTO France : MODBUS TCP 7


Protocole MODBUS TCP

Dialogue MODBUS TCP : Les messages dexception


Code Nom Explication
01 ILLEGAL FUNCTION Le Code Fonction reu nest pas support par le Serveur
(Code Fonction erron) (ou Esclave)
02 ILLEGAL DATA ADDRESS Ladresse de donnes reue dans la requte nest pas
(Adresse incorrecte) supporte par le Serveur (ou Esclave).
Plus exactement, le combinaison de ladresse et de nombre
des donnes est hors de la plage des adresses
disponibles dans le Serveur
03 ILLEGAL DATA VALUE La valeur contenue dans la requte nest pas correcte pour
(Donnes incorrectes) le type doprande indique.
04 SLAVE DEVICE FAILURE Le Serveur est incapable dexcuter la fonction demande
(Dfaut Esclave) ou lerreur non -dfinie apparat pendant lexcution de
la fonction demande par le Client
05 ACKNOWLEDGE Le Serveur (ou Esclave) a accept la requte mais le temps
(Acquittement) dexcutions ou du traitement peut tre trop longue.
La rponse est envoye pour ne pas sortir sur lerreur
TimeOut.
Le Client peut envoyer une requte encore une fois pour
savoir si la prcdente a t termine.
06 SLAVE DEVICE BUSY Le Serveur (ou Esclave) est en train dexcuter une
(Equipement occup) requte.
Le Client peut retransmettre la requte quand le Serveur
sera libre.
08 MEMORY PARITY ERROR Lie aux fonctions 20 et 21 et indique que le contenu des
(Erreur parit mmoire) fichiers nest pas cohrent.
4/10/17 WGom:FESTO France : MODBUS TCP 8
Protocole MODBUS TCP
Message (trame) MODBUS TCP : Codage des donnes
MODBUS

MODBUS utilise une reprsentation BIG ENDIAN pour le


codage de donnes comme les adresses et les valeurs

Ceci signifie que pour une donne en format dun mot (deux
octets), loctet du Poids Fort est envoy comme
premier.

Alors, pour envoyer le contenu dun registre de 16 bits:

[R] = 0x12AB; MSB = 0x12; LSB = 0xAB

Le premier octet envoy sera loctet du Poids Fort MSB =


0x12 suivie par loctet du poids faible LSB = 0xAB
[0x12][0xAB]
4/10/17 WGom:FESTO France : MODBUS TCP 9
Protocole MODBUS TCP
Message (trame) MODBUS TCP : Modle dadressage
MODBUS
La spcification du protocole MODBUS dfinit trs prcisment les
rgles dadressage des donnes.

Dans la structure MODBUS PDU chaque donne peut tre


adresse de 0 65535 ( 0 0xFFFF)
La spcification prcise aussi que lintrieur de chaque bloc
(type) de donnes, les lments sont numrots de 1 N.

En consquence, si lon veut sadresser au premier lment dun


bloc (type) de donnes MODBUS, il faut utiliser ladresse 0; pour
llment 5, il faut utiliser ladresse 4, etc bien que leurs
adresses physiques lintrieur dquipement peuvent tre
compltement diffrentes (p.ex. 0xD800: F454 et 0xA400: 2446)

Par contre, les affectations entre les donnes MODBUS et les


adresses physiques relles dans lquipement restent totalement
libres et spcifiques lquipement (par le constructeur).

4/10/17 WGom:FESTO France : MODBUS TCP 10


Protocole MODBUS TCP
Message (trame) MODBUS TCP : Modle de donnes
MODBUS
Le modle de donnes MODBUS est trs simple et
contient quatre types de base(blocs de donnes) :
Discrete Inputs (bits dEntres)
Coils (bits de Sorties, bits internes)
Input Registers (mots dEntres, mots diagnostic)
Holding Registers (mots de Sorties, mmoire interne, registres, compteurs, )

Type de donne Format Type daccs


Discrete Inputs (bits dEntres) un Bit Lecture Seule (Read Only)
Lecture/Ecriture
Coils (bits de Sorties) un Bit
(Read/Write)
Input Registers (mots dEntres) Mot 16 Bits Lecture Seule (Read Only)
Lecture/Ecriture
Holding Registers (mots de Donnes) Mot 16 Bits
(Read/Write)

4/10/17 WGom:FESTO France : MODBUS TCP 11


Protocole MODBUS TCP
Message (trame) MODBUS TCP : Code Fonction
(publiques)
Modbus Header Function Code Data

Oprande Fonction (Service) Code Code


Dec Hex

(Discrete Inputs) Lecture N bits dentres 02 02

Supportes par MODBUS TCP Client


Entres physiques
Un Bit
(Coils) Lecture N bits 01 01
Bits internes
Ou Ecriture dun bit 05 05
Sorties physiques
Ecriture de N bits 15 0F
Entres Physiques Lecture N mots 04 04
Type daccs (Input Registers)
(Format Mots
de Donnes) de Lecture N mots 03 03
16 bits (Holding Registers)
Registres, Ecriture dun mot 06 06
Mmoires Internes

CPX-FEC
Ou Ecriture de N mots 16 10
Sorties physiques
Lecture / Ecriture de N mots 23 17
Ecriture Masque dun mot 22 16
Lecture pile FIFO 24 18
Lecture du fichier 20 14
Enregistrement dun fichier (Read File Record)
(File record access)
Ecriture fichier 21 15
(Write File Record)
Equipement dport Identification dquipement 43 2B
(Read Device Identification)

4/10/17 WGom:FESTO France : MODBUS TCP 12


Protocole MODBUS TCP
MODBUS TCP : Fonction 1 : Read Coils (lecture N bits)

Modbus Header 0x01 Data

Cette fonction permet de lire ltat de 1 2000 bits des oprandes affectes
aux donnes type Coil (p.ex. sorties physiques TOR ou les bits de mots de
mmoire).
Request PDU (Requte) Commentaires:
Code Fonction 0x01 1 octet Dans la requte, Adresse Dbut prcise
Adresse Dbut 0x0000 0xFFFF 2 octets ladresse (ou No) du premier bit
demand.
Nombre de bits 1 2000 (0x07D0) 2 octets

Response PDU Ladressage des bits commence 0;


(Rponse) c..d les bits de 1 16 sont adresss de 0
Code Fonction 0x01 1 octet
15.
Nombre doctets N* 1 octet
Donnes : Valeurs entre N Dans la rponse, les bits respectifs sont
Etat de bits 0x00 0xFF ou N+1 octets rangs bit par bit dans loctet de la
(*) N = (Nb de bits) / 8; mais si la reste est diffrente 0 => N = rponse. Donc, le bit 0 (LSB) du premier
N+1 octet de la rponse correspond au bit
Exception Response PDU (Rponse ne cas point par l Adresse Dbut.
derreur)
Code Fonction 0x81 1 octet
Les autres bits sont rangs dans des
Code dexception 0x01ou 0x02 1 octet
ou 0x03 ou 0x04 octets suivants dans lordre croissant (bits
0 -> 7).
4/10/17 WGom:FESTO France : MODBUS TCP 13
Protocole MODBUS TCP
MODBUS TCP : Fonction 1 : Read Coils : Exemple

Demande de lecture de 19 bits de sorties 20 38.


Adresse dbut: 0x0013 (19 dcimal)
Nb de bits: 0x0013 (19 bits)

Code Fonction 0x01


Adr. Dbut P.Fort 0x00 Request PDU Response PDU (Rponse)
Adr. Dbut 0x13 (Requte) Code Fonction 0x01
p.faible
Nb Octets 0x03
Nb de bits P.Fort 0x00
Bits 27 20 0xAA
Nb de bits 0x13
p.faible Bits 35 28 0x55
Modbus Header 0x01 0x00 0x13 0x00 0x13
Bits 38 36 0x07

Modbus Header 0x01 0x03 0xAA 0x55 0x07

Commentaires:
Dans le premier octet de la rponse ltat des sorties 27 20 est 0xAA (1010 1010
binaire),
c..d le bit 27 (MSBit) est 1 et le bit 20 (LSBit) est 0.
La valeur du deuxime octet qui contient ltat de sorties 35 28est 0x55 (0101
0101 binaire),
c..d. le bit 35 (MSBit) est 0 et le bit 28 (LSBit) est 1.
Le troisime octet contient les sorties 38 36. Ces trois bits sont 1.
4/10/17 WGom:FESTO France : MODBUS TCP 14
Les autres bits de cet octet (bits 7, 6, 5, 4, 3) sont 0 car ils reprsentent les bits non
Protocole MODBUS TCP
MODBUS TCP : Fonction 2 : Read Discrete Inputs (lecture N
bits dentres)
Modbus Header 0x02 Data

Cette fonction permet de lire ltat de 1 2000 bits des oprandes affectes
aux donnes type Discrete Inputs (p.ex. entres physiques TOR ou certains
bits de mmoire).
Request PDU (Requte)
Commentaires:
Code Fonction 0x02 1 octet
Dans la requte, Adresse Dbut prcise
Adresse Dbut 0x0000 0xFFFF 2 octets ladresse (ou No) du premier bit dentre
Nombre de bits 1 2000 (0x07D0) 2 octets demande.
Response PDU Ladressage des bits commence 0; c..d
(Rponse) les bits de 1 16 sont adresss de 0 15.
Code Fonction 0x02 1 octet
Nombre doctets N* 1 octet Dans la rponse, les bits des entres
respectives sont rangs bit par bit dans
Donnes : Valeurs entre N
Etat de bits 0x00 0xFF ou N+1 octets loctet de la rponse. Le bit 0 (LSB) du
premier octet de la rponse correspond au
(*) N = (Nb de bits) / 8; mais si la reste est diffrente 0 => N =
N+1 bit de premire entre pointe par
lAdresse Dbut.
Exception Response PDU (Rponse ne cas
derreur)
Code Fonction 0x82 1 octet Les bits des autres entres sont rangs
Code dexception 0x01ou 0x02 1 octet dans des octets suivants dans lordre
ou 0x03 ou 0x04 croissant (bits 0 -> 7).
4/10/17 Si le nombre de bits
WGom:FESTO France : MODBUS TCP 15 demands nest pas
Protocole MODBUS TCP
MODBUS TCP : Fonction 2 : Read Discrete Inputs :
Exemple
Demande de lecture de bits dentres 1 12.
Adresse dbut: 0x0000 (0 dcimal)
Nb de bits: 0x000C (12 bits)

Code Fonction 0x02


Adr. Dbut P.Fort 0x00 Request PDU Response PDU (Rponse)
Adr. Dbut 0x00 (Requte) Code Fonction 0x02
p.faible
Nb Octets 0x02
Nb de bits P.Fort 0x00
Bits 8 1 0x8A
Nb de bits 0x0C
p.faible Bits 12 9 0x09
Modbus Header 0x02 0x00 0x00 0x00 0x0C

Modbus Header 0x02 0x02 0x8A 0x09

Commentaires:
Dans le premier octet de la rponse ltat des entres 8 1 est 0x8A (1000 1010 binaire),
c..d les entres 8,4,2 sont 1 et les entres 7,6,5,3,1 sont 0.
Le second octet contient ltat des entres 12 9 (la valeur 0x09 (0000 1001 binaire),
c..d. les entres 12 et 9 sont 1 et les entres 11,10 sont 0.
Les 4 autres bits de cet octet sont 0 car ils reprsentent les entres non demandes.
4/10/17 WGom:FESTO France : MODBUS TCP 16
Protocole MODBUS TCP
MODBUS TCP : Fonction 3 : Read Holding Registers (lecture
de N mots)
Modbus Header 0x03 Data

Cette fonction permet de lire le contenu dun block des mots des oprandes
affectes aux donnes type Holding Registers (p.ex. mots de sorties ou
certains mots de la mmoire).
Request PDU (Requte)

Code Fonction 0x03 1 octet


Adresse Dbut 0x0000 0xFFFF 2 octets
Nombre de mots 1 123 (0x7B) 2 octets Commentaires:

Response PDU
Dans la requte, Adresse Dbut prcise
(Rponse) ladresse (ou No) du premier mot
Code Fonction 0x03 1 octet
demand.
Nombre doctets N* 1 octet
Ladressage des mots commence 0;
Donnes : Valeurs entre N*2 octets c..d les mots de 1 16 sont adresss de 0
Valeurs de mots 0x00 0xFF
15.
(*) N = Nb de mots demands
Dans la rponse, les valeurs des mots
Exception Response PDU (Rponse ne cas respectifs sont ranges octet par
derreur)
Code Fonction 0x83 1 octet octet en mode BIG ENDIAN [mot] =
[MSByte][LSByte].
Code dexception 0x01ou 0x02 1 octet
ou 0x03 ou 0x04

4/10/17 WGom:FESTO France : MODBUS TCP 17


Protocole MODBUS TCP
MODBUS TCP : Fonction 3 : Read Holding Registers :
Exemple
Demande lecture de 3 mots.
Adresse dbut: 0xB150 (45392 dcimal)
Nb de mots: 0x0003 (3 mots)

Code Fonction 0x03


Response PDU (Rponse)
Adr. Dbut P.Fort 0xB1 Request PDU
Code Fonction 0x03
Adr. Dbut 0x50 (Requte)
p.faible Nb dOctets 0x06
Nb de bits P.Fort 0x00 Mot 1: MSByte 0x00
Nb de bits 0x03 Mot 1: LSByte 0x10
p.faible
Modbus Header 0x03 0xB1 0x50 0x00 0x03 Mot 2: MSByte 0x01
Mot 2: LSByte 0x00
Mot 3: MSByte 0xFF
Mot 3: LSByte 0xFF

Modbus Header 0x03 0x06 0x00 0x10 0x01 0x00 0xFF 0xFF

Commentaires:
Les valeurs lues sont les suivantes
Mot 1 : (adr. 45392) = 0x0010 = 16 dec
Mot 2 : (adr. 45393) = 0x0100 = 256 dec
Mot 3 : (adr. 45394) = 0xFFFF = 65535 dec
4/10/17 WGom:FESTO France : MODBUS TCP 18
Protocole MODBUS TCP
MODBUS TCP : Fonction 4 : Read Input Registers (lecture de N
mots dentres)
Modbus Header 0x04 Data

Cette fonction permet de lire le contenu dun block des mots des oprandes
affectes aux donnes type Input Registers (mots des entres (TOR, Ana) ou
certains mots de mmoire).
Request PDU (Requte)

Code Fonction 0x04 1 octet


Adresse Dbut 0x0000 0xFFFF 2 octets
Nombre de mots 1 123 (0x7B) 2 octets Commentaires:

Response PDU
Dans la requte, Adresse Dbut prcise
(Rponse) ladresse (ou No) du premier mot
Code Fonction 0x04 1 octet
dentres demandes.
Nombre doctets N* 1 octet
Ladressage des mots commence 0;
Donnes : Valeurs entre N*2 octets c..d les mots de 1 16 sont adresss de 0
Valeurs de mots 0x00 0xFF
15.
(*) N = Nb de mots demands
Dans la rponse, les valeurs des mots
Exception Response PDU (Rponse ne cas respectifs sont ranges octet par
derreur)
Code Fonction 0x84 1 octet octet en mode BIG ENDIAN [mot] =
[MSByte][LSByte].
Code dexception 0x01ou 0x02 1 octet
ou 0x03 ou 0x04

4/10/17 WGom:FESTO France : MODBUS TCP 19


Protocole MODBUS TCP
MODBUS TCP : Fonction 4 : Read Input Registers :
Exemple
Demande lecture de 3 mots des entres.
Adresse dbut: 0xB150 (45392 dcimal)
Nb de mots: 0x0003 (3 mots)

Code Fonction 0x04


Response PDU (Rponse)
Adr. Dbut P.Fort 0xB1 Request PDU
Code Fonction 0x04
Adr. Dbut 0x50 (Requte)
p.faible Nb dOctets 0x06
Nb de bits P.Fort 0x00 Mot 1: MSByte 0x00
Nb de bits 0x03 Mot 1: LSByte 0x10
p.faible
Modbus Header 0x04 0xB1 0x50 0x00 0x03 Mot 2: MSByte 0x01
Mot 2: LSByte 0x00
Mot 3: MSByte 0xFF
Mot 3: LSByte 0xFF

Modbus Header 0x04 0x06 0x00 0x10 0x01 0x00 0xFF 0xFF

Commentaires:
Les valeurs lues sont les suivantes
Mot des entres 1 : (adr. 45392) = 0x0010 = 16 dec
Mot des entres 2 : (adr. 45393) = 0x0100 = 256 dec
Mot des entres 3 : (adr. 45394) = 0xFFFF = 65535 dec
4/10/17 WGom:FESTO France : MODBUS TCP 20
Protocole MODBUS TCP
Ethernet TCP/IP : Exemple message MODBUS TCP : Fonction
3
Entte (Modbus header) : Length=6; UID=0
Code Fonction : CF = 03 : Lecture N mots
Starting Addresse : SA = B150 hex ( 45392)
Requte
Qtity of Words : NW = 000F hex ( 15)

Rponse

Entte (Modbus header) : Length=21 hex


Code Fonction : CF = 03 : Lecture N mots
Qtity of Bytes (Nb octets rponse): NB = 1E hex
(30)
Data bytes (Donnes) : 30 octets = 15mots

4/10/17 WGom:FESTO France : MODBUS TCP 21


Protocole MODBUS TCP
MODBUS TCP : Fonction 5 : Write Single Coil (criture/forage
dun bit)
Modbus Header 0x05 Data

Cette fonction permet de forcer ltat (ON/OFF) dun bit de loprande


affecte aux donnes type Coils (p.ex. sorties physiques TOR ou certains bits de
la mmoire).
Request PDU (Requte)
Commentaires:
Code Fonction 0x05 1 octet
Dans la requte, Adresse Dbut prcise
Adresse du bit 0x0000 0xFFFF 2 octets ladresse du bit demand.
Etat du bit 0x0000 ou 0xFF00 2 octets
Ladressage des bits commence 0; c..d
Response PDU les bits de 1 16 sont adresss de 0 15.
(Rponse)
Code Fonction 0x05 1 octet La valeur 0x0000 correspond au forage
0
Adresse du bit 0x0000 0xFFFF 2 octets
Etat du bit 0x0000 ou 0xFF00 2 octets La valeur 0xFF00 correspond au forage
1
Exception Response PDU (Rponse ne cas
derreur) Toutes les autres valeurs sont
Code Fonction 0x85 1 octet interdites et ne provoquent pas le
Code dexception 0x01ou 0x02 1 octet changement dtat du bit.
ou 0x03 ou 0x04
La rponse cest lcho de la requte,
4/10/17 et elle est retourne
WGom:FESTO France : MODBUS TCP 22 par le Server (Esclave)
Protocole MODBUS TCP
MODBUS TCP : Fonction 5 : Write Single Coil : Exemple
Mise 1 du bit 12 des sorties physiques TOR.
Adresse dbut: 0x000C (12 dcimal)
Etat du bit: 0xFF00 (mise 1)

Code Fonction 0x05


Adr. du bit P.Fort 0x00 Request PDU
Adr. du bit 0x0C (Requte)
p.faible
Etat du bit P.Fort 0xFF
Etat du bit 0x00
p.faible 0x05 0x00 0x0C 0xFF 0x00 Response PDU (Rponse)
Modbus Header

Code Fonction 0x05


Adr. du bit P.Fort 0x00
Adr. du bit p.faible 0x0C
Etat du bit P.Fort 0xFF
Etat du bit 0x00
p.faible

Modbus Header 0x05 0x00 0x0C 0xFF 0x00

4/10/17 WGom:FESTO France : MODBUS TCP 23


Protocole MODBUS TCP
MODBUS TCP : Fonction 6 : Write Single Register (criture
dun mot)
Modbus Header 0x06 Data

Cette fonction permet dcrire une valeur dans un mot de loprande


affecte aux donnes type Holding Registers (p.ex. sorties TOR,Analogiques
ou certains mots de la mmoire).
Request PDU (Requte)

Code Fonction 0x06 1 octet


Adresse du mot 0x0000 0xFFFF 2 octets
Commentaires:
Valeur du mot 0x0000 ou 2 octets
0xFFFF Dans la requte, Adresse Dbut prcise
Response PDU ladresse du mot demand.
(Rponse)
Code Fonction 0x06 1 octet Ladressage des mots commence 0;
Adresse du mot 0x0000 0xFFFF 2 octets c..d les mots de 1 16 sont adresss de 0
15.
Valeur du mot 0x0000 ou 2 octets
0xFFFF
La rponse cest lcho de la requte, et
Exception Response PDU (Rponse ne cas elle est retourne par le Server (Esclave)
derreur) aprs lcriture du mot demand.
Code Fonction 0x86 1 octet
Code dexception 0x01ou 0x02 1 octet
ou 0x03 ou 0x04

4/10/17 WGom:FESTO France : MODBUS TCP 24


Protocole MODBUS TCP
MODBUS TCP : Fonction 6 : Write Single Register :
Exemple
Mise 0 dun mot.
Adresse dbut: 0x9C41 (40001 dcimal)
Valeur du mot:0x0000 (mise 0)

Code Fonction 0x06


Adr. du mot P.Fort 0x9C Request PDU
Adr. du mot 0x41 (Requte)
p.faible
Valeur du mot 0x00
P.Fort
Valeur du mot 0x06
0x00
0x9C 0x41 0x00 0x00 Response PDU (Rponse)
Modbus Header
p.faible

Code Fonction 0x06


Adr. du mot P.Fort 0x9C
Adr. du mot p.faible 0x41
Valeur du mot P.Fort 0x00
Valeur du mot 0x00
p.faible

Modbus Header 0x06 0x9C 0x41 0x00 0x00

4/10/17 WGom:FESTO France : MODBUS TCP 25


Protocole MODBUS TCP
MODBUS TCP : Fonction 15 : Write Multiple Coils (criture
de N bits)
Modbus Header 0x0F Data

Cette fonction permet de forcer ltat (ON/OFF) de chaque bit dun


block des oprandes affectes aux donnes type Coils (p.ex. sorties TOR
ou PDU
Request certains bits de la mmoire).
(Requte)
Code Fonction 0x0F 1 octet Commentaires:
Adresse Dbut 0x0000 0xFFFF 2 octets Dans la requte, Adresse Dbut prcise
Nombre de bits 1 1968 (0x07B0) 2 octets ladresse (ou No) du premier bit
demand.
Nombre doctets N* 1 octet
Etat des bits 0x00 0xFF N* octets Ladressage des bits commence 0; c..d
(*) N = (Nb de bits) / 8; mais si la reste est diffrente 0 => N = les bits de 1 16 sont adresss de 0 15.
N+1
Response PDU
(Rponse) Les valeurs (tats) des bits respectifs sont
Code Fonction 0x0F 1 octet ranges bit par bit dans loctet de la
Adresse Dbut 0x0000 0xFFFF 2 octet requte. Le bit 0 (LSB) du premier octet de
donnes correspond au bit point par l
Nombre de bits 1 1968 (0x0FB0) 2 octets
Adresse Dbut.
Exception Response PDU (Rponse ne cas
derreur) Les autres bits sont rangs dans des
Code Fonction 0x8F 1 octet
octets suivants dans lordre croissant (bits
Code dexception 0x01ou 0x02 1 octet
ou 0x03 ou 0x04 0 -> 7).

4/10/17 Si le nombre de bits26 demands nest pas


WGom:FESTO France : MODBUS TCP
Protocole MODBUS TCP
MODBUS TCP : Fonction 15 : Write Multiple Coils :
Exemple
Demande dcriture de 10 bits de sorties partir du bit 20
(20 29).
Adresse dbut: 0x0013 (19 dcimal)
Nb de bits: 0x000A (10 bits)
Etat des bits 29 20: (29)[0 1 1 1 0 0 1 1 0 1](20) =
Code Fonction [0x01CD]0x0F
Adr. Dbut P.Fort 0x00 Modbus Header 0x0F 0x00 0x13 0x00 0x02 0x01
0x0A 0xCD
Adr. Dbut p.faible 0x13
Request PDU
Nb de bits P.Fort 0x00
(Requte) Code Fonction 0x0F
Nb de bits p.faible 0x0A
Adr. Dbut P.Fort 0x00
Nb doctets data 0x02
Adr. Dbut 0x13
Etat bits P.Fort (bits 27- 0xCD p.faible
20) Response PDU (Rponse) Nb de bits P.Fort 0x00
Etat bits p.faible (bits 0x01
29-28) Nb de bits p.faible 0x0A
Modbus Header 0x0F 0x00 0x13 0x00
0x0A
Commentaires:
Dans le premier octet de la requte ltat des sorties 27 20 est 0xCD (1100 1101
binaire),
c..d les bits 27,26,23,22 et 20 sont 1 et les bits 25,24,21 sont 0.
La valeur du deuxime octet qui contient ltat de sorties 35 28est 0x01 ( 0000 0001
binaire),
c..d. le bit 29 est 0 et le bit 28 est 1.
Les valeurs des bits hors la plage dadressage (bits 35 30) sont sans signification et ces bits
ne changeront pas ltat aprs
4/10/17 lexcution
WGom:FESTO France : de la TCP
MODBUS requte. 27
Protocole MODBUS TCP
MODBUS TCP : Fonction 16 : Write Multiple Registers
(criture de N mots)
Modbus Header 0x10 Data

Cette fonction permet dcrire des valeurs dans chaque mot dun block
des oprandes affectes aux donnes type Holding Registers (sorties
TOR/Ana,
Request mots de la mmoire,etc)
PDU (Requte)
Code Fonction 0x10 1 octet
Adresse Dbut 0x0000 0xFFFF 2 octets
Nombre de mots 1 120 (0x0078) 2 octets Commentaires:
Nombre doctets 2 x N* 1 octet
Dans la requte, Adresse Dbut
Valeurs de mots 0x00 0xFF 2 x N* octets
prcise ladresse (ou No) du premier
(*) N = Nb de mots mot demand.
Response PDU
(Rponse) Ladressage des mots commence 0;
Code Fonction 0x10 1 octet
c..d les mots de 1 16 sont adresss
Adresse Dbut 0x0000 0xFFFF 2 octet de 0 15.
Nombre de mots 1 120 (0x0078) 2 octets
Les valeurs des mots respectifs sont
Exception Response PDU (Rponse ne cas ranges octet par octet en mode
derreur)
Code Fonction 0x90 1 octet BIG ENDIAN [mot] = [MSByte]
Code dexception 0x01ou 0x02 1 octet [LSByte].
ou 0x03 ou 0x04

4/10/17 WGom:FESTO France : MODBUS TCP 28


Protocole MODBUS TCP
MODBUS TCP : Fonction 16 : Write Multiple Registers :
Exemple
Demande dcriture de 2 mots de sorties partir du mot 40001
Adresse dbut: 0x9C41 (40001 dcimal)
Nb de mots: 0x0002 (2 mots)
Valeurs: [0x1234, 0xABCD] = [4660, 43981]

Code Fonction 0x10


Adr. Dbut P.Fort 0x9C
Adr. Dbut p.faible 0x41
Response PDU (Rponse)
Nb de mots P.Fort 0x00 Code Fonction 0x10
Nb de mots p.faible 0x02
Adr. Dbut P.Fort 0x9C
Nb doctets data 0x04 Adr. Dbut 0x41
Valeur mot 1 P.Fort 0x12 p.faible
Request PDU
Valeur mot 1 p.faible 0x34 Nb de mots P.Fort 0x00
(Requte)
Valeur mot 2 P.Fort 0xAB Nb de mots 0x02
p.faible
Valeur mot 2 p.faible 0xCD

Modbus Header 0x10 0x9C 0x41 0x00 0x02 0x04 0x12 0x34
0xAB 0xCD

Response PDU (Rponse)

Modbus Header 0x10 0x9C 0x41 0x00 0x02

4/10/17 WGom:FESTO France : MODBUS TCP 29


Protocole MODBUS TCP
MODBUS TCP : Exemple configuration API Schneider

4/10/17 WGom:FESTO France : MODBUS TCP 30


Protocole MODBUS TCP

CPX-FEC :
MODBUS TCP Server

Mode Remote I/O

4/10/17 WGom:FESTO France : MODBUS TCP 31


Protocole MODBUS TCP
CPX - FEC Remote I/O: Protocole MODBUS TCP : Adresses et donnes
accessibles

Mode Remote I/O :


Rappel

CPX-FEC en mode Remote I/O


supporte le WEB Server et le
protocole ModbusTCP
(fonctionnalit SERVER)

Le CPX-FEC est un Serveur sur


le rseau Ethernet et il doit tre
gr par un systme Client
(MODBUS TCP) comme un
module des E/S dportes : les
fonctionnalits de lAPI ne
sont pas utilises !

Adresse IP, le paramtrage et


la configuration du CPX-FEC
doivent tre paramtrs par la
console MMI ou par
lquipement Client

4/10/17 WGom:FESTO France : MODBUS TCP


Pour
32
les dtails , voir:
Protocole MODBUS TCP
CPX - FEC Remote I/O: Protocole MODBUS TCP : Informations
disponibles (1)

Donnes accessibles en lecture (fonctions 3 et 23)

Remote I/O : Etat du CPX-


FEC
Les donnes sur ltat du CPX-FEC
permettent davoir linformation sur la
Donnes accessibles en lecture (fonctions 3 et 23)
configuration et ltat des modules du
CPX-FEC

Les donnes (en lecture seule) sont


situes dans le domaine des
adresses MODBUS entre 45367
et 45391
Donnes accessibles en lecture (fonctions 3 et 23)

Pour les dtails , voir:


Manuel CPX-FEC, chapitre 6

4/10/17 WGom:FESTO France : MODBUS TCP 33


Protocole MODBUS TCP
CPX - FEC Remote I/O: Protocole MODBUS TCP : Informations
disponibles (2)

Rgle gnrale :
Module communication CPX-FEC met la disposition du Client les
Eninformations
lecture suivantes : En criture
- 1 mot : ltat linterface de diagnostic E/S - 1 mot : accs linterface de
- 1 mot : Donnes Table Systme diagnostic E/S
- 1 mot : Donnes diagnostic module CPX- - 1 mot : Donnes Table Systme
FEC
Chaque module E/S met la disposition du Client lensemble des informations
sur son tat :
En lecture En criture
Etat des entres (sils Etat des sorties
existent): - 1 mot (TOR)
- 1 mot (TOR) - 2 mots (Ana,
- 2 mots (Analogiques) distributeurs)
Etat des sorties (sils
existent)
- 1 mot (TOR)
Donnes Diagnostic en directe
- 2 mots (Ana)
Diagnostic du module
- 1 mot pour tous les modules
4/10/17 WGom:FESTO France : MODBUS TCP 34
Protocole MODBUS TCP
CPX - FEC Remote I/O: Protocole MODBUS TCP : Informations
disponibles (3)
Module 4 E TOR (4 DI) et 8 E
En lecture
TOR (8 DI) En criture :
- 1 mot : ltat des Entres (bits 0-3 pour 4DI, bits 0-7 rien
pour 8DI)
- 1 mot : Donnes de diagnostic de module
Module 4 S TOR (4 DO)
En lecture En criture :
- 1 mot : image de ltat des Sorties (bits - 1 mot : les Sorties (bits 0-
0-3) 3)
- 1 mot : Donnes de diagnostic de
module 8 E/ 8 S TOR (8 DI/
Module
8 DO)
En lecture En criture :
-1 mot : ltat des Entres (bits 0-7) - 1 mot : les Sorties (bits 0-
- 1 mot : image de ltat des 7)
Sorties (bits 0-7)
- 1 mot : Donnes de diagnostic de
Module
module 2 E Analogiques (2 AI)
En lecture En criture :
- 2 mots : ltat de deux canaux des rien
Entres
- 1 mot : Donnes de diagnostic de
module
4/10/17 WGom:FESTO France : MODBUS TCP 35
Protocole MODBUS TCP
CPX - FEC Remote I/O: Protocole MODBUS TCP : Informations
disponibles (4)

Lorganisation de la zone des donnes disponibles (en lecture et en criture)


correspond la configuration du terminal CPX.
Les adresses MODBUS des mots de chaque module correspond la position de
chaque module (de gauche droit) dans la structure CPX.
Elles sont affectes dans lordre croissant, sans discontinuit.
Exemple : CPX-FEC:4DI:8DI/8DO:MPA2(4 valves)

En lecture : 10 En criture : 4 mots


mots
- 1 mot : ltat linterface de diagnostic E/S - 1 mot : accs linterface de
- 1 mot : Donnes Table Systme diagnostic E/S
- 1 mot : Donnes diagnostic module - 1 mot : Donnes Table Systme
- 1 mot : les Sorties (bits 0-7 pour 8
CPX-FEC DO)
- 1 mot : ltat des Entres (bits 0-3 pour - 1 mot : les bobines (bits 0-3)
4DI)
- 1 mot : Donnes de diagnostic de
- 1 mot : ltat des Entres (bits 0-7)
module
- 1 mot : image de ltat
des Sorties (bits 0-7) Donnes Diagnostic en directe !!
- 1 mot : Donnes de diagnostic de
- 1 mot : image de ltat des bobines
module
(bits 0-3)
- 1 mot : Donnes de diagnostic de
4/10/17 WGom:FESTO France : MODBUS TCP 36
Protocole MODBUS TCP
CPX - FEC Remote I/O: Protocole MODBUS TCP : Informations
disponibles (5)
Exemple : CPX-FEC:4DI:8DI/8DO:MPA2(4 valves)

En lecture : Lecture de 10 mots partir de ladresse :


45392 45392 : 1 mot : ltat linterface de diagnostic E/S
45393 : 1 mot : Donnes Table Systme
45394 : 1 mot : Donnes diagnostic module CPX-FEC
45395 : 1 mot : ltat des Entres (bits 0-3 pour 4DI)
45396 : 1 mot : Donnes de diagnostic de module
45397 : 1 mot : ltat des Entres (bits 0-7)
45398 : 1 mot : image de ltat des Sorties (bits 0-
7)
45399 : 1 mot : Donnes de diagnostic de module
45400 : 1 mot : image de ltat des bobines (bits 0-3)
45401 : 1 mot : Donnes de diagnostic de module

En criture : Ecriture de 4 mots partir de ladresse :


40001 40001 : 1 mot : accs linterface de diagnostic E/S
40002 : 1 mot : Donnes Table Systme
40003 : 1 mot : les Sorties (bits 0-7 pour 8 DO)
40004 : 1 mot : les bobines (bits 0-3)

4/10/17 WGom:FESTO France : MODBUS TCP 37


Protocole MODBUS TCP
CPX - FEC Remote I/O: Protocole MODBUS TCP : Informations
disponibles (6)
IMPORTANT : CPX-FEC copie la table MODBUS dans limage des Entres/Sorties de
lautomate; en consquence :

En lecture : Lecture de 10 mots partir de ladresse : 45392 (FST :


IW0 IW9) 45392 = IW0 : 1 mot : ltat linterface de diagnostic E/S
45393 = IW1 : 1 mot : Donnes Table Systme
45394 = IW2 : 1 mot : Donnes diagnostic module CPX-FEC
45395 = IW3 : 1 mot : ltat des Entres (bits 0-3 pour 4DI)
45396 = IW4 : 1 mot : Donnes de diagnostic de module
45397 = IW5 : 1 mot : ltat des Entres (bits 0-7)
45398 = IW6 : 1 mot : image de ltat des
Sorties (bits 0-7)
45399 = IW7 : 1 mot : Donnes de diagnostic de module
45400 = IW8 : 1 mot : image de ltat des bobines (bits 0-3)
45401 = IW9 : 1 mot : Donnes de diagnostic de module

En criture : Ecriture de 4 mots partir de ladresse : 40001 (FST :


OW0 OW3) 40001 = OW0 : 1 mot : accs linterface de diagnostic E/S
40002 = OW1 : 1 mot : Donnes Table Systme
40003 = OW2 : 1 mot : les Sorties (bits 0-7 pour 8 DO)
40004 = OW3 : 1 mot : les bobines (bits 0-3)
4/10/17 WGom:FESTO France : MODBUS TCP 38
Protocole MODBUS TCP

MERCI pour la partie thorique


MODBUS TCP

4/10/17 WGom:FESTO France : MODBUS TCP 39