Vous êtes sur la page 1sur 160

Automatismes Industriels Cours ITII 2015 - 2016

Automatismes Industriels

nicolas.neanne@univ-tln.fr
stephane.pignol@univ-tln.fr

IUT de Toulon – Département GEII


Automatismes Industriels Cours ITII 2015 - 2016

Plan du Cours :
I / Les Automates III / Le bus de terrain ASi
1 – Présentation
Programmables Industriels 2 – Couche Physique
1 – Présentation 3 – Couche liaison de données
2 – Structure et fonctionnement 4 – Couche Application
3 - Caractéristiques

II / La Programmation IEC IV / Communications Modbus


1 – Présentation du protocole
1131-3 sous CoDeSys 2 – Modbus RTU
1 – L'adressage des données 3 – Modbus TCP
2 – Le langage IL
3 – Le langage ST
4 – Le Langage LD
5 – Le langage FBD
6 – Le langage CFC (non IEC 1131-3)
7 – Le langage SFC
IUT Toulon 2
Automatismes Industriels Cours ITII 2015 - 2016

I / Les Automates Programmables


Industriels
1 - Introduction
Les automates programmables industriels sont apparus à la fin des années
soixante, à la demande de l'industrie automobile américaine, qui réclamait plus d'
adaptabilité de leurs systèmes de commande.
Les coûts de l'électronique permettant alors de remplacer avantageusement les
technologies alors utilisées.
Avant : utilisation de relais électromagnétiques et de systèmes pneumatiques
pour la réalisation des parties commandes
⇒ logique câblée
Inconvénients : cher, pas de flexibilité, pas de communication possible

IUT Toulon 3
Automatismes Industriels Cours ITII 2015 - 2016

→ Solution : utilisation de systèmes à base de microprocesseurs


permettant une modification aisée des automatismes.

⇒ logique programmée

Contraintes du milieu industriel (1) :

✔ Influences externes :

- poussières,
- température,
- humidité,
- vibrations,
- parasites électromagnétiques, …

IUT Toulon 4
Automatismes Industriels Cours ITII 2015 - 2016

Contraintes du milieu industriel (2) :

✔ Personnel : - dépannage possible par des techniciens de


formation électromécanique

- possibilité de modifier le système en cours de


fonctionnement
✔ Matériel :

- Evolutif
- Modulaire
- Implantation aisée

IUT Toulon 5
Automatismes Industriels Cours ITII 2015 - 2016

Définition :
L'Automate Programmable Industriel (API) est un appareil électronique
programmable, adapté à l'environnement industriel, qui réalise des
fonctions d'automatisme pour assurer la commande de préactionneurs et
d'actionneurs à partir d'informations logique, analogique ou numérique.

Les API sont utilisés dans divers secteurs d'activités, que l'on peut regrouper
en trois catégories :

IUT Toulon 6
Automatismes Industriels Cours ITII 2015 - 2016

- Les systèmes automatisés de production (SAP), dont l'objectif est d'apporter de


la valeur ajoutée à une matière première, en respectant certaines contraintes
(financières, normes de sécurité etc...).

- L'industrie automobile, la métallurgie,


- La production d'énergie (centrales nucléaires, thermiques,
hydrauliques...)
- L'industrie agro-alimentaire, pharmaceutique,
- Le génie-chimique, la pétrochimie,
- Les chaînes de conditionnement,
- etc ...

IUT Toulon 7
Automatismes Industriels Cours ITII 2015 - 2016

- L'automatisation des bâtiments (GTB : Gestion Technique des Bâtiments), dont les
objectifs sont :
- L'amélioration du confort (gestion des ascenseurs, régulation de
températures...),
- La sécurité (alarmes anti-intrusion, détection de fumées...)
- La réduction des dépenses énergétiques (gestion automatisée des
consignes de température et d'éclairage...)

- L'automatisation de machines spéciales :

- Engins de chantiers (grues...),


- Tri postal,
- etc...

IUT Toulon 8
Automatismes Industriels Cours ITII 2015 - 2016

Nature des informations traitées par l'automate :


➢Tout ou rien (T.O.R.) : l'information ne peut prendre que deux états (vrai/faux,
0 ou 1 …). C'est le type d'information délivrée par un détecteur, un bouton
poussoir …

➢Analogique : l'information est continue et peut prendre une valeur


comprise dans une plage bien déterminée. C'est le type d'information
délivrée par un capteur (pression, température …).

Une grandeur analogique (tension, courant...) doit être convertie en grandeur


numérique par une carte d'entrée spécifique pour pouvoir être traitée par le
programme automate.
➢Numérique : l'information est contenue dans des mots codés sous forme
binaire ou bien hexadécimale. Il peut s'agir d'une variable interne du
programme (compteur...).

IUT Toulon 9
Automatismes Industriels Cours ITII 2015 - 2016

Architecture des systèmes automatisés :


Partie Relation Partie Commande Partie Opérative
(P.R) (P.C) (P.O)

Commande & Préactionneurs Actionneurs


(2)
signalisation
(9) (1) (3)
S Ana & S TOR Effecteurs
Superviseur (8) API (CPU)
(4)
E Ana E TOR
Procédé
Pupitres opérateurs
(5)
(6)
Détecteurs /
Conditionneurs Capteurs
(7)

IUT Toulon 10
Automatismes Industriels Cours ITII 2015 - 2016

(1) : l'API transmet les ordres de commandes aux préactionneurs, sous forme de niveaux électriques
TOR (0/24V) ou analogiques (0-10V, +/-10V, 4-20mA, 0-20mA)
(2) : Le préactionneur converti ces ordres en commandes contenant l'énergie nécessaire au pilotage des
actionneurs. Exemples : contacteurs, distributeurs électro-pneumatique, variateurs de vitesse...
(3) : L'actionneur assure la conversion d'énergie pour agir sur le procédé (exemples : moteur
asynchrone, vérin hydraulique, résistance chauffante...).
(4) : l'effecteur se situe entre l'actionneur et le procédé à contrôler (exemples : arbre moteur + pâles
pour un malaxeur mu par un moteur asynchrone, ventouse de saisie pour un vérin destiné au
déplacement de plaques métalliques etc...
(5) : Les paramètres physiques utiles à la commande du procédé (exemples : températures, pressions,
présences...) sont surveillés grâce à des détecteurs (TOR) et des capteurs (analogiques).
(6,7) : Ces informations électriques sont transmises à la P.C - directement reliées aux cartes TOR pour
les détecteurs, parfois par le biais d'un conditionneur (et/ou d'un transmetteur) pour l'analogique.
(8) : Un réseau local industriel dédié à la supervision permet de lier la P.C et la P.R (et donc
indirectement la P.O). Certains éléments de signalisation peuvent néanmoins se faire par le biais des
cartes d'E/S (voyants, b.p ...).

IUT Toulon 11
Automatismes Industriels Cours ITII 2015 - 2016

Architectures compacte et modulaires :

Automate compact Logo (Siemens)

Automates modulaires Télémécanique

IUT Toulon 12
Automatismes Industriels Cours ITII 2015 - 2016

2 - Structure & Fonctionnement d’un API


Informations
(capteurs, dialogue)
Entrées

Traiter les informations entrantes


Programme pour émettre des ordres de sorties
en fonction d’un programme.

Sorties
Ordres
(pré actionneurs, dialogue)

IUT Toulon 13
Automatismes Industriels Cours ITII 2015 - 2016

Le cycle de fonctionnement est organisé en 4 tâches :

Bus Entrées / Sorties

Unité de
Traitement Module
Module d'
de
Entrées
Sorties
RAM

Tâche 14
3 : Gestion
2 du système
Acquisition
Affectation
Traitement (auto-contrôle
des données
sorties (émission
(exécution
en entrée de
des l’automate)
(mémorisation)
du
ordres)
programme)

IUT Toulon 14
Automatismes Industriels Cours ITII 2015 - 2016

Déroulement d'un Cycle-automate :

Traitement Interne

Lecture des Entrées

Exécution du Programme

Ecriture des Sorties

IUT Toulon 15
Automatismes Industriels Cours ITII 2015 - 2016

➢ Présentation du contrôleur WAGO 750-849 :

Ports Ethernet pour le


chargement des programmes, la
supervision...
Bornes pour
l'alimentation 24Vcc

Interface série (configuration)

IUT Toulon 16
Automatismes Industriels Cours ITII 2015 - 2016

➢ Caractéristiques du contrôleur WAGO 750-849 :

IUT Toulon 17
Automatismes Industriels Cours ITII 2015 - 2016

Interface d'entrée : elle permet de recevoir les informations de la P.O (ou du


pupitre) et de mettre en forme (filtrage, ...) ce signal tout en l'isolant électriquement
(optocouplage) :

Le contact "N.O"
"ferme le 24 V" sur
l'entrée de l'API
lorsqu'il est actif

Le contact "N.F"
"ouvre le 24 V" sur
l'entrée de l'API
lorsqu'il est actif

IUT Toulon 18
Automatismes Industriels Cours ITII 2015 - 2016

➔ Coupleur d'entrées : « du bornier vers la mémoire image »

Bornier d'entrée Isolation / Filtrage Mémoire Image

E1 + %IX 0.0 E1
- %IX 0.1 E2
%IX 0.2 E3
+
E2 %IX 0.3 E4
-
... ….

E3 + ... ...
-

E4 +
-

Mise à jour de façon ponctuelle, à chaque cycle automate

IUT Toulon 19
Automatismes Industriels Cours ITII 2015 - 2016

➢ Exemple de Carte D'E TOR (750-400) :

IUT Toulon 20
Automatismes Industriels Cours ITII 2015 - 2016

➢ Exemple de Carte D'E analogiques avec conditionneur


pour PT100 (750-461) :

Le signal délivré par la sonde est


converti (montage 3 fils) en valeur
numérique mise à l'échelle au
format INT. La température est
représentée en 100eme de
degrés, sur une plage -200°C / +
200°C.

IUT Toulon 21
Automatismes Industriels Cours ITII 2015 - 2016

➢ Exemple de Carte D'E analogiques 0-10V (750-459) :

la gamme de tension [0 V to +10V] est


convertie par un CAN 12 bit, puis mise
à l'échelle ; la gamme numérique
obtenue est [0 ; 32760].

IUT Toulon 22
Automatismes Industriels Cours ITII 2015 - 2016

➢ Exemple de Carte D'E analogiques 4-20mA (750-454) :

IUT Toulon 23
Automatismes Industriels Cours ITII 2015 - 2016
Cette borne d’entrées analogiques traite des signaux sur une plage de courant standardisée de 0-20
mA ou de4-20 mA respectivement.
Le signal d’entrée est séparé galvaniquement et le transfert à l’unité centrale se fait avec une
résolution de 12 bits.

IUT Toulon 24
Automatismes Industriels Cours ITII 2015 - 2016

Interface de sortie : elle permet de commander les préactionneurs et éléments de


signalisation du S.A.P. tout en assurant l'isolement électrique entre P.C et P.O.

Mémoire Image Isolation / Amplification - Bornier de sorties


des sorties Relayage
S1 %QX 0.0
+
S1
S2 %QX 0.1 -
S3 %QX 0.2
S2
+
-
S4 %QX 0.3
S3 +
... …. -
... ...
S4 +
Variables Bits de -
du sorties
programme
Mise à jour de façon ponctuelle, à chaque cycle automate

IUT Toulon 25
Automatismes Industriels Cours ITII 2015 - 2016

➢ Exemple de Carte De S TOR à Relais (750-513) :

IUT Toulon 26
Automatismes Industriels Cours ITII 2015 - 2016

➢ Caractéristiques :

La tension commutée par une


sortie à Relais peut être une
source continue ou
alternative

La fréquence de commutation
admise est relativement faible
( < 1 Hz)

IUT Toulon 27
Automatismes Industriels Cours ITII 2015 - 2016

➢ Exemple de Carte De S TOR à Transistors (750-501) :

IUT Toulon 28
Automatismes Industriels Cours ITII 2015 - 2016

➢ Cractéristiques :

La tension commutée
par une sortie à
transistor es
nécessairement
continue

La fréquence de commutation peut être


élevée (plrs kHz)

IUT Toulon 29
Automatismes Industriels Cours ITII 2015 - 2016

➢ Exemple de Carte De S analogiqes /10V (750-513) :

La gamme numérique [0 ; 32760] est


convertie en tension [0;10V] par un
CNA 12 bit.

IUT Toulon 30
Automatismes Industriels Cours ITII 2015 - 2016

II / La Programmation IEC 1131-3


La Norme IEC 1131-3 définit les règles d 'écriture des programmes pour les API.

Les fabricants d'API fournissent des logiciels de programmation plus ou moins


fidèles à cette norme (de plus en plus tout de même).

Le logiciel CoDeSys est une plateforme de développement ouverte,


multimatérielle utilisée pour programmer les contrôleurs WAGO utilisés en TP.

Il obéit aux spécification de la norme CEI 61131-3

IUT Toulon 31
Automatismes Industriels Cours ITII 2015 - 2016

1 / L'adressage des Données.

Toute donnée traitée par un programme automate possède :

- Une Direction (Entrée, Sortie, Interne)

- Un format (Bit, Octet, Mot ...)

- Une Adresse (Chiffre indiquant la position de la donnée dans le plan


mémoire de l'API).

La syntaxe pour toute donnée est la suivante :

% 'Direction' . 'Format' . 'Adresse'

IUT Toulon 32
Automatismes Industriels Cours ITII 2015 - 2016

La direction :
Une entrée est une valeur, provenant du terrain, qui ne peut être que lue par le
programme chargé dans le contrôleur.

Notation : %I.x.x
Exemple : capteur, détecteur, bouton poussoir etc...

Une sortie est une donnée à destination du terrain, dont la valeur peut être fixée par
l'automate. (Remarque : Une sortie peut aussi être lue par le programme)
Notation : %Q.x.x
Exemple : voyant lumineux, commande d'un contacteur etc...

Une variable interne est une donnée qui n'est pas directement liée au terrain, mais une
information gérée par le programme chargé dans l'API.
Exemples : valeur d'un compteur, d'une temporisation, étape d'un grafcet …
Notation : %M.x.x

IUT Toulon 33
Automatismes Industriels Cours ITII 2015 - 2016

Le format :
✔ Un bit est une valeur binaire ou encore booléenne dont la valeur est « VRAIE » (notée
TRUE) ou « FAUSSE » (notée FALSE).

Notation : %x.X.x.x

Exemple : Un voyant lumineux est relié à la 4eme borne de la 1°carte de sorties T.O.R du rack
automate. Son état correspondra à la variable booléenne :

% Q X 0.3

✔ Un octet est une donnée codée sur 8 bits

Notation : %x.B.x

IUT Toulon 34
Automatismes Industriels Cours ITII 2015 - 2016

✔ Un mot est une donnée codée sur 16 bit

Notation : %x.W.x

Exemple : Un capteur de température est relié à la 3eme entrée


analogique du rack automate. La valeur numérique correspondante sera
stockée dans la variable :

%IW2

✔ Un double mot est une variable codée sur 32 bits

Notation : %x.DW.x

IUT Toulon 35
Automatismes Industriels Cours ITII 2015 - 2016

Les valeurs numériques peuvent être représentées sous formes décimales, hexadécimales (en
ajoutant 16# devant la valeur) ou binaires (2#...)
➔exemples : 125 → 125 1A216 → 16#1A2 01102 → 2#0110

En plus du format, on peut définir un type pour les variables internes (liste non exhaustive) :
BOOL : valeur booléenne ('TRUE' ou 'FALSE')
INT : valeur entière signée sur 16 bits
UINT : valeur entière non signée sur 16 bits
DINT : valeur entière signée sur 32 bits
DUINT : valeur entière non signée sur 32 bits
REAL : valeur réelle sur 32 bits
TIME : durée définie en h/mn/s/ms Notation : t # ...h ...m ...s ...ms
DATE : date définie en année/mois/jour Notation : d # ...-...-...
TIME_OF_DAY : heure du jour définie en h/mn/s Notation : tod # ... : ... : ...
DATE_AND_TIME : date & heure Notation : dt # ...-...-... - ... : ... : ...
STRING : chaîne de caractères. Notation : ' Ma Chaine '
IUT Toulon 36
Automatismes Industriels Cours ITII 2015 - 2016

Les adresses :
Le dernier champ d'adressage d'une donnée est son adresse.

Elle est constituée:


- de 2 chiffres séparés par un point pour les bits, le 1° indique le n° du mot, le
second la position du bit dans ce mot (0 à 15).
- d'un seul chiffre pour tous les autres types.

Exemple (bit d'entrée) : %IX0.2

Il s'agit de la 3° entrée (les adresses commencent à 0) de la 1ere carte d'E T.O.R.

Exemple (Mot interne) : %MW42

Il s'agit du mot interne d'adresse 42.

IUT Toulon 37
Automatismes Industriels Cours ITII 2015 - 2016

Déclaration de variables :
Un programme doit réaliser des calculs et utilise donc des variables. Ces variables doivent
être déclarées en en-tête de celui-ci.

Une variable peut être :

- une variable d'entrée s'il s'agit d'une variable que le programme utilise (valeur calculée
par un autre sous-programme, état d'un capteur...);

- une variable de sortie s'il s'agit d'une variable que le programme modifie (affectation
d'une sortie, résultat d'un calcul...)

- D'une variable interne, si cette variable est uniquement utlisée pour faire un calcul
intermédiaire.

IUT Toulon 38
Automatismes Industriels Cours ITII 2015 - 2016

Exemples de déclaration :

variable interne du programme "prog" de type


booléen, initialisée à '0' et associée à la sortie
physique TOR 4.0.

Variable booléenne interne à "prog" initialisée à '1'.

Variable d'entrée du programme "prog", de type


"mot" et associée à l'entrée analogique 0.

Variable de sortie du programme "prog", de type


'temps', et initialisée à la valeur 1s et 500ms.

IUT Toulon 39
Automatismes Industriels Cours ITII 2015 - 2016

Organisation du projet :
Le Projet CoDeSys contient au minimum le
programme PLC_PRG (programme principal),
qui peut éventuellement appelé :

- des fonctions : une fonction retourne une


valeur, et ne peut mémoriser aucune
variable entre deux appels.

- des programmes : un programme peut


posséder des entrées, des sorties et des
variables internes qui peuvent être
mémorisées entre deux appels.

- des blocs fonctionnels : possède les mêmes


caractéristiques qu'un programme mais peut
être appelé plusieurs fois. Chaque appel
consiste en une instanciation du bloc et
apparaît comme une déclaration de variable.
IUT Toulon 40
Automatismes Industriels Cours ITII 2015 - 2016

La norme IEC 1131-3 définit 5 langages de programmation : IL, ST, SFC, LD et FDB.

2 / Langage IL (Instruction List).


Il s'agit d'un langage textuel proche du langage machine de l'API. Il s'apparente à
l'assembleur d'un microcontrôleur. Ce langage n'est plus trop utilisé à l'heure actuelle.

Exemple : Soit l'équation logique suivante →

%Q2.0 = ((%I1.0.%I1.5)+ %I1.4) . %I1.3

... se traduit par le code suivant :

IUT Toulon 41
Automatismes Industriels Cours ITII 2015 - 2016

3 / Langage ST (Structured Text).

Il s'agit d'un langage textuel proche des langages évolués tels que le C. Il s'avère
indispensable dès lors que l'on a besoin de faire des traitements numériques par exemple.

Exemple : Soit l'équation logique suivante →

%Q2.0 = ((%I1.0.%I1.5)+ %I1.4) . %I1.3

... se traduit par le code suivant :

%Q2.0 := ( (%I1.0 AND %I1.5) OR %I1.4 ) AND


NOT( %I1.3) ;

IUT Toulon 42
Automatismes Industriels Cours ITII 2015 - 2016

➢ Comparaison (alternative IF … ELSE … … END_IF):

Affectation :
➢ Incrémentation d'une variable : « := »

CPT := CPT + 1 ;

IUT Toulon 43
Automatismes Industriels Cours ITII 2015 - 2016

➢ Boucle FOR :

FOR i := 0 TO 9 BY 1 DO

.............. ;

END_FOR;

➢ Boucle WHILE :

WHILE condition = TRUE DO

.............. ;

END_WHILE;

IUT Toulon 44
Automatismes Industriels Cours ITII 2015 - 2016

➢ Opérations Numériques :
Le choix du langage ST s'impose dès lors que l'on doit faire des traitements
numériques sur des variables. Les opérations de bases sont :

- Addition :

Res := Op1 + Op2 ;


- Soustraction :

Res := Op1 - Op2 ;


- Multiplication :

- Division : Res := Op1 * Op2 ;

Res := Op1 / Op2 ;

IUT Toulon 45
Automatismes Industriels Cours ITII 2015 - 2016

- modulo :
Res := Op1 MOD Op2 ;

- Conversion Entier → Réel :

Nb_Re := INT_TO_REAL ( Nb_ent) ;

- Conversion Réel → Entier :

Nb_ent := REAL_TO_INT ( Nb_Re) ;

- Conversion Mot → Réel :

Nb_Re := WORD_TO_REAL ( Mot) ;

IUT Toulon 46
Automatismes Industriels Cours ITII 2015 - 2016

4 / Langage LD (LaDder ).

Il s'agit d'un langage graphique que l'on pourra par exemple utiliser pour coder les
équations logiques des réceptivités d'un grafcet.

Le principe est le suivant :

- Les variables d'entrée sont symbolisés par des contacts électriques


(NO ou NF), les variables de sortie par des bobines.

On considère que l'extrémité gauche du réseau constitue la borne + d'une alimentation


(imaginaire) et la partie droite sa borne -

La mise en série, en // de contacts (variables d'E) NO ou NF permet l'alimentation


conditionnelle de la bobine (variable de S), donc
L'implantation d'équation logique.

IUT Toulon 47
Automatismes Industriels Cours ITII 2015 - 2016

➢ Opérations logiques de Base :


ET : OU : NON :

Exemple : Soit l'équation logique suivante →

%Q2.0 = ((%I1.0.%I1.5)+ %I1.4) . %I1.3


Cette équation se traduit en LD par la ligne suivante :

IUT Toulon 48
Automatismes Industriels Cours ITII 2015 - 2016

✔ Mémoire RS :
A
t
B
t
x
✔ Front montant : t

A
t
x t
t
✔ Front descendant :
A
t
x t

IUT Toulon 49
Automatismes Industriels Cours ITII 2015 - 2016

➢ Temporisation : retard à l'activation


A
t
TON
x
3s t

➢ Temporisation : retard au déclenchement


A
t
TOF
x
3s 3s t

➢ Temporisation : monostable
A
TP t

x
3s 3s t
IUT Toulon 50
Automatismes Industriels Cours ITII 2015 - 2016

➢ Compteur décompteur :

Nom Type Rôle


CU BOOL Entrée de comptage (sur front)
CD BOOL Entrée de dé comptage (sur front)
RESET BOOL Entrées de remise à zéro
LOAD BOOL entrée de préchargement
PV INT valeur de préchargement
QU BOOL Sortie, passe à 'TRUE' lorsque CV = 0
QD BOOL Sortie, passe à 'TRUE' lorsque CV = PV
CV INT Valeur courante du compteur
IUT Toulon 51
Automatismes Industriels Cours ITII 2015 - 2016

5 / Langage FBD (Functionnal Bloc Diagram ).

Il s'agit également d'un langage graphique fonctionnant sur le même principe que LD mais
avec les symboles s'apparentant à ceux que l'on utilise pour les logigrammes.

Exemple : Soit l'équation logique suivante → %Q2.0 = ((%I1.0.%I1.5)+ %I1.4) . %I1.3

Cette équation se traduit en FBD par le diagramme suivant :

%I1.0 AND
OR
%I1.5
AND
%I1.4 %Q2.0
%I1.3
IUT Toulon 52
Automatismes Industriels Cours ITII 2015 - 2016

6 / Langage CFC (Component Functional Chart).

Ce langage n'est pas défini par la norme CEI, mais sera utilisé dans l'environnement de
programmation CODeSys. Il reprend les éléments utilisés en FBD, mais les symboles peuvent
être placés librement sur le schéma (et non pas ligne par ligne comme en FBD).

De plus, la plupart des opérateurs définis en ST sont également utilisables (opérations


numériques etc...).

On ne peut pas l'utiliser pour coder les réceptivités.

En revanche, on l'utilisera comme langage de programmation principal qui appellera les


différentes tâches.

IUT Toulon 53
Automatismes Industriels Cours ITII 2015 - 2016

Mémoire RS
Comparaisons

Opérations numériques

opérations logiques

Compteurs
Détection de Fronts
IUT Toulon 54
Automatismes Industriels Cours ITII 2015 - 2016

7 / Langage SFC (Sequential Functional Chart ).


Il s'agit du langage Grafcet. On l'utilisera pour décrire les différentes tâches séquentielles
de l'automatisme.

Il est constitué d'étapes auxquelles sont associées des actions. Les étapes sont séparées
par des réceptivités. Lorsqu'une étape est active les actions associées à l'étape sont
activées. Étape initiale
Lorsque la réceptivité qui suit l'étape active devient
vraie, l'étape en cours se désactive, et l'étape suivante
devient l'étape active.
Réceptivité

Important : Il faut
toujours respecter étape
l'alternance
Étape/transition !!! Action

IUT Toulon 55
Automatismes Industriels Cours ITII 2015 - 2016

✔ Étapes :

L'étape initiale est


matérialisée par un
double rectangle

A chaque étape correspond un nom


unique, auquel seront associées les
variables :

→ "nom.t" : variable de type "TIME"


représentant la durée passée dans l'étape
nom.t : durée passée dans l'étape

→ "nom.x" : variable de type "BOOL"


représentant l'état de l'étape ('TRUE' si
l'étape est en cours, 'FALSE' dans le cas
contraire)
IUT Toulon 56
Automatismes Industriels Cours ITII 2015 - 2016

✔ Réceptivités : ✔ Actions :

Entrées
TOR
Sorties TOR,
activées pendant
la durée de
l'étape (attribut
'N' : normal.

Temporisation

IUT Toulon 57
Automatismes Industriels Cours ITII 2015 - 2016

Les réceptivité sont des valeurs booléennes, qui peuvent apparaître directement sur le
grafcet (langage ST). Elles peuvent prendre la forme :

- De valeurs booléennes constantes (TRUE ou FALSE)


- De variables booléennes simples
- De combinaisons logiques ( exemple : (a OR b) AND NOT c )
- De comparaison entre des valeurs numériques ou temporelles (exemples : A > 100,
A<>B, A=5, etape1.t>t#1s500ms)
- De combinaisons des éléments précédents

Note 1 : il est impossible de réaliser une affectation (:=) dans une réceptivité.

Note 2 : il sera également possible d'utiliser les langages LD et FBD pour coder les
réceptivités ; dans ce cas chaque réceptivité sera programmée dans une section
spécifique.
IUT Toulon 58
Automatismes Industriels Cours ITII 2015 - 2016

Les attributs suivants peuvent être associés aux actions en SFC :


Attribut Paramètre Description
N Aucun Action Normale : L'action est activée lorsque l'étape
associée est active, et se désactive automatiquement à la
sortie de l'étape.

S, R Aucun Action Mémorisée : l'attribut « S » (Set) permet de


mémoriser l'activation de l'action, celle-ci restera active
jusqu'à ce que l'attribut « R » (Reset) soit rencontré dans le
grafcet sur la même action.

L Durée Action limitée dans le temps : L'action est activée à


d'activation : l'entrée dans l'étape, puis désactivée automatiquement au
t#..... bout du temps, spécifié (ou à la sortie de l'étape).

D Temps de Action Retardée : L'action est activée avec le retard


retard : spécifié après l'entrée dans l'étape.
t#.....

IUT Toulon 59
Automatismes Industriels Cours ITII 2015 - 2016

Le chronogramme suivant récapitule


tr0
l’exécution des différents types
d'action possibles : tr1 t

tr2 t

t
Init.X
t
Step2.X

Step3.X t

t
A
t
B
t
C
t
D
1s t

IUT Toulon 60
Automatismes Industriels Cours ITII 2015 - 2016

✔Structure OU : Alternative. Elle permet d'effectuer un choix entre plusieurs


séquences. Notez bien la structure de la divergence et de la convergence.

Divergence

Convergence

IUT Toulon 61
Automatismes Industriels Cours ITII 2015 - 2016

✔ Cas particulier d'utilisation de la branche OU :

saut d'étapes Reprise de séquence


IUT Toulon 62
Automatismes Industriels Cours ITII 2015 - 2016

✔Structure ET : Parallélisation. Elle permet d'effectuer un choix entre deux séquences.
Notez bien la structure de la divergence et de la convergence.

Divergence

Convergence

IUT Toulon 63
Automatismes Industriels Cours ITII 2015 - 2016

✔ Convergence en ET : Synchronisation.

Une branche en ET converge généralement au moyen d'étapes vides (sans actions)


qui terminent chacune des branche parallèles ; avec une réceptivités en aval de la
convergence toujours vraie.

Cela permet une


exécution des différents
cycles parallélisés
parfaitement
indépendante ; et lorsque
tous ces cycles sont
achevés, le grafcet
reprend sa branche
principale

IUT Toulon 64
Automatismes Industriels Cours ITII 2015 - 2016

➢ Variables "drapeau" :
Ce sont des variables utilisables dans les programmes et blocs programmés en SFC, définis
dans la bibliothèque "iec_sfc.lib", et qui permettent d'agir sur un grafcet. En voici quelques
unes (consulter l'aide pour une liste exhaustive) :

• SFCInit (BOOL) → Réinitialisation du grafcet (retour à l'étape initiale et arrêt de


l’exécution)
● SFCReset (BOOL) → Retour à l'étape initiale
● SFCPause (BOOL)  → Figeage du grafcet
● SFCError → Dépassement du temps maximal affecté à une étape
● SFCCurrentStep (STRING) → Nom de l'étape SFC en cours
●SFCTip, SFCTipMode (BOOL) → Lorsque SFCTipMOde est 'TRUE', le grafcet passe en
mode pas à pas, la validation des réceptivités sont alors validées avec SFCTip.

IUT Toulon 65
Automatismes Industriels Cours ITII 2015 - 2016

➢ Actions programmées (langage SFC) :


En outre, il est également possible de programmer des actions exécutée une seule fois à
l'entrée ou à la sortie d'une étape. Ces actions, appelées "actions d'entrée" et "action de
sortie" sont effective pendant un seul cycle automate et peuvent être programmées en
LD, FBD ou ST :

Action de sortie

Action d'entrée

Step2.X

t
Exemple de programmation d'action d'entrée en
Action
d'entrée
langage ST
Action de t
sortie
t
IUT Toulon 66
Automatismes Industriels Cours ITII 2015 - 2016

➢ Actions programmées - suite (langage SFC) :


Une action programmée peut également être de type continue, c'est à dire éxécutée
pendant toute la durée de l'étape (comme une action CEI de type 'N').

Cela permet de coder les actions dans le langage de son choix. On peut utiliser cette
méthode pour créer des actions condistionnelles :

Step2.X

Cond t

A t

IUT Toulon 67
Automatismes Industriels Cours ITII 2015 - 2016

➢ Actions programmées - suite (langage SFC) :


L'exemple ci-dessous reprend le fonctionnement précédent mais en kangage LD :

Step2.X

Cond t

A t

IUT Toulon 68
Automatismes Industriels Cours ITII 2015 - 2016

➢ Appel & Synchronisation de programmes :

➔ Bloc Fonctionnel G1 : Programme Principal PLC_PRG :


➔ Bloc Fonctionnel G2 :

Étapes de
synchronisation

IUT Toulon 69
Automatismes Industriels Cours ITII 2015 - 2016

➔ Bloc Fonctionnel G1 : Déclaration des variables d' E/S

➔ Bloc Fonctionnel G2 : Déclaration des variables d' E/S

IUT Toulon 70
Automatismes Industriels Cours ITII 2015 - 2016

➢ Structures "objets" :
On peut également synchroniser l'exemple précédent en utilisant les structures
analogues à celles utilisées dans les langages orientés "objet" mises en œuvre dans
CoDeSys.

On peut ainsi échanger des variables entre programmes. Dans le cas du SFC, pour
chaque étape, les 2 variables suivantes sont automatiquement créées :

Nom_etape . t : durée d'activité de l'étape (type TIME)


Nom_etape . x : activité de l'étape (type BOOL)

Pour synchroniser deux grafcets, on pourra donc utiliser :


'PLC_PRG' . 'nom d'instance du bloc' . 'nom de l'étape' . x
Si le programme SFC est un bloc fonctionnel, ou bien :
'nom_du_programme' . 'nom de l'étape' . x
Si le programme SFC est un programme

IUT Toulon 71
Automatismes Industriels Cours ITII 2015 - 2016

IUT Toulon 72
Automatismes Industriels Cours ITII 2015 - 2016

III / Le Bus de terrain ASi


➢Présentation :

● Liaison série Multipoint (2 fils) pour relier l'ensemble des capteurs


et des préactionneurs à l'automate.

● Celui-ci possède une carte spécifique appelée « coupleur » et qui est


maître de la liaison, c'est à dire capable d'interroger les capteurs et de
commander les préactionneurs.

● Chaque nœud (capteur ou préactionneur) connecté au bus possède


sa propre adresse lui permettant d'être identifié par l'automate via le
coupleur.

● Il existe plusieurs protocoles de communication


pour les bus capteurs/Actionneurs. Le plus répandu est
ASi (Actuator Sensor Interface).

IUT Toulon 73
Automatismes Industriels Cours ITII 2015 - 2016

➔ Comparaison Câblage traditionnel / Câblage Bus :

API Maître Coupleur


AS-Interface
API E/S

E/S

Bus

Esclaves
(capteurs +
préactionneurs)

Câblage « traditionnel » Câblage « Bus »

IUT Toulon 74
Automatismes Industriels Cours ITII 2015 - 2016

➢Intérêts des bus capteurs/actionneurs :

● Câblage simplifié

● Réduction des coûts de maintenance

● Réduction des coûts et des durées d'installation.

IUT Toulon 75
Automatismes Industriels Cours ITII 2015 - 2016

➢ Le Câble ASi :

Technologie prise vampire :


connexion rapide et aisée des
capteurs/actionneurs ou modules

câble plat codé mécaniquement

deux fils pour les données et la puissance

Gaine isolante IP67 autocicatrisante

inutile de dénuder pour raccorder


un nouveau composant sur le bus

montage dans toutes les positions

IUT Toulon 76
Automatismes Industriels Cours ITII 2015 - 2016

➢ Alimentation et Signaux électriques sur le bus:


• Transmission par courants porteurs
AS :
Un seul câble pour alimenter les capteurs & actionneurs (jusqu'à 8A)
connectés au bus, et le transfert des données.

• Alimentation en mode différentiel (TBTS):


Bonne immunité aux perturbations (CEI 1000-4).
Alim. + transfert
Redressement Découplage des données
V+ AS-i + U alim
R
30V

Primaire = L
30 V=

L AS-i -

V-
R

Codage Manchester par courant porteur

IUT Toulon 77
Automatismes Industriels Cours ITII 2015 - 2016

Bits à coder

0 0 1 0 1 1 1 0 1
Codage Manchester

Émission
Signal après filtrage (Modulation APM)

détection fronts descendants

Réception
détection fronts montants

Bits décodés (RS)

IUT Toulon 78
Automatismes Industriels Cours ITII 2015 - 2016

➢ Système Maître / Esclave :

Asi est basé sur une


architecture
maître/esclave,
avec 1 seul maître
pâr bus qui peut
initier une
communication.

Cette technique
permet de garantir
la durée du temps
de cycle (temps
nécessaire à
l'interrogation de
tous les esclaves
connectés au bus).

IUT Toulon 79
Automatismes Industriels Cours ITII 2015 - 2016

➢ Polling des esclaves :

Maître

Requête maître
Esclave 1
Réponse esclave 1

Requête maître
Esclave 2
Réponse esclave 2

Temps de cycle
caractéristique: 5 ms pour 31 esclaves
31 esclaves maximum
Requête maître
Esclave n
Réponse esclave n

Requête maître
Esclave 31
Réponse esclave 31

IUT Toulon 80
Automatismes Industriels Cours ITII 2015 - 2016

Maître: 1 Esclave AS-i supporte:


polling cyclique des esclaves
4 interfaces logiques
(entrées, sorties ou bidirectionnelles)
et au besoin,
4 paramètres
pour sélectionner un état particulier

Esclave AS-i : adresse de 1 à 31

Requête maître mise à jour des sorties

Réponse esclave acquisition de l'état des entrées

• Un seul mâitre Asi peut donc gérer jusqu'à 62 x 8 = 496 E/S T.O.R (en Asi

v2.0 ou supérieur – 248 pour Asi v1.0)

IUT Toulon 81
Automatismes Industriels Cours ITII 2015 - 2016

Les échanges Maître / Esclave :

Ad=4 Ad=3

Ad=1 Ad=2

Mise à jour des sorties

Etat des entrées

1 cycle AS-i
Echanges des données d'entrées / sorties Paramètres Services

Q. Ad1 R.1 Q. Ad2 R.2 Q. Ad3 R.3 Q. Ad4 R.4 P. Adx R.x S. Ady R.y Q. Ad1 R.1

Maître
Esclave

IUT Toulon 82
Automatismes Industriels Cours ITII 2015 - 2016

➢ Mise en trame :

Requête du maître :
ST CB A4 A3 A2 A1 A0 I4 I3 I2 I1 I0 PB EB

5 bits d'adresse esclave (1 à 31) 5 bits d'information


0 réservé à la fonction adressage automatique fonction du type de la requête
Bit de début Bit de fin
ST = 0 EB = 1

Bit de contrôle
Bit de contrôle de parité paire
0 = échange de paramètres, données, définis par I0 à I4
n'incluant pas le bit de fin
1 = commande définie par I0 à I4

Réponse de l ’esclave :
ST I3 I2 I1 I0 PB EB

4 bits d'information
retournée au maître
Bit de début Bit de fin
ST = 0 EB = 1

Bit de contrôle de parité paire


n'incluant pas le bit de fin

IUT Toulon 83
Automatismes Industriels Cours ITII 2015 - 2016

Exercice :

Calculer la durée minimale d'un cycle de traitement AS-i lorsque le nombre


maximum d'esclaves est connecté au maître et vérifier la durée annoncée par les
caractéristiques du bus AS-i.

Le débit sur la ligne est maximum (170 kBps)

Réponse :

Tcycle = (31 + 1 + 1) * (14 + 7) / 170.103 = 4,07 ms < 5ms

[Nombre de trames] * [Nombre de bits/trame] / [débit]

IUT Toulon 84
Automatismes Industriels Cours ITII 2015 - 2016

Catalogue des requêtes du maître :

Requêtes du maître

CB 5 bits d'adresse esclave 5 bits d'information

Echange de données 0 A4 A3 A2 A1 A0 0 S3 S2 S1 S0

Ecriture de paramètres 0 A4 A3 A2 A1 A0 0 P3 P2 P1 P0

Ecriture d'adresse 0 0 0 0 0 0 A4 A3 A2 A1 A0

Reset esclave 1 A4 A3 A2 A1 A0 1 1 1 0 0

Reset adresse 1 A4 A3 A2 A1 A0 0 0 0 0 0

Lecture I/O Configuré 1 A4 A3 A2 A1 A0 1 0 0 0 0

Lecture code ID 1 A4 A3 A2 A1 A0 1 0 0 0 1

Lecture Status esclave 1 A4 A3 A2 A1 A0 1 1 1 1 0

Lecture et reset Status esclave 1 A4 A3 A2 A1 A0 1 1 1 1 1

IUT Toulon 85
Automatismes Industriels Cours ITII 2015 - 2016

Catalogue des réponses des esclaves:


Réponse esclave

4 bits d'information

E3 E2 E1 E0 Ei = entrées esclave

P3 P2 P1 P0 Pi = paramètres renvoyés en écho

0 1 1 0 Ack de l'esclave '6 Transaction 15 ms max

0 1 1 0 Ack de l'esclave '6 Transaction 2 ms max

0 1 1 0 Ack de l'esclave '6

C3 C2 C1 C0 I/O code esclave de '0 à 'F

ID3 ID2 ID1 ID0 ID code esclave de '0 à 'F

St3 St2 St1 St0 Sti = 4 bits d'états de l'esclave

St3 St2 St1 St0 Sti = 4 bits d'états de l'esclave avant RAZ

IUT Toulon 86
Automatismes Industriels Cours ITII 2015 - 2016

Profils ASi.
Chaque équipement ASi dispose d'un profil, qui va permettre de garantir l'interopérabilité
des produits ASi entre fabricants.

Ce profil prend la forme d'une valeur (1 octet), notée en hexadécimal, et définit le


comportement de l'esclave sur le bus :

- Données d'entrées et de sorties échangées


- Paramètres accessibles
- Type de capteur / actionneur

Ci-après, deux exemples de profils éxistants.

IUT Toulon 87
Automatismes Industriels Cours ITII 2015 - 2016

IUT Toulon 88
Automatismes Industriels Cours ITII 2015 - 2016

IUT Toulon 89
Automatismes Industriels Cours ITII 2015 - 2016


Plan Mémoire du maître ASi :
L'automate crée automatiquement un plan mémoire image pour l'ensemble des entrées, et un
autre pour les sortie gérées par le coupleur Asi.

Pour une configuration standard, avec le coupleur en première position dans le rack, les
esclaves ASi T.O.R seront adressés comme suit dans le programme automate :

Bit : 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
%IW4
@2 @3 XXX @1
%QW4
%IW5
@6 @7 @4 @5
%QW5
%IW6
@10 @11 @8 @9
%QW6
%IW7
@14 @15 @12 @13
%QW7
%IW8
.......... .......... .......... @16
%QW8

IUT Toulon 90
Automatismes Industriels Cours ITII 2015 - 2016

Exemples de composant ASi :


Structure :

D0 = commutation
D1 = signalisation
Une connexion D2 = état
D3 = test

P0 =temporisation

Esclave avec P1 = inversion capteur


circuit intégré AS- P2 = distance
ou
Interface Actionneur
P3 = fonction spéciale
Un boîtier
énergie

IUT Toulon 91
Automatismes Industriels Cours ITII 2015 - 2016

Exemple de capteur :

Cellule Photoélectrique XUJK... (Schneider) :

Paramètres :

→ Distance de détection (P1)


→ Dark-on / Dark-off (P2)

Données :

→ Détection (entrée I1)


→ Encrassement lentille (entrée I2)

Alimentation par
le bus :
AS-i

IUT Toulon 92
Automatismes Industriels Cours ITII 2015 - 2016

Exemple d'actionneur (pré) :


Distriubteur électropneumatique AC2027 (ecomot) :

IUT Toulon 93
Automatismes Industriels Cours ITII 2015 - 2016

interface AS-i pour capteurs/actionneurs conventionnels :

D0 = capteur 1

D1 = capteur 2

D2 = actionneur 1

Esclave avec D3 = actionneur 2


circuit intégré AS-
Interface P0
Auto-surveillance
Un boîtier
Jusqu’à 4 capteurs
énergie ou/et
4 actionneurs

IUT Toulon 94
Automatismes Industriels Cours ITII 2015 - 2016

IUT Toulon 95
Automatismes Industriels Cours ITII 2015 - 2016

Exemple de maître Asi pour API :


Borne WAGO 750-655 pour contrôleur 750-xxx :

IUT Toulon 96
Automatismes Industriels Cours ITII 2015 - 2016

Console d'adressage ASi:

- Adressage des esclaves Asi


(Modes A/B),

- Fonctions de Diagnostique
(Tension Bus etc...),

- Lecture des profils ASi,

- etc...

IUT Toulon 97
Automatismes Industriels Cours ITII 2015 - 2016

Ch 3 : Modbus (RTU & TCP)


1 - Historique
2 - Description des échanges Modbus
3 - Modbus Série (RTU)
a – Présentation
b – Couche Physique
c – Couche Liaison de données

4 - Modbus TCP
a – Présentation
b – Génaralités sur l'utilisation d'Ethernet en milieu industriel
c – Constitution d'une trame Modbus-TCP
d – Règles de Connexion

ANNEXE :
Détail des différentes fonctions

98 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

1 - Historique :

Modbus est la contraction de « Modicon » et de « Bus ». Il s'agit du


premier bus de terrain normalisé, et a été conçu dans les années 80 par
le fabriquant d'automates Modicon (aujourd'hui Schneider-
Télémécanique).

→ Historiquement, Modbus a été développé pour le milieu industriel sur


des lignes séries (RS232, RS485),

→ puis avec l'essor des réseaux informatiques sur Ethernet.

Modbus représentent actuellement un des principaux standards de


communication dans le domaine de l'automatisation industrielle, il est
supporté par l'association Modbus-IDA chargée de définir les
spécifications nécessaires au développement de composants « Modbus
compliant ».

99 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

2 – Description des échanges Modbus:


Modbus définit une trame de base baptisée « PDU » (« Protocol Data Unit »)
indépendante du type de protocole considéré (série ou TCP).

Elle comporte 2 champs :


- Code de la Fonction Modbus : Spécifie le type d'opération initié
par la communication (lecture de mots, écriture de bits etc...)
- Données : Données nécessaires à l'éxécution de la fonction ou
renvoyées par celle-ci.

La trame Modbus complète, « ADU » (Application Data Unit ») comportera en


plus les informations d'adressage et de détection d'erreur propres au média
de communication envisagé (série ou TCP).
100 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

✔ les types de données échangées :

Modbus manipule 4 types de données :

Type d'objet Accès Exemple:


Bits d'entrée ("Discrets
Inputs") Bits Lecture Interface d'entrées TOR

Bits de sortie ('Coils") Bits Lecture/Ecriture Interface de sorties TOR, bits internes
Mots d'entrées ("Input
Registers") Mots Lecture Interface d'entrée analogique
Mots de sortie ("Holding
Registers") Mots Lecture/Ecriture Registres internes, sorties analogiques

Les adresses des objets Modbus sont codées sur 16 bits, ce qui autorise 65536
objets de chaque type possible par équipement accessibles via Modbus.

C'est à chaque fabriquant de matériel de définir les plages d'adresses pour chacun
de ces segments de données, ceux-ci pouvant tout aussi bien être disjoints que
confondus :

101 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Les adresses Modbus PDU commencent à 0, chaque fabriquant spécifie via une
table de correspondances les adresses correspondantes des objets accessibles de
son équipement :

102 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Les fonctions Modbus sont codées sur un octet :

- Les valeurs 1 à 127 correspondent à des fonctions Modbus;

- Les valeurs 128 à 255 correspondent aux codes d'exceptions


indiquant qu'une erreur s'est produite au cours d'un échange;

- Le code 0 n'est pas valide.

La longueur totale de la trame PDU ne peut excéder 253 octets (pour des
raisons de compatibilité des échanges entre les modes série et TCP).

La longueur champ de données peut donc être comprise entre 0 et 252


octets.

103 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Les échanges Modbus sont basés sur un modèle Client / Serveur


(maître/esclave dans le cas série).
Le Client (maître) est toujours à l'initiative d'un échange. Il envoie une
requête au serveur qui lui retourne, après analyse de cette requête une
réponse :

La trame de réponse contient les éventuelles données demandées par le


client dans le champ de données et le code de la fonction exécutée en echo
(Accusé réception : Signifie que la fonction a été correctement exécutée).
104 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

Si une erreur est détectée à la réception grâce au champ de contrôle


(error check), ou si une erreur survient lors de l'éxécution de la requête par
le serveur, la réponse renvoyée par celui-ci est alors dite « d'exception » :

Le champ « fonction » de la réponse contient alors la valeur [128 + code


fonction] indiquant au client que la fonction n'a pu être éxécutée; le champ
« données » contient quant à lui un code d'exception indiquant le type
d'erreur qui s'est produite.

105 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Attendre requête
Le logigramme
suivant décrit le
déroulement Code Fonction valide
d'une non
transaction Code d'exception = 1 ?
Modbus et son
traitement côté Adresse des données valide
Serveur :
non
Code d'exception = 2 ?

Valeur(s) des données valide(s)


non
Code d'exception = 3 ?

Exécuter Fonction
non
Code d'exception = 4 ?

Envoyer Réponse Modbus


Envoyer Réponse d'exception

106 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Principales fonctions offertes par Modbus :


Code Nature des fonctions MODBUS Code Nature des fonctions MODBUS

H’01’ Lecture de n bits de sortie H’0B’ Lecture du compteur


d’événements
H’02’ Lecture de n bits d’entrée H’0C’ Lecture des événements de
connexion
H’03’ Lecture de n mots de sortie H’0D’ Téléchargement, télé
déchargement et MM
H’04’ Lecture de n mots d’entrée H’0E’ Demande de CR de
fonctionnement
H’05’ Ecriture de 1 bit de sortie
H’0F’ Ecriture de n bits de sortie
H’06’ Ecriture de 1 mot de sortie
H’10’ Ecriture de n mots de sortie
H’07’ Lecture du statut d’exception
H’08’ Accès aux compteurs de diagnostic H’11’ Lecture d’identification
H’09 Téléchargement, télé déchargement H’12’ Téléchargement, télé
et mode de marche déchargement et MM
H’0A’ Demande de CR de fonctionnement H’13 Reset de l’esclave après erreur

107 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

✔ Exemple de système industriel automatisé


mettant en œuvre des échanges ModBus :
Le système suivant concerne la partie commande (P.C) d'un procédé industriel
destiné à la fabrication de colle.

Ce procédé nécessite le mélange d'un réactif en poudre avec un solvant. Le


solvant est puisé au moyen d'une pompe P1 vers la cuve de mélange. P1 est
actionné via un moteur asynchrone piloté par un variateur (1) de vitesse.

Le mélange est effectué par une pâle, également mue par un ensemble “moteur
asynchrone + variateur” (2).

Un API gère le pilotage du procédé (acquisition des capteurs : niveaux,


températures, commande des vannes, commande des variateurs).

Un PC assure la supervision du système (visualisation du cycle de production,


alarmes/défauts, choix des modes de marche ...)

108 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✗ Synoptique de la partie opérative du système :

EVS Electrovanne “Solvant”


EVR Electrovanne “Réactif”
EVV Electrovanne “Vidange”
NH, NB Cpateurs “Niveau Haut” et “Niveau Bas”
fcso, fcro, fcvo fins de course des elctrovannes
109 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

✗ Synoptique de la partie commande du système :

110 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✗ Équipements mis en jeu : API Wago 750-849

+ carte 8 E/TOR pour les capteurs de


Ports niveau et fin de course des
Ethernet electrovannes
pour les
échanges + carte 2 E Analogiques pour mesures
Modbus TCP de températures dans l'enceinte
(entre
autres) + carte 4 S TOR pour pilotage des
électrovannes (monostables).

Dans notre application, l'API est chargé de la commande du process. Toutes ses
données d'E/S sont accessibles via Ethernet au superviseur en Modbus TCP.
Il transmet également ses ordres aux variateurs via le réseau, en Modbus TCP.

111 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✗ Équipements mis en jeu : variateur communicant ATV31

Variateur de Vitesse Altivar 31 :


Plusieurs centaines de variables
accessibles via Modbus :

- En lecture : Courant dans les phases


(mot), état thermique du moteur
(mot), fins de course (bits)...

- En lecture/écriture : réglages PID


(mots), consigne de vitesse (mot),
M/A (bits), rampes d'accélération et
de décélération (mots) etc...

Connecteur RJ45 pour réseau Modbus

Dans notre application, deux ATV31 sont utilisés pour piloter les variateurs. Ils
pourront, grâce à leur communication Modbus transmettre leur état (courants, défauts
thermiques etc...) à la supervision, et recevoir les ordres de commande des API.

112 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✗ Équipements mis en jeu : passerelle TCP/RTU

Elle permet de convertir les couches physiques Ethernet / RS485, et d'encapsuler /


Désencapsuler les trames entre les protocoles Modbus RTU et Modbus TCP.

113 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Fonction 0x01 : Lecture de n bits de sorties.

Cette fonction permet de lire 1 à 2000 bits consécutifs dans le segments


mémoire du serveur correspondants aux sorties discrètes (« coils »).

La trame de requête contient les champs suivants :

Code Fonction 1 Octet 0x01

Adresse de départ 2 Ocets De 0x0000 à 0xFFFF

Nombre de bits à lire : 2 Octets De 1 à 2000 (0x7D0)

La trame de réponse, si aucune erreur ne survient :


Champ : Taille : Valeur :
Code Fonction : 1 octet 0x01
Nombre d'octets de la trame de réponse : 1 octets N*
Etat des bits lus : N octets Etat des bits lus
* Rq : N = (nb_de_bits) / 8 si nb_de_bits est un multiple de 8
N = (nb_de_bits) / 8 + 1 dans le cas contraire
114 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

Si une erreur survient au cours de l'échange, la trame de réponse


devient :
Champ : Taille : Valeur :
Code d'erreur : 1 octet 0x81
Code d'exception : 1 octet Code de l'erreur

115 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Fonction 0x02 : Lecture de n bits d'entrées.

Cette fonction permet de lire 1 à 2000 bits consécutifs dans le segments


mémoire du serveur correspondants aux entrées discrètes (« discrete
inputs »).

La trame de requête contient les champs suivants :


Champ : Taille : Valeur :
Code Fonction : 1 octet 0x02
Adresse du 1er bit à lire : 2 octets 0x0000 à 0xFFFF
Nombre de bits à lire : 2 octets 1 à 2000 (0x7D0)

La trame de réponse, si aucune erreur ne survient :


Champ : Taille : Valeur :
Code Fonction : 1 octet 0x02
Nombre d'octets de la trame de réponse : 1 octet N
Etat des bits lus : N x 1 octet Valeurs lues

116 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Si une erreur survient au cours de l'échange, la trame de réponse


devient :
Champ : Taille : Valeur :
Code d'erreur : 1 octet 0x82
Code d'exception : 1 octet Code de l'erreur

➢ Exemple :
Le superviseur émet une requête permettant de lire l'état des capteurs de niveau (entrées
TOR 1 & 2 de l'API). La cuve est à moitié pleine.
Requête : Réponse :
Nom du champ : Valeur : Nom du champ : Valeur :

117 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Fonction 0x03 : Lecture de n registres.

Cette fonction permet de lire 1 à 125 mots (16 bits) consécutifs dans le
segments mémoire du serveur correspondants aux registres accessibles
en lecture/écriture (« Holding register »).

La trame de requête contient les champs suivants :


Champ : Taille : Valeur :
Code Fonction : 1 octet 0x03
Adresse du 1° registre à lire : 2 octets 0 à 0xFFFF
Nombre de registres à lire (n) : 2 octets 1 à 125 (0x7D)

La trame de réponse, si aucune erreur ne survient :


Champ : Taille : Valeur :
Code Fonction : 1 octet 0x03
Nombre d'octets du champ suivant : 1 octet 2xn
Mots lus : n x 2 octets Valeurs lues

118 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Si une erreur survient au cours de l'échange, la trame de


réponse devient :
Champ : Taille : Valeur :
Code d'erreur : 1 octet 0x83
Code d'exception : 1 octet Code de l'erreur

➢ Exemple :
Le superviseur émet une requête permettant de lire l'état de la température dans la cuve
(stockée en 1/100° de degrés dans le mot interne n°1000 de l'API). Celle-ci est de 42,3°C.

Requête : Réponse :
Nom du champ : Valeur : Nom du champ : Valeur :

119 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Fonction 0x04 : Lecture de n registres d'entrée.

Cette fonction permet de lire 1 à 125 mots (16 bits) consécutifs dans le
segments mémoire du serveur correspondants aux registres accessibles
en lecture seule (« Input register »).

La trame de requête contient les champs suivants :


Champ : Taille : Valeur :
Code Fonction : 1 octet 0x04
Adresse de départ : 2 octets 0x0000 à 0xFFFF
Nombre de registres à lire (n) : 2 octets 1 à 125 (0x7D)

La trame de réponse, si aucune erreur ne survient :


Champ : Taille : Valeur :
Code Fonction : 1 octet 0x04
Nombre d'octets de la trame de réponse : 1 octet 2xn
Valeurs de registres lus : nx2 octets valeurs

120 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Fonction 0x05 : Ecriture d'un bit de sortie.

Cette fonction permet de forcer une sortie à '1' ou à '0' sur l'équipement distant. Le
sous-champ « valeur » du champ « données » contient 2 octets : la valeur 0xFF00
permet le forçage à '1', la valeur 0x0000 le forçage à '0'; toutes les autres valeurs
sont interdites. La réponse à cette requête est un écho de la requête.

La trame de requête contient les champs suivants :

Champ : Taille : Valeur :


Code Fonction : 1 octet 0x05
Adresse du bit à écrire : 2 octets 0x0000 à 0xFFFF
Valeur à écrire ('0' ou '1') : 2 octets 0x0000 ou 0xFF00
Si aucune erreur ne survient, la trame de réponse est identique à la trame de
requête (écho)

La trame de réponse, si une erreur survient :

Champ : Taille : Valeur :


Code d'erreur : 1 octet 0x85
Code d'exception : 1 octet 01, 02, 03, ou 04

121 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Fonction 0x06 : Ecriture d'un registre de sortie.

Cette fonction permet l'écriture d'une variable sur un mot accessible en


lecture/écriture de l'équipement distant. La réponse à cette requête est un écho de
la requête.

La trame de requête contient les champs suivants :


Champ : Taille : Valeur :
Code Fonction : 1 octet 0x06
Adresse du registre à écrire : 2 octets 0x0000 à 0xFFFF
Valeur à écrire (big endian) : 2 octets 0x0000 à 0xFFFF

Si aucune erreur ne survient, la trame de réponse est identique à la trame de


requête (écho)

La trame de réponse, si une erreur survient :

Champ : Taille : Valeur :


Code d'erreur : 1 octet 0x86
Code d'exception : 1 octet 01, 02, 03, ou 04

122 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Fonction 0x0F : Ecriture de n bits de sortie.

Cette fonction permet d'écrire 1 à 1968 bits consécutifs d'un équipement distant. La
réponse à cette requête renvoie le nombre de bits écrits ainsi que l'adresse de
départ en écho.

La trame de requête contient les champs suivants :

Champ : Taille : Valeur :


Code Fonction : 1 octet 0x0F
Adresse de départ : 2 octets 0x0000 à 0xFFFF
Nombre de bits à écrire : 2 octets 0x0001 à 0x07B0
Nombre d'octets du champ suivant 1 octet 0 à 255
Le rangement
Valeurs à écriredes bits à l'intérieur des mot se fait de la façon suivante
N octets :
.................

Adresse de départ b15 b14 b13 ....... b3 b2 b1 b0


Adresse de départ + 1 b31 b30 b29 ....... b18 b17 b16
Adresse de départ + 2 etc...
123 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

✔ Fonction 0x10 : Ecriture de n registres.

Cette fonction permet d'écrire 1 à 123 registres consécutifs d'un équipement


distant. La réponse à cette requête renvoie le nombre de registres écrits ainsi que
l'adresse de départ.
La trame de requête contient les champs suivants :

Champ : Taille : Valeur :


Code Fonction : 1 octet 0x10
Adresse du 1° mot à écrire : 2 octets 0x0000 à 0xFFFF
Nombre de mots à écrire (n) : 2 octets 0 à 0x7B
Nombre d'octets du champ suivant 1 octets 0 à 255
Valeurs à écrire (big endian) : n octets 0x0000 à 0xFFFF

La trame de réponse (sans erreur) :

Champ : Taille : Valeur :


Code Fonction : 1 octet 0x10
Adresse du 1° mot écrit : 2 octet 0 à 0xFFFF
Nombre de mots écrits 2 octets n
124 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

✔ Exercice.

Voici la déclaration des E/S du système présenté précédemment :

125 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Donnez les trames Modbus (PDU) permettant à un équipement distant :

- La lecture de toutes les entrées TOR utilisées :

- D'ouvrir la vanne de vidange

- De connaître l'état des températures

126 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

127 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

3 - Modbus Série :
Les premières implantations du protocole Modbus sont apparues sur des
lignes séries.

Les services offerts par ces protocoles sont ceux définies par la couche
application commune aux protocoles Modbus, et quelques services
supplémentaires viennent se greffer.
128 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

Tout d'abord, un mode appelé « diffusion » (« Broadcast ») permet au


maître (client) de s'adresser à l'ensemble des esclaves (serveurs)
présents sur le bus en envoyant une requête à l'adresse 0.

D'autre part, un certain nombre de fonctions de diagnostique ne sont


implantées que sur Modbus série.

129 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Timing des communications Modbus-Série :

130 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

En plus des champs définis par la couche applicative de Modbus


(code fonction et données), Les trames Modbus série incluent :

✔ l'adresse de l'esclave en en-tête (1 octet) :


- Adr = 0 pour la diffusion,
- 1<Adr<255 pour un échange entre maître et esclave)

✔ Champ de contrôle de la validité de l'échange : (1 ou 2 octets)

131 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Couche Physique :

La couche physique de Modbus série obéit à l'une des 2 normes RS232


ou RS485 :

RS232 : RS485 :
Maître Maître
Echanges entre 1 Echanges entre 1
Maître & 1 esclave Maître & plsrs
: POINT à POINT esclave :
& MULTIPOINT Esclave Esclave
Esclave
Courtes Jusqu'à 120m de n°1 ... n° i
Distances (<20m) distance

✗ Rappels :

➔RS232 : Transmission NRZ, niveaux de tension +/-12V référencés


par rapport à la masse.
➔RS485 : Transmission différentielle sur paire torsadée, niveaux de
tension 0/5v.

132 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Parasites e-m
Bits
transmis 0 0 1 0 1 1 1 0 1

+12v

V
RS232

-12v

+5v
RS485 :
D0 0v

+5v
RS485 :
D1 0v
+5v
V
RS485

-5v

133 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ RS485 2 fils.

Il s'agit du mode le plus répandu, tout équipement Modbus série doit


permettre ce type de liaison.

Terminaisons de bus
Résistances de polarisation
134 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

Désignation Nom norme


Direction Description
Modbus RS485
D0=V+ pour bit = '0'
D0 A/A' E/S
D0=V- pour bit = '1'
D1=V- pour bit = '0'
D1 B/B' E/S
D1=V+ pour bit = '1'

Common C/C' x Masse commune (optionnelle)

135 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ RS485 4 fils. (optionnel)

136 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Désignation Nom norme


Direction Description
Modbus RS485
Emission : TXD0=V+ pour bit = '0'
TXD0 A S
TXD0=V- pour bit = '1'
Emission : TXD1=V- pour bit = '0'
TXD1 B S
TXD1=V+ pour bit = '1'
Réception : RXD0=V+ pour bit = '0'
RXD0 A' E
RXD0=V- pour bit = '1'
Réception : RXD1=V- pour bit = '0'
RXD1 B' E
RXD1=V+ pour bit = '1'

Common C/C' x Masse commune (optionnelle)

137 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ RS232.

Ce mode est réservé aux liaisons point à point pour des distances <20m.

✔ Débit binaire :

Pour l'ensemble des modes de transmissions précédemment décrits, le


débit binaire par défaut est de 19 200 Bauds.

138 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Connecteurs :

➢ Modbus RS485 2 fils :

139 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

➢ Modbus RS485 4 fils :

140 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

➢ Modbus RS232 :

141 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Modbus RTU :

2 variantes du protocole Modbus série co-existent, qui se différencient au


niveau de la couche liaison de données :
➔Modbus RTU et Modbus ASCII.

L'implantation Modbus RTU est obligatoire sur un composant Modbus


série; celle de Modbus ASCII étant facultative.

Modbus RTU présente une meilleure efficacité en terme de débit binaire.

Nous limiterons donc notre étude à Modbus RTU, version plus répandue.

142 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Format d'une trame Modbus RTU :

Les octets transportés par les trames Modbus RTU comportent par défaut
11 bits :

✔ 1 bit de START
✔ 8 bits de données
✔ 1 bit de parité
✔ 1 bit de STOP

Start Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Parité Stop

143 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

La mise en trame des différents champs est la suivante :

Les trames sont séparées par des intervalles de « silence » de durée au


moins égale à 3,5 caractères hexadécimaux (1 caractère hexa = 4 bits) :

144 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Calcul du CRC :

Le dernier champ de la trame permet un contrôle des données émise. Le


calcul CRC (« Cyclic Redondant Code ») est une méthode très efficace et
permet de détecter jusqu'à erreurs situées n'importe où dans la trame.

La théorie sur laquelle est basée le calcul de ce code fait appel aux
fonctions polynomiales et à leur divisibilité par un polynôme particulier dit
« générateur ».

Les données utiles de la trame (c'est à dire les octets de données, sans bit
de START STOP et Parité) sont utilisées pour générer un polynôme dont
la divisibilité est vérifiée à l'émission et à la réception.

Si les résultats ne concordent pas, c'est qu'une erreur est survenue durant
la transmission.

Le format du CRC utilisé dans Modbus RTU est 16 bits; l'octet de poids
faible est transmis en 1° dans la trame (!).

145 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Algorithme de Début
Calcul du CRC :
CRC ← 0xFFFF

CRC ← Octet XOR CRC

CRC ← CRC >> 1

non
Bit Sorti = '1' ?

CRC ← 0xA001 XOR CRC

8 fois ?
non

Dernier Octet ?
non
FIN
146 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

✔ Exemples d'équipements Mosbus RTU :

Variateur de Vitesse Altivar 31 :


Plusieurs centaines de variables
accessibles via Modbus :

- En lecture : Courant dans les phases


(mot), état thermique du moteur
(mot), fins de course (bits)...

- En lecture/écriture : réglages PID


(mots), consigne de vitesse (mot),
M/A (bits), rampes d'accélération et
de décélération (mots) etc...

Connecteur RJ45 pour réseau Modbus

147 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

API Schneider M340 :


- Communication Modbus RTU
(RS485) intégrée à la CPU.

- Paramétrage de la communication
via le logiciel de programmation Unity.

- Programmation des requêtes


Modbus via une bibliothèque logicielle
disponible sous Unity.

Connecteur RJ45 pour réseau Modbus

148 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

4 – Modbus TCP.


Port Modbus TCP :
Le port 502 est réservé aux communications Modbus. L'équipement
serveur « écoute » donc sur ce port pour recevoir les requêtes émises par
le client.

Celles-ci sont émises par le client sur un port >1024 :

149 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016


Encapsulation des trames :
Le protocole Modbus TCP permet d'encapsuler des trames Modbus
PDU dans des trames Ethernet, et ainsi offrir les services Modbus ce
type de réseau :

En-Tête Ethernet En-Tête IP En-Tête TCP Données CRC


22 octets 12 octets 24 octets 1 à 255 4 octets
octets

150 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

La trame Modbus TCP est constituée d'une trame Modbus-TCP


précédée d'une en-tête baptisée « MBAP Header » :

L'absence de champ de contrôle propre à la trame Modbus-TCP s'explique


par le fait que celui-ci est déjà réalisé par la couche 2 d'Ethernet (CRC 32
bits).

151 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

L' en-tête MBAP Header comporte 4 champs :

✔ Transaction Identifier (2 octets) : Ce champ est utilisé pour identifier


les transaction circulant sur le réseau, afin que le client puisse faire le lien
entre une requête qu'il a émise et une confirmation qu'il reçoit.

✔ Protocol Identifier (2 octets) : Ce champ permet d'utiliser plusieurs


variantes de protocoles et de les distinguer; pour Modbus, ce champ est à
0x00.

✔ Length (2 octets) : Ce champ indique la taille (en octets) de la trame


Modbus à (partir du champ suivant).

152 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Unit Identifier (1 octet) : Ce champ est utilisé lorsque la trame est


adressée à une passerelle Modbus-TCP / Modbus-série, afin d'identifier
l'adresse Modbus de l'esclave sur cette ligne :

IP : 192.168.0.4

Passerelle Modbus- Unit ID =1 Unit ID =2


TCP / Modbus série

153 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Le contrôle sur chacun de ces champs pour un client et un serveur est


récapitulé dans le tableau suivant :

Client Serveur
Initialise la valeur Retourne au client la
Transact. ID valeur qu'il a initialisée
Initialise la valeur Retourne au client la
Protocole ID valeur qu'il a initialisée
Initialise la valeur Initialise la valeur
Length
Initialise la valeur Retourne au client la
Unit. ID valeur qu'il a initialisée

➢ Exemple :
Ecrire la trame MB-ADU complète émise par l'API permettant de mettre en route la pompe
(48° bit de sortie du variateur correspondant).

154 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Modbus-TCP & Les contrôleurs Wago 750-xxx :

Le contrôleur 750-849 est communique naturellement en Modbus-TCP à travers ses


ports Ethernet :

→ Toutes ses données d'entrée/sortie sont accessible via des requêtes Modbus
sur le réseau Ethernet.

Pour cela, une table mémoire image des E/S est automatiquement créée par le
contrôleur en fonction des cartes présentes sur le rack.

- Les entrées pourront ainsi être accédées par les requêtes de lecture (lecture de bits
d'entreée pour les E TOR, lecture de mots d'entreée pour les E Analogiques)

- Les sorties sont quant à elles accessibles en lecture ou en écriture (bits de


sortie/bobines ou registres)

155 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

Accès Modbus des données de type "mot" en Modbus sur les contrôleurs Wago 750 :

L'adressage CEI est celui utilisé dans les programmes des API. Les adresses de mot ont la
forme suivante :
% I W 01 → 2° Mot d'entrée
% Q W 20 → 21° mot de sortie
% M W 31 → 32° mot interne
156 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016
Accès Modbus des données de type "bit" en Modbus sur les contrôleurs Wago 750 :

Les adresses CEI des variables de type bit ont la forme suivante :

% I X 10.2 → bit d'entrée (3°bit du 11° mot)


% Q X 0.3 → bit de sortie
% MX0.1 → bit interne
Rq :
→ les bits internes ne sont pas accessibles en Modbus TCP sur ces contrôleurs
→ Le n° d'adresse CEI pour les bits est composé d'un n°de mot et d'un n° de bit à l'intérieur de
ce mot (poids fort = 15, poids faible=0)
157 Nicolas Néanne IUT de Toulon – GEII
Automatismes Industriels Cours ITII 2015 - 2016

→ Par ailleurs, des blocs fonctionnels de communication permettent au


programme du contrôleur d'initier une requête Modbus-TCP :

Bloc fonctionnel « Ethernet_ModbusMaster-TCP » de la bibliothèque


« Modbus_Ethernet_03.lib » :

158 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

✔ Modbus RTU & Les contrôleurs Wago 750-xxx :


Des bornes spécifiques permettent d'assumer les couches physiques RS232 et RS485
utilisées en Modbus RTU (par ailleurs, les contrôleurs disposent également d'un port
RD232 sur l'unité centrale) :

Borne 750-653 Borne 750-650

159 Nicolas Néanne IUT de Toulon – GEII


Automatismes Industriels Cours ITII 2015 - 2016

La bibliothèque « Modb_l05.lib » contient les blocs fonctionnels permettant de rendre


une borne série (RS232 ou RS485) maître ou esclave :

160 Nicolas Néanne IUT de Toulon – GEII

Vous aimerez peut-être aussi