55
1 Réseaux Industriels - Modbus Les réseaux Les réseaux Industriels Industriels MODBUS MODBUS

1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

Embed Size (px)

Citation preview

Page 1: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

1 Réseaux Industriels - Modbus

Les réseaux Les réseaux IndustrielsIndustriels

MODBUSMODBUS

Page 2: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

2 Réseaux Industriels - Modbus

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.

Page 3: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

3 Réseaux Industriels - Modbus

CaractéristiquesCaracté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)

Page 4: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

4 Réseaux Industriels - Modbus

Page 5: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

5 Réseaux Industriels - Modbus5

MODBUS with a PLC millenium II (CROUZET)

I1I4 I2I3

PLC system for the workshop

Modbus Interface

O1O4 O2O3

PLCPower supply Inputs/outputs

Page 6: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

6

Modbus Serial line RS485

MODBUS Serial line RS485 is a low cost network using amaster/slave medium access with a transmission speed from 1,200 to 115 Kbits/s

Application

Presentation

Session

Transport

Network

Link

Physical

7

6

5

4

3

2

1

Master - SlaveMaster - Slave

Modbus

RS485RS485

Page 7: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

7

Modbus TCP/IP Modbus TCP/IP

MODBUS TCP/IP uses TCP/IP and Ethernet 10 Mbit/s or 100 Mbits/s to carry the MODBUS messaging structure.

Application

Préeentation

Session

Transport

Network

Link

Physical

7

6

5

4

3

2

1

CSMA / CDCSMA / CDETHERNET V2 ou ETHERNET V2 ou

802.3802.3

Modbus

TCP

IP

Page 8: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

8

Page 9: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

9

Page 10: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

10

Modbus PlusModbus Plus

MODBUS PLUS is a higher speed network 1 Mbit/s token passing derivative that uses the MODBUS messaging structure.

Application

Presentation

Session

Transport

Network

Link

Physical

7

6

5

4

3

2

1

802.4 Token passing802.4 Token passing

Modbus

RS485RS485

Page 11: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

11 Réseaux Industriels - Modbus

Protocole maître esclavesProtocole maître esclaves

Maître

Esclave 1 Esclave 2 Esclave n

Question

Réponse

Page 12: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

12 Réseaux Industriels - Modbus

Protocole maître esclavesProtocole maître esclaves

Maître

Esclave 1 Esclave 2 Esclave n

Question

Page 13: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

13 Réseaux Industriels - Modbus

Protocole ModbusProtocole Modbus

Fonction Données

PDU MODBUS

Page 14: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

14 Réseaux Industriels - Modbus

Protocole sérieProtocole série

Fonction Données

PDU MODBUS

Adresse CRC ou LRC

PDU MODBUS Ligne série

Page 15: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

15 Réseaux Industriels - Modbus

Les modes de Les modes de transmission.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.

Page 16: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

16 Réseaux Industriels - Modbus

16

Modbus frame structureModbus frame structure

Address ChecksumDataFunction

The Modbus frame structure is the same for requests (master to slave messages) and responses (slave to master messages).

Modbus ASCII

Modbus RTU

: CR LF

3A Hex 0D Hex 0A Hex

Address ChecksumDataFunctionsilence silence

Silence >= 3,5 characters

Page 17: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

17 Réseaux Industriels - Modbus

Transmission en mode RTU 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.

Page 18: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

18 Réseaux Industriels - Modbus

Transmission en mode RTUTransmission 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.

Page 19: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

19 Réseaux Industriels - Modbus

Transmission en mode RTUTransmission en mode RTU

Adresse esclave.

Code fonction.

Données. CRC.

1 octet. 1 octet. 0 à 252 octets.2 octets.CRC

pf PF

Page 20: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

20 Réseaux Industriels - Modbus

Transmission en mode Transmission en mode ASCIIASCII

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 ».

Page 21: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

21 Réseaux Industriels - Modbus

Transmission en mode Transmission en mode ASCIIASCII

Exemple: 1 0 0 1 1 0 1 1

0x9B 0x39 Code ASCII du 9

0x42 Code ASCII du B

Page 22: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

22 Réseaux Industriels - Modbus

Transmission en mode Transmission en mode ASCIIASCII

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.

3A Adresse Esclave

Code fonction.

Données. LRC 0D 0A

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

Page 23: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

23 Réseaux Industriels - Modbus

Trame d’exceptionTrame d’exceptionDes 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 adresse.

Champ code.

Champ code erreur.

CRC.

1 Octet. 1 Octet. 1 Octet. 2 Octets.

1 - Fonction inconnue.2 - Adresse incorrecte.3 - Donnée incorrecte.4 - Esclave non prêt.5 - Acquittement.8 - Défaut d’écriture.

Le code fonction retourné est celui de la commande avec le bit de poids le plus fort forcé à 1.

Page 24: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

24 Réseaux Industriels - Modbus

Comparaison entre les deux Comparaison entre les deux modes modes

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

Trame RTU : 01 08 00 00 61 62 48 72Trame 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=CCcomplément à deux :00-CC=34LRC = 34 soit codé ASCII "33 34"

Page 25: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

25 Réseaux Industriels - Modbus

Quelques fonctions !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.

Page 26: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

26 Réseaux Industriels - Modbus

Exemple: Fonction 01Exemple: 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

Page 27: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

27 Réseaux Industriels - Modbus

Champ de donnéesChamp de données

FonctionAdresse

départ PFAdresse départ pf

Nombre de bits PF

Nombre de bits pf

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

Page 28: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

28 Réseaux Industriels - Modbus

Exemple: Fonction 01Exemple: Fonction 01DEMANDE 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

Page 29: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

29 Réseaux Industriels - Modbus

Exemple: Fonction 01Exemple: 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 27

Sortie 26

Sortie 25

Sortie 24

Sortie 23

Sortie 22

Sortie 21

Sortie 20

1 1 0 0 1 1 0 1

Page 30: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

30 Réseaux Industriels - Modbus

Mise en oeuvreMise en oeuvre

RS232 – Liaison point à point (deux appareils)

RS485 – Liaison multi points (plus de deux appareils)

Page 31: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

31 Réseaux Industriels - Modbus

Liaison deux filsLiaison deux fils

MAI TRE

ESCLAVE 1 ESCLAVE 2 ESCLAVE 3

Page 32: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

32 Réseaux Industriels - Modbus

Liaison deux filsLiaison deux fils

RT

A/A’

B/B’

A/A’

B/B’

A/A’

B/B’

RT

Maitre

RP

RP

EsclaveEsclave

B/B’

A/A’

Page 33: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

33 Réseaux Industriels - Modbus

Liaison quatre filsLiaison quatre fils

MAI TRE

ESCLAVE 1 ESCLAVE 2 ESCLAVE 3

Page 34: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

34 Réseaux Industriels - Modbus

Liaison quatre filsLiaison quatre fils

Esclave 1 Esclave n

Rt

A

B

A’

B’

Maitre

Rt

Rt

Rt

+ 5

+ 5

RP

RPRP

RP

Page 35: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

35

Address fieldAddress field

Address ChecksumDataFunction

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 ofthe message.

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

Page 36: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

36

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.

Function fieldFunction field

Address ChecksumDataFunction

Page 37: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

37

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

Request :The data field contains additional information which the slave must use to takethe action defined by the function code. This can include items like registeraddresses, 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 masterapplication can use to determine the next action to be taken.

Data fieldData field

Address ChecksumDataFunction

Page 38: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

38

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 sentby the master.If a difference is detected, the slave will not construct a response to the master.

Checksum fieldChecksum field

Address ChecksumDataFunction

Page 39: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

39

Request :

Frame exemple in RTU modeFrame exemple in RTU mode

Function code = 03 : Read Holding Registers

SlaveAddress

CRC16First word address

Function code = 03

Number of words to read

1 byte 1 byte 2 bytes 2 bytes 2 bytes

Response :

SlaveAddress

CRC16Number of bytes read

Function code = 03

Value of the first word

1 byte 1 byte 2 bytes 2 bytes 2 bytes

Value of the last word

2 bytes

Page 40: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

40

Request :

Frame exemple in RTU modeFrame exemple in RTU mode

Function code = 06 : Write Single Register

SlaveAddress

CRC16Word

addressFunction code = 06

Value of word

1 byte 1 byte 2 bytes 2 bytes 2 bytes

Response :

SlaveAddress

CRC16Word

addressFunction code = 06

Value of word

1 byte 1 byte 2 bytes 2 bytes 2 bytes

Page 41: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

41

Request :

Frame exemple in RTU modeFrame exemple in RTU mode

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

SlaveAddress

CRC16First word address

Function code = 16

Number of words to write

1 byte 1 byte 2 bytes 2 bytes 2 bytes

Response :

SlaveAddress

CRC16Function code = 16

1 byte 1 byte 2 bytes 2 bytes 2 bytes

Value of the first word

Number of bytes

1 byte 2 bytes

First word address

Number of words to write

Page 42: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

42

Physical layer:New Modbus RS485 standard schematicPhysical layer:New Modbus RS485 standard schematic

Master

Slave 1 Slave 2

D1

D0Common

5 V

650

650

120 1 nF

120 1 nF

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

Page 43: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

43

Main characteristics resumeMain 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

Page 44: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

44

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 bitContinuous stream

Main characteristics resumeMain characteristics resume

Page 45: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 45

MODBUS PROTOCOL (query/response)

MASTER

TRANSMIT RECEIVE

TRANSMIT RECEIVE

SLAVE 1

TRANSMIT RECEIVE

SLAVE 2

TRANSMIT RECEIVE

SLAVE N

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

The master transmit a question and wait a response2 slaves can’t speak together

Page 46: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 46

BUILD A FRAME (GENERAL)

4 fields are used to build a frame

address field (1 byte) :

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

Function field (1 byte) :

Provide the code for the operation.

Datas field (n bytes) :

Provide the address/datas for the slave concerned by the operation.

Control field (2 bytes) :

Word CRC16 add at the end of the message to secure the communication (CyclicRedundancy Chehksum 16 bits).

address

ADR

Function

OP

Datas

DATA

Control

CRC16

Page 47: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 47

MODBUS PROTOCOL (broadcasting)

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

Page 48: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 48

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 readand the number of consecutive bits to read.

ADR 01haddress 1st bit to read bits number to read (1 to 640) CRC1 byte 2 bytes2 bytes2 bytes1 byte

ADR 01h bytes number (1 to 80)1 byte 27 201 byte1 byte

CRC2 bytes

1st byte read

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

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

0 ou 1 0 ou 1

The frame…

Page 49: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 49

BUILD A FRAME (READING WORDS)

ADR 03h adr 1st word to read words number to read(1 - 128) CRC1 byte 2 bytes2 bytes2 bytes1 byte

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

The master provide the address on 16 bits, of the first byte to readand the number of consecutive words to read.

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

ADR 03h bytes number (0 - 256)1 byte 1 byte1 byte

CRC2 bytes

1st word read2 bytes

Page 50: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 50

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 writeand 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) CRC1 byte 2 bytes2 bytes2 bytes1 byte 1 byte

bytes number state of the bits

b7 ,...,b0,b15,...,b8,b23,...

Response to the writing request of bits(8 bytes)

ADR 0Fh address 1st bit to write bits number to write (1 to 800) CRC1 byte 2 bytes2 bytes2 bytes1 byte

Page 51: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 51

BUILD A FRAME (WRITING WORDS)

CRC

Function 10h : writing request for n consecutive bytesThe master provide the address on 16 bits, of the first byte to writeand 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)1 byte 2 bytes2 bytes2 bytes1 byte 1 byte

bytes number state of the wordsword 1, word 2, ...

Response to the writing request of words (8 bytes)

ADR 10haddress 1st word to write words number to write (1 - 100) CRC1 byte 2 bytes2 bytes2 bytes1 byte

Page 52: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 52

BUILD A FRAME (ERROR MESSAGE)

Sent to the master when a slave detect an error.

For a broadcasting, no message is sent back.

Response to an error frame ( 5 bytes)

slaveaddress

codefunction

1 byte 1 byte

CRC2 bytes

codeerror

1 byte

Code error :

01 false code function

02 bad address

03 bad datas

04 défault transfer

06 PLC busy

Code function :

code function + 80h

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.

Page 53: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 53

LABVIEW FRONT PANEL

Page 54: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 54

LABVIEW SERIAL PORT

Page 55: 1 Réseaux Industriels - Modbus Les réseaux Industriels MODBUS

LABVIEW SESSION IRBID 2007 55

LABVIEW BLOCK DIAGRAM