IUT de Toulon – Département GEII Automatismes Industriels Cours ITII 2015 - 2016 Automatismes Industriels [email protected] [email protected]
IUT de Toulon – Département GEII
Automatismes Industriels Cours ITII 2015 - 2016
Automatismes Industriels
[email protected]@univ-tln.fr
2IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Plan du Cours :I / Les Automates Programmables Industriels1 – Présentation2 – Structure et fonctionnement3 - Caractéristiques
II / La Programmation IEC 1131-3 sous CoDeSys1 – L'adressage des données2 – Le langage IL3 – Le langage ST4 – Le Langage LD5 – Le langage FBD6 – Le langage CFC (non IEC 1131-3)7 – Le langage SFC
III / Le bus de terrain ASi1 – Présentation2 – Couche Physique3 – Couche liaison de données4 – Couche Application
IV / Communications Modbus1 – Présentation du protocole2 – Modbus RTU3 – Modbus TCP
3IUT Toulon
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éeInconvénients : cher, pas de flexibilité, pas de communication possible
4IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Contraintes du milieu industriel (1) :
✔ Influences externes :
- poussières,
- température,
- humidité,
- vibrations,
- parasites électromagnétiques, …
→ Solution : utilisation de systèmes à base de microprocesseurs permettant une modification aisée des automatismes.
⇒ logique programmée
5IUT Toulon
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
6IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
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.
Définition :
Les API sont utilisés dans divers secteurs d'activités, que l'on peut regrouper en trois catégories :
7IUT Toulon
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 ...
8IUT Toulon
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...)
- Engins de chantiers (grues...),
- Tri postal,
- etc...
- L'automatisation de machines spéciales :
9IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Nature des informations traitées par l'automate :
➢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...).
➢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 …
10IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Architecture des systèmes automatisés :Partie Commande
(P.C)Partie Opérative
(P.O)Partie Relation
(P.R)
API (CPU)
Préactionneurs Actionneurs
Effecteurs
Détecteurs /CapteursConditionneurs
E Ana E TOR
S Ana & S TOR
Procédé
Superviseur
Pupitres opérateurs
Commande & signalisation
(1)
(2)
(3)
(4)
(5) (6)
(7)
(8)
(9)
11IUT Toulon
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 ...).
12IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Architectures compacte et modulaires :
Automates modulaires Télémécanique
Automate compact Logo (Siemens)
13IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Informations(capteurs, dialogue)
Entrées
SortiesOrdres
(pré actionneurs, dialogue)
Programme
Traiter les informations entrantes pour émettre des ordres de sorties
en fonction d’un programme.
2 - Structure & Fonctionnement d’un API
14IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Le cycle de fonctionnement est organisé en 4 tâches :
Bus Entrées / Sorties
Unité de Traitement
RAM
Module d' Entrées
Module de
Sorties
Tâche 1 : Gestion du système (auto-contrôle de l’automate)Tâche 2 : Acquisition des données en entrée (mémorisation)Tâche 3 : Traitement des données (exécution du programme)Tâche 4 : Affectation des sorties (émission des ordres)
15IUT Toulon
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
16IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Présentation du contrôleur WAGO 750-849 :
Ports Ethernet pour le chargement des programmes, la
supervision...
Interface série (configuration)
Bornes pour l'alimentation 24Vcc
17IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Caractéristiques du contrôleur WAGO 750-849 :
18IUT Toulon
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
19IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➔ Coupleur d'entrées : « du bornier vers la mémoire image »
Mise à jour de façon ponctuelle, à chaque cycle automate
+-
+-
+-
+-
E1
E2
E3
E4
Bornier d'entrée Isolation / Filtrage Mémoire Image
%IX 0.0 E1
%IX 0.1 E2
%IX 0.2 E3
%IX 0.3 E4
... ….
... ...
20IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Exemple de Carte D'E TOR (750-400) :
21IUT Toulon
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.
22IUT Toulon
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].
23IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Exemple de Carte D'E analogiques 4-20mA (750-454) :
24IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016Cette 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.
25IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
+-+-
+-+-
S1
S2
S3
S4
Bornier de sortiesIsolation / Amplification - Relayage
Mémoire Image des sorties
S1 %QX 0.0
S2 %QX 0.1
S3 %QX 0.2
S4 %QX 0.3
... ….
... ...
Variables du programme
Bits de sorties
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.
Mise à jour de façon ponctuelle, à chaque cycle automate
26IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Exemple de Carte De S TOR à Relais (750-513) :
27IUT Toulon
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)
28IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Exemple de Carte De S TOR à Transistors (750-501) :
29IUT Toulon
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)
30IUT Toulon
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.
31IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
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
II / La Programmation IEC 1131-3
32IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
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'
1 / L'adressage des Données.
33IUT Toulon
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.xExemple : 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.xExemple : 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
34IUT Toulon
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
35IUT Toulon
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 :
✔ Un double mot est une variable codée sur 32 bits
Notation : %x.DW.x
% I W 2
36IUT Toulon
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 '
37IUT Toulon
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.
38IUT Toulon
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.
39IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
variable interne du programme "prog" de type booléen, initialisée à '0' et associée à la sortie physique TOR 4.0.
Variable de sortie du programme "prog", de type 'temps', et initialisée à la valeur 1s et 500ms.
Variable booléenne interne à "prog" initialisée à '1'.
Exemples de déclaration :
Variable d'entrée du programme "prog", de type "mot" et associée à l'entrée analogique 0.
40IUT Toulon
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.
41IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
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 →
... se traduit par le code suivant :
%I1.3 . %I1.4)1.5)((%I1.0.%I %Q2.0 +=
La norme IEC 1131-3 définit 5 langages de programmation : IL, ST, SFC, LD et FDB.
42IUT Toulon
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 →
... se traduit par le code suivant :
%I1.3 . %I1.4)1.5)((%I1.0.%I %Q2.0 +=
%Q2.0 := ( (%I1.0 AND %I1.5) OR %I1.4 ) AND NOT( %I1.3) ;
43IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Comparaison (alternative IF … ELSE … … END_IF):
➢ Incrémentation d'une variable :
CPT := CPT + 1 ;
Affectation : « := »
44IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Boucle FOR :
➢ Boucle WHILE :
FOR i := 0 TO 9 BY 1 DO
.............. ;
END_FOR;
WHILE condition = TRUE DO
.............. ;
END_WHILE;
45IUT Toulon
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 :
- Soustraction :
- Multiplication :
- Division :
Res := Op1 + Op2 ;
Res := Op1 - Op2 ;
Res := Op1 * Op2 ;
Res := Op1 / Op2 ;
46IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
- modulo :
- Conversion Entier → Réel :
- Conversion Réel → Entier :
- Conversion Mot → Réel :
Res := Op1 MOD Op2 ;
Nb_Re := INT_TO_REAL ( Nb_ent) ;
Nb_ent := REAL_TO_INT ( Nb_Re) ;
Nb_Re := WORD_TO_REAL ( Mot) ;
47IUT Toulon
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.
48IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Opérations logiques de Base :
ET : OU : NON :
Exemple : Soit l'équation logique suivante →
Cette équation se traduit en LD par la ligne suivante :%I1.3 . %I1.4)1.5)((%I1.0.%I %Q2.0 +=
49IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
✔ Mémoire RS :
✔ Front montant :
t
t
t
A
B
x
t
t
t
A
x
t
tx
A✔ Front descendant :
50IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Temporisation : retard à l'activation
➢ Temporisation : retard au déclenchement
➢ Temporisation : monostable
t
t
A
x3s
t
t
A
x3s
t
t
A
x3s
3s
3s
TON
TOF
TP
51IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Compteur décompteur :
Nom Type RôleCU 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
52IUT Toulon
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 →
Cette équation se traduit en FBD par le diagramme suivant :
%I1.3 . %I1.4)1.5)((%I1.0.%I %Q2.0 +=
AND
ORAND
%I1.4%I1.3
%Q2.0
%I1.5
%I1.0
53IUT Toulon
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.
54IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Mémoire RS
Opérations numériques
opérations logiques
Compteurs
Comparaisons
Détection de Fronts
55IUT Toulon
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.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é
étape
Action
Étape initiale
Important : Il faut toujours respecter l'alternance Étape/transition !!!
56IUT Toulon
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'étapenom.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)
57IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Entrées TOR
Temporisation
Sorties TOR, activées pendant la durée de l'étape (attribut 'N' : normal.
✔ Réceptivités : ✔ Actions :
58IUT Toulon
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.
59IUT Toulon
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 d'activation :
t#.....
Action limitée dans le temps : L'action est activée à l'entrée dans l'étape, puis désactivée automatiquement au bout du temps, spécifié (ou à la sortie de l'étape).
D Temps de retard :
t#.....
Action Retardée : L'action est activée avec le retard spécifié après l'entrée dans l'étape.
60IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Le chronogramme suivant récapitule l’exécution des différents types d'action possibles : t
t
t
tr0
t
t
t
t
t
t
t
tr1
tr2
Init.X
Step2.X
Step3.X
A
B
C
D1s
61IUT Toulon
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
62IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
✔ Cas particulier d'utilisation de la branche OU :
Reprise de séquence saut d'étapes
63IUT Toulon
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
64IUT Toulon
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
65IUT Toulon
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.
66IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
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 d'entrée
Action de sortie
Exemple de programmation d'action d'entrée en langage ST
t
t
t
Step2.X
Action d'entréeAction de sortie
➢ Actions programmées (langage SFC) :
67IUT Toulon
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 :
t
t
Step2.X
Cond
A
68IUT Toulon
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 :
t
t
Step2.X
Cond
A
69IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢ Appel & Synchronisation de programmes :
➔Programme Principal PLC_PRG :
➔ Bloc Fonctionnel G2 :
➔ Bloc Fonctionnel G1 :
Étapes de synchronisation
70IUT Toulon
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
71IUT Toulon
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
72IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
73IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
➢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).
III / Le Bus de terrain ASi
74IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
E/S
E/S
APIMaître
AS-InterfaceAPI
Câblage « traditionnel » Câblage « Bus »
➔ Comparaison Câblage traditionnel / Câblage Bus :
Coupleur
Bus
Esclaves(capteurs + préactionneurs)
75IUT Toulon
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.
76IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
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
➢ Le Câble ASi :
77IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
• Transmission par courants porteurs :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).
Redressement
=Primaire L
L
R
V+
Découplage
AS-i +
AS-i -
30 V=
V-
R
Codage Manchester par courant porteur
AS
t
U alim30V
Alim. + transfert des données
➢ Alimentation et Signaux électriques sur le bus:
78IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
0 0 1 0 1 1 1 0 1
Émis
sion
Réce
ptio
n
Bits à coder
Codage Manchester
Signal après filtrage (Modulation APM)
détection fronts descendants
détection fronts montants
Bits décodés (RS)
79IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
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).
➢ Système Maître / Esclave :
80IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Maître
Esclave 1
Esclave 2
Esclave 31
Requête maître
Réponse esclave 1
Requête maître
Réponse esclave 2
Requête maître
Réponse esclave nEsclave n
Requête maître
Réponse esclave 31
31 esclaves maximum
Temps de cycle caractéristique: 5 ms pour
31 esclaves
➢ Polling des esclaves :
81IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Maître:polling cyclique des esclaves
Esclave AS-i : adresse de 1 à 31
mise à jour des sorties
acquisition de l'état des entrées
Requête maître
Réponse esclave
1 Esclave AS-i supporte:
4 interfaces logiques(entrées, sorties ou bidirectionnelles)
et au besoin,4 paramètrespour sélectionner un état particulier
• 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)
82IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
EsclaveMaître
Les échanges Maître / Esclave :
Ad=1 Ad=2
Ad=3Ad=4
Echanges des données d'entrées / sorties Paramètres Services
1 cycle AS-i
Q. Ad1 R.1 Q. Ad2 R.2 Q. Ad3 R.3 Q. Ad4 R.4 P. Adx R.x S. Ady R.y
Etat des entrées
Mise à jour des sorties
Q. Ad1 R.1
83IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
ST CB A4 A3 A2 A1 I4 I3 I2 I1 I0A0 PB EB
ST I3 I2 I1 I0 PB EB
Requête du maître :
Réponse de l ’esclave :
5 bits d'informationfonction du type de la requête
4 bits d'informationretournée au maître
Bit de débutST = 0
Bit de débutST = 0
Bit de finEB = 1
Bit de finEB = 1
Bit de contrôle0 = échange de paramètres, données, définis par I0 à I41 = commande définie par I0 à I4
Bit de contrôle de parité pairen'incluant pas le bit de fin
Bit de contrôle de parité pairen'incluant pas le bit de fin
5 bits d'adresse esclave (1 à 31)0 réservé à la fonction adressage automatique
➢ Mise en trame :
84IUT Toulon
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]
85IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Catalogue des requêtes du maître :
CB
0 A4 A3 A2 A1 A0 0 S3 S2 S1 S0Echange de données
Ecriture de paramètres
Ecriture d'adresse
Reset esclave
Reset adresse
Lecture I/O Configuré
Lecture code ID
Lecture Status esclave
Lecture et reset Status esclave
0 A4 A3 A2 A1 A0 0 P3 P2 P1 P0
0 0 0 0 0 0 A4 A3 A2 A1 A0
1 A4 A3 A2 A1 A0
1 A4 A3 A2 A1 A0
1 A4 A3 A2 A1 A0
1 A4 A3 A2 A1 A0
1 A4 A3 A2 A1 A0
1 A4 A3 A2 A1 A0
1 1 1 0 0
0 0 0 0 0
0 0 0 01
0 0 01 1
1 1 1 0
1 1 1
1
1 1
5 bits d'adresse esclave 5 bits d'information
Requêtes du maître
86IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Catalogue des réponses des esclaves:
Réponse esclave
E3 E2 E1 E0
P3 P2 P1 P0
110 0
110 0
110 0
C3 C2 C1 C0
ID3 ID2 ID1 ID0
St3 St2 St1 St0
St3 St2 St1 St0
4 bits d'information
Pi = paramètres renvoyés en écho
Ack de l'esclave '6 Transaction 15 ms max
Ack de l'esclave '6 Transaction 2 ms max
Ack de l'esclave '6
I/O code esclave de '0 à 'F
ID code esclave de '0 à 'F
Sti = 4 bits d'états de l'esclave
Sti = 4 bits d'états de l'esclave avant RAZ
Ei = entrées esclave
87IUT Toulon
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.
88IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
89IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
90IUT Toulon
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 :
@2 @3 XXX @1
@6 @7 @4 @5
@10 @11 @8 @9
@14 @15 @12 @13
.......... .......... .......... @16
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
%IW4
%QW4
%IW5
%QW5
%IW6
%QW6
%IW7
%QW7
%IW8
%QW8
Bit :
91IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Exemples de composant ASi :
D0 = commutation
D1 = signalisation
D2 = état
D3 = test
P0 =temporisation
P1 = inversion
P2 = distance
P3 = fonction spéciale
capteurou
Actionneur
énergie
Esclave avec circuit intégré AS-
InterfaceUn boîtier
Une connexion
Structure :
92IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Exemple de capteur :
Cellule Photoélectrique XUJK... (Schneider) :
→ Distance de détection (P1)→ Dark-on / Dark-off (P2)
AS-i
Alimentation par le bus :
Paramètres :
Données :
→ Détection (entrée I1)→ Encrassement lentille (entrée I2)
93IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Exemple d'actionneur (pré) : Distriubteur électropneumatique AC2027 (ecomot) :
94IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
D0 = capteur 1
D1 = capteur 2
D2 = actionneur 1
D3 = actionneur 2
P0
Jusqu’à 4 capteursou/et
4 actionneursénergie
Esclave avec circuit intégré AS-
InterfaceUn boîtier Auto-surveillance
interface AS-i pour capteurs/actionneurs conventionnels :
95IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
96IUT Toulon
Automatismes Industriels Cours ITII 2015 - 2016
Exemple de maître Asi pour API : Borne WAGO 750-655 pour contrôleur 750-xxx :
97IUT Toulon
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 de Toulon – GEIINicolas Néanne98
Automatismes Industriels Cours ITII 2015 - 2016
1 - Historique2 - Description des échanges Modbus3 - Modbus Série (RTU)
a – Présentationb – Couche Physiquec – Couche Liaison de données
4 - Modbus TCPa – Présentationb – Génaralités sur l'utilisation d'Ethernet en milieu industrielc – Constitution d'une trame Modbus-TCPd – Règles de Connexion
ANNEXE :Détail des différentes fonctions
Ch 3 : Modbus (RTU & TCP)
IUT de Toulon – GEIINicolas Néanne99
Automatismes Industriels Cours ITII 2015 - 2016
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 ».
1 - Historique :
IUT de Toulon – GEIINicolas Néanne100
Automatismes Industriels Cours ITII 2015 - 2016
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).
2 – Description des échanges Modbus:
IUT de Toulon – GEIINicolas Néanne101
Automatismes Industriels Cours ITII 2015 - 2016
✔ les types de données échangées :
Modbus manipule 4 types de données :
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 :
Type d'objet Accès Exemple:
Bits Lecture Interface d'entrées TOR
Bits Interface de sorties TOR, bits internes
Mots Lecture Interface d'entrée analogique
Mots Registres internes, sorties analogiques
Bits d'entrée ("Discrets Inputs")
Bits de sortie ('Coils") Lecture/EcritureMots d'entrées ("Input Registers")
Mots de sortie ("Holding Registers") Lecture/Ecriture
IUT de Toulon – GEIINicolas Néanne102
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 :
IUT de Toulon – GEIINicolas Néanne103
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.
IUT de Toulon – GEIINicolas Néanne104
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).
IUT de Toulon – GEIINicolas Néanne105
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.
IUT de Toulon – GEIINicolas Néanne106
Automatismes Industriels Cours ITII 2015 - 2016
Le logigramme suivant décrit le déroulement d'une transaction Modbus et son traitement côté Serveur :
Attendre requête
Adresse des données valide
?
Code Fonction valide
?
?
?
Valeur(s) des données valide(s)
Exécuter Fonction
Envoyer Réponse Modbus
Envoyer Réponse d'exception
Code d'exception = 1
Code d'exception = 2
Code d'exception = 3
Code d'exception = 4
non
non
non
non
IUT de Toulon – GEIINicolas Néanne107
Automatismes Industriels Cours ITII 2015 - 2016
✔ Principales fonctions offertes par Modbus :
Lecture du compteur d’événements
Lecture des événements de connexion
Téléchargement, télé déchargement et MM
Demande de CR de fonctionnement
Ecriture de n bits de sortie
Ecriture de n mots de sortie
Lecture d’identificationTéléchargement, télé
déchargement et MMReset de l’esclave après erreur
H’0B’
H’0C’
H’0D’
H’0E’
H’0F’
H’10’
H’11’H’12’
H’13’
Lecture de n bits de sortie
Lecture de n bits d’entrée
Lecture de n mots de sortie Lecture de n mots d’entrée
Ecriture de 1 bit de sortie
Ecriture de 1 mot de sortie
Lecture du statut d’exceptionAccès aux compteurs de diagnosticTéléchargement, télé déchargement
et mode de marcheDemande de CR de fonctionnement
H’01’
H’02’
H’03’
H’04’
H’05’
H’06’
H’07’H’08’H’09
H’0A’
Nature des fonctions MODBUSCodeNature des fonctions MODBUSCode
IUT de Toulon – GEIINicolas Néanne108
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 ...)
IUT de Toulon – GEIINicolas Néanne109
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
IUT de Toulon – GEIINicolas Néanne110
Automatismes Industriels Cours ITII 2015 - 2016
✗ Synoptique de la partie commande du système :
IUT de Toulon – GEIINicolas Néanne111
Automatismes Industriels Cours ITII 2015 - 2016
✗ Équipements mis en jeu : API Wago 750-849
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.
Ports Ethernet pour les échanges Modbus TCP (entre autres)
+ carte 8 E/TOR pour les capteurs de niveau et fin de course des electrovannes
+ carte 2 E Analogiques pour mesures de températures dans l'enceinte
+ carte 4 S TOR pour pilotage des électrovannes (monostables).
IUT de Toulon – GEIINicolas Néanne112
Automatismes Industriels Cours ITII 2015 - 2016
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
✗ Équipements mis en jeu : variateur communicant ATV31
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.
IUT de Toulon – GEIINicolas Néanne113
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.
IUT de Toulon – GEIINicolas Néanne114
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 :
La trame de réponse, si aucune erreur ne survient :
* Rq : N = (nb_de_bits) / 8 si nb_de_bits est un multiple de 8N = (nb_de_bits) / 8 + 1 dans le cas contraire
Code Fonction 1 Octet 0x01
Adresse de départ 2 Ocets De 0x0000 à 0xFFFF
Nombre de bits à lire : 2 Octets De 1 à 2000 (0x7D0)
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
IUT de Toulon – GEIINicolas Néanne115
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
IUT de Toulon – GEIINicolas Néanne116
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 :
La trame de réponse, si aucune erreur ne survient :
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)
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
IUT de Toulon – GEIINicolas Néanne117
Automatismes Industriels Cours ITII 2015 - 2016
➢ 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.
Nom du champ : Valeur : Nom du champ : Valeur :
Requête : Réponse :
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
IUT de Toulon – GEIINicolas Néanne118
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 :
La trame de réponse, si aucune erreur ne survient :
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)
Champ : Taille : Valeur :
Code Fonction : 1 octet 0x03
Nombre d'octets du champ suivant : 1 octet 2 x n
Mots lus : n x 2 octets Valeurs lues
IUT de Toulon – GEIINicolas Néanne119
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
Nom du champ : Valeur : Nom du champ : Valeur :
Requête : Réponse :
➢ 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.
IUT de Toulon – GEIINicolas Néanne120
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 :
La trame de réponse, si aucune erreur ne survient :
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)
Champ : Taille : Valeur :
Code Fonction : 1 octet 0x04
Nombre d'octets de la trame de réponse : 1 octet 2 x n
Valeurs de registres lus : nx2 octets valeurs
IUT de Toulon – GEIINicolas Néanne121
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 :
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 Fonction : 1 octet 0x05
Adresse du bit à écrire : 2 octets 0x0000 à 0xFFFF
Valeur à écrire ('0' ou '1') : 2 octets 0x0000 ou 0xFF00
Champ : Taille : Valeur :
Code d'erreur : 1 octet 0x85
Code d'exception : 1 octet 01, 02, 03, ou 04
IUT de Toulon – GEIINicolas Néanne122
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 :
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 Fonction : 1 octet 0x06
Adresse du registre à écrire : 2 octets 0x0000 à 0xFFFF
Valeur à écrire (big endian) : 2 octets 0x0000 à 0xFFFF
Champ : Taille : Valeur :
Code d'erreur : 1 octet 0x86
Code d'exception : 1 octet 01, 02, 03, ou 04
IUT de Toulon – GEIINicolas Néanne123
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 :
Le rangement des bits à l'intérieur des mot se fait de la façon suivante :
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
Valeurs à écrire N octets .................
Adresse de départ b15
b14
b13
....... b3 b
2 b
1 b
0
Adresse de départ + 1 b31
b30
b29
....... b18
b17
b16
Adresse de départ + 2 etc...
IUT de Toulon – GEIINicolas Néanne124
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 :
La trame de réponse (sans erreur) :
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
Champ : Taille : Valeur :
Code Fonction : 1 octet 0x10
Adresse du 1° mot écrit : 2 octet 0 à 0xFFFF
Nombre de mots écrits 2 octets n
IUT de Toulon – GEIINicolas Néanne125
Automatismes Industriels Cours ITII 2015 - 2016
✔ Exercice.
Voici la déclaration des E/S du système présenté précédemment :
IUT de Toulon – GEIINicolas Néanne126
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
IUT de Toulon – GEIINicolas Néanne127
Automatismes Industriels Cours ITII 2015 - 2016
IUT de Toulon – GEIINicolas Néanne128
Automatismes Industriels Cours ITII 2015 - 2016
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.
3 - Modbus Série :
IUT de Toulon – GEIINicolas Néanne129
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.
IUT de Toulon – GEIINicolas Néanne130
Automatismes Industriels Cours ITII 2015 - 2016
Timing des communications Modbus-Série :
IUT de Toulon – GEIINicolas Néanne131
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)
IUT de Toulon – GEIINicolas Néanne132
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 :
✗ 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.
Esclave
Maître
Esclave n°1
Maître
Esclave n° i...
RS232 :
Echanges entre 1 Maître & 1 esclave : POINT à POINT&Courtes Distances (<20m)
RS485 :
Echanges entre 1 Maître & plsrs esclave : MULTIPOINTJusqu'à 120m de distance
IUT de Toulon – GEIINicolas Néanne133
Automatismes Industriels Cours ITII 2015 - 2016
0 0 1 0 1 1 1 0 1Bits transmis
VRS232
RS485 : D0
RS485 : D1
VRS485
+5v
0v
+5v
+12v
-12v
0v
+5v
-5v
Parasites e-m
IUT de Toulon – GEIINicolas Néanne134
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.
Résistances de polarisationTerminaisons de bus
IUT de Toulon – GEIINicolas Néanne135
Automatismes Industriels Cours ITII 2015 - 2016
Direction Description
D0 A/A' E/S
D1 B/B' E/S
Common C/C' x Masse commune (optionnelle)
Désignation Modbus
Nom norme RS485
D0=V+ pour bit = '0' D0=V- pour bit = '1'
D1=V- pour bit = '0' D1=V+ pour bit = '1'
IUT de Toulon – GEIINicolas Néanne136
Automatismes Industriels Cours ITII 2015 - 2016
✔ RS485 4 fils. (optionnel)
IUT de Toulon – GEIINicolas Néanne137
Automatismes Industriels Cours ITII 2015 - 2016
Direction Description
TXD0 A S
TXD1 B S
RXD0 A' E
RXD1 B' E
Common C/C' x Masse commune (optionnelle)
Désignation Modbus
Nom norme RS485
Emission : TXD0=V+ pour bit = '0' TXD0=V- pour bit = '1'
Emission : TXD1=V- pour bit = '0' TXD1=V+ pour bit = '1'
Réception : RXD0=V+ pour bit = '0' RXD0=V- pour bit = '1'
Réception : RXD1=V- pour bit = '0' RXD1=V+ pour bit = '1'
IUT de Toulon – GEIINicolas Néanne138
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.
IUT de Toulon – GEIINicolas Néanne139
Automatismes Industriels Cours ITII 2015 - 2016
✔ Connecteurs :
➢ Modbus RS485 2 fils :
IUT de Toulon – GEIINicolas Néanne140
Automatismes Industriels Cours ITII 2015 - 2016
➢ Modbus RS485 4 fils :
IUT de Toulon – GEIINicolas Néanne141
Automatismes Industriels Cours ITII 2015 - 2016
➢ Modbus RS232 :
IUT de Toulon – GEIINicolas Néanne142
Automatismes Industriels Cours ITII 2015 - 2016
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.
✔ Modbus RTU :
IUT de Toulon – GEIINicolas Néanne143
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
StopBit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0Start Parité
IUT de Toulon – GEIINicolas Néanne144
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) :
IUT de Toulon – GEIINicolas Néanne145
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 (!).
IUT de Toulon – GEIINicolas Néanne146
Automatismes Industriels Cours ITII 2015 - 2016
✔ Algorithme de Calcul du CRC :
CRC ← 0xFFFF
CRC ← Octet XOR CRC
CRC ← CRC >> 1
Bit Sorti = '1' ?
8 fois ?
Dernier Octet ?
CRC ← 0xA001 XOR CRC
FIN
Début
non
non
non
IUT de Toulon – GEIINicolas Néanne147
Automatismes Industriels Cours ITII 2015 - 2016
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
✔ Exemples d'équipements Mosbus RTU :
IUT de Toulon – GEIINicolas Néanne148
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
IUT de Toulon – GEIINicolas Néanne149
Automatismes Industriels Cours ITII 2015 - 2016
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 :
● Port Modbus TCP :
4 – Modbus TCP.
IUT de Toulon – GEIINicolas Néanne150
Automatismes Industriels Cours ITII 2015 - 2016
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 :
● Encapsulation des trames :
En-Tête Ethernet En-Tête IP En-Tête TCP Données CRC
12 octets22 octets 24 octets 1 à 255 octets
4 octets
IUT de Toulon – GEIINicolas Néanne151
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).
IUT de Toulon – GEIINicolas Néanne152
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).
IUT de Toulon – GEIINicolas Néanne153
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 :
Passerelle Modbus-TCP / Modbus série
Unit ID =1 Unit ID =2
IP : 192.168.0.4
IUT de Toulon – GEIINicolas Néanne154
Automatismes Industriels Cours ITII 2015 - 2016
Client ServeurInitialise la valeur
Protocole IDInitialise la valeur
Initialise la valeur Initialise la valeur
Unit. IDInitialise la valeur
Transact. IDRetourne au client la valeur qu'il a initialisée
Retourne au client la valeur qu'il a initialisée
Length
Retourne au client la valeur qu'il a initialisée
Le contrôle sur chacun de ces champs pour un client et un serveur est récapitulé dans le tableau suivant :
➢ 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).
IUT de Toulon – GEIINicolas Néanne155
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)
IUT de Toulon – GEIINicolas Néanne156
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
IUT de Toulon – GEIINicolas Néanne157
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)
IUT de Toulon – GEIINicolas Néanne158
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 » :
IUT de Toulon – GEIINicolas Néanne159
Automatismes Industriels Cours ITII 2015 - 2016
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
✔ Modbus RTU & Les contrôleurs Wago 750-xxx :
IUT de Toulon – GEIINicolas Néanne160
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 :