Upload
others
View
25
Download
3
Embed Size (px)
Citation preview
IUT de Toulon – Département GEII
M2102 Automatisme S2
M2102 : Automatismes
[email protected] E009
Partie 1
M2102 Automatisme S2
2IUT Toulon, GEII
Partie 1:
I / Architecture des Systèmes Automatisés1 – Introduction
2 – Structure des SA3 – Système-exemple 1 : Tracker solaire
II / Les Automates Programmables Industriels1 – Présentation
2 – Structure et fonctionnement3 - Caractéristiques
III / La Programmation IEC 1131-31 – Les types de données
2 - Langage IL3 – Langage ST4 - Langage SFC5 – Langage LD
6 – Langage FBD7 – L'environnement de programmation CoDeSys
M2102 Automatisme S2
3IUT Toulon, GEII Ch1 : Architecture des S.A
I / Architecture des Systèmes Automatisés :
1 - Introduction
Un système automatisé gère de manière autonome un ou des cycles de travail préétabli qui se décomposent en cycles ou séquences.
Il permet de remplacer l'intervention de l'homme pour certaines tâches pénibles, répétitives ou dangereuses.
M2102 Automatisme S2
4IUT Toulon, GEII Ch1 : Architecture des S.A
Les systèmes automatisés peuvent être classés en différentes catégories:
- 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...).
Les secteurs d'activité représentatifs des SAP sont :
- 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 ...
M2102 Automatisme S2
5IUT Toulon, GEII Ch1 : Architecture des S.A
➢ Objectifs des SAP:
Optimisation du rapport qualité / coût
Système Automatisé
Contraintes
Matière d'oeuvre
Matière d'oeuvre
+Valeur
ajoutée
M2102 Automatisme S2
6IUT Toulon, GEII Ch1 : Architecture des S.A
- L'automatisation 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 :
M2102 Automatisme S2
7IUT Toulon, GEII Ch1 : Architecture des S.A
✓ Partie opérative (P.O) :
✓ Partie commande (P.C) :
✓ Partie Relation (P.R) :
Tout système automatisé peut être décomposé en 3 parties :
2 - Structure.
Outil de description : GRAFCET (Graphe de commande Étape Transition)
Outil de description : Schémas électriques, pneumatiques ....
Procédé à automatiser.
Commande les actionneurs en fonction du cycle à dérouler et des informations en provenance des capteurs.
Permet à l'utilisateur d'interagir avec le système.
M2102 Automatisme S2
8IUT Toulon, GEII Ch1 : Architecture des S.A
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)
M2102 Automatisme S2
9IUT Toulon, GEII Ch1 : Architecture des S.A
(1) : l'API transmet les ordres de commandes aux préactionneurs, sous forme de niveaux électriques « Tout ou Rien » (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 ...).
M2102 Automatisme S2
10IUT Toulon, GEII Ch1 : Architecture des S.A
Le Tracker solaire est une unité de production d'énergiéélectrique utilisant un panneau photovoltaïque dont lepositionnement est automatisé afin de maximiser larécupération d'énergie par les panneaux au cours de lajounée et/ou de l'année.Celle-ci est stockée dans des batteries tampon;l'automatisme permet le positionnement automatique dupanneau ainsi que la gestion des charges des batteries.
Tracker Solaire
Optimisation du rendement journalier
Énergie Solaire
Énergie Électrique
Consommable
3 – Système-Exemple 1 : Le Tracker Solaire
M2102 Automatisme S2
11IUT Toulon, GEII Ch1 : Architecture des S.A
Ce système sera repris pour illustrer certains ascpects du cours. Un schéma structurel partiel est donné en page suivante.
A terme, les PR, PO et PC comporteront les sous ensembles suivants :
Partie Commande(P.C)
Partie Opérative(P.O)
Partie Relation(P.R)
API :
Wago 750-841
Relais 24Vdc Moteur à CC
Support rotatif
Détecteurs Fin de course
Capteur de position potentiométriques
E Ana750-432
E TOR750-483
S .TOR : Wago 750-534
Panneaux solaires PV + Batteries
Écran tactile (Wago Webpanel)
Boutons poussoirs
(1)
(2)(3)
(4)
(5)
(6)
(7)
(9)
Ethernet
M2102 Automatisme S2
12IUT Toulon, GEII Ch1 : Architecture des S.A
détecteurs
Capteur
Préactionneurs
Actionneur
Retour
M2102 Automatisme S2
13IUT Toulon, GEII Ch1 : Architecture des S.A
Référence : Désignation : Rôle : Catégorie :
KA1 à KA4 Relais de commande Alimenter le Moteur à courant continu en fonction des ordres de commande délivrés par l'API afin de permettre sa mise en rotation dans le sens souhaité.
Préactionneur
S0, S1, S2 Boutons poussoirs Fournir les ordres de commande au système
Commande & Signalisation
FC1, FC2 Détecteurs de fin de course
Indique à l'API l'arrivée du support rotatif en butée EST (FC1) ou OUEST (FC2).
Détecteur
P1 Capteur de position angulaire potentiométrique de
Délivre une tension proportionnelle au déplacement du panneau
Capteur
MCC Moteur à courant continu
Déplace le support rotatif du panneau solaire
Actionneur
M2102 Automatisme S2
14IUT Toulon, GEII Ch2 : Les API
II / Les Automates Programmables Industriels
1 - Introduction
Les automates programmables industriels sont apparus à la fin des annéessoixante, à 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 pneumatiquespour la réalisation des parties commandes
⇒ logique câblée
Inconvénients : cher, pas de flexibilité, pas de communication possible
M2102 Automatisme S2
15IUT Toulon, GEII Ch2 : Les API
Contraintes du milieu industriel (1) :
✓ Influences externes :
- poussières,
- température,
- humidité,
- vibrations,
- parasites électromagnétiques, …
→ Solution : utilisation de systèmes à base de microprocesseurspermettant une modification aisée des automatismes.
⇒ logique programmée
M2102 Automatisme S2
16IUT Toulon, GEII Ch2 : Les API
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 :
- Évolutif- Modulaire- Implantation aisée
M2102 Automatisme S2
17IUT Toulon, GEII Ch2 : Les API
L'Automate Programmable Industriel (API) est un appareilélectronique programmable, adapté à l'environnementindustriel, qui réalise des fonctions d'automatisme pourassurer la commande de préactionneurs et d'actionneurs àpartir d'informations logique, analogique ou numérique.
Définition :
M2102 Automatisme S2
18IUT Toulon, GEII Ch2 : Les API
Nature des informations traitées par l'automate :
➢Analogique : l'information est continue et peut prendre une valeurcomprise dans une plage bien déterminée. C'est le type d'informationdélivrée par un capteur (pression, température …).
Une grandeur analogique (tension, courant...) doit être convertie en grandeurnumérique par une carte d'entrée spécifique pour pouvoir être traitée par leprogramme automate.
➢Numérique : l'information est contenue dans des mots codés sous formebinaire ou bien hexadécimale. Il peut s'agir d'une variable interne duprogramme (compteur...), ou bien d'une grandeur délivrée par un Codeur.
➢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 boutonpoussoir …
M2102 Automatisme S2
19IUT Toulon, GEII Ch2 : Les API
Architectures compactes et modulaires :
Automates modulaires Automates compacts
Crouzet Millenium
Siemens 1200
Schneider Zelio
Schneider M340
Siemens 1500
Wago 750
M2102 Automatisme S2
20IUT Toulon, GEII Ch2 : Les API
Informations
(capteurs, dialogue)
Entrées
Sorties
Ordres
(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
M2102 Automatisme S2
21IUT Toulon, GEII Ch2 : Les API
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)
M2102 Automatisme S2
22IUT Toulon, GEII Ch2 : Les API
Déroulement d'un Cycle-automate :
Traitement Interne
Lecture des Entrées
Exécution du Programme
Écriture des Sorties
Temps de Cycle :
Il est de l'ordre de qq ms à qq dizaines de ms selon la puissance de l'API et la taille du programme
M2102 Automatisme S2
23IUT Toulon, GEII Ch2 : Les API
Quelques Applications :
M2102 Automatisme S2
24IUT Toulon, GEII Ch2 : Les API
➢ 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
M2102 Automatisme S2
25IUT Toulon, GEII Ch2 : Les API
➢ Caractéristiques du contrôleur WAGO 750-849 :
M2102 Automatisme S2
26IUT Toulon, GEII Ch2 : Les API
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
M2102 Automatisme S2
27IUT Toulon, GEII Ch2 : Les API
➔ 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
... ….
... ...
M2102 Automatisme S2
28IUT Toulon, GEII Ch2 : Les API
➢ Exemple de Carte D'E TOR (750-400) :
M2102 Automatisme S2
29IUT Toulon, GEII Ch2 : Les API
➢ 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(valeur entière signée sur 16 bits).
La température est représentée en 100eme de degrés, sur une plage -200°C / + 200°C.
Exemple :Pour T =155°C → N=15 550
M2102 Automatisme S2
30IUT Toulon, GEII Ch2 : Les API
➢ Exemple de Carte D'E analogiques 0-10V (750-647) :
la gamme de tension [0 V to +10V] est convertie par un CAN 12 bit, puis mise à l'échelle de façon à obtenir une gamme numérique : [0;32760]
Exemple :Pour Vmes=6,5V → N=6,5/10*32760
→ N=21 294
M2102 Automatisme S2
31IUT Toulon, GEII Ch2 : Les API
+-
+-
+-
+-
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
M2102 Automatisme S2
32IUT Toulon, GEII Ch2 : Les API
➢ Exemple de Carte De S TOR à Relais (750-513) :
M2102 Automatisme S2
33IUT Toulon, GEII Ch2 : Les API
➢ 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)
M2102 Automatisme S2
34IUT Toulon, GEII Ch2 : Les API
➢ Exemple de Carte De S TOR à Transistors (750-501) :
M2102 Automatisme S2
35IUT Toulon, GEII Ch2 : Les API
➢ Cractéristiques :
La tension commutée par une sortie à
transistor est nécessairement
continue
La fréquence de commutation peut être élevée (plrs kHz)
M2102 Automatisme S2
36IUT Toulon, GEII Ch2 : Les API
➢ Exemple de Carte De S analogiques 0/10V (750-513) :
La gamme numérique [0 ; 32760] est convertie en tension [0;10V] par un CNA 12 bit.
Exemple :Pour N=25 102 → VOUT= 25102/32760 * 10
→ VOUT= 7,67 V
M2102 Automatisme S2
37IUT Toulon, GEII Ch2 : Les API
Configuration de la P.C du tracker solaire :
Référence 750-849 750-452 750-432 750-531
Rôle Traitement du programme d'automatisation du tracker
Mesure du déplacement angulaire du support rotatif et de la charge tension batterie
détection des fin de course et des ordres d'initialisation
Contrôle du MCC via les relais KM1 à KM4
Type
750-849 750-452 750-432 750-531
M2102 Automatisme S2
38IUT Toulon, GEII Ch3 : Programmation IEC
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).
Cette norme définit entre autres :
- Les langages de programmation utilisés, ainsi que les règles de programmation et de syntaxe associées ;
- Le principe d'adressage des données traitées par l'API, ainsi que les différents formats de variables existant.
III / La Programmation IEC 1131-3
M2102 Automatisme S2
39IUT Toulon, GEII Ch3 : Programmation IEC
Toute donnée traitée par un programme automate possède :
- Une Direction (Entrée, Sortie, Interne)
- Un format (Bit, Octet, Mot ...)
- Un numéro d'adressage (valeur numérique 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' . 'Numéro'
1 / L'adressage des Données.
M2102 Automatisme S2
40IUT Toulon, GEII Ch3 : Programmation IEC
La direction :
→ Une entrée est une valeur, provenant de la P.O, qui ne peut être que lue par le programme chargé dans le contrôleur.
Notation : %I...
Exemple : capteur, détecteur, bouton poussoir etc...
→ Une sortie est une donnée à destination de la P.O, dont la valeur peut être fixée par l'automate. (Remarque : Une sortie peut aussi être lue par le programme)
Notation : %Q...
Exemple : voyant lumineux, commande d'un contacteur etc...
→ Une variable interne est une donnée qui n'est pas physiquement liée à la P.O, 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....
M2102 Automatisme S2
41IUT Toulon, GEII Ch3 : Programmation IEC
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 ..
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 : %.. B ..
M2102 Automatisme S2
42IUT Toulon, GEII Ch3 : Programmation IEC
✓ Un mot est une donnée codée sur 16 bit
Notation : %.. W ..
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 : % .. DW ..
% I W 2
M2102 Automatisme S2
43IUT Toulon, GEII Ch3 : Programmation IEC
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 relatif à l'adressage, on peut définir un type pour les variables d'un programme (liste non exhaustive) :
INT : valeur entière signée sur 16 bits
DINT : valeur entière 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 '
M2102 Automatisme S2
44IUT Toulon, GEII Ch3 : Programmation IEC
Le dernier champ d'adressage est constitué: - 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) T.O.R de l'API.
Exemple (Mot interne) : %MW42
Il s'agit du mot interne d'adresse 42.
** Cela dépend en réalité de la composition -16 bits ou 8 bits - du plan mémoire de l'API. Dans le 1er cas (Wago 750, Schneider) il s'agira d'un n° de mot ; dans le 2°cas (Siemens) d'un n° d'octet.
M2102 Automatisme S2
45IUT Toulon, GEII Ch3 : Programmation IEC
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 →
Z = (A . B + C) . D
... se traduit par le code suivant :
La norme IEC 1131-3 définit 5 langages de programmation : IL, ST, SFC, LD et FDB.
M2102 Automatisme S2
46IUT Toulon, GEII Ch3 : Programmation IEC
3 / Langage LD (LaDder ).
Il s'agit d'un langage graphique. On pourra l'utiliser comme langage à part entière ou bien 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.
M2102 Automatisme S2
47IUT Toulon, GEII Ch3 : Programmation IEC
➢ Opérations logiques de Base :
ET : OU : NON :
Exemple : Soit l'équation logique suivante →
Cette équation se traduit en LD par la ligne suivante :
Z = (A . B + C) . D
M2102 Automatisme S2
48IUT Toulon, GEII Ch3 : Programmation IEC
✓ Mémoire RS :
✓ Front montant :
t
t
t
A
B
x
t
t
t
A
x
t
tx
A✓ Front descendant :
M2102 Automatisme S2
49IUT Toulon, GEII Ch3 : Programmation IEC
➢ Temporisation : retard à l'activation
➢ Temporisation : retard au déclenchement
➢ Temporisation : monostable
t
t
A
x
3s
t
t
A
x
3s
t
t
A
x
3s
3s
3s
TON
TOF
TP
M2102 Automatisme S2
50IUT Toulon, GEII Ch3 : Programmation IEC
✓ Exemple de programme Ladder :
Une procédure de test permet de vérifier que le moteur de positionnement du tracker solaire est opérationnel.
Pour cela, deux B.P permettent de d'initialiser un déplacement jusqu'en butée, soit vers l'EST (Bouton poussoir S1 et fin de course FC1), soit vers l'OUEST (Bouton poussoir S2 et fin de course FC2), tout en évitant tout court-circuit au niveau des contacts KA1 à KA4.
Un déplacement vers l'Est est obtenu lorsque le moteur est alimenté avec une tension positive ; Un déplacement vers l'Ouest est obtenu lorsque le moteur est alimenté avec une tension négative
M2102 Automatisme S2
51IUT Toulon, GEII Ch3 : Programmation IEC
M2102 Automatisme S2
52IUT Toulon, GEII Ch3 : Programmation IEC
➢ 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
QD BOOL Sortie, passe à 'TRUE' lorsque CV = 0
QU BOOL Sortie, passe à 'TRUE' lorsque CV = PV
CV INT Valeur courante du compteur
M2102 Automatisme S2
53IUT Toulon, GEII Ch3 : Programmation IEC
Règle importante : Unicité des sorties
Dans une application d'automatisme, on doit veiller à ce que chacune des sorties ne reçoive pas d'ordre contradictoire du programme.
Cela implique que chaque sortie ne doit être représentée dans un programme LD, que par une seule bobine, ou une seule paire de bobines R/S.
M2102 Automatisme S2
54IUT Toulon, GEII Ch3 : Programmation IEC
4 / Langage FBD (Functional 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 :
Z = (A . B + C) . D
M2102 Automatisme S2
55IUT Toulon, GEII Ch3 : Programmation IEC
La règle de l'unicité des sortie s'applique également en FBD.
Les différentes fonctions standard disponibles en LD sont également disponibles :
Temporisations Détection de Fronts
Compteurs
Mémoire RS
M2102 Automatisme S2
56IUT Toulon, GEII Ch3 : Programmation IEC
5 / 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 :
Z = (A . B + C) . D
M2102 Automatisme S2
57IUT Toulon, GEII Ch3 : Programmation IEC
➢ Comparaison (alternative IF … ELSE … … END_IF):
➢ Incrémentation d'une variable :
CPT := CPT + 1 ;
Affectation : « := »
M2102 Automatisme S2
58IUT Toulon, GEII Ch3 : Programmation IEC
➢ Boucle FOR :
➢ Boucle WHILE :
FOR i := 0 TO 9 BY 1 DO
.............. ;
END_FOR;
WHILE condition = TRUE DO
.............. ;
END_WHILE;
M2102 Automatisme S2
59IUT Toulon, GEII Ch3 : Programmation IEC
➢ 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 ;
M2102 Automatisme S2
60IUT Toulon, GEII Ch3 : Programmation IEC
- 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) ;
M2102 Automatisme S2
61IUT Toulon, GEII Ch3 : Programmation IEC
✓ Exemple d'utilisation :Dans le système "tracker solaire", on utilisera un sous-programme en langage ST afin de calculer la position angulaire du panneau à partir du mot délivré par la carte d'entrée analogique :
- La carte délivre une valeur %IW0 comprise entre 0 et 32760 pour une tension variant de 0 à 10V.- Le potentiomètre délivre une tension variant de 2V à 8V lorsque la position évolue de -60° à +60°.
Pos
%IW0
Pos = a x %IW0 + b
M2102 Automatisme S2
62IUT Toulon, GEII Ch3 : Programmation IEC
6 / Langage SFC (Sequential Functional Chart ).
Il s'agit du langage dérivé de la norme Grafcet. Ses différentes structures sont bien adaptées aux SAP.
Il es basé sur la décomposition d'une tâche en étapes, auxquelles dont associées des actions à réaliser, et séparées par des transitions.
Lorsqu'une étape est active les actions associées à l'étape sont activées.Lorsque la réceptivité avale 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 !!!
M2102 Automatisme S2
63IUT Toulon, GEII Ch3 : Programmation IEC
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 de variables ( exemple : (a OR b) AND NOT c )
- De comparaison entre des valeurs numériques (exemples : A > 100, A<>B, A=5)
- 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.
M2102 Automatisme S2
64IUT Toulon, GEII Ch3 : Programmation IEC
Le grafcet ci-contre permet d'initialiser le système "tracker solaire" :
- Suite à un appui sur le B.P d'initialisation (S0), le panneau est positionné en butée EST (FC1) en alimentant le moteur dans le sens positif (Fermeture de KA1 et KA3).
- Une fois arrivé en butée, l'arrêt du moteur est obtenu en court-circuitant celui-ci (Fermeture de KA1 et KA2).
- Au bout d'un délai de 2s, le courant moteur peut être considéré comme nul, la procédure d’initialisation est terminée.
M2102 Automatisme S2
65IUT Toulon, GEII Ch3 : Programmation IEC
✓ Étapes :
L'étape initiale est matérialisée par undouble 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)
M2102 Automatisme S2
66IUT Toulon, GEII Ch3 : Programmation IEC
Entrées TOR
Temporisation
Sorties TOR,activées pendant la durée de l'étape (attribut 'N' : normal.
✓ Réceptivités : ✓ Actions :
M2102 Automatisme S2
67IUT Toulon, GEII Ch3 : Programmation IEC
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.
M2102 Automatisme S2
68IUT Toulon, GEII Ch3 : Programmation IEC
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
D
1s
M2102 Automatisme S2
69IUT Toulon, GEII Ch3 : Programmation IEC
✓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
M2102 Automatisme S2
70IUT Toulon, GEII Ch3 : Programmation IEC
✓ Cas particulier d'utilisation de la branche OU :
Reprise de séquence saut d'étapes
M2102 Automatisme S2
71IUT Toulon, GEII Ch3 : Programmation IEC
✓ Exemple de reprise de séquence :
Dans un cycle de fonctionnement du tracker solaire, on choisit de déplacer le panneau par pas angulaire, de 15°, toutes les heures.
Ce déplacement se fait jusqu'à atteindre la butée OUEST (FC2).
Rq : les caractères (* et *) permettent de commenter un programme. Ici, la réceptivité entre 'Step3' et 'STep4') sera codée en TP.
M2102 Automatisme S2
72IUT Toulon, GEII Ch3 : Programmation IEC
✓Structure ET : Parallélisation. Elle permet d'effectuer en simultané plusieurs séquences.
Divergence
Convergence
M2102 Automatisme S2
73IUT Toulon, GEII Ch3 : Programmation IEC
✓ 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
M2102 Automatisme S2
74IUT Toulon, GEII Ch3 : Programmation IEC
7 - Plateforme logicielle CoDeSys
Le logiciel CoDeSys est une plateforme de développement ouverte,multimatérielle utilisée entre autres pour programmer les contrôleurs WAGO 750 utilisés en TP - mais des bibliothèques existent pour une grande variété d'API et de contrôleurs.
Ce logiciel obéit aux spécification de la norme CEI 61131-3, et permet donc d'utiliser les 5 langages définis par cette norme.
Le paramétrage des différentes fonctionnalités matérielles (choix de la CPU et des cartes d'E/S) sera également effectué sur ce logiciel.
Enfin, il sera possible de réaliser des pages de visualisation qui permettront de superviser le système grâce à des pages animées par les variables du programme de l'API (qui pourront le cas échéant êtres converties en pages Web.)
M2102 Automatisme S2
75IUT Toulon, GEII Ch3 : Programmation IEC
➢ Ressources : L'onglet ressources du projet permet de définir les principales caractéristiques logicielles et matérielles du projet :
Définition des modules d'E/S
Choix de la CPU
Organisation du projet en tâches
Ajout de bibliothèques logicielles
M2102 Automatisme S2
76IUT Toulon, GEII Ch3 : Programmation IEC
➢ Langage CFC (Component Functional Chart).
Ce langage, utilisé dans CoDeSys, 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.
M2102 Automatisme S2
77IUT Toulon, GEII Ch3 : Programmation IEC
En revanche, on l'utilisera comme langage de programmation principal qui appellera les différentes tâches :
Le numéro figurant sur chaque bloc indique l'ordre d’exécution durant le cycle automate.
M2102 Automatisme S2
78IUT Toulon, GEII Ch3 : Programmation IEC
En outre, il permet de traiter les données numériques :
Opérations
Comparaisons
Ainsi que les chaînes de caractères :
M2102 Automatisme S2
79IUT Toulon, GEII Ch3 : Programmation IEC
➢ 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.
M2102 Automatisme S2
80IUT Toulon, GEII Ch3 : Programmation IEC
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.
M2102 Automatisme S2
81IUT Toulon, GEII Ch3 : Programmation IEC
➢ Organisation du projet :Le Projet CoDeSys peut contenir différents "Modules". Il 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.
M2102 Automatisme S2
82IUT Toulon, GEII Ch3 : Programmation IEC
➢ Échange de variables entre programmes :
➔Programme Principal PLC_PRG :
➔ Bloc Fonctionnel G2 :
➔ Bloc Fonctionnel G1 :
M2102 Automatisme S2
83IUT Toulon, GEII Ch3 : Programmation IEC
➢ Structures "objets" :
Des structures analogues à celles utilisées dans les langages orientés "objet" sont utilisables dans CoDeSys pour échanger des variables entre différents modules.
Dans le cas du SFC, pour chaque étape, les 2 variables suivantes sont automatiquement créées lorsque la bibliothèque "iec_sfc.lib" est incluse au projet :
• 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
M2102 Automatisme S2
84IUT Toulon, GEII Ch3 : Programmation IEC
Exemple de Synchronisation de grafcets :
M2102 Automatisme S2
85IUT Toulon, GEII Ch3 : Programmation IEC
➢ 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.
M2102 Automatisme S2
86IUT Toulon, GEII Ch3 : Programmation IEC
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ée
Action de sortie
➢ Actions programmées (langage SFC) :
M2102 Automatisme S2
87IUT Toulon, GEII Ch3 : Programmation IEC
➢ 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
M2102 Automatisme S2
88IUT Toulon, GEII Ch3 : Programmation IEC
➢ 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