Upload
lamphuc
View
256
Download
8
Embed Size (px)
Citation preview
Automates programmables industriels
C 652 Automates
programmables industriels
Alessandro GIUA
LSIS UMR-CNRS 6168
Cours 8h
3A - Génie Industriel et Informatique
Polytech' Marseille
2013
1
Automates programmables industriels
References
I. Bergougnoux. A.P.I. Automates Programmables Industriels.
Notes du cours au Polytech’Marseille, 44 pages, 2004-05. http://iusti.polytech.univ-mrs.fr/~bergougnoux/publiperso/coursAPI.pdf
P. Bonnet. Informatique Industrielle: E/S POUR API. Notes du
cours à l’Univ. de Lille 1, 90 pages, 2010-11. http://www-lagis.univ-lille1.fr/~bonnet/GSI/API_GSI.pdf
M. Bertrand. Automates programmables industriels. Techniques
de l’Ingénieur, S 8015, 14 pages, 2001. http://www.patrick-roch.com/ingemeca/docs/_Genie_Informatique/
Automates%20programmables%20industriels.PDF
W. Bolton. Les automates programmables industriels. Dunod,
L'Usine Nouvelle, 415 pages, 2010. 2
Automates programmables industriels
Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD
3
Automates programmables industriels
Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD
4
Automates programmables industriels
Introduction
Automatisation
L'automatisation d’un procédé consiste à transférer tout ou
partie des tâches de coordination, auparavant exécutées par des
opérateurs humains, dans un système de côntrole.
Le système de contrôle mémorise le savoir faire des opérateurs
et exploite un ensemble d'informations prélevées sur le procédé
pour élaborer la succession des ordres nécessaires pour obtenir
les actions souhaitées.
5
Automates programmables industriels
Introduction
Objectifs de l'automatisation
accroître la productivité du système (quantité de produits
élaborés pendant une durée donnée)
améliorer la flexibilité de production
améliorer la qualité du produit
s'adapter à des contextes particuliers :
• environnements hostiles pour l'homme.
• tâches physiques ou intellectuelles pénibles pour l'homme
augmenter la sécurité
etc...
6
Automates programmables industriels
Introduction
Structure d’un système automatisé
• Partie Opérative: le procédé à contrôler
• Partie Commande: le système de côntrole
• Partie Supervision: l’operateur (surveillance, marche/arrêt)
mesures
commandes
rapports
ordres
capteurs
action-
neurs
Procédé
Partie operative
Système
de
côntrole
Operateur
Partie commande Partie supervision
7
Automates programmables industriels
Introduction
Exemple: porte d’un garage
Actionneurs et commandes:
- moteur qui ouvre (O) ou ferme (F) la porte
Ordres:
- le télécommande (t) pour ouvrir
Capteurs et mesures:
- position porte (pf: fermée; po: ouverte)
- cellule photoelect: obstacle detecté (d)
Rapports:
- Voyant (V) : porte en exercice
F O
pf po
d
t V
8
Automates programmables industriels
Introduction
Exemple: porte d’un garage
mesures
commandes
rapports
ordres
capteurs
action-
neurs
Procédé Système
de
contrôle
Operateur
F O
pf po d
t V
pf, po, d
F, O
V
t
9
Automates programmables industriels
Introduction
Implementation
Le système de contrôle peut être réalisé:
•Logique programmée : API
•Logique électronique (cablée) : combinatoire ou
séquentielle
•Logique pneumatique : pilotage par air comprimée
10
Automates programmables industriels
Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD
11
Automates programmables industriels
API - Définition
Norme IEC 61131-1
Système numérique destiné à être utilisé
dans un environnement industriel
• Intégration facile dans un système d’automatisme industriel et utilisation
facile des fonctions prévues
• Commande du processus au moyen d’entrées et de sorties Numeriques (p.
e., Tout-ou-Rien) ou Analogiques
• Fonctions spécifiques: logique, mise en séquence, temporisation,
comptage, calcul arithmétique
• Exécute des activités définies par l'utilisateur sous forme de programme
écrit dans un langage textuel ou graphique
12
Automates programmables industriels
API – Exemple (1)
13
Automates programmables industriels
API – Exemple (2) Fonctions logiques [séquentielles]:
- remplir la cuve (durée, volume, niveau...), la vidanger
- agiter la solution, mettre le chauffage ...
Fonctions de régulation :
- réguler la température autour de la consigne
- réguler le pH de la cuve
Fonctions de surveillance :
- débordement de cuve,excès de température, de pH
- dérive du processus de fermentation
Fonctions de production:
- calculer le point d'arrêt de la fermentation...
Fonctions de communication :
- dialogue opérateur (écran IHM)
14
Automates programmables industriels
API - Caractéristiques
• fonctionnement en temps réel : l'échelle de temps est de l'ordre de 1 à 100 ms
• fonctionnement multitâche en temps partagé : toutes les activités
fonctionnent simultanément
• interaction avec les éléments matériels du processus
o prise en compte de signaux électriques --> entrées
o envoi de signaux électriques réalisant des actions sur le processus -->
sorties
• fonctionnement en réseau [application répartie, entrées/sorties distantes,
capteurs et actionneurs intelligents]
• fonctionnement sûr (garanti par une norme)
15
Automates programmables industriels
API et autres logiques
• Reconfigurable / Programmable
• Compact
• Modulaire
• Low-cost
16
Automates programmables industriels
API – Structure (1)
• Rack 19”
• Terminal de
programmation
Configuration minimale
• Alimentation • Unité centrale • Entrées / sorties
17
Automates programmables industriels
API – Structure (2)
• Communication
• Mémoire de masse
• PID
• Coprocesseur
Autres modules
• Servo-drive
• Encoder
• HMI
18
Automates programmables industriels
API – Unité Centrale (1)
Espace entrées (I) et sorties (O)
Ex: I1 = I1.1 …. I1.8 (1 byte) O1 … O32
I1 … I32
O1 … O32
T1 … T16
C1 … C16
P1 … P4
W1 … W512
Mémoire : composante fondamental de l’U.C.
Espace de travaille du SO
T = Temporisateurs C= Compteurs
P = PID
Espace données utilisateur
Ex: W1 = W1.1 …. W1.8 (1 byte)
Espace du Système Opérative (ROM) S.O.
Espace programme utilisateur PROG
19
Automates programmables industriels
API – Unité Centrale (2)
Un API est en permanence en activité dès sa mise sous tension
Cycle séquentiel (mode RUN)
0. diagnostic (auto-test)
1. acquisition des entrées
2. traitement des données
3. mise à jour des sorties
Mode STOP: exécution des
tâches (step 3) est suspendue.
Le cycle est protégé par un chien de guarde (watch-dog).
20
Automates programmables industriels
API - Unité Centrale (3)
Temps de cycle Varie selon taille du programme,
complexité des calculs, nombre
d'entrées/sorties, puissance de l'API,
etc. : p. e., 1÷20 ms
Peut-être mesuré per kbyte de
programme : p. e., 2 ms/kbyte).
Temps de réponse Temps nécessaire pour réagir à un
évènement
21
Automates programmables industriels
API – Modules I/O (1)
Modules ou cartes d'entrées - sorties (en anglais Input-Output: I/O)
interface entre API et procédé assurant découplage galvanique ou
fonctionel
Entrées: pour brancher capteurs, boutons, poussoirs, etc.
Sorties pour brancher actionneurs, voyants, vannes, etc.
Isolement galvanique Transformateurs d'isolement
Contacts à relais
Optocoupleurs
Isolement fonctionel Voltage follower
22
Automates programmables industriels
API – Modules I/O (2)
I / O
A relais 024 V d.c.
0230 V a.c. 50 Hz
Analogiques ± 5 V, ± 10 V, 010 V, 420 mA
Pour sondes de température
Convertisseur A/D
Convertisseur D/A
Tout ou rien
(en anglais Digital)
024 V d.c.
0230 V a.c. 50 Hz
23
Automates programmables industriels
API - Terminal de programmation
Console de
programmation
Pupitre operateur Terminal de maintenance,
affichant des messages ou une
représentation du procédé
24
Pour écrire des programmes
simples. Connexion par port
ou sans fil.
Ecran d'affichage / tactile ou
un PC Interface graphique
Automates programmables industriels
API - Alimentation
25
• Puissance nominale et maximale
• A dimensionner envisageant la possibilité d’expansion
• Alarme arrêt
• Redondance
Automates programmables industriels
API – Communication (1)
I/O à distance Acquisition de données en
systèmes distribués
Protocolles
Fieldbus RS 232C, RS 485
Ethernet
Optique
Profibus, Fieldbus Fundation
Device Net - CAN
ModBus
CSMA/CD (TCP-IP)
26
Automates programmables industriels
API – Communication (2)
27
Automates programmables industriels
API - Coprocesseur
Languages Basic
C
Connexions directes avec l'extérieur
Mémoire réservée
Utilisé pour calculs de grand complexité numérique
28
Automates programmables industriels
API – Modules pour la commande
PID
Servo Module pour la commande de
moteurs
Module pour créer un boucle de
commande suivant un algorithme de
type PID (avec set-point)
29
Encodeur Comptoirs à grande vitesse pour la
lecture de encodeurs (incrémentaux et
absolus)
Automates programmables industriels
API – Backup et redondance
Secours immédiat
(eng: hot standby)
API de secours marche en parallèle à
API principal (même état)
Backup: deux (ou plus) API qui contrôlent le même procédé
Secours manuel
(eng: cold standby)
API de secours activé si API principal
tombe en panne
Sécurité intrinsèque Action validée si concordance ou 2 sur 3
30
Automates programmables industriels
API – Lang. de programmation (1)
Portabilité Le logiciel doit fonctionner dans
différents environnements d'exécution
(p.e., API Telemecanique ou Siemens)
Maintenabilité
Langages Standardisés
Le logiciel doit être simplement et
rapidement réparé ou mis au jour ou
modifié.
31
Norme IEC 61131-3 : languages de programmation pour API
Automates programmables industriels
Textuels
• Liste d’instructions : IL (Instruction List) - Pseudo assembleur
• Texte structuré : ST (Structured Text) - Langage de haut niveau
Graphiques
• Boîtes fonctionnelles : FBD (Function Block Diagram)
- blocs, connectables entre eux, réalisant des opérations
• Langage Ladder : LD (Ladder Diagram) - Schémas électriques
• Sequential function chart : SFC - Proche du langage Grafcet
32
API – Lang. de programmation (2)
Automates programmables industriels 33
API – Lang. de programmation (3)
Exemple: IL (Instruction List) - Pseudo assembler
VAR
start : BOOL AT \%IX0.1;
alarm : BOOL AT \%MX1.5;
power_on : BOOL AT \%OX3.2;
END_VAR
LD start
ANDN alarm
ST power_on
VAR: I/M/O input/internal/output
X/B/W/L bit, byte, word, double word
Démarrer un moteur si le bouton «start» est pressé et si on n’est pas dans un
condition d’alarme
Automates programmables industriels
if (start and (not alarm) )
then power_on
end if
34
API – Lang. de programmation (4)
Démarrer un moteur si le bouton «start» est pressé et si on n’est
pas dans un condition d’alarme
Exemple: ST (Structured Text) - Langage de haut niveau
Automates programmables industriels
Exemple: FBD (Function Block Diagram) - blocs, connectables
entre eux, réalisant des opérations
35
API – Lang. de programmation (5)
AND
NOT
start
alarm
power_on
Démarre un moteur si le bouton «start» est pressé et si on n’est
pas dans un condition d’alarme
Automates programmables industriels
Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD
36
Automates programmables industriels
Ladder Diagram
Ladder Diagram (LD): Langage graphique qui permet d’écrire un
programme de contrôle sous la forme d’un schéma électrique comportant
des interrupteurs et relais.
•Peut être utilisé par du personnel électricien ou ayant une connaissance de
la schématique électrique sans pour autant apprendre un langage spécifique.
Ex: AND = deux interrupteurs en série
S’allume si A et B sont fermés.
•Il peut être difficile à décoder/encoder si le programme est complexe.
•Nécessite une compétence particulière et l'expérience du réalisateur de
logique de contrôle.
37
A B
Automates programmables industriels
LD – Echelle
Ladder = échelle en anglais.
Schéma électrique d’une alimentation
en tension: représentée par deux traits
verticaux reliée horizontalement par
des rungs (barreaux) parcourus par
courant.
Se lit de haut en bas: chaque rung
représente une instruction du
program.
Sur chaque rung l'évaluation des
valeurs se fait de gauche à droite (on
peut pas inverser l’orientation).
1
2
3
38
Automates programmables industriels
LD – Eléments fondamentaux
• contacts (ou interrupteurs) : représentent les données d’entrée
de l’instruction, c.à.d., des valeurs déjà connus.
Positionnés dans la partie gauche du rung.
• bobines (ou relais) : représentent les données de sortie de
l’instruction, c.à.d., le résultats de la computation.
Positionnées à l’extremité droite du rung (une seule par
rung).
• blocs fonctionnels : permettent de réaliser des fonctions
avancées (temporisation, comptage, etc.).
Positionnés à l’extremité droite du rung (un seul par rung).
39
I
X
T1 t
C1 n
Automates programmables industriels
Contact normalement ouvert (NO: normally
open)
Il est normalement ouvert mais il est fermé
(passage de courant) lorsque la variable
booléenne I est vraie (I=1).
Contact normalement fermé (NC: normally
closed)
Il est normalement fermé mais il est ouvert
(aucun passage de courant) lorsque la variable
booléenne I est vraie (I=1).
I
I
(NO)
(NC)
40
LD – Contacts
Associés à une variable booléenne d’entrée (I) ou interne (X) ou
de sortie (O).
Automates programmables industriels
LD – Bobines
X
X
41
Bobine directe (NO: normally open)
Si alimentée alors la variable booléenne associée est
mémorisée à 'vraie‘ (X =1), sinon elle est mémorisée à
'fausse‘ (X=0).
Bobine inversée (NC: normally closed)
Si alimentée alors la variable booléenne associée est
mémorisée à ‘fausse‘ (X=0), sinon elle est mémorisée
à ‘vraie‘ (X=1).
Associés à une variable booléenne interne (X) ou de sortie (O).
X=vraie si alimentée
X=vraie si non alimentée
Automates programmables industriels
LD – Example XOR
XOR
if (I1 and (not I2)) or ((not I1) and I2)
then O = 1
else O = 0
end if
42
I1 I2 O
I1 O I2
1
2
I1 I2 O
I1 I2
1
2
Chronogramme
Représentation équivalente I1
t
t1 t2 t3 t4
I2
t
O
t
Automates programmables industriels
LD – Temps de retard XOR
I1
t
t1 t2 t3 t4
I2
t
O
t
43
I1 I2 O
I1 I2
1
2
cycle k cycle k+1
T T
I1 vraie
t1
I1 memorisée O affectée
D
T = temps de cycle
D = temps de retard
Pour XOR: T < D < 2T
Automates programmables industriels
LD – Ordre des rungs
I1 I2 X1
X1 O I3
1
2
I1 I2 X1
X1 O I3
2
1
O = I1 and (not I2) and I3
O= X1 and I3
Si X1 n’est pas devenue vraie dans un
cycle précédente, quand on détermine O
X1 = 0 O = 0 n’importe quel
valeur ont I1, I2 et I3.
Comme dans tous programmes
d’ordinateur, l’ordre des instructions
(rung) est fondamental.
44
Automates programmables industriels
LD – Affectation des sorties
I1 O
I2 O
1
2 O = not I2 = 0
Les sorties sont affectées seulement à la fin du cycle
45
I1 =1
I2 =1 Valeurs entrées
Bien que la variable O soit assignée vraie dans le premier rung, la sortie qui
corresponde à O n’est jamais affectée vraie.
O = I1 = 1
Automates programmables industriels
LD – Front montant
I X O
X
1
46
I
t
t1 t2 t3 t4
X
t
O
t
Le front montant de la variable I est une variable impulsive O qui est vrai
quand I change de fausse à vraie.
O est vraie pour un cycle quand I passe de fausse à vraie.
Il y a un décalage de un cycle entre I et X/O.
Automates programmables industriels
LD – Structures logiques
I1 I2 X1
I2 X2 I3
1
2
Choix if I2=1 then
if I3=1 then
X2=1
end if
else
if I1=1 then
X1=1
end if
end if
Parallélisme if I2=0 and I1=1 then
X2=1
X1=1
end if
I1 I2 X1
X2
1
2
I1 I2
Le rung 2 peut etre eliminé
47
Automates programmables industriels
LD – Bascule Set-Reset (1)
La variable X deviens vraie si IS
deviens vraie et IR est fausse, et reste
vraie pendant que IR reste fausse
(mémorisation du valeur)
Démarrage moteur:
IS: bouton marche
IR: bouton arrêt
X: commande moteur (Q=X, Q=not X
IS IR X
X
1
2
IS
t
IR
t
X
t
48
Automates programmables industriels
LD – Bobines à action set/reset
Bobine à action Set
La bobine à action Set (Latch) si
alimentée assigne le valeur X=1.
X garde le valeur jusqu’à quand la
bobine Reset (Unlatch) est
alimentée et assigne le valeur X=0.
X
S
X
R
49
Bobine à action Reset
Bobines qui mémorisent le valeur (set) jusqu’à quand sont mises à zéro
(reset).
Si l’API est arrêté X est remise a zéro.
Automates programmables industriels
LD – Bascule Set-Reset (2)
La variable X deviens vraie si IS
deviens vraie et garde le valeur.
X est remise à zéro quand IR
deviens vraie.
Démarrage moteur:
IS: bouton marche
IR: bouton arrêt
X: commande moteur
IS
IR
X
1
2
X
IS
t
IR
t
X
t
50
S
R
Automates programmables industriels
LD – Temporisateurs
Temporisateur : La variable booléenne T1 deviens vraie
quand le temporisateur reste alimentée consécutivement
pour un temps
D = t * 0.01 s (t centièmes de seconds)
T1 est mise à zéro si le temporisateur n’est plus alimenté
Temporisateurs cumulatif: La variable booléenne T1
deviens vraie quand le temporisateur reste alimentée
consécutivement ou non pour un temps
D = t * 0.01 s (t centièmes de seconds)
T1 est mise à zéro par une bobine Reset.
T1
t
T1R
t
T1
R
51
Un temporisateur (timer) impose un délai prédéterminé entre un front
montant à l’entrée et à la sortie du temporisateur.
Automates programmables industriels
LD – Exemple temporisateur
T1 50
T2R 100
T2
R
I1 I2
1
2
I2 T2
I1
t
0.5s 0.5s
I2
t
T1
t
T2
t
R-T2
t
52
Automates programmables industriels
LD – Compteur
Le compteur a une variable interne à 16 bits qui compte
les impulsions reçues.
La variable booléenne C1 devient vraie si la variable
interne dépasse n.
La bobine Reset mets à zéro la variable interne et donc
la variable booléenne C1 aussi.
C1
n
C1
R
53
Un compteur sert à compter des impulsions (front montant) et à
avertir le programme lorsqu’un nombre prédéterminé d’impulsions
ont été reçues.
Automates programmables industriels
LD – Exemple compteur
C1 3
C1
R
1
3
I2 C1
I1 O C1
2
I1
I1
t
I2
t
C1
t
O
t
R-T2
t
54
Automates programmables industriels
LD – Saut
Si I est vraie saute à LBL A
Jump = saut
Label = étiquette
55
A
JMP 1
50
I
2
A
LBL
51
3
Automates programmables industriels
LD – Sous-programme
Si I est vraie on exécute le sous-
programme A. Terminé le sous-
programme on retourne à
l’instruction suivante.
SBR: Sub-routine = sous-programme
JPR: Jump sub-routine
Le sous-programme peut être utilisé
dans plusieurs parts du programme.
A
JSR 1
50
I
2
A
SBR
70 RET
51
56
Automates programmables industriels
LD – Master Control Relay
Si I est vraie on exécute les
instructions entre les deux
bobines MCR.
Si I est fausse on n’exécute pas
les instructions entre les deux
bobines MCR et toutes bobines
internes (sauf bobines Set) sont
mises à zéro.
MCR 1
I
2
70 MCR
Zone Control Last State (ZCL): même structures mais si I est fausse toutes
bobines entre les deux bobines MCR gardent le valeur précèdent.
57
Automates programmables industriels
LD – Autres opérations
Fonctions logiques, mathématiques, gestion de la mémoire, communication.
La fonction Instruction est exécuté avec les arguments
Oper-1, Oper-2, …, Oper-n
Instruction
Oper-1
Oper-2
.
.
Oper-n
ADD: addition
MUL: multiplication
AND: multiplication binaire bit à bit
OR: addition binaire bit à bit
NEQ: test pour inégalité
PID: commande PID
SEND: envoie données à autre API en réseaux
GET: obtiens données de autre API en réseaux
RSD: décale un mot d’un bit à droit
Exemples
58
Automates programmables industriels
Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD
59
Automates programmables industriels
Sequential Functional Chart
• Langage de programmation inspiré du standard français GRAFCET
(GRAphe Fonctionnel de Commande Etape/Transition) développé en
France à la fin des année 70 par l‘AFCET.
• Devient standard IEC 848 en 1988.
• Appelé SFC (Sequential Functional Chart) dans le standard IEC 61131-3.
Langage graphique de haut niveau qui a une structure ressemblant à la
structure d’un réseau de Petri.
Le GRAFCET est dédié à la spécification, alors que SFC est plus appliqué à la
programmation.
60
Automates programmables industriels
SFC – Exemple
61
Démarre un moteur si le
bouton start est pressé et si on
n’est pas dans un condition
d’alarme.
Arrête le moteur si le bouton
stop est pressé ou si l’alarme
se déclenche.
Ordre d’exécution : du haut
vers le bas si non spécifié. Tr3 stop
2
Tr2 alarm
1
Tr1 start &
not alarm
moteur
ON
moteur
OFF
Automates programmables industriels
Etape
Transition
Liaison
orientée
62
SFC – Eléments de base
Symbolise un état ou une partie de l’état du système
Représentée par un carreau numéroté i=1, 2 …
Peut avoir une action associée.
Indique la possibilité d’évolution qui existe entre deux étapes.
Représentée par un épais trait horizontal étiqueté Trj (j =1, 2 …)
Peut avoir une réceptivité Cj associée.
Lien que lie une étape avec une transition ou une transition avec
une étape.
Représentée par un fin trait vertical (et connections horizontales).
Si l’orientation est du haut vers le bas, aucune flèche est
nécessaire.
i
Trj Cj
2
1
Tr1
Tr2
Tr3
3
Automates programmables industriels
SFC – Exemple
63
Étapes
Étape 1 – action: « moteur OFF »
Étape 2 – action: « moteur ON »
Transitions
Tr1 – réceptivité: start & not alarm
Tr2 – réceptivité: alarm
Tr3 - réceptivité: stop
L’étape 2 est:
-en amont de Tr2 et Tr3
-en aval de Tr1
Tr3 stop
2
Tr2 alarm
1
Tr1 start & alarm _____
moteur
ON
moteur
OFF
Automates programmables industriels
Etape i; étape initial j
64
SFC – Etapes (1)
i j
i j Etapes actives
active non étape0
active étape1
iX
iX
i
i
Variable booléenne Xi associé à l’étape i
Xi
t
t /Xi /D
t
D
Variable booléenne t /Xi / D associé à
l’étape i (retarde d’activation de D)
Ex: t /X5 / 3s
SFC – Etapes (2)
O : variable de sortie ou interne mise à 1 par l’action i O
Xi
t
O
t
Variable O = 1 si l’étape i est active
O = Xi
Autres types d’actions peuvent être définis.
Action O associée à l’étape i
Automates programmables industriels 65
Automates programmables industriels
SFC – Transitions (1)
Trj : étiquette de la transition (j = 1, 2 , …)
Cj : réceptivité de la transition
66
Trj Cj
La réceptivité est une fonction booléenne des variables d’éntrée ou internes ou
temporelles: elle peut être vraie (=1) or fausse (=0).
Ex:
Vraie si start=1 et alarm = 0
Tr1 start & alarm
_____
Tr2 t/X3/2s
Vraie si étape 3 active depuis 2/+ sec
Si toujours vraie, la réceptivité est omise ou indiqué =1. Tr4 =1
Automates programmables industriels 67
SFC – Transitions (2)
Une transition peut avoir plusieurs étapes en amont et en aval.
• Une transition est validée si toutes ses étapes en amont sono actives.
• Une transition est franchissable si est validée et sa réceptivité est vraie.
1
T1 C1
2
3 4
1
T2 C2=0
2
3 4
1
T3 C3=1
2
3 4
Non validée Validée
non franchissable
Franchissable
Automates programmables industriels 68
SFC – Transitions (3)
Une transition franchissable peut être franchie.
Le franchissement d’une transition entraine dans cet ordre:
•désactivation de toutes ses étapes en amont;
•activation de toutes ses étapes en aval
1
Tr3 C3=1
2
3 4
1
Tr3 C3
2
3 4
Franchissement de Tr3 1
Tr3 C3=1
2
3 4
Automates programmables industriels
SFC – Règles d’évolution
Règle 1 – Condition initiale (s’applique seulement au démarrage de l’API)
Les étapes initiales sont activées et les actions associées exécutées.
Règle 2 – Franchissement des transitions
Toutes transitions simultanément franchissable sont simultanément franchies.
Règle 3 – Evolution des étapes actives
Le franchissement d’une transition entraine dans cet ordre:
a) désactivation de toutes ses étapes en amont;
b) activation de toutes ses étapes en aval
Si une étape doit être simultanément désactivée et activée, elle reste active.
Règle 4 – Exécution des actions
Si une étape est active, les actions associées sont exécutées.
69
Automates programmables industriels
SFC – Exemple
70
Tr3
2
Tr2
1
Tr1
M
stop alarm
start = 0
alarm = 0
stop = 0
M = 0
entrées
sortie
Aucune transition
franchissable = état stable
On attends le prochain
évènement.
start & alarm
_____
Automates programmables industriels
SFC – Exemple
71
Tr3 stop
2
Tr2 alarm
1
Tr1
M
start = 1
alarm = 0
stop = 0
M = 0
Tr1 est franchissable
entrées
sortie
start & alarm
_____
Automates programmables industriels
SFC – Exemple
72
Tr3 stop
2
Tr2 alarm
1
Tr1
M
Aucune transition
franchissable = état stable
On attends le prochain
évènement.
start = 0
alarm = 0
stop = 0
M = 1
entrées
sortie
start & alarm
_____
Automates programmables industriels
SFC – Exemple
73
Tr3 stop
2
Tr2 alarm
1
Tr1
M
Tr3 est franchissable
start = 0
alarm = 0
stop = 1
M = 1
entrées
sortie
start & alarm
_____
Automates programmables industriels
SFC – Exemple
74
Tr3 stop
2
Tr2 alarm
1
Tr1
M
Aucune transition
franchissable = état stable
On attends le prochain
évènement.
start = 0
alarm = 0
stop = 0
M = 0
entrées
sortie
start & alarm
_____
Automates programmables industriels
SFC – Structure de base (1)
75
Saut d’étape
Quand a=1 avance de l’étape 1
mais si b=1 avance à 3 (étape 2
est sautée)
Reprise de séquence
Quand a=1 avance de l’étape 2 mais:
-Si b=1 étape 2 est répeté
-Si b=0 passe à 3
2
1
a & b
3
a & b
_
c c
2
1
a & b
3
a & b
_
Automates programmables industriels
SFC – Structure de base (2)
76
Aguillage (ou choix)
Apres l’étape 1 :
-Si a=1 avance à 2
-Si b=1 avance à 3
Convergence
On peut arriver à l’étape 6 soit par l’étape
4, soit par l’étape 5
3
1
b
6
a
2
f e
c d
4 5
& a & b
Attention: si a e b sont simultanément vraies les
étapes 2 et 3 sont activées au même temps.
Si ca n’est pas souhaité (parallélisme interprété):
-On peut donner priorité à a (en violet)
-On peut mettre un XOR (en azur et violet)
_ _
Automates programmables industriels
SFC – Structure de base (3)
77
Si a=1 on avance de l’étape 1 et les étapes 2
et 3 sont simultanément activées
Synchronisation (ou rendez-vous)
On peut activer 6 seulement si toutes les deux
branches on terminé (4 et 5 actives)
Parallélisme 1
6
a
2 3
4 5 Bra
nch
e 1
Bra
nch
e 2
b c
d
Les branches 1 et 2 sont exécutées en
parallèle dans n’importe quel ordre
Automates programmables industriels
SFC – Structure de base (4)
78
2
3
X13 12
11
X2
13
X2
_
S11
Master Slave
L’étape initiale 11 du slave est
activée au démarrage mais la
transition en aval est non
franchissable (réceptivité =0).
Quand l’étape 2 du master est
activée le slave peut procéder et
exécuter son sous-programme.
A la fin du sous-programme l’étape
13 est activée et la transition en
aval de l’étape 2 du master est
franchissable.
Quand l’étape 2 est désactivée, le
slave est réinitialisé.
Automates programmables industriels
SFC – Actions (1)
79
- O : variable de sortie mise à 1 par l’action
- <Q> : identifiant du type d’action
- <c> : condition (seul. pour actions conditionnelles) i O <Q>
<c>
Xi
t
O
t i O
ou
Actions continues - type N (non-stored)
i O N O = Xi
Variable O = 1 si étape i active
Type N peut être omis.
Action O de type <Q> associée à l’étape i
Automates programmables industriels
SFC – Actions (2)
80
Xi
t
O
t
i O P
Actions impulsionnelles – Type P (pulse)
O = front_montant(Xi) OR front_descendant(Xi)
Variable O = 1 à l’activation ou désactivation de l’étape i
Actions conditionnelles cond
Xi
t
cond
t
O
t
i O C
O = Xi AND cond
Variable O = 1 si étape i est active et cond est vraie
Action conditionnelle simple
– Type C
Automates programmables industriels
SFC – Actions (3)
D = 3s
i O L
O = Xi AND not(t /Xi / D)
Variable O = 1 si étape i est active mais pour une durée
limitée à D
Action limitée dans le temps
– Type L (limited)
Xi
t
t /Xi /D
t
D ______
O
t
D = 3s
i O D
O = Xi AND t /Xi / D
Variable O = 1 si étape i est active avec retard de D
Action retardée – Type D
(delay)
Xi
t
t /Xi /D
t
D
O
t
Automates programmables industriels
SFC – Actions (4)
82
Xi
t
Xj
t
O
t
Actions mémorisées
i O S
La variable O deviens vraie à l’activation de l’étape i et garde le valeur (set).
O est remise à zéro à l’activation de l’étape j (reset).
Action set – Type S
j O R Action reset – Type R
Automates programmables industriels
Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD
83
Automates programmables industriels
Traduction de SFC à LD
Un programme Sequential Functional Chart peut être traduit en un
programme Ladder Diagram pour l’exécution sur un API qui
n’utilise pas l’SFC.
• Algorithme sans recherche de stabilité
• Procédure de traduction standard et automatique
• Temps d’exécution n’augmente pas beaucoup
• Programme plus lisible
• Exécution du programme non optimisée
• Occupation mémoire EPROM augmente beaucoup
84
Automates programmables industriels
SFC→LD: Algorithme RS
T1 C1
1
3
T2 C2=1
2
T4 C3=0
T1 C1
1
3
T2 C2=1
2
T4 C3=0
Cycle k
C1=1 L’action O associée à
l’étape 2 n’est pas
exécutée.
85
Algorithme à recherche de stabilité (RS): si, à un moment donné, l’état des entrées et
des variables internes permet le franchissement consécutif de plusieurs transitions, ce
franchissement se fera dans le même cycle machine.
O O
Automates programmables industriels
SFC→LD: Algorithme RS
Algorithme à recherche de stabilité
Mémoriser
les entrées
Affecter
les sorties
1re cycle OUI NO
Ètat stable OUI NO
86
Détermination transitions franchissables
Détermination du nouvel état
Activer étapes initiales
Automates programmables industriels
Algorithme sans recherche de stabilité (SRS): si, à un moment donné, l’état des entrées
et des variables internes permet le franchissement consécutif de plusieurs transitions, ce
franchissement se fera au rythme d’une transition par cycle machine [problème si
l’environnement change].
T1 C1
1
3
T2 C2=1
2
T4 C3=0
T1 C1
1
3
T2 C2=1
2
T4 C3=0
Cycle k
C1=1 T1 C1
1
3
T2 C2=1
2
T4 C3=0
Cycle k+1
87
O O O
SFC→LD: Algorithme SRS
Automates programmables industriels
SFC→LD: Algorithme SRS
Algorithme sans recherche de stabilité
Activer étapes initiales
1re cycle OUI NO
Détermination transitions franchissables
Détermination du nouvel état
88
Mémoriser
les entrées
Affecter
les sorties
Automates programmables industriels
SFC→LD: Algorithme SRS
L’algorithme sans recherche de
stabilité est similaire au cycle
séquentiel qui caractérise les
API
89
Automates programmables industriels
SFC→LD: Procédure
La procédure de traduction d’un SFC sans recherche de stabilité en LD
nécessite 4 phases (chacune qui corresponds à une partie du programme écrit
dans cet ordre)
1. Initialisation (seulement au première cycle): les étapes initiales sont activées
et on saut à 4 pour exécuter les actions correspondants.
2. Détermination de transitions franchissables
3. Franchissement des transitions et mis à jour de l’état (désactivation des
étapes en amont et activation des étapes en aval)
4. Exécution des actions associées aux étapes actives
90
Automates programmables industriels
1 - Initialisation
Initialisation (seulement au première cycle): les étapes initiales sont activées
et les actions correspondants exécutées.
a
JMP 1
k+4
W
2
a
LBL
3
W
S
k+2
k+3
actions
JMP
Activation première étape initiale Xin-1
S
Si on est au première cycle (W=0) on
active les k étapes initiales
in-1, in-2, …, in-k
W est mis à 1 : aux prochains cycles la
phase d’initialisations est sauté.
A la fin de l’initialisation on saute à
l’exécutions des actions associées aux
étapes initiales.
91
Activation dernière étape initiale Xin-k
S
.
.
.
.
.
.
Automates programmables industriels
2 – Détermination des transitions
Détermination de transitions franchissables dans ce cycle (le nombre total de
transitions est m).
Tr2 C2
3
2 1
Tr1 C1
Tr1
1
X1
2
3
m
Détermination franchissement transition 3
Détermination franchissement transition m
X2 C1
Tr2 X3 C2
Dépend des étapes actives au cycle précédent et du valeur des entrées dans le
cycle en cours. Si la i-me transition est franchissable la variable Tri est vraie dans
le cycle en cours. 92
.
.
.
.
.
.
Automates programmables industriels
3 - Mis à jour de l’état (1) Franchissement des transitions avec désactivation des étapes en amont et
activation des étapes en aval.
Tr2 C2
3
2 1
Tr1 C1
4
1
Tr1 X1
R
X2
R
93
2
Tr2 X3
R
m Désactivation étapes en amont transition m
.
.
.
.
.
.
Première partie: on spécifie les étapes en amont qui sont désactivées par
le franchissement de chaque transition
Automates programmables industriels
3 - Mis à jour de l’état (2)
Tr2 C2
3
2 1
Tr1 C1
4
m+1
Tr1 X3
S
94
m+2
Tr2 X4
S
2m Activation étapes en aval transition m
.
.
.
.
.
.
Deuxième partie: on spécifie les étapes en aval qui sont activées par le
franchissement de chaque transition.
Un étape désactivée et activée dans le même cycle reste active.
Automates programmables industriels
4 - Exécution des actions (1)
Exécution des actions associées aux étapes actives (le nombre total de étapes est p).
1
2
2
X1
3
X2 O1
1
actions
LBL
95
O1
3 O2
W1
C 4
X3 O2 W1
.
.
.
.
.
.
5
X4 O3
S 4 O3 S
Plusieurs cases possibles.
Automates programmables industriels
4 - Exécution des actions (2)
Exécution des actions associées aux étapes actives (le nombre total de étapes est m).
Tr1 t/X6/3s
p+1 Exécution actions étape q
96
5 O2
1s
D 6
X5 Y2 T
T1 100
.
.
.
.
.
.
7
X6
T2 300
6
.
.
.
.
.
.
Automates programmables industriels
Exemple - Perceuse
97
p = démarrage
a = fin course haut
m = moyenne course
b = fin course bas
x = contact pièce
y = pièce en place
S = remontée
D = descente
R = rotation
O = huilage
• Après démarrage si pièce en place actionne perceuse (set R et descend).
• Si pièce non épaisse (m avant x) perce jusqu’à b.
• Si pièce épaisse (x avant m) perce jusqu’à m, remonte, huile pour 2s et
redescend en perçant jusqu’à b.
• Arrivé à b remonte et arrête la perceuse.
• Réinitialise quand la pièce est retirée.