100% ont trouvé ce document utile (1 vote)
509 vues55 pages

Introduction au Protocole Modbus

Transféré par

Ijadib
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
509 vues55 pages

Introduction au Protocole Modbus

Transféré par

Ijadib
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

Les réseaux Industriels

MODBUS

Réseaux Industriels - Modbus 1


Introduction

• Modbus is a communication protocol developed by Modicon


systems. In simple terms, it is a way of sending information
between electronic devices. The device requesting the
information is called the Modbus Master and the devices
supplying information are Modbus Slaves. In a standard
Modbus network, there is one Master and up to 247 Slaves,
each with a unique Slave Address from 1 to 247. The Master
can also write information to the Slaves.

Réseaux Industriels - Modbus 2


Caractéristiques
 Topologie bus

 Nombre théorique d'abonnés 247. Peut-être plus faible


suivant les constructeurs ainsi que par la limitation de la
couche physique.

 Transmission en semi duplex, pas de médium particulier


(paire torsadée, coaxial, fibre optique…) fixé en fonction des
distances et des interfaces disponibles.

 Transmission en bande de base de 50 à 19 200 bits/s.

 RS232, RS422, RS485.

 Méthode d'accès par protocole maître – esclaves


(question/réponse)

Réseaux Industriels - Modbus 3


Réseaux Industriels - Modbus 4
MODBUS with a PLC millenium II
(CROUZET)
PLC system for the workshop

I4 I3 I2 I1

O4 O3 O2 O1

Power supply PLC Modbus Interface Inputs/outputs

5
Réseaux Industriels - Modbus 5
Modbus Serial line RS485

MODBUS Serial line RS485 is a low cost network using a


master/slave medium access with a transmission speed from 1,200 to
115 Kbits/s
7 Application Modbus

6 Presentation
5 Session

4 Transport

3 Network

2 Link Master - Slave

1 Physical RS485
6
Modbus TCP/IP

MODBUS TCP/IP uses TCP/IP and Ethernet 10 Mbit/s or 100


Mbits/s to carry the MODBUS messaging structure.

7 Application Modbus

6 Préeentation
5 Session

4 Transport TCP

3 Network IP

2 Link CSMA / CD
ETHERNET V2 ou
1 Physical 802.3
7
8
9
Modbus Plus

MODBUS PLUS is a higher speed network 1 Mbit/s token passing derivative


that uses the MODBUS messaging structure.

7 Application Modbus

6 Presentation
5 Session

4 Transport

3 Network

2 Link 802.4 Token passing

1 Physical RS485
10
Protocole maître esclaves

Maître
Question

Réponse

Esclave 1 Esclave 2 Esclave n

Réseaux Industriels - Modbus 11


Protocole maître esclaves

Maître

Question

Esclave 1 Esclave 2 Esclave n

Réseaux Industriels - Modbus 12


Protocole Modbus

Fonction Données

PDU MODBUS

Réseaux Industriels - Modbus 13


Protocole série

PDU MODBUS Ligne série

Adresse Fonction Données CRC ou LRC

PDU MODBUS

Réseaux Industriels - Modbus 14


Les modes de transmission.
Deux modes de transmission, sont définis :

 Le mode RTU et le mode ASCII.

 Les modes de transmission doivent être


identiques pour tous les participants à un
même réseau.

 Le mode ASCII est une option.

Réseaux Industriels - Modbus 15


Modbus frame structure

The Modbus frame structure is the same for requests (master


to slave messages) and responses (slave to master messages).

Modbus
RTU
silence Address Function Data Checksum silence

Silence >= 3,5 characters

Modbus ASCII
: Address Function Data Checksum CR LF

3A Hex 0D Hex 0A Hex


16
Réseaux Industriels - Modbus 16
Transmission en mode RTU
 Les trames RTU ne comportent ni entête, ni
délimiteur de fin. La station réceptrice contrôle le
temps séparant deux caractères consécutifs, s'il
est supérieur à 3 caractères et demi, elle
considère que le prochain caractère est un début
de trame.

 Chaque octet (00 à FF), d'une trame RTU, est


transmis suivant le format recommandé :

1 Bit de start, 8 bits de donnée, 1 Bit de parité, 1


Bit de Stop.

Réseaux Industriels - Modbus 17


Transmission en mode RTU
 La parité est normalement paire par défaut.
 Il est possible de supprimer la parité, dans ce
cas, il est recommandé de mettre deux bits de
stop. (1 bit de start, 8 bits de donnée, 2 Bits de
Stop).
 Une clé de contrôle de deux octets est ajoutée à
la fin de la trame. C'est un CRC16 dont le
polynôme générateur est g(X)=X16 + X15 + 1.
 Les deux octets du CRC sont transmis poids
faible en tête.
Le CRC est calculé sur l’ensemble des champs
adresse, fonction et données.

Réseaux Industriels - Modbus 18


Transmission en mode RTU

Adresse Code
Données. CRC.
esclave. fonction.
2 octets.CRC
1 octet. 1 octet. 0 à 252 octets. pf  PF

Réseaux Industriels - Modbus 19


Transmission en mode ASCII
 Les trames sont émises avec un délimiteur de
début "3A" (Code ASCII de ":") et un délimiteur
de fin "0D 0A" (Codes ASCII de CR et LF)

 Chaque octet d'information (00 à FF) est codé sur


deux octets « imprimables ».

Réseaux Industriels - Modbus 20


Transmission en mode ASCII

Exemple: 1 0 0 1 1 0 1 1  0x9B 0x39 Code ASCII du 9

0x42 Code ASCII du B

Réseaux Industriels - Modbus 21


Transmission en mode ASCII
Chaque caractère ASCII est transmis suivant l’un des deux
formats :
 Start, 7 bits de donnée, 1 Bit de parité, 1 Bit de Stop.
 Start, 7 bits de donnée, 2 Bits de Stop.

Adresse Code
3A Données. LRC 0D 0A
Esclave fonction.

1 car 2 car 2 car  525 octets 2 car 2 car

clé de contrôle: somme modulo 256


de tous les octets de la trame non
encore codée en ASCII

Réseaux Industriels - Modbus 22


Trame d’exception
Des trames d’exception sont prévues pour permettre la
gestion du réseau et le traitement des erreurs.
 11 Caractères en ASCII.
 5 Octets en RTU

Champ Champ Champ code


CRC.
adresse. code. erreur.
1 Octet. 1 Octet. 1 Octet. 2 Octets.

1 - Fonction inconnue.
2 - Adresse incorrecte.
3 - Donnée incorrecte.
Le code fonction retourné est celui de 4 - Esclave non prêt.
la commande avec le bit de poids le plus 5 - Acquittement.
fort forcé à 1. 8 - Défaut d’écriture.

Réseaux Industriels - Modbus 23


Comparaison entre les deux
modes
Le maître envoie la même demande à la station n°1
Champ adresse 01
Champ code 08
Champ données 00 00 61 62

Trame RTU : 01 08 00 00 61 62 48 72
Trame ASCII: 3A 30 31 30 38 30 30 30 30 36
31 36 32 33 34 0D 0A

Calcul du LRC de la trame ASCII:


somme des octets de la trame : 01+08+00+00+61+62=CC
complément à deux :00-CC=34
LRC = 34 soit codé ASCII "33 34"

Réseaux Industriels - Modbus 24


Quelques fonctions !

CODE. FONCTION.

01 Lecture de N bits de sortie ou de bit interne.

02 Lecture de N bits d’entrées discrètes.

03 Lecture de N mots de sortie ou mots internes.

04 Lecture de N mots d’entrée.

05 Écriture d’un bit de sortie ou bit interne.

06 Écriture d’un mot de sortie ou d’un mot interne.

Réseaux Industriels - Modbus 25


Exemple: Fonction 01
Cette fonction est utilisée pour la lecture de 1 à
2000 bits contigus dans un équipement distant.

Exemple:
Lecture de 20 bits de sortie à partir de l’adresse 20

20 (en décimal) se traduit par 14 en hexadécimal

Dans le protocole, c’est l’adresse – 1 que l’on


trouve dans le champ de données

Réseaux Industriels - Modbus 26


Champ de données

Adresse Adresse Nombre de Nombre


Fonction
départ PF départ pf bits PF de bits pf

1 octet. 1 octet. 1 octet. 1 octet. 1 octet.

Réseaux Industriels - Modbus 27


Exemple: Fonction 01
DEMANDE REPONSE

Nom du champ. Hex Nom du champ. Hex

Fonction. 01 Fonction. 01

Adresse de départ (PF). 00 Nombre d’octets. 03

Adresse de départ (pf). 13 Etat des sorties 27 – 20 CD

Nombre de bits (PF). 00 Etat des sorties 35 – 28 6D

Nombre de bits (pf). 14 Etat des sortie 39 – 36 0B

Réseaux Industriels - Modbus 28


Exemple: Fonction 01
L’état des sorties 27 – 20 est CD en hexa soit 1100 1101 en
binaire. La sortie 27 est le MSB de l’octet, et la sortie 20 est
le LSB

MSB LSB

Sortie Sortie Sortie Sortie Sortie Sortie Sortie Sortie


27 26 25 24 23 22 21 20

1 1 0 0 1 1 0 1

Réseaux Industriels - Modbus 29


Mise en oeuvre

RS232 – Liaison point à point (deux appareils)

RS485 – Liaison multi points (plus de deux


appareils)

Réseaux Industriels - Modbus 30


Liaison deux fils

MAITRE

ESCLAVE 1 ESCLAVE 2 ESCLAVE 3

Réseaux Industriels - Modbus 31


Liaison deux fils
Maitre
B/B’ RP B/B’
RT RT

A/A’ RP A/A’

Esclave Esclave

B/B’ B/B’

A/A’ A/A’

Réseaux Industriels - Modbus 32


Liaison quatre fils

MAITRE

ESCLAVE 1 ESCLAVE 2 ESCLAVE 3

Réseaux Industriels - Modbus 33


Liaison quatre fils
Maitre

+5
RP
B’
Rt Rt
A’

+5 RP
RP
A
Rt Rt
B
RP

Esclave 1 Esclave n

Réseaux Industriels - Modbus 34


Address field

AddressFunction Data Checksum

Valid slave device addresses are in the range of 0 ... 247 decimal.
The individual slave devices are assigned addresses in the range of 1 ... 247.
Value 0 is reserved for broadcast messages (no response).
Request :
A master addresses a slave by placing the slave address in the address field of
the message.

Response :
When the slave sends its response, it places its own address in this address field
of the response to let the master know which slave is responding.
35
Function field

AddressFunction Data Checksum

Valid codes are in the range of 1 ... 255 decimal.

Request :
The function code field tells the slave what kind of action to perform.

Response :
For a normal response, the slave simply echoes the original function code.

For an exception response, the slave returns a code that is equivalent to


the original function code with its most significant bit set to a logic 1.
36
Data field

AddressFunction Data Checksum

Valid codes are in the range of 0 ... 255 decimal.

Request :
The data field contains additional information which the slave must use to take
the action defined by the function code. This can include items like register
addresses, quantity of items to be handled, etc...

Response :
If no error occurs, the data field contains the data requested.

If an error occurs, the field contains an exception code that the master
application can use to determine the next action to be taken.
37
Checksum field

AddressFunction Data Checksum

Valid codes are in the range of 0 ... 255 decimal.

Modbus RTU uses CRC : Cyclycal Reduncy Check (2 byte)


Modbus ASCII uses LRC : Longitudinal Redundancy Check (1 bytes)

Request :
The checksum is calculated by the master and sends to the slave.

Response :
The checksum is re-calculated by the slave and compared to the value sent
by the master.
If a difference is detected, the slave will not construct a response to the master.
38
Frame exemple in RTU mode

 Function code = 03 : Read Holding Registers

Request :
1 byte 1 byte 2 bytes 2 bytes 2 bytes
Slave Function First word Number of
CRC16
Address code = 03 address words to read

Response :
1 byte 1 byte 2 bytes 2 bytes 2 bytes 2 bytes
Slave Function Number of Value of the Value of the
CRC16
Address code = 03 bytes read first word last word

39
Frame exemple in RTU mode

 Function code = 06 : Write Single Register

Request :
1 byte 1 byte 2 bytes 2 bytes 2 bytes
Slave Function Word Value of
CRC16
Address code = 06 address word

Response :
1 byte 1 byte 2 bytes 2 bytes 2 bytes
Slave Function Word Value of
CRC16
Address code = 06 address word

40
Frame exemple in RTU mode

 Function code = 16 (décimal) : Write Multiple Registers

Request :

1 byte 1 byte 2 bytes 2 bytes 1 byte 2 bytes 2 bytes


Slave Function First word Number of Number of Value of the
CRC16
Address code = 16 address words to write bytes first word

Response :
1 byte 1 byte 2 bytes 2 bytes 2 bytes
Slave Function First word Number of
CRC16
Address code = 16 address words to write
41
Physical layer:New Modbus RS485 standard schematic

5V

Master 650 

650 

D1
120  120 
1 nF 1 nF
D0
Common

Slave 1 Slave 2

Maximum length of bus 1000 m at 19200 bps


Maximum number of stations (without repeater) 32 (31 slaves)
Maximum length of tap links 20 m for one tap link
40 m divided by the number of tap links
Bus polarisation 650  at 5V and common for the master
Line terminator 120  - 0,25Wm in series with 1nF 10V
Common polarity Yes (Common) connected to the PG
42
Main characteristics resume

Topology: Bus with line terminations

Maximum distance: With RS485 : 1000 m without repeater

Data rate: From 1,200 to 115 Kbits/s

Max. no. of devices: With RS485 : 32 master included

43
Main characteristics resume

Method of accessing the medium: Master slave

Transmission method: Messaging

Max. useful data size: 120 words

Transmission security: LRC or CRC


Start and stop delimiters
Parity bit
Continuous stream

44
MODBUS PROTOCOL (query/response)

Protocol admit only one master and until 255 slaves with serial interface.
Each frame as a particular number of bytes
Each frame is coded
Half duplex mode

MASTER
TRANSMIT RECEIVE

TRANSMIT RECEIVE TRANSMIT RECEIVE TRANSMIT RECEIVE


SLAVE 1 SLAVE 2 SLAVE N

The master transmit a question and wait a response


2 slaves can’t speak together

LABVIEW SESSION IRBID 2007 45


BUILD A FRAME (GENERAL)

4 fields are used to build a frame

address Function Datas Control


ADR OP DATA CRC16

address field (1 byte) : Function field (1 byte) :

Provide the numerous (1 to 255) for the slave Provide the code for the operation.
concerned by the operation.
ADR = 0 ; for a broadcast to all slaves.

Datas field (n bytes) : Control field (2 bytes) :

Provide the address/datas for the slave Word CRC16 add at the end of the message
to secure the communication (Cyclic
concerned by the operation. Redundancy Chehksum 16 bits).

LABVIEW SESSION IRBID 2007 46


MODBUS PROTOCOL (broadcasting)

For the broadcasting, the master send a message to all slaves units.
Those ones execute it without response.

LABVIEW SESSION IRBID 2007 47


BUILD A FRAME (READING BITS)

Function 01h or 02h : reading request for n consecutive bits

The master provide the address on 16 bits, of the first bit to read
and the number of consecutive bits to read.
ADR 01haddress 1st bit to read bits number to read (1 to 640) CRC
1 byte 1 byte 2 bytes 2 bytes 2 bytes

0 ou 1 0 ou 1

start d0 d1 d2 d3 d4 d5 d6 d7 stop start d0 d1 d2 d3 d4 d5 d6 d7 stop

The frame…

Response to the reading request of bits (6 to 85 bytes)


ADR 01h bytes number (1 to 80)1 byte read
st
CRC
1 byte 1 byte 1 byte 27 20 2 bytes

LABVIEW SESSION IRBID 2007 48


BUILD A FRAME (READING WORDS)

Function 03h or 04h : reading request for n consecutive bytes

The master provide the address on 16 bits, of the first byte to read
and the number of consecutive words to read.
ADR 03h adr 1st word to read words number to read(1 - 128) CRC
1 byte 1 byte 2 bytes 2 bytes 2 bytes

Response to the reading request of words (7 to 261 bytes)


ADR 03h bytes number (0 - 256) 1st word read CRC
1 byte 1 byte 1 byte 2 bytes 2 bytes

LABVIEW SESSION IRBID 2007 49


BUILD A FRAME (WRITING BITS)

Function 0Fh : writing request for n consecutive bits

The master provide the address on 16 bits, of the first bit to write
and the number of consecutive bits to write, the state of the bits.
(frame size : 10 to 109 bytes)
ADR 0Fh address 1st bit to write bits number to write (1 to 800) bytes number state of the bits CRC
1 byte 1 byte 2 bytes 2 bytes 1 byte b7 ,...,b0 ,b15 ,...,b8 ,b23 ,... 2 bytes

Response to the writing request of bits(8 bytes)


ADR 0Fh address 1st bit to write bits number to write (1 to 800) CRC
1 byte 1 byte 2 bytes 2 bytes 2 bytes

LABVIEW SESSION IRBID 2007 50


BUILD A FRAME (WRITING WORDS)

Function 10h : writing request for n consecutive bytes


The master provide the address on 16 bits, of the first byte to write
and the number of consecutive words to write,
the corresponding bytes number
and the value of the words. (frame size : 11 to 209 bytes)
(Function code 06h for one word)
ADR 10h adr 1st word to write words number to write (1 - 100) bytes number state of the words CRC
1 byte 1 byte 2 bytes 2 bytes 1 byte word 1, word 2, ... 2 bytes

Response to the writing request of words (8 bytes)


ADR 10haddress 1st word to write words number to write (1 - 100) CRC
1 byte 1 byte 2 bytes 2 bytes 2 bytes

LABVIEW SESSION IRBID 2007 51


BUILD A FRAME (ERROR MESSAGE)

Sent to the master when a slave detect an error.

For a broadcasting, no message is sent back.

Moreover,
the slave tests if the pause between 2 characters is less than 3.5 units of time (one unit for a word).
In this case, the reception is aborted and the next character will be the first of a new frame.

Response to an error frame ( 5 bytes) Code error : Code function :

slave code code 01  false code function code function + 80h

address function error CRC 02  bad address


03  bad datas
1 byte 1 byte 1 byte 2 bytes 04  défault transfer
06  PLC busy

LABVIEW SESSION IRBID 2007 52


LABVIEW FRONT PANEL

LABVIEW SESSION IRBID 2007 53


LABVIEW SERIAL PORT

LABVIEW SESSION IRBID 2007 54


LABVIEW BLOCK DIAGRAM

LABVIEW SESSION IRBID 2007 55

Vous aimerez peut-être aussi