Université de Mascara
Faculté des Sciences et de la Technologie
Département Electrotechnique
Intitulé du Module : Automates programmables industriels(API)
Intitulé de la licence ou du master : 3éme Année Licence Automatique
Semestre : 06
Crédit : 06
Enseignant: Dr. [Link]
Année Universitaire : 2019-2020
Notion De Point De Vue
Dans la conception d'un système automatisé séquentiel, il faut tenir compte des
deux composantes qui le forment. En effet, un automatisme séquentiel ou un système
automatisé séquentiel est composé de deux parties complémentaires ; ce sont la partie
"opérative" et la partie "commande".
1. Les différents points de vue du Grafcet
La description du comportement attendu d'une partie commande du système
automatisé peut se représenter par des Grafcet de différents niveaux (figure1). Il s'agit
du :
- Grafcet point de vue système ;
- Grafcet point de vue partie opérative ;
- Grafcet point de vue partie commande.
Figure 1 Schéma général de communication entre la partie commande et la partie
opérative d'un système automatisé.
La partie "opérative" est le processus physique à automatiser. Cette partie se
compose de trois ensembles qui sont l'unité de production, les actionneurs qui mettent
en mouvement la partie mécanique par l'intermédiaire des effecteurs et les capteurs.
L'unité de production a pour fonction de réaliser la fabrication ou la transformation
dans le processus industriel. Les actionneurs sont des éléments physiques qui
apportent à l'unité de production l'énergie nécessaire à son fonctionnement à partir
d'une source d'énergie extérieure. Un moteur est considéré comme un actionneur. Les
capteurs sont aussi des éléments physiques dont le rôle consiste à créer à partir
d'informations de natures diverses (température, déplacement, etc.) des informations
utilisables par la partie "commande", par exemple, l'ouverture ou la fermeture d'un
circuit électrique.
La partie "commande" élabore des ordres destinés au processus à automatiser en
fonction des informations (comptes rendus) qui lui parviennent de la partie
"opérative" et des consignes qu'elle reçoit en entrée. La partie "opérative" est appelée
partie puissance. La partie "commande" d'un système automatisé peut être réalisée par
l'intermédiaire d'un automate, d'un ordinateur ou par un circuit de logique
câblée (séquenceur).
Figure 2 Exemple de communication entre PC et PO Système automatisé
Considérons l'exemple de la poinçonneuse pour suivre l'évolution du Grafcet quand
on prend en compte sa structure au point de vue Partie opérative (PO) et Partie
Commande (PC).
La presse est composée d'un premier poinçon C, inférieur et fixe, d'un poinçon
supérieur mobile A et d'un troisième poinçon intermédiaire mobile B. La figure 3
montre une description schématique de cette presse.
Figure 3 Description schématique du cycle de la presse.
Le poinçon supérieur A permet de comprimer la matière introduite. Le poinçon
intermédiaire B sert à l'évacuation de la matière comprimée.
1.1. Grafcet point de vue système
Il représente la description du procédé définit par le cahier des charges
fonctionnel. Son écriture en langage clair permet sa compréhension par tous : du
client demandeur de la machine à son utilisateur (figure 4).
Figure 4 Grafcet point de vue système.
1.2. Grafcet point de vue partie opérative (PO)
Il tient compte de la structure de la PO pour décrire le processus. Il reprend la
structure du Grafcet point de vue système en mettant en jeu les constituants de la PO
(figure 5).
Figure 5 Grafcet point de vue PO.
1.3. Grafcet point de vue partie commande (PC)
L'observation du système se fait à partir de la fonction partie commande en tenant
compte des éléments technologiques, interfaces entre PC et PO (figure 6).
Figure 6 Grafcet point de vue PC.
1.4. Grafcet codé automate ou point de vue automate
Le Grafcet a toujours la même structure. Les codes du Grafcet précédent, point de
vue PC sont traduits en langage automate précisant les adresses des entrées et sorties,
références qui permettront les liaisons entre les bornes de l'automate et les autres
éléments du système (bouton-poussoir, capteurs, pré-actionneurs, etc.).
Pour résumer, on peut dire que :
✹ le Grafcet du point de vue « système » indique le fonctionnement du système
✹ le Grafcet du point de vue « partie opérative » indique le fonctionnement des
actionneurs
✹ le Grafcet du point de vue « partie commande » indique le fonctionnement des
préactionneurs
Exercice : le grafcet du distributeur automatique de boissons
Un distributeur automatique de boissons fonctionne de la
manière suivante :
Trois boutons commandent trois électrovannes branchées à
trois cuves contenant des liquides différents : de l’eau, du sirop
de cassis, et du sirop de menthe. Le distributeur permet
d'obtenir trois boissons différentes :
✹ De l’eau seule
✹ Un cassis à l’eau
✹ Une menthe à l’eau
Sur son pupitre de commande, le distributeur dispose de 3
boutons appelés :
✹ EAU
✹ CASSIS
✹ MENTHE
Si on veut un mélange, on appuie sur deux boutons simultanément : EAU et CASSIS,
ou EAU et MENTHE ; tous les autres mélanges sont interdits. L'eau est gratuite ; pour
obtenir l'un des deux mélanges autorisés, il faut introduire une pièce qui est restituée à
chaque fausse manœuvre (mélanges interdits) ou en cas de fourniture d'eau seule.
Pour les boissons payantes, il faut faire l’appoint : l’appareil ne rend pas la monnaie.
On donne la liste des 6 capteurs présents dans le distributeur automatique de boissons:
Dans une transition on peut utiliser un ou plusieurs capteurs, en les séparant par les
opérateurs logiques ET, OU, et NON. Exemple : E signifie « bouton EAU enfoncé » ;
E.C signifie « bouton EAU enfoncé et bouton CASSIS enfoncé (simultanément) » ; C
+ « M barre » signifie « bouton CASSIS enfoncé ou bouton MENTHE non enfoncé ».
On donne la liste des actionneurs présents dans le distributeur automatique de
boissons :
Chacune des 3 électrovannes distribuant une boisson peut être soit « ouverte » soit
«fermée », le monnayeur rend toute la monnaie introduite lorsqu’il est actionné, et
l’attente sans action du système sera indiqué par le mot Attente.
Trouvez le GRAFCET du distributeur automatique de boissons en utilisant les noms
des capteurs et des actionneurs donnés précédemment.
Le Grafcet - Représentation selon un point de vue
Exemple : unité de perçage
Les perçages sont effectués en même temps après action sur un bouton poussoir
Départ Cycle.
Représentation selon le point de vue "Système" ou "Processus" (Grafcet Niveau 1)
Représentation selon le point de vue "Partie Opérative"
Représentation selon le point de vue "Partie Commande" (Grafcet Niveau 2)
1
La mise en œuvre d'un automate programmable comporte trois
phases principales :
la conception du système de contrôle, qui se fait à l'aide
d'outils méthodologiques et de modes de représentation
propres à l'automaticien;
la programmation de l'automate, qui consiste à transposer le
système de contrôle obtenu dans le langage de
programmation propre à l'automate;
l'exécution du programme, enfin, prise en charge par un
logiciel interne à l'automate. Tout automate peut résoudre
n'importe quel problème de logique combinatoire ou
séquentiel.
2
Il s'agit de problèmes où tous les signaux
provenant du processus (ou en tout cas une
majorité d'entre eux) sont susceptibles de
provoquer, à n'importe quel moment, une réaction
de l'automate. Le cas typique étant celui d'une
surveillance de conditions d'alarme (dépassement
de niveau, surchauffe de moteurs, ...).
3
1.1. MODE DE REPRESENTATION
Le formalisme à relais, à logigrammes ou à équation
booléennes, convient tout à fait bien à la représentation de
ce genre d'automatisme. Il suppose en effet que l'on a
affaire à des modules fonctionnels travaillant en parallèle et
de manière instantanée (figure 1.)
1.2. PROGRAMMATION
Les langages de programmation à relais, logigrammes, ou
équations booléennes sont évidemment les prolongements
naturels des modes de représentation qui précèdent.
Programmer dans ces langages consiste pratiquement à
reproduire sur la console de programmation les schémas ou
les équations établis sur concepteur. C'est, dans ce cas, la
console qui se charge d'établir la séquence d'instructions
machines correspondante
4
5
1.3. EXECUTION
Le mode d'exécution qui s'impose dans le contexte parallèle considéré
ici est le mode d'exécution linéaire et cyclique puisqu'il s'agit en fait de
simuler au mieux le fonctionnement d'un ensemble de modules
fonctionnels travaillant en parallèle. Toutes les entrées de l'automate
seront ainsi scrutées à chaque cycle et toutes ses sorties seront
recalculées à chaque cycle.
La figure 2. symbolise les trois phases qui viennent d'être décrites.
6
7
8
2 Les langages de programmation
La norme IEC 1131-3 définit entre autres choses, cinq langages qui peuvent
être utilisés pour la programmation d’applications d’automatisme. Les cinq
langages sont :
- SFC « Sequential Function Char »
- FB « function block diagram »
- ST « Structured Text »
- LD « ladder diagram »
- IL « instruction list»
2.1 Architecture d’un projet
Un projet est composé de configurations.
Une configuration: plate-forme
matérielle composée d’une ou plusieurs
ressources.
Une ressource représente un cycle automate,
divisée en plusieurs unités de programmation
appelées POUs (program organization unit).
Les POUs sont organisés en une architecture
hiérarchisée. Les programmes peuvent être décrits
avec les langages graphiques ou textuels SFC, FBD,
LD, ST ou IL. Les POUs peuvent être des
programmes, des fonctions ou des
blocs fonctionnels.
2.2 les Variables
* Les variables peuvent être locales à un POU Une variable
locale ne peut être utilisée que par un seul POU.
* Les variables peuvent être globales elles peuvent alors être
utilisées par tous les POUs d’une ressource.
2.2 les Variables
2.2 les Variables
*Une variable représentée directement peut être
utilisée dans les programmes pour accéder à une voie
d’E/S (entrée/sortie). L’identificateur d’une telle
variable commence toujours par le caractère « % »
Table des entrées/sorties et mémoire interne
En fonction de sa puissance, un API possède
Des signaux d’entrées/sorties physiques
Des entrées logiques (accessibles bit/bit ou par mot)
Des sorties logiques (accessibles bit/bit ou par mot)
Des entrées analogiques
Des sorties PWM
Des entrées de comptage
…..
De la mémoire interne pour le stockage de données
(transition, étapes, calculs intermédiaires…)
Bits ou mots « système » (ex First_Cycle)
Bits ou mots réservés pour certains périphériques (ex FinTimer)
Bits ou mots utilisables pour les données, mémorisés ou non suite à une coupure
d’alimentation.
14
Table des entrées/sorties et mémoire interne
La Table des symboles permet d’associer à chaque symbole un emplacement
physique ou en mémoire.
Sortie 1 bit
Bit interne
Mot interne
Entrée 1 bit
15
2.3 Les différents langages
*SFC (« sequential function char ») : issu du langage
GRAFCET, ce langage, de haut niveau, permet la
programmation aisée de tous les procédés séquentiels ;
*FBD (« function block diagram », ou schéma blocs) : ce
langage permet de programmer graphiquement à l’aide de
blocs, représentant des variables, des opérateurs ou des
fonctions. Il permet de manipuler tous les types de variables ;
*LD (« ladder diagram », ou schéma à relais) : langage
graphique dédié à la programmation d’équations booléennes
(true/false), très utilisé malgré qu’il soit très bas niveau;
2.3 Les différents langages
*ST (« structured text » ou texte structuré) : ce langage est un
langage textuel de haut niveau. Il permet la programmation
de tout type d’algorithme plus ou moins complexe ;
*IL (« instruction list », ou liste d’instructions) : ce langage
textuel de bas niveau est un langage à une instruction par
ligne. Il peut être comparé au langage assembleur.
2.4 Le langage SFC
- Un langage de description de systèmes séquentiels
- Le langage SFC est dérivée du GRAFCET
2.4 Le langage SFC
- Un langage de description de systèmes séquentiels
- Le langage SFC est dérivée du GRAFCET c’est
pourquoi on va présenter le grafcet
2.5 Le langage Strucured Text ST
- Le langage ST (structured text) est un langage textuel
de haut niveau dédié aux applications
d’automatisation. Ce langage est principalement utilisé
pour décrire les procédures complexes,
difficilement modélisables avec les langages
graphiques. C’est le langage par défaut pour la
programmation des actions dans les étapes et des
conditions associées aux transitions du langage SFC.
2.5 Langage ST:
Les types d’énoncés du langage ST sont :
— assignation ;
— sélection IF-THEN-ELSIF-ELSE ;
— énoncé RETURN ;
— sélection CASE ;
— itération WHILE ;
— itération REPEAT ;
— itération FOR ;
— énoncé EXIT.
21
2.5 Langage ST:
Enoncé IF-THEN-ELSIF-ELSE :
22
2.5 Langage ST:
Enoncé Return : termine l’exécution du programme
23
2.5 Langage ST:
Enoncé CASE :
24
2.5 Langage ST:
Enoncé WHILE :
Enoncé REPEAT : énoncé d’itération avec test d’itération en fin de boucle.
25
2.5 Langage ST:
Enoncé FOR :
Enoncé EXIT : quitte une boucle d’itération FOR, WHILE ou REPEAT
26
2.6 Le langage LADDER
Diagramme à contacts, utilisé pour programmer des
éléments combinatoires
« ET » «OU»
Vcc
GND a b S
Relais Bobine de sortie
Normalement ouvert
c
Relais normalement fermé
S = a . (/b + c)
2.6 Le langage LADDER
a b S
Un réseau
On utilise un réseau par calcul
Une section est un ensemble de réseaux
Pour structurer le programme, on l’organise en sections
2.6 Le langage LADDER
2.6 Le langage LADDER
2.7 Le langage FDB
- Le langage FBD (function block diagram) est un
langage graphique.
Il permet la construction d’équations complexes à
partir des opérateurs standards, de fonctions ou de
blocs fonctionnels.
2.7Langage FDB
- Les Blocs Fonctionnels sont des POUs avec
plusieurs paramètres d'entrée et de sortie.
- L’instanciation est possible. Il est possible de
créer plusieurs instances (copies) nommées d’un blocs.
Intérêt sur des taches répétitives, exemple:
Programmation d’un bloc fonctionnel réalisant le
démarrage étoile/triangle d’une MAS pour piloter 10
moteurs.
-Les blocs fonctionnels peuvent être programmé en ST,
LD, IL.
-Un bloc fonctionnel peut appeler un autre bloc (pas
toujours possible)
32
2.8 traduction du SFC en ST
Exemple Pour chaque transition on définit une variable interne TOR
t20_21 t21_22 t22_20
20 Chacune vaut 1 si la transition est vrai, sinon 0
bp2m + bp2d
Pour chaque étape on définit une variable interne TOR
21 X20 X21 X22
Chacune vaut 1 si l’étape est active, 0 sinon
dp2
22 n=2 Entrées physiques : bpm2m, bp2d, dp2 (TOR)
Variable interne : n (entier)
1
2.8 traduction du SFC en ST
Modèle en trois parties, partie 1 : les transitions
(* Ceci est un commentaire *) Affectation :=
(* Transitions *)
t20_21 := X20 AND (bp2m OR bp2d) ;
Opérateurs
t21_22 := X21 AND dp2 ; NOT, AND, OR
t22_20 := X22 ;
2.8 traduction du SFC en ST
Modèle en trois parties, partie 2 : les étapes
(* Etapes *)
(* Activation *)
IF %S13 OR t22_20 THEN X20 :=TRUE ; END_IF;
IF t20_21 THEN X21 :=TRUE; END_IF;
IF t21_22 THEN X22 :=TRUE; END_IF;
2.8 traduction du SFC en ST
Modèle en trois parties, partie 2 : les étapes
(* Etapes *)
(* Désactivation *)
IF t20_21 THEN X20:=FALSE; END_IF;
IF t21_22 OR %S13 THEN X21:=FALSE; END_IF;
IF T22_20 OR %S13 THEN X22 :=FALSE; END_IF;
2.8 traduction du SFC en ST
Modèle en trois parties, partie 3 : les sorties
(* Sorties *)
IF X22 THEN N:=2; END_IF;
Pour une sortie TOR : IF X22 THEN S:= TRUE;
3 Fonctions avancées des automates
L’outil de
développement met à
disposition une
bibliothèque de
macrofonctions
Selon la puissance de
l’automate, elles
pourront être utilisées
Ici syntaxe OMRON en LADDER
Comparaison
Temperature est un entier,
1 sortie ou variable interne
Température<50
Il y en a plein d’autres (< > = …..)
Compteur est un entier,
sortie ou variable interne
ADDITION
Pour que l’opération ne se déroule qu’une seule fois
1 P Compteur=Compteur+40
Il y en a plein d’autres (logiques, arithmétiques sur des entiers ou des réels etc…)
Temporisation Le nombre de TIMERS disponibles dépend de l’API
1 1 Lance timer
t/X1/5s fin_tempo
2 2 Symbole associé
au drapeau de fin du timer (bit système)
(TIM0, TIM1,etc pour un CPM2A)
Décompteur
Signal Numéro du décompteur
d’initialisation
Valeur initiale
Signal de
décrémentation
0 Compteur = 6
dcy
bit interne indiquant le passage par 0 du décompteur
Décrémenter
1 Compteur
pièce passe
Fermer caisse
2 C si Compteur=0
Le nombre de COMPTEURS disponibles dépend de l’API
Compteur=0 Compteur≠0
Certaines sorties peuvent être utilisées pour générer un
signal de période et de rapport cyclique programmables
Automate OMRON : 2 sorties
Fréquence de 0,1Hz à 999,9Hz
Rapport Cyclique de 0 à 100%
Programmation
sortie PWM0
Lance la sortie PWM fréquence 10 Hz
rapport_cyclique
variable
sortie PWM0
Arrête la sortie PWM arrêt
Certains automates disposent d’un système d’exploitation autorisant le
multitâches.
Symboles globaux, communs à toutes les tâches
Tâches cycliques (bien organisées…)
Chien de garde :
Si le temps de cycle maximum a été atteint
Symboles locaux
Tâches d’interruption
Sans Multitâches, on peut se débrouiller aussi…
Une interruption est un évènement se produisant n’importe quand
- qui suspend l’exécution de la tâche cyclique en cours
- qui exécute une tâche spécifique
- qui reprend la tâche spécifique là où elle a été suspendue
Certaines entrées d’automate peuvent être configurées comme entrées
d’interruption sur front montant ou descendant
Des évènements internes peuvent déclencher une interruption (coupure
d’alimentation, fin de comptage, temps cyclique programmé)
Cycle de l’automate lors
d’une interruption
Exemples de configuration d’une interruption
Dans la tâche principale, on démasque (autorise) l’interruption
interruption
sur le bit 0 de la carte d’interruption N°0
Il faut une carte d’entrées dédiée
interruption
*
toutes les secondes
Il faut une carte d’entrées dédiée
On décrit ce qu’il y a à réaliser dans la tâche d’interruption demo (projet4_CJ1M)
Certaines entrées peuvent être utilisées pour compter des impulsions
(maximum environ 100 kHz soit 10 ms)
Une interruption est déclenchée lorsque le compteur atteint une valeur
programmable
Le fonctionnement est celui d’une interruption : démasquage et tâche
d’interruption
Certains automates disposent de modules de régulation
Ils sont dédiés à des phénomènes lents (>100ms)
On configure la fréquence d’échantillonnage, le gain statique, des
correcteurs éventuels (P, I, D)
53
La CPU
Les modules d’E/S TOR
Les modules d’E/S Analogiques
Les autres modules
La CPU
Les modules d’E/S TOR
Les modules d’E/S Analogiques
Les autres modules
*
Le choix d’une carte d’entées logiques se fera en fonction de plusieurs
critères :
- Le type de tension d’alimentation CC/CA ou les deux
- La tension nominale d’alimentation
- Le type de capteurs raccordables en continu (PNP ou
NPN)
- La rapidité de la carte (temporisation d’entrée)
- L’isolation entre voies ou groupes de voies
750-400 Carte 2 d'entrées digitales 24 VDC (3ms) PNP ou
contact sec
=1
750-401 Carte 2 d'entrées digitales 24 VDC (0,2ms) PNP
Branchement d’un capteur PNP
Principe =>
Branchement
+24V
=1
Détection
0V
Capteur PNP
Automate
750-408 Carte 4 d'entrées digitales 24 VDC (3ms) NPN ou
contact sec
=1
750-409 Carte 4 d'entrées digitales 24 VDC (0,2ms) NPN
Branchement d’un capteur NPN
Principe =>
Branchement
=1
+24V
Détection
0V
Capteur NPN
Automate
750-405 Carte 2 d'entrées digitales 230 V AC(10ms)
=1
Il existe plusieurs types de cartes de sorties TOR :
- Sorties à transistors bipolaires ou à effet de champ
(alimentation continue)
- Sorties à triacs (alimentation alternative)
- Sorties à relais (alimentation CC ou CA)
Critères de choix:
- Le type de tension d’alimentation CC/CA ou les deux
- Le courant de sortie (0.5A à 5A)
- La tension nominale d’alimentation (24V à 240V)
- La fréquencede commutation (de 0.1Hz à 5000Hz)
- Le type de charge (résistive, inductive ou capacitive)
- Le courant maximal pour l’ensemble de la carte
- L’isolation entre voies ou groupes de voies
- La durée de vie (nombre de millions de manœuvres)
750-501 Carte 2sorties digitales 24 V DC (5kHz 0,5A) PNP
=1
750-502 Carte 2 sorties digitales 24 V DC (2,5kHz 2A)
750-516 Carte 4 sorties digitales 24 V DC (5kHz 0,5A) NPN
=1
750-517 carte 2 sorties à relais 230 VAC, 300 VDC (1A,
6 commutations par minute à 1A)
Neutre
Phase
Les cartes d’entrées analogiques se classent par :
- Leur grandeur d’entrée :courant, tension, résistance
ou thermocouple
- Leur calibre
- Leurs nombres d’entrées de 2 à 16
- Leur résolution en nombre de bits de 12 à 16 bits ou
9 à 15 bits plus signe en bipolaire
- Leur rapidité de conversion liée au principe de
mesure (intégration, conversion directe)
* Automatismes industriels (cours)
* Dr. Ir. H. LECOCQ:LES AUTOMATES PROGRAMMABLES :
Caractéristiques et méthodologie de programmation (Livre)
68