Vous êtes sur la page 1sur 28

Les bases du protocole Modbus

 Etre capable d’aborder la mise en D Syntaxe des principales requêtes


œuvre du protocole Modbus sur
différents supports physiques de
type liaison série, Ethernet TCP-
IP, ou Modbus Plus C Classes d’implémentation

B Les principaux codes fonction

A Origines et principes de fonctionnement

Durée : 40 min. Expert, Pédagogie : Philippe WARIN


Réalisation : Schneider-Electric

Les bases du protocole Modbus - Janvier 2006


TOLED
ORIGINES ET PRINCIPES DE FONCTIONNEMENT

D Syntaxe des principales requêtes

C Classes d’implémentation

B Les principaux codes fonction

A Origines et principes de fonctionnement

Les bases du protocole Modbus - Janvier 2006


TOLED
- Les origines

1978

Modbus est un protocole de messagerie

Créé en 1978 par Modicon

Ouvert et simple à mettre en oeuvre


Largement diffusé dans l’industrie

Les bases du protocole Modbus - Janvier 2006


TOLED
- Modbus et le modèle OSI

Modbus repose sur le modèle de communication client/serveur

Couche 7
modèle OSI

Utilisé sur
différents supports

et autres Modbus Plus Liaison série Modbus


liaisons:
Anneau à jeton Maitre/esclave Ethernet TCP/IP
infra-rouge,
radio etc… RS232, RS485

Les bases du protocole Modbus - Janvier 2006


TOLED
- 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

Les bases du protocole Modbus - Janvier 2006


TOLED
- Modbus fonctionne suivant le concept Client / Serveur
Requête

Client A quelle vitesse Serveur


le moteur tourne t’il ?

1000 tour/mn

Réponse
Le Client est une entité Le Serveur est une entité qui
demandant un service rend service à un client

Les bases du protocole Modbus - Janvier 2006


TOLED
- PDU = Protocol Data Unit
Format de message unique et indépendant des couches basses.

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 format des champs « Adresse » et « Contrôle d’erreur »


dépend du support réseau utilisé

Les bases du protocole Modbus - Janvier 2006


TOLED
- Déroulement d’une transaction sans erreur
Requête
Client Serveur

1 Initialise les données Réponse

2 Transmet la requête
Code
Fonction
Data requête 3 Réalise l’action demandée

4 Initialise la réponse
1 à 127 Complément
d’information Transmet la réponse
5
6 Traite la réponse Code
Data réponse
Fonction

Egal au Code fonction Données


de la requête demandées

Les bases du protocole Modbus - Janvier 2006


TOLED
- 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


Exception
Code Exception

Code fonction Exception Code Exception indique


= Code fonction + 80H la raison du refus
Valeur entre 129 et 255

Les bases du protocole Modbus - Janvier 2006


TOLED
- Fonctionnement détaillé coté serveur
Attente
réception requête Réception
Validation
code fonction
Invalide
Code d’exeption = 1
Valide
Validation
adresse données
Invalide
Code d’exeption = 2
Valide
Validation
valeurs données
Invalide
Code d’exeption = 3
Valide
Execution de la
fonction
Code d’exeption = Invalide
4, 5 ou 6 Valide
Envoi de la réponse Envoi de la
Exeception réponse Modbus

Les bases du protocole Modbus - Janvier 2006


TOLED
LES PRINCIPAUX CODES FONCTION

D Syntaxe des principales requêtes

C Classes d’implémentation

B Les principaux codes fonction

A Origines et principes de fonctionnement

Les bases du protocole Modbus - Janvier 2006


TOLED
- Les 3 catégories de codes fonction
Codes
Public fonction
127
Validés par l’organisation Modbus.org Public
Documentés publiquement 110
Définis par l’utilisateur
Avec garantie d’unicité
100

Public
Définis par l’utilisateur
72
Implémentable sans l’accord de l’organisation Modbus.org Définis par l’utilisateur
65
Sans garantie d’unicité

Réservés Public
Utilisés par certaines compagnies et non disponibles

Les bases du protocole Modbus - Janvier 2006


TOLED
- Les 4 types de variables accessibles

Entrées TOR
Discrete Inputs Bit Lecture seule
par exemple

Données modifiables
Coils Bit Lecture / Ecriture
par application

Input Registers Mot Lecture seule Entrées analogiques


par exemple

Données modifiables
Holding Registers Mot Lecture / Ecriture
par application

Chevauchement possible des tables.


65 536 variables maximum.

Les bases du protocole Modbus - Janvier 2006


TOLED
- Codes fonction public d’accès aux variables
Code fonction
Décimal Hexa
Discrete inputs Read Discrete Inputs 02 02
Accès Read Coils 01 01
bits Coils Write Single Coil 05 05
Write Multiple Coils 15 0F
Input registers Read Input Registers 04 04
Read Holding Registers 03 03
Write Single Register 06 06
Accès
Write Multiple Registers 16 10
mots Holding registers
Read/Write Multiple Registers 23 17
Mask Write Register 22 16
Read FIFO queue 24 18

Les bases du protocole Modbus - Janvier 2006


TOLED
- Autres codes fonction public

Sous
Code fonction code
Décimal Hexa Décimal

File record Read File record 20 14 06


access Write File record 21 15 06
Read Exception status 07 07
Diagnostic 08 08 00 à 18
Get Com Event Counter 11 0B
Diagnostic
Get Com Event Log 12 0C
Report slave ID 17 11
Read Device Identification 43 2B 14
Other Encapsulated Interface Transport 43 2B

Les bases du protocole Modbus - Janvier 2006


TOLED
CLASSES D’IMPLEMENTATION

D Syntaxe des principales requêtes

C Classes d’implémentation

B Les principaux codes fonction

A Origines et principes de fonctionnement

Les bases du protocole Modbus - Janvier 2006


TOLED
- Classes d’implémentation Transparent Ready

Liste de services à implémenter fonction des applications ciblées

pour garantir l’interopérabilité des équipements

Le protocole Modbus fait partie de ces services

Device
Messagerie
Management

Les bases du protocole Modbus - Janvier 2006


TOLED
- Règles et vocabulaire
3 classes dépendant du niveau des fonctionnaltés implémentée.

Imbrication modèle
Basic Regular Extended « Poupées
russes »

Appartenance à une classe si et seulement si toutes les caractéristiques


obligatoires sont supportées

Un équipement peut aussi supporter des caractéristiques d’une


classe supérieure.

Les bases du protocole Modbus - Janvier 2006


TOLED
- Classes de messagerie
Classes de messagerie identiques pour Client et Serveur

Accès aux
registres CF 03 : Read Holding Registers
Basic CF 16 : Write Multiple Registers
uniquement

Basic + CF 01 : Read Coils


Regular Accès aux bits
CF 02 : Read discrete inputs
si nécessaire et
au diagnostic si CF 15 : Write Multiple Coils
CF 08 : Diagnostic
Extended liaison série

Regular +
CF 20 : Read File Record
Accès aux
fichiers CF 21 : Write File Record

Write Single Register et Write Single Coil sont fortement recommandée pour les serveurs
(compatibilité anciens produits).

Les bases du protocole Modbus - Janvier 2006


TOLED
- Classes de Device Management
Classes de Device Management identiques pour Client et Serveur

Accès
Vendor Name, CF 43 : Read Device Identification
Basic product code et Sous code 14 – Accès Niveau 1
version

Basic +
Regular Accès Vendor URL, CF 43 : Read Device Identification
Product Name, Sous code 14 – Accès Niveau 2
Model name, User
Extended application name

Regular + CF 43 : Read Device Identification


Accès objets privés
Sous code 14 – Accès Niveau 3
dépendant du produit

Les bases du protocole Modbus - Janvier 2006


TOLED
SYNTAXE DES PRINCIPALES REQUETES

D Syntaxe des principales requêtes

C Classes d’implémentation

B Les principaux codes fonction

A Origines et principes de fonctionnement

Les bases du protocole Modbus - Janvier 2006


TOLED
- Read Holding Registers
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 2 octets 2 octets 2 octets
Code Valeur du Valeur du
Fonction Nombre
premier dernier
d’octets lus
03 registre registre

2xn 0 à 65 535 0 à 65 535

Les bases du protocole Modbus - Janvier 2006


TOLED
- Write Multiple Registers
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

Les bases du protocole Modbus - Janvier 2006


TOLED
- Write Single Register
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

Les bases du protocole Modbus - Janvier 2006


TOLED
- Read Coils
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

Les bases du protocole Modbus - Janvier 2006


TOLED
- Read Discrete inputs
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

Les bases du protocole Modbus - Janvier 2006


TOLED
- Write Multiple Coils
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
15 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
15 digitale écrites

0 à 65 535 n =1 à 1968

Les bases du protocole Modbus - Janvier 2006


TOLED
- Read Device Identification
Requête :
1 octet 1 octet 1 octet 1 octet Niveaux d’accès :
Code Sous code Adresse de 1 : Basic
Fonction fonction Niveau
objet 2 : Regular
d’accès
43 14 identification
3 : Extended
4 : Individual
1à4 m =0 à 255

Réponse :
1 octet 1 octet 1 octet 1 octet 1 octet 1 octet 1 octet
Code Sous code Classe Si fractionné Nombre
Fonction fonction Niveau Réponse
d’implémentation adresse d’objets
d’accès fractionnée prochain objet
43 14 dupportée identification

0 = non
1à4 1à3 1 à 255 1 à 255
255 = oui
1 octet 1 octet n octets 1 octet 1 octet n’ octets

Adresse Longueur Valeur de l’objet Adresse Longueur Valeur de l’objet


objet m objet m m objet m+1 objet m+1 m+1

m = 0 à 255 n = 1 à 255

Les bases du protocole Modbus - Janvier 2006


TOLED

Vous aimerez peut-être aussi