Réseaux Locaux Industriels: H Jamouli

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 102

Réseaux locaux Industriels

H JAMOULI

H.JAMOULIi ENSA4 - 2005/2006 1


Programme

• Les réseaux locaux industriels

• Transmission de données et codage des signaux

• Connectique et câblage

• Détection des erreurs de transmission

• Architecture des réseaux

• Gestion d’accès à la voie

• Réseau MODBUS

• Modèle OSI (Open System Interconnection)

ENSA4 - 2005/2006 2
Chapitre 1

Les réseaux locaux industriels

ENSA4 - 2005/2006 3
Les réseaux locaux industriels

Définition :
Un réseau local industriel est un système de communication numérique entre des
équipements d’un processus industriel (API, variateur, régulateur numérique, PC, pupitre
opérateur, …) dans le but de réaliser :
- la supervision du processus à distance;
- le pilotage des équipements de l’API;
- la programmation à distance des équipement intelligents;
- la maintenance des équipements industriels.

Les besoins industriels :


- faire coopérer des systèmes industriels de contrôle/commande;
- rendre accessibles les informations du processus en tout point de l’atelier, de l’usine,
voire de l’étranger;
- disposer d’un structure évolutive de communication;
- localisation géographique limitée mais extensible.

ENSA4 - 2005/2006 4
Les réseaux locaux industriels

Contraintes industrielles :

9 Ouverture/non propriétaire (équipements


provenant de fournisseurs différents)
1. Hétérogénéité des équipements 9 Interopérabilité (réseaux hétérogènes)
9 Interchangeabilité (changer le matériel,
pas les programmes)

2. Environnement « dur » 9 Immunité aux parasites/connectiques

3. Rapidité de fonctionnement 9 Temps réel/déterminisme

4. Sûreté de fonctionnement 9 Sûreté/redondance

ENSA4 - 2005/2006 5
Les réseaux locaux industriels

Pyramide CIM de l’automatisation

Niveau Système Automatisme

Niveau Station de
3 travail, PC
Informatique
Gestion

Niveau API, Supervision


2 MES / ERP /
Cellule PC SCADA

Niveau API, Contrôle /


1 Variateurs, Commande
Terrain Blocs E/S HMI / API

Niveau Capteur, Capteur /


0 Capteurs / Vanne, actionneur
capteur actionneur
Actionneurs Détecteur Dispositifs E/S

ENSA4 - 2005/2006 6
Les réseaux locaux industriels

Besoins en transmission de l’information

Quantité de Fréquence
Temps de réponse
données d’échange

Niveau gestion
M octets Seconde à minute Jour
Réseau pseudo-aléatoire
Unitelway,
Modbus
Niveau cellule
K octets 100ms – 1s Seconde à minute
Réseau lent

Profibus

Niveau terrain Milliseconde à


Octets 10ms – 100ms
Réseau rapide seconde

Niveau capteurs /
AS-i actionneurs Bits millisecondes Milliseconde
Réseau d’échange quasi-
continu

ENSA4 - 2005/2006 7
Chapitre 2

Transmission de données et codage de signaux

ENSA4 - 2005/2006 8
Schéma de transmission

Circuit de données

Contrôleur de
ETTD Contrôleur de
communication
ETCD ETCD communication
ETTD

Modem
Ligne de
Jonction transmission
(interface)

Liaison de données

ETTD : Équipement Terminal de Traitement de Données (Data Terminal Equipment)


– Ordinateur, imprimante, …
ETCD : Équipement Terminaison de Circuit de Données (Data Comm. Equipment)
– Modem, multiplexeur, adaptateur, …
Æ Adaptation du signal binaire entre ETTD et la ligne
Æ Gestion de la liaison via la jonction

ENSA4 - 2005/2006 9
Support de transmission

Bande passante
W = f2 – f1 (en Hertz)
Puissance

P0 La bande passante (Bandwidth) est dite à -3dB car :

P W 10.log10(P0/P1) = -3 dB.
P1 = 0
2

f1 f2 Fréquence

Débit binaire d’un canal


Le débit binaire est la capacité maximal du canal de transmission.

D = W.log2(1+S/B) en bits/s

S/B : rapport signal-sur-bruit (en puissance).


ENSA4 2005/2006 10
Transmission numérique en bande de base

Î Transmission utilisant des courants ou des tensions qui reflètent les bits du
message.

Î Transformation effectuée par l’ETCD, appelé aussi codeur bande de base.


- Standard RS232—V24 : tension absolue ±12V
- Standard RS422/485 : tension différentielle ±3V
- RS232 boucle de courant : courant 0—20mA

Î Transmission optimale :
- Compatibilité avec la bande passante du support ;
- Synchronisation des transitions ;
- Immunité aux perturbations.

ENSA4 - 2005/2006 11
Codes bande de base à 2 états
1 0 0 1 0 1 1 1 0 1
+V
NRZ

-V
∆ = temps bit

NRZi-1

NRZi-2

Manchester

Miller

Manchester
différentiel

IrDA

3∆/16
ENSA4 - 2005/2006 12
Codes bande de base à 3 états

1 0 0 0 0 1 1 1 0 0 0 0 0

+V

AMI (Bipolaire
temps
simple) -V

+V
V
HDB3
B V temps
-V

+V 0 0 0 -V 0 -V 0 0 0 0 +V +V

HDB3 : Substitution 0000 Æ B00V


B = - Σ impulsions émises
V = impulsion de même polarité que la précédente
Î Objectif : ramener et maintenir la composante continue du signal émis à 0.

ENSA4 - 2005/2006 13
Spectres de puissance

X : fréquence normalisée par 1/∆


2.5
Y : puissance normalisée par 2∆V²

Miller

La densité spectrale de puissance (DSP)


d’un signal indique le contenu fréquentiel
(encombrement spectral).

Î Chacun des modes en bande de base


possède une DSP plus ou moins étendue.

ENSA4 - 2005/2006 14
Transmission numérique sur fréquence porteuse

p(t)=A.cos(2πft+ϕ)

Amplitude Shift Keying Phase Shift Keying Frequency Shift Keying


(ASK) (PSK) (FSK)
0 1 0 0 1 0
0 1 0

A.cos(2πfct+π), Bit 1 A.cos(2πf1t+ϕc), Bit 1


A.cos(2πfct+ϕc), Bit 1 s(t) =
s(t) = s(t) =
A.cos(2πfct), Bit 0 A.cos(2πf2t+ϕc), Bit 0
a.cos(2πfct+ϕc), Bit 0

ENSA4 - 2005/2006 15
Transmission asynchrone

B O N J O U R

A B

Data Bits (B6h)


T
Ligne au repos +12V

B0 B1 B2 B3 B4 B5 B6 B7

PARITE
START

STOP
0 1 1 0 1 1 0 1

-12V

Tops d’échantillonnage en réception

ENSA4 - 2005/2006 16
Transmission synchrone

B O N J O U R

A B

Horloge

Données

0 1 1 0 0 1 0 1 1 0 0

Caractère 1 Caractère 2

ENSA4 - 2005/2006 17
Délai de transmission et délai de propagation

• Délai de transmission

Nombre de bits transmis n


Tt = =
Débit de la source en bps D

• Délai de propagation
Distance en m
Tp =
Vitesse de propagation en m/s

– Liaison hertzienne : terre – satellite géostationnaire à 36 000 Km Æ Tp = 270ms


– Câble coaxial gros diamètre (10mm) : propagation à 0.77xC = 231 000 Km/s
– Câble coaxial petit diamètre (4.8mm) : propagation à 0.65xC.

Généralement, le délai de propagation est inférieur au délai de transmission, surtout pour


les courtes distances.

ENSA4 - 2005/2006 18
Chapitre 3

Connectique et câblage

ENSA4 - 2005/2006 19
Câbles métalliques : paires torsadées

• Paires torsadées non blindées


Unshielded Twisted Pair (UTP)

• Paires torsadées blindées


Shielded Twisted Pair (STP)

ENSA4 - 2005/2006 20
Câbles métalliques : câble coaxial

Gaine

Tresse

Isolant

Âme

• Coaxial RG-58

• Coaxial RG-8

21
Les fibres optiques

Gaine nylon

Couche de protection

Gaine optique : indice de réfraction R2

Cœur (verre/plastique) : indice de réfraction R1

Fibres optiques et convertisseur prise AUI 15 Pts.

22
La liaison RS232 – V24
Broche Broche Entrée/ Dénomination Fonction
Db 25 Db 9 Sortie TxD TxD
RxD RxD
2 3 Sortie TxD (Transmit Data) Émission de données
GND GND
3 2 Entrée RxD (Receive Data) Réception de données
4 7 Sortie RTS (Request To Send) Demande pour émettre
5 8 Entrée CTS (Clear To Send) Prêt à émettre
6 6 Entrée DSR (Data Set Ready) Poste de données prêt +12V Tension absolue TxD-GND ou RxD-GND
7 5 Masse GND (Ground) Masse ‘0’
8 1 Entrée DCD (Data Carrier Detect) Niveau du signal de +3V
réception (signal de ligne) État logique
0 indéterminé
20 4 Sortie DTR (Data Terminal Ready) Terminal paré
-3V
22 9 Entrée RI (Ring Indicator) Indicateur d’appel entrant
‘1’
-12V

Pas de croisement
pour liaison
DTE—DCE !!

ENSA- 2005/2006 23
La liaison RS232 – V24

Câblage Full RS232

Câblage RS232 dit Null Modem

ENSA - 2005/2006 24
La liaison RS485

+5V Tension différentielle TX+/TX- ou RX+/RX-


‘1’
+0.2V
État logique
0 indéterminé
-0.2V
‘0’
-5V

Enable
‘0’

TX+ RX+
TX RX A
TX- RX-
∞ B
GND GND

Émetteur différentiel Récepteur différentiel

ENSA - 2005/2006 25
Bus RS485 – 2 ou 4 fils

+5V
390 Ω
Rp TX+/RX+ (DB)

120 Ω Bus 2 Fils 120 Ω Rc

TX-/RX- (DA)
390 Ω Rp
TX+
0V DA DB TX DA DB
TX-

Station A RX+ Station C


RX
RX-
Station B

120 Ω Bus Esclave Æ Maître

Bus 4 Fils
Bus Maître Æ Esclave 120 Ω

RTS

TX+
TX+ TX- RX+ RX- TXD TX+ TX- RX+ RX- TX+ TX- RX+ RX-
TX-

Station A RX+ Station B Station C


RXD
(Maître) RX-

Station D

ENSA - 2005/2006 26
Adaptation de ligne de transmission

ENSA - 2005/2006 27
Chapitre 4

Détection des erreurs de transmission

28
Protection contre les erreurs

• Les lignes de transmission ne sont pas parfaites : des erreurs peuvent être
introduites sur les symboles d’une suite binaire

Taux d’erreur

Ligne téléphonique 10-5

Câble coaxial 10-7 à 10-9

Fibre optique 10-10 à 10-12

• La détection d’erreur repose sur l’introduction d’une certaine redondance


dans l’information transmise. Quatre techniques peuvent être utilisées:
– la détection par écho (Echoplex) : le récepteur renvoie un écho du message
– la détection par répétition : chaque message émis et suivi de sa réplique
– la détection par clé calculée : une info (clé) est ajoutée au message
– la détection et correction d’erreur par code : substitue aux caractères à
transmettre une combinaison binaire différente du codage de base (code auto-
correcteur) Æ gourmande en bande passante

29
Détection d’erreur sur caractère : le bit de parité

A chaque caractère, on ajoute un bit de parité (1 ou 0) de façon à ce


que le nombre total de 1, y compris le bit de parité, soit pair ou impair.
Parité paire : le nombre total de 1 est pair
Parité impaire : le nombre total de 1 est impair

Æ C’est la méthode de la parité verticale : VRC = Vertical


Redundancy Check

Exemple : VRC avec parité paire, code 7 bits UIT-T (code N°5)

Caractère Code hexa. Code binaire Parité paire Parité impaire


A 41h 1000001 0 1000001 1 1000001
E 51h 1010001 1 1010001 0 1010001
5 35h 0110101 0 0110101 1 0110101

30
Bit de parité (VRC)

caractère clé

• La détection d’erreur avec le VRC consiste à :


recalculer le bit de parité à la réception et
vérifier que le nombre total de 1 correspond à la parité choisie.

• La méthode VRC n’est pas très fiable


(si 2 bits sont erronés, la détection échoue).

• Son taux d’efficacité est estimé à 50%.


• Son rendement est de 7/8 = 87,5%

31
Longitudinal Redundancy Check (LRC)

• Transmission asynchrone : caractère par caractère Æ VRC


• Transmission synchrone : bloc de caractères Æ Parité croisée
Æ Bit de parité complété par une autre information : le LRC

• Principe :
– On transmet les n mots du bloc avec leurs bits de parité, suivis du LRC.
– À la réception, on recalcule le bit de parité de tous les mots (VRC) et les
bits de parité longitudinale LRC
– Il n’y a pas d’erreur si les parités reçues et recalculées sont identiques.

• Exemple : envoie du bloc « HELLO », parité paire

1001000 0 1000101 1 1001100 1 1001100 1 1001111 1 1000010 0


H E L L O LRC

32
Détection d’erreur sur trame

• On ajoute une clé de contrôle à chaque trame

FCS : Frame Check Sequence


en-tête données fin FCS soh : Start of Header
soh eot eot : End of Transmission

• Fonctionnement
Emetteur Récepteur
en-tête / données
/ fin / FCS
en-tête/données/fin Æ calcul FCS recalcule FCS Æ erreur

en-tête/données/fin

Trame correcte

33
Détection d’erreur sur trame

Deux mécanismes principaux :

• Somme de contrôle (Checksum)


• Clef de contrôle (CRC)

34
Somme de contrôle (Checksum)

Méthode plus fiable que les contrôles de parité, mais


consomme plus en puissance de traitement.

Les données sont considérées comme n mots de k bits.


On ajoute en fin de trame la somme modulo 2k des n mots.

Exemple : « HELLO » avec Checksum sur un octet


48h + 45h + 4Ch + 4Ch + 4Fh = 174h,
ce qui donne 74h[256] = (1110100)2

Trame transmise 48h 45h 4Ch 4Ch 4Fh 74h

35
Somme de contrôle (Checksum)

Sommes de contrôles utilisées : 8, 16, 32 bits.

Parfois le Checksum calculé à l’émetteur est complémenté


à 2 avant émission : comp2(x) = (NOT x) + 1.
Dans ce cas, le récepteur recalcule le Checksum et vérifie
si sa somme avec celui reçu vaut 0.

Certaines erreurs ne sont pas détectées.


Par exemple, inversion de 2 bits de même poids sur 2 mots
de la trame.

36
Contrôle de redondance cyclique (CRC)

• Méthode plus élaborée basée sur des calculs de division de


polynômes à coefficients dans {0, 1}.

• Le principe consiste à l’émission à :


– diviser les bits du message à émettre considéré comme un polynôme
par un autre polynôme (dit générateur).
Le reste de la division est le CRC (Cyclic Redundancy Check).

– Émettre le message avant le CRC.

• A la réception, on recalcule le CRC et les résultats sont comparés.

• Méthode atteignant un taux d’efficacité de 99,9%.

37
Contrôle de redondance cyclique (CRC)

• Une message M de (n+1) bits est représentée par un polynôme :


M = an … a1 a0
M(x) = anxn + an-1xn-1 + … + a0 , an = poid fort

• A l’émission, on calcul la division du polynôme M(x) multiplié par xd


par le polynôme générateur G(x) de degré d :

xdM(x) = Q(x).G(x) + R(x), Q : quotient, R : reste

• Le CRC est R(x), Q(x) est sans intérêt.

• Le message transmis est T = M | R.

• Ce message peut être obtenu par : T(x) = Q(x).G(x) = xdM(x) + R(x).

38
Contrôle de redondance cyclique (CRC)

M comp
Exemple : 11010110110000
11010110110000 10011 = G(x)
+ 10011
Transmission du message M=1101011011 avec 1100001010
CRC, G(x) = x4 + x + 1. +
100111
= Q(x)
10011
00001 1
x4M(x) = x13+x12+x10+x8+x7+x5+x4 00000
= (x9+x8+x3+x)(x4+x+1)+x3+x2+x 00010 0
00000
00101 1
La trame transmise sera : 00000
T = 11010110111110 01011 1
00000
10110 0
10011
01010 0
00000
A la réception, T(x) est divisé par G(x). 10100 0
S’il n’y a pas d’erreur, le reste de la division est nul. 10011
01110 0
00000
1110

39
Contrôle de redondance cyclique (CRC)

• Un CRC de d bits permet de détecter plusieurs erreurs :


– un paquet d’erreurs de longueur < d avec une proba. 1;
– un paquet d’erreur de longueur = d avec une proba. (1-1/2d-1);
– un paquet d’erreur de longueur > d avec une proba. (1-1/2d);

• Quelques polynômes générateurs normalisés :


Nom Polynôme Utilisation
CRC-8 x8+x2+x+1 En-tête ATM
CRC-10 x10+x9+x5+x4+x+1 Couche AAL d’ATM
CRC-12 x12+x11+x3+x2+x+1 IBM Bisync err. contr.
CRC-16 x16+x15+x2+1 Polling/Selecting
CRC-UIT-T Avis V41 x16+x12+x5+1 HDLC, X25
CRC-IEEE 802 x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1 Ethernet

40
Algorithme CRC-16

début

Index Å 0
CRC Å FFFFh

CRC Å Trame(Index) XOR CRC

NÅ0

Décalage à droite de CRC de 1

Polynôme générateur (MODBUS) : NON


Retenue = 1?

G(x) = x16 + x15 + x2 + 1 CRC Å CRC XOR A001h

N++

NON
N > 7?

Index++

NON
Fin Trame?

fin

41
Chapitre 5

Architecture des réseaux

42
Architecture des réseaux

Elle représente :

La forme topologique
Æ configuration d’interconnexion des stations

La répartition fonctionnelle des stations


Æ rôle du maître/esclave, routeur, pont, …

43
Topologie des réseaux

Définition : c’est la façon dont les équipements sont reliés entre eux par le
support physique.
Il existe deux classes de réseaux :
– Ceux en mode de diffusion ;
– Ceux en mode point à point.

Mode diffusion Mode point à point


boucle
étoile
bus simple

boucle
maille double
anneau

44
Interconnexion des réseaux

• On peut vouloir interconnecter des réseaux locaux pour différentes


raisons :
– segmenter 2 réseaux pour augmenter la sécurité, la disponibilité, …
– dépasser les limites physiques du réseau : distance, nbre de stations
– Changer de support physique, de protocole, …
• Les trames circulent d’un réseau à l’autre moyennant :
– adaptation du signal physique ;
– adaptation du format de la trame.

• L’interconnexion est réalisée au travers de plusieurs équipements :


– Répéteurs ;
– Concentrateurs (hub) ;
– Commutateurs (Switch) ;
– Routeur …

45
Répéteur

C’est un équipement passif.

Il est utilisé dans les topologies en bus pour assurer la régénération et


l’amplification du signal.
Æ rallonger une potion réseau
Æ adapter deux média différents (supports)

Il connecte plusieurs segments d’un même réseau.

46
Concentrateur (Hub)

C’est un équipement passif ou actif.

Topologie en bus, anneau et étoile. Rôle : convertisseur de média et


concentrateur d’accès (MAU=Multi-station Access Unit).
Principe : une trame reçue sur une voie est diffusée sur toutes les
autres voies (ports).
Le débit effectif est divisé par le nombre de ports.

47
Pont

Un pont (Bridge) sert à relier des segments d’un même réseau. Il est
actif.

Il offre les services d’un répéteur. Il est capable de convertir des trames
(Ethernet Æ Token Ring).
Commutateur (Switch)

Son rôle est de commuter les trames sur les différents ports en
fonction des adresses de destination.

Il segmente un réseau pour augmenter la bande passante.

A B C A B C

G HUB D G SWITCH D

F FàC E F FàC E

Les switches sont plus performants (vérificateurs, temps-réel) que les


hubs, mais ils sont beaucoup plus chers.
Æ utilisés pour les systèmes multitâches

49
Commutateur (Switch)

Deux types de commutateurs :


- commutateurs « Store and Forward » ;
- commutateurs à la volée « Cut Through ».

50
Routeur

Achemine les trames d’un poste d’un réseau A à une stations d’un
réseau B. Il interconnecte des réseaux différents.

Rôle : effectuer le routage des paquets, c-à-d choisir le chemin en


utilisant l’adresse de destination portée par le paquet.

51
Chapitre 6

Gestion d’accès à la voie

ENSA- 2005/2006 52
Problématique

• Un support unique partagé par l'ensemble des stations


raccordées au support.

• Les stations ne peuvent pas utiliser simultanément le


support.

Î Nécessité d'arbitrage !

53
Politiques d’accès

Allocation statique Allocation dynamique

Accèsmultiplexé
Accès multiplexé Accèscontrôlé
Accès contrôlé Accèsaléatoire
Accès aléatoire

TDMA FDMA CSMA/ CSMA/


ALOHA
CD DCR et NBA

Gestion Gestion
Gestion
Gestion
centralisée distribuée
distribuée
centralisée

Maître/ Jeton sur Jeton sur


Polling Probing anneau bus
esclave

54
Allocation statique

1. Accès Multiple à Répartition Temporelle


2. Accès Multiple à Répartition Fréquentielle
3. Accès Multiple à Répartition par Code

55
Accès multiple à répartition temporelle

Dans l’accès AMRT (TDMA), les stations utilisent toute la bande


passante et chacune se voit attribuer une tranche de temps.

1 2 3
F (Hz)

Capacité
canal
Station 1 Station 2 Station 3 Station 1

temps
T
Avantages : Time Slice Inconvénients :
• Simplicité ; • Manque d’efficacité, mauvaise utilisation de la
• Équitabilité ; bande passante ;
• Priorités faciles à mettre en œuvre. • Besoin de synchronisation Æ une station
« primaire » émet un message de synchro.
pour démarrer un nouveau cycle ;
• Problème de fiabilité de la station primaire ;
• Tout ajout ou retrait de station implique une
modification du cycle.
56
Accès multiple à répartition de fréquence

L’accès AMRF (FDMA) répartie les fréquences disponibles entre


les stations. Les canaux sont séparés par des bandes de garde.

F (Hz)
1 2 3

Canal 3
Capacité
canal Bande de garde
Canal 2

Canal 1 Largeur de bande (Hz)

temps
Avantages : Inconvénients :
• Simplicité ; • Inter-bandes Æ gaspillage ;
• Équitabilité ; • Mauvaise utilisation de la bande passante ;
• Priorités faciles à mettre en œuvre. • Tout ajout ou retrait de station implique une
modification du découpage de la BP.

57
Allocation dynamique

Dans les politiques d’accès dynamique, la bande passante n’est


attribuée qu’aux stations qui en ont besoin.

Il existe deux grandes familles de politiques d’allocation dynamique :

– méthodes déterministes (accès contrôlé) : IEEE 802.4/802.5


• prévoient et calculent exactement l’instant où une station aura le support ;
• l’accès au support s’effectue par élection.

– méthodes aléatoires : IEEE 802.3


• l’instant d’accès ne peut être déterminé que de manière probabiliste ;
• l’accès au support s’effectue par compétition (gestion de conflits).

58
Allocation dynamique : accès contrôlé

Gestion centralisée
Gestion distribuée

Une station particulière (station maîtresse,


électeur) se charge de la gestion des Toutes les stations ont le même statut Æ
autorisations d’accès. aucune hiérarchisation.

Station élue = décidée par le maître


Station élue = station ayant le jeton

59
Méthode Maître/Esclave

C’est la méthode la plus élémentaire, mais parmi les plus répandues dans les
réseaux industriels.
Une station est maître de la voie ; c’est elle qui initie les échanges. Les
esclaves se contentent de répondre aux questions du maître.

11 2 3
Maître Esclave 1 Esclave 2
Méthode implantée selon 3 mécanismes :
Question
(a) Réponse

(b) Diffusion

Multicast
(c)

60
Accès par « Polling »

C’est une amélioration de la méthode maître/esclave.


Polling = scrutation ou sondage ou interrogation.

Le maître interroge (poll), à tour de rôle, les différents esclaves pour savoir s’ils
ont des données à émettre.
S4

MM
Maître S1 S2 S3
Quelque chose
à émettre S1 ?

Non
Un message esclave Æ esclave passe
Quelque chose à émettre S2 ?
obligatoirement par le maître… Oui, Voilà mon message

ACK1

Quelque chose à émettre S3 ?


61
Accès par « Polling » : dialogue esclave/esclave

MM
Maître S1 S2 S3 S4
Poll

NACK
Dialogue S2 Æ S1
Poll

ACK, DATA
Le maître récupère les données par polling. ACK1

Il demande la retransmission par selecting.


Select

ACK
ACK = Acknowledge (OUI)
DATA
NACK = Negative Acknowledge (NON)
ACK1

Poll

NACK

Poll

Î Gestion assez lourde. Le réseau est chargé par la tâche de monitoring, surtout quand
le nombre de stations est grand.

62
Accès par « Probing »

Amélioration du polling. Méthode également appelée « polling adaptatif ».

Principe :
Æ le maître envoie un signal à tous les esclaves : « voulez-vous transmettre ? » ;
Æ les esclaves souhaitant émettre répondent dans un temps qui leur est dédié ;
Æ le maître donne la paroles successivement aux stations ayant répondu.

1 2 3 … j … n 1 j n

Polling général & réponses dans un temps dédié Accès aux stations voulant
transmettre

Î Réservation dynamique des tranches de temps.


Æ Si peu de station, amélioration du temps de gestion.
Æ Si beaucoup de stations, petite amélioration.

63
Gestion centralisée : conclusion

• Repose sur une station primaire : paralysie totale en cas de panne.


Æ il existe des procédure de réélection du maître !

• Fort trafic au repos généré par le mécanisme MAC.

64
Gestion distribuée

Cette politique consiste à faire circuler sur le réseau un « permis


d’émettre » ou « jeton » (Token).

Plusieurs façons de l’implanter. Cela dépend de l’algorithme de


passage du jeton et de l’instant de renvoie de celui-ci.

Deux grandes catégories :


– technique du jeton non adressé ou « jeton sur anneau » ;
– technique du jeton adressé ou « jeton sur bus ».

65
Méthode du jeton sur anneau (1)

Î Topologies de réseau en anneau. Deux techniques principales :

demande émission

(1) Une station émettrice ne rendra le jeton


que lorsque la trame lui sera entièrement J

revenue.

J
Æ La trame est retirée par l’émetteur. demande émission

Æ Une seule trame sur le réseau. (1) (2)

Normalisation IEEE 802.5 (Token Ring)

J
J

(3) (4)

66
Méthode du jeton sur anneau (2)

(2) Une station émettrice rend le jeton dès


que sa trame est transmise. J

Æ La trame peut être retirée par le


récepteur. (1) (2)
Æ Avantage : propagation simultanée de
plusieurs messages.

J
J

Problème : le jeton
- existence
- unicité
(3) (4)

67
Méthode du jeton sur bus

Î Topologies de réseau en bus. Passage du jeton

TS 4 TS 3 TS 7
PS 7 PS 8
NS 2 NS 4

TS 2 TS 1 TS 5 TS 8
PS 4 PS 2 PS 1
Normalisation IEEE 802.4 NS 1 NS 8 NS 7
(Token Bus)
- Boucle ordonnée dans le sens des adresses décroissantes ;
- Fermeture assurée par la station d’@ la plus basse vers la station d’@ la plus haute ;
- Une station recevant le jeton ne peut transmettre que pendant une durée limitée ;
- Chaque coupleur actif mémorise (TS, NS, PS) ;
- Une station non intégrée dans la boucle peut recevoir ;
- Une station détenant le jeton peut déléguer sa transmission.

68
Allocation dynamique : accès aléatoire

Origine : ALOHA [Abramson, 1970]

Principe de Aloha :
- lorsqu’une station souhaite transmettre un message, elle l’envoie.
- s’il y a collision, le message est retransmis ultérieurement.

Station 1 Station 1

Station 2 Station 2

Station 3 Station 3
temps temps

Aloha (efficacité 18%) Aloha discrétisé (eff. 36%)

69
Aloha pur et Aloha discrétisé

début début

Attente d’un
Émission de la signal d’horloge
trame

Émission de la
Écoute du trame
support

Écoute du
non oui support
Collision?

fin Arrêt non oui


transmission Collision?

fin Arrêt
transmission
Durée aléatoire

Durée aléatoire
Aloha pur Aloha discrétisé

70
Méthode CSMA/CD

Carrier Sense Multiple Access with Collision Detection = Accès Multiple avec
Écoute de la Porteuse et Détection de Collisions.

C’est le mode d’accès utilisé par Ethernet. Il est normalisé IEEE 802.3.

Principe :
– Une station voulant émettre écoute le canal. S’il est libre, elle envoie sa trame.
Sinon, elle attend que le canal soit libre.
– Pendant la transmission, l’adaptateur continue à surveiller la ligne. S’il ne
détecte aucun signal en provenance des autres stations, il continue.
– S’il détecte le début d’une autre transmission, il interrompt la sienne et envoie
un signal de brouillage de 48 bits (bits de bourrage).
– Après l’interruption, la station se met en phase d’attente exponentielle
(exponential backoff phase)…

71
Méthode CSMA/CD

Station 3

Station 2

Station 1

ÎAvantages :
Æ très grande décentralisation ;
Æ très efficace sous faible charge ;
Æ faible coût.
Î Inconvénient : ne garanti pas un temps minimum d’accès au canal
(problème du temps réel).
ª CSMA/DCR (Deterministic Collision Resolution)
ª CSMA/NBA (Non destructive Bitwise Arbitration)

72
Méthode CSMA/CD

début

non Support oui


libre?

Émission de la
trame

Écoute du
support

non
Collision?

oui

Bourrage
48 bits

Durée aléatoire
fin

73
Chapitre 7

Réseau MODBUS/JBUS

74
Protocole MODBUS/JBUS

Le protocole Modbus a été définit en 1978 par Modicon (fabriquant d’APIs US) pour
réaliser des communications entre les automates Modicon et la console de
programmation.

Modbus est un protocole de communication (ensemble de règles d’échange,


indépendant du type de réseau) et non pas réellement un réseau. Par abus de langage,
un système de communication mettant en œuvre un protocole Modbus est couramment
appelé « réseau Modbus ».

Modbus est rapidement devenu un standard de communication industrielle, adopté


par tous les constructeurs en proposant, en option, des coupleurs et des adaptateurs
Modbus (équipements hétérogènes).

JBUS est un protocole proposé par APRIL et il est inspiré de Modbus. JBUS est
compatible Modbus si bien que l’on parle souvent de protocole Modbus/JBUS.
Æ JBUS commence ses adresses de données à 1 et non à 0 ;
Æ JBUS intègre un service périodique de liaison de données.

75
MODBUS/JBUS (différences)

Structure de la trame Modbus Jbus


N° d’esclave 1 à 247 1 à 255
Code fonction 1 à 24 1 à 16 (sauf 9 & 10)
Longueur trame 261 octets max. 255 octets max.
CRC CRC-16 CRC-16
Détection des trames* silence > 1,5 ou > 3,5 caractères silence > 3 caractères
*Cette différence ne pose pas de problème à des débits supérieurs à 1200 bits/s car ces temps sont inférieurs au
temps de traitement de l’équipement (temps de retournement).
Fonctions standard Modbus Jbus
F1 Lecture de n bits à @ 1 to 9999 (Q) Lecture de n bits à @ 0 to FFFF (1<n<2000)
F2 Lecture de n bits à @ 10001 to 19999 (I) Lecture de n bits à @ 0 to FFFF (1<n<2000)
F3 Lecture de n mots à @ 40001 to 49999 (Q) Lecture de n mots à @ 0 to FFFF (1<n<125)
F4 Lecture de n mots à @ 30001 to 39999 (I) Lecture de n mots à @ 0 to FFFF (1<n<125)
F5 Écriture de 1 bit à @ 1 to 9999 Écriture de 1 bit à @ 0 to FFFF (1<n<2000)
F6 Écriture de 1 mot à @ 40001 to 49999 Écriture de 1 mot à @ 0 to FFFF (1<n<2000)
F7 Lecture du statut d’exception (8 bits). Signale Lecture rapide de 8 bits utilisateurs
des défauts sur l’équipement.
F15 Écriture de n bits à @ 1 to 9999 Écriture de n bits à @ 0 to FFFF
F16 Écriture de n mots à @ 40001 to 49999 Écriture de n mots à @ 0 to FFFF

76
Caractéristiques de MODBUS

Type : réseau Maître Esclaves point à point ou multipoint. 1 seul maître et jusqu’à 247
esclaves (en théorie).

Topologie : réseau en bus.

Transmission : les spécifications Modbus ne définissent pas de médium ni de mode de


transmission, mais généralement on observe les caractéristiques suivantes :
- Médium : paire torsadée blindée (STP) ;
- Distance maxi. sans répéteur : 1300 m ;
- Transmission asynchrone Half-Duplex ;
- Débit en bande de base de 50 à 19200 bit/s ;
- Interfaces RS-232C, RS-422 ou RS-485.

Protocole d’accès :
- Question/Réponse entre le maître et un esclave Æ Query/Response
- Diffusion générale/Sans réponse du maître vers tous les esclave Æ Broadcast

77
Caractéristiques de MODBUS (suite)

Fonctions :
- Lecture/Écriture de mots de 16 bits ;
- Lecture/Écriture de bits ;
- Lecture Rapide d’un octet particulier de l’esclave ;
- Téléchargement de programme ;
- Run/Stop automate.

Surveillance :
Chaque esclave gère de façon interne des compteurs de diagnostic accessibles par le
maître. Ils permettent de surveiller l’état de fonctionnement des coupleurs des esclaves.

78
MODBUS et le modèle OSI

Les 7 couches OSI Seulement 3 couches concernent les RLI

Run/Stop ; Téléchargement de programme ;


7 – Application Lecture/Écriture bits et mots ; Accès compteurs ; …

6 – Présentation

5 – Session

4 – Transport

3 – Réseau
Maître/Esclaves : Question/Réponse, Diffusion ;
2 – Liaison de données Codage ASCII/RTU ; CRC/LRC ; 3 réémissions ;
Compteurs de diagnostic

Bande de base ; Asynchrone ; NRZ ; 19200 bit/s ; RS-


1 – Physique 485 ; STP ; Sub DB9 ou Sub DB25

ENSA - 2005/2006 79
Méthode d’accès à la voie

Æ Type Maître/Esclaves, tel qu’il n’existe pas d’activité permanente sur la ligne.
Æ Les échanges sont réalisés à l’initiative du maître. Les esclaves sont passifs ; ils se
contentent de répondre aux questions du maître.
Maître
Maître
Analyse Q
Q Attente réponse
Q
Question/
M
Réponse

Traitement R
demande
R
E1 Esclave 1 Esclave 2 Esclave 3

Requête en Requête en
Diffusion diffusion diffusion Maître
Maître
générale M

E1
Traitement de Traitement de
E2 la diffusion la diffusion
Esclave 1 Esclave 2 Esclave 3

Un communication esclave Æ esclave n’existe que si le logiciel application du poste


maître a été conçu dans ce sens.
80
Les deux modes de transmission série MODBUS

Modbus offre deux modes de communication : ASCII et RTU.


ASCII : American Standard Code for Information Interchange
RTU : Remote Terminal Unit

Æ Le mode RTU offre de meilleures performances (débit, erreurs) du fait du


compactage des données. Son utilisation typique est la programmation en
local. Environ 95% des modules communicants sur Modbus utilisent des
trames RTU.

Æ Le mode ASCII offre des performances inférieures à RTU mais il est plus
simple à mettre en œuvre. Il offre une « souplesse » plus importante sur
le timing inter-octets (jusqu’à 1 sec). Il est utilisé pour les interfaces
opérateurs et les applications de dialogue avec le calculateur hôte.

81
Trames MODBUS : codage ASCII

Une trame ASCII a une longueur maxi. de 525 octets. Elle contient 6 champs :

EN- ADRESSE CODE DONNEES CONTROLE FIN


TÊTE FONCTION LRC
1 CAR. 2 CAR. 2 CAR. n CAR. 2 CAR. 2 CAR.
CR LF
:

En-tête Caractère ‘:’ (3Ah) indiquant le début de la trame


Adresse Adresse sur deux octets en hexadécimal de l’esclave destinataire (0 Î diffusion)
Code fonction Code représentant la fonction demandée à l’esclave
Données Paramètres & valeurs sur n octets associés à la fonction demandée
Contrôle LRC Clé de contrôle de la trame sur 8 bits
Fin Caractères ‘CR’ (0Dh) et ‘LF’ (0Ah) délimitant la fin de la trame

Chaque octet est codé sur 2 caractères ASCII, chacun contenant 4 bits d’information :
- le 1er caractère émis contient le quartet de poids fort ;
- le 2ème caractère contient le quartet de poids faible.
Le code ASCII associé à chaque octet ne peut être que 0—9, A—F (hexadécimal).
Ainsi, pour coder l’esclave d’@ 1Ah, la champ adresse de la trame ASCII contiendra les deux octets
31h (‘1’) et 41h (‘A’).
82
Réception d’une trame ASCII

1) L’esclave « écoute » la ligne et attend le


caractère d’en-tête ‘:’. Attente caractère

2) Dès que le caractère ‘:’ est reçu, l’esclave non Caractère


mémorise dans un buffer (tampon mémoire) reçu=‘:’
tous les caractères qui suivent jusqu’aux code oui
CR et LF, délimiteurs de fin de trame.
Caractère non Rangement dans
reçu=‘CR’ buffer
3) Si la ligne est coupée avant que l’esclave oui
n’ait reçu les délimiteurs de fin, l’esclave
attendra éternellement (Time Out) la fin du Attente caractère
message commencé.

Caractère
Î Fonctionnement asynchrone. reçu=‘LF’

oui

Trame reçue en
buffer

83
Trames MODBUS : codage RTU

Une trame RTU a une longueur maxi. de 261 octets. Elle est composée de 4 champs :

ADRESSE CODE DONNEES CONTROLE CRC


FONCTION

8 BITS 8 BITS n x 8 BITS 16 BITS

Adresse Adresse sur un octet en hexadécimal de l’esclave destinataire (0 Î diffusion)


Code fonction Code sur un octet représentant la fonction demandée à l’esclave
Données Paramètres & valeurs sur n octets associés à la fonction demandée
Contrôle CRC Clé de contrôle de la trame sur 2 octets (CRC-16)

Chaque octet d’information est codé sur un caractères (valeur entre 00h et FFh).

84
Réception d’une trame RTU

1) L’esclave lit chaque caractère sur la ligne


puis enclenche un Timer de durée T égale à
3,5xTc (temps nécessaire à la transmission Attente caractère IT Timer
de 3,5 caractères).

Sous-programme
2) Si un autre caractère est reçu avant la fin de Rangement dans
Interruption
buffer
la temporisation, celui-ci est mémorisé dans
le tampon puis le Timer est relancé. Timer écoulé

Lancement Timer
3) Si aucun caractère n’est reçu avant la fin 3,5 temps caractère Fin Interruption

du Timer, l’esclave considère que la trame


est terminée et analyse alors le contenu du
non
tampon de réception. Timer écoulé?

oui
4) Si la ligne est coupé avant que l’esclave
n’ait reçu la trame complète, celui-ci Trame récue
n’attendra pas plus de 3,5xTc.

Î Fonctionnement pseudo-synchrone. N.B. Le temps d’attente est donné en temps


caractère pour s’adapter à la vitesse de
transmission.

85
Comparaison ASCII/RTU

Demande de lecture de 3 mots à l’adresse 006Bh Réponse de l’esclave (6 octets lus)


REPONSE
QUESTION
Champs Exemple ASCII RTU
Champs Exemple ASCII RTU (Hex) (Caractères) (8 bits)
(Hex) (Caractères) (8 bits)
En-tête : Aucun
En-tête : Aucun
Adresse esclave 06 0 6 0000 0110
Adresse esclave 06 0 6 0000 0110
Fonction 03 0 3 0000 0011
Fonction 03 0 3 0000 0011
Compteur octets 06 0 6 0000 0110
Adresse début Hi 00 0 0 0000 0000
Donnée Hi 02 0 2 0000 0010
Adresse début Lo 6B 6 B 0110 1011
Donnée Lo 2B 2 B 0010 1011
Nombre de mots Hi 00 0 0 0000 0000
Donnée Hi 00 0 0 0000 0000
Nombre de mots Lo 03 0 3 0000 0011

Contrôle Erreur LRC (2 car.) CRC (16 bits) Donnée Lo 00 0 0 0000 0000

Fin CR LF Aucun Donnée Hi 00 0 0 0000 0000

Nombre total d’octets : 17 8 Donnée Lo 63 6 3 0110 0011

Contrôle Erreur LRC (2 car.) CRC (16 bits)

Fin CR LF Aucun

Nombre total d’octets : 23 11

86
Gestion des erreurs en réception

Le protocole Modbus définit les modes de recouvrement d’erreur suivants :

L’esclave reçoit une requête correcte du maître :


Après avoir réalisé la fonction demandée, l’esclave répond par une trame proche de la
trame de requête.

Le maître ne reçoit pas de réponse d’un esclave interrogé :


Le maître attend une durée paramétrable de quelques millisecondes (Time-Out), puis
réémet la question deux fois (paramétrable).

La trame reçue est physiquement erronée :


L’esclave destinataire ne traite pas la trame et ne répond pas. Le maître réémettra la
demande jusqu’à concurrence de trois fois.

La trame est logiquement erronée : (code fonction non supporté par l’esclave, adresse
inexistante, …). L’esclave destinataire répond par une trame d’exception qui a la forme
suivante :

87
Trames d’exception MODBUS

L’esclave renvoie un code d’erreur sur un octet, signifiant le type d’erreur rencontré. La
signification précise de l’erreur est fonction de l’implémentation Modbus faite par le
constructeur du poste esclave.

ASCII RTU
1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5

:
1 CR LF 1

Code Code @ Code Code


@ Esclave LRC CRC
fonction erreur Esclave fonction erreur

Code Erreur Signification


1 Code fonction erroné Fonction non supportée par l’esclave
2 Adresse incorrecte Adresse non autorisée sur l’esclave
3 Données incorrectes Données non autorisées à l’adresse indiquée
4 Automate non prêt Impossibilité d’échange coupleur avec CPU de l’esclave

L’esclave retourne le code fonction émis par le maître en positionnant le bit de poids
fort à 1, pour signifier une réponse d’exception.

88
Clés de contrôle d’erreur MODBUS

Le contrôle d’erreur en transmission est réalisé :


– Par la gestion d’un bit de parité associé à chaque caractère d’une trame ;
– À l’aide d’une clé de contrôle ajoutée en fin de trame.

Selon le mode de codage des trames Modbus, en ASCII ou RTU, la clé de


contrôle intégrée à la trame est différente. Le bit de parité peut être intégré
ou non, dans les deux modes.

Transmission série avec et sans parité :

START 1 2 3 4 5 6 7 PAR STOP


Ordre des bits
(ASCII)
START 1 2 3 4 5 6 7 STOP STOP

START 1 2 3 4 5 6 7 8 PAR STOP


Ordre des bits
(RTU)
START 1 2 3 4 5 6 7 8 STOP STOP

89
Clé de contrôle Checksum (LRC8)

En mode ASCII, la clé de contrôle est un Checksum appelé également LRC


sur 8 bits. Il est calculé en additionnant les octets de 8 bits du message, en
supprimant les retenues et en complémentant le résultat à 2.
(1) Additionner tous les octets du message à l’exception de l’en-tête ‘:’ et des
caractères de fin CRLF. La retenue est rejetée au-delà de 8 bits.
(2) Soustraire le résultat de FFh pour trouver le complément à 1.
(3) Ajouter 1 pour avoir le complément à 2.

static unsigned char LRC(pchMsg, DataLen)

unsigned char *pchMsg; /* massage sur lequel le LRC est calculé */


unsigned short DataLen; /* quantité de données dans le message */
{
unsigned char chLRC = 0; /* initialisation de l’octet LRC */

while (DataLen--) /* addition sans retenue, déplacement */


chLRC += *pchMsg++; /* dans le buffer */

return ((unsigned char)(-((char)chLRC))); /* renvoyer le complément à 2 */


}

ENSA 2005/2006 90
Clé de contrôle Checksum (LRC8) (suite)

Exemple de trame ASCII

: 04h 06h 04FFh F8A6h 55h CRLF

3A 30 34 30 36 30 34 46 46 46 38 41 36 35 35 0D 0A

En-
@ Esclave Code fonction @ Mot Valeur mot LRC fin
tête

Le Checksum est calculé avant la conversion en ASCII, en excluant les


caractères ‘:’ et ‘CRLF’, ce qui donne :

(04h + 06h + 04h + FFh + F8h + A6h) = 2ABh = ABh [256]


FFh – ABh = 54h Î complément à 2 = 55h = (35, 35)ASCII.

ENSA 2005/2006 91
Clé de contrôle CRC-16

En mode RTU, c’est un contrôle de redondance cyclique qui est utilisé. Il est
sur 16 bits (CRC-16).
Index Å 0
CRC Å FFFFh

Polynôme générateur : CRC Å Trame(Index) XOR CRC


G(x) = x16 + x15 + x2 + 1
NÅ0

En binaire : 1 1000 0000 0000 0101 Décalage à droite de CRC de 1

NON
Retenue = 1?
Implantation : on supprime le17ème
bit (MSB) et on
retourne la séquence
Î 1010 0000 0000 0001 = A001h CRC Å CRC XOR A001h

N++

NON
Nota : N > 7?

Le CRC16 est le seul mot de la trame RTU Index++


envoyé octet de poids faible en premier !!
NON
Fin Trame?

ENSA- 2005/2006 92
Clé de contrôle CRC-16 (suite)

static unsigned char CRC16(pchMsg, DataLen)

unsigned char *pchMsg; /* massage sur lequel le LRC est calculé */


unsigned short DataLen; /* quantité de données dans le message */

{
unsigned char chCRCHi = 0xFF; /* initialisation octet haut du CRC */
unsigned char chCRCLo = 0xFF; /* initialisation octet faible du CRC */
unsigned Index; /* indice de parcours du message */

while (DataLen--) /* parcourir les octets du buffer */


{
Index = chCRCHi ^ *pchMsg++; /* calculer le CRC */
chCRCHi = chCRCLo ^ TchCRCHi[Index];
chCRCLo = TchCRCLo[Index];
}

return (chCRCHi << 8 | chCRCLo);


}
TchCRCHi et TchCRCLo sont des tableaux prédéfinis contenant les 256 valeurs possibles
de chacun des octets du CRC (Î accélérer les calculs).
http://www.modicon.com/techpubs/crc7.html

ENSA- 2005/2006 93
Clé de contrôle CRC-16 (suite)

Exemple de trame RTU

04 06 04 FF F8 A6 7B 25

@ Code
@ Mot Valeur mot CRC
Esclave fonction

Le CRC16 Modbus de la séquence 040604FFF8A6h est 257Bh. Les octets de


poids fort et faible sont inversés à l’envoi. C’est la seule exception.

ENSA - 2005/2006 94
Compteurs de diagnostic

À chaque esclave sont affectés des compteurs de diagnostic numérotés de 1


à 8 (fonction 08) et un compteur d’évènement (fonction 11). Il y a au total 9
compteurs par esclave, tous étant des mots de 16 bits.

Numéro du Signification F08


compteur sous-fonction
1 Nombre de trames reçues sans erreur CRC 11 – 0B Hex
2 Nombre de trames reçues avec erreur CRC 12 – 0C Hex
3 Nombre de réponses d’exception renvoyées par l’esclave 13 – 0D Hex
4 Nombre de trames adressées l’esclave (hors diffusion) 14 – 0E Hex
5 Nombre de messages sans réponse (normale ou d’exception) de l’esclave 15 – 0F Hex
6 Nombre de réponses NAK de l’esclave 16 – 10 Hex
7 Nombre de messages adressés à l’esclave pour lesquels la réponse est « occupé » 17 – 11 Hex
8 Nombre de messages que l’esclave n’a pas pu traité, parce que les caractères 18 – 12 Hex
arrivent trop vite pour la sauvegarde ou que des caractères ont été perdus.

@ Code SS En format RTU


08 Données CRC 16
Esclave fonction Demande : données = 00 00
1 octet 1 octet 2 octets 2 octets 2 octets Réponse : données = compteur

ElNSA - 2005/2006 95
Compteur d’évènement

Ce compteur permet, depuis le maître, de savoir :


(1) Si l’esclave a correctement interprété une commande (compteur d’évènement
incrémenté).
(2) Si l’esclave n’a pas interprété une commande (compteur non incrémenté)

Chaque esclave possède un compteur d’évènements, le maître aussi en


possède un pour chaque esclave. Toutes les commandes correctes
incrémentent le compteur, sauf la diffusion générale (pour Modbus) et la lecture
de ce compteur (fonction 11).

En format RTU, voici la forme de la demande et de la réponse :

@ @
0B CRC 16 0B 00 00 Compteur CRC 16
Esclave Esclave

1 octet 1 octet 2 octets 1 octet 1 octet 2 octets 2 octets 2 octets

ENSA - 2005/2006 96
Fonctions standard

Fonction Sous fonction Données Signification


00 00 00 00 00 STOP automate
00 01 00 00 RUN automate
00 02 00 00 RUN automate avec initialisation
00 03 00 XX Téléchargement de programme : XX = N° de séquence
00 04 YY XX Téléchargement de programme dans l’esclave
01 Lecture de n bits de sortie
02 Lecture de n bits d’entrée
03 Lecture de n mots de sortie
04 Lecture de n mots d’entrée
05 Écriture de 1 bit
06 Écriture de 1 mot
07 Lecture rapide d’un octet
08 00 YY XX Echo : l’esclave doit envoyer l’écho de la demande (contrôle de la transmission)
03 YY 00 Modification du délimiteur de fin de trame : par défaut (0A Hex) = LF
0A 00 00 RAZ des compteurs de diagnostic
0B XX XX Lecture du compteur 1 (émission : XXXX=0000 ; réception : XXXX=compteur)
… …
0B Lecture du compteur d’évènement (8 bits)
0F Écriture de n bits de sortie
10 Écriture de n mots de sortie

ENSA - 2005/2006 97
Exemple de trames MODBUS (RTU)

Demande de lecture de n mots : fonction 3 ou 4

Demande

@ @ 1er mot à lire Nombre de mots CRC 16


03 ou 04
esclave PF pf PF pf pf PF
1 octet 1 octet 2 octets 2 octets CRC

Réponse

@ Nombre Valeur 1er mot Valeur dernier mot CRC 16


03 ou 04
esclave octets lus PF pf PF pf pf PF
1 octet 1 octet 1 octet 2 octets 2 octets CRC

Fonction 3 : lecture de n mots de sortie ou internes (selon @).


Fonction 4 : lecture de n mots d’entrée (selon @).

Le nombre de mots à lire doit être ≤ 125.

ElNSA - 2005/2006 98
Exemple de trames MODBUS (RTU) (suite)

Demande d’écriture de n mots : fonction 16

Demande

@ @ 1er mot à forcer Nombre de mots Nombre 1er mot CRC 16


esclave
10 d’octets
PF pf PF pf PF pf pf PF
1 octet 1 octet 2 octets 2 octets 1 octet 2 octets CRC

Réponse

@ @ 1er mot forcé Nombre de mots forcés CRC 16


esclave
10
PF pf PF pf pf PF
1 octet 1 octet 2 octets 2 octets CRC

Le nombre de mots à écrire est limité 1 ≤ n ≤ 123.


Le champs « nombre d’octets » est égal au nombre de mots *2.

ENSA - 2005/2006 99
Exemple de trames MODBUS (RTU) (suite)

Demande de lecture de n bits : fonction 1 ou 2

Demande

@ @ 1er bit à lire Nombre de bits CRC 16


01 ou 02
esclave PF pf PF pf pf PF
1 octet 1 octet 2 octets 2 octets CRC

Réponse

Nombre 1er octet 2ème octet CRC 16


@ esclave 01 ou 02
octets lus lu lu pf PF
1 octet 1 octet 1 octets 1 octet 1 octets CRC

Fonction 1 : lecture de n bits de sorties ou internes.


Fonction 2 : lecture de n bits d’entrée.

Le nombre de bits à lire doit être ≤ 2000. La longueur du champs « octets » = n/8.

ENSA 2005/2006 100


Exemple de trames MODBUS (RTU) (suite)

Demande d’écriture de n bits : fonction 15

Demande

@ @ 1er bit à forcer Nombre de bits Nombre Valeur CRC 16


esclave
0F d’octets des bits
PF pf PF pf pf PF
1 octet 1 octet 2 octets 2 octets 1 octets 1 octets CRC

Réponse

@ @ 1er bit forcé Nombre de bits CRC 16


esclave
0F
PF pf PF pf pf PF
1 octet 1 octet 2 octets 2 octets CRC

Le champs « nombre de bits » est limité 1 ≤ n ≤ 1968.


Le champs « nombre d’octets » est limité 1 ≤ X ≤ 246.

La longueur du champs « nombre d’octets » = n / 8.

ENSA 2005/2006 101


Exemple de trames MODBUS (RTU) (suite)

Demande d’écriture d’un bit : fonction 5

Demande

@ @ du bit Valeur CRC 16


05 0
esclave PF pf du bit pf PF
1 octet 1 octet 2 octets 1 octets 1 octet CRC

Réponse

@ @ du bit Valeur CRC 16


05 0
esclave PF pf du bit pf PF
1 octet 1 octet 2 octets 1 octets 1 octet CRC

La trame de réponse est identique à la demande.

Le champs « valeur du bit » contient 00 si le forçage est à 0 et FF si le forçage est à 1.

ENSA 2005/2006 102

Vous aimerez peut-être aussi