Vous êtes sur la page 1sur 97

C 652 Automates

programmables industriels

Alessandro GIUA
LSIS UMR-CNRS 6168

Cours 8h
3A - Génie Industriel et Informatique
Polytech' Marseille

2013

Automates programmables industriels 1


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.
Automates programmables industriels 2
Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD

Automates programmables industriels 3


Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD

Automates programmables industriels 4


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.

Automates programmables industriels 5


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...

Automates programmables industriels 6


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)

Partie operative Partie commande Partie supervision

capteurs mesures rapports


Système
Procédé de Operateur
action- commandes
côntrole ordres
neurs

Automates programmables industriels 7


Introduction
Exemple: porte d’un garage
t V Actionneurs et commandes:
- moteur qui ouvre (O) ou ferme (F) la porte
F O Capteurs et mesures:
d - position porte (pf: fermée; po: ouverte)
- cellule photoelect: obstacle detecté (d)
pf po
Ordres:
- le télécommande (t) pour ouvrir
Rapports:
- Voyant (V) : porte en exercice
Automates programmables industriels 8
Introduction
Exemple: porte d’un garage
t V
F O
d
pf po

capteurs mesures rapports


Système
pf, po, d V
Procédé de Operateur
action- commandes
contrôle ordres
neurs F, O t
Automates programmables industriels 9
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

Automates programmables industriels 10


Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD

Automates programmables industriels 11


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

Automates programmables industriels 12


API – Exemple (1)

Automates programmables industriels 13


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)
Automates programmables industriels 14
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)

Automates programmables industriels 15


API et autres logiques

• Reconfigurable / Programmable
• Compact
• Modulaire
• Low-cost

Automates programmables industriels 16


API – Structure (1)
Configuration minimale

• Rack 19”
• Terminal de
programmation

• Unité centrale • Alimentation • Entrées / sorties

Automates programmables industriels 17


API – Structure (2)

Autres modules
• Communication • Servo-drive
• Mémoire de masse • Encoder
• PID • HMI
• Coprocesseur

Automates programmables industriels 18


API – Unité Centrale (1)
Mémoire : composante fondamental de l’U.C.

O1
I1 … … I32 Espace entrées (I) et sorties (O)
O1
O32 … O32 Ex: I1 = I1.1 …. I1.8 (1 byte)

S.O. Espace du Système Opérative (ROM)

T1 … T16 Espace de travaille du SO


C1 … C16 T = Temporisateurs C= Compteurs
P1 … P4 P = PID
Espace données utilisateur
W1 … W512
Ex: W1 = W1.1 …. W1.8 (1 byte)

PROG Espace programme utilisateur

Automates programmables industriels 19


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).


Automates programmables industriels 20
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

Automates programmables industriels 21


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

Automates programmables industriels 22


API – Modules I/O (2)
I/O
Tout ou rien 024 V d.c.
(en anglais Digital) 0230 V a.c. 50 Hz

A relais 024 V d.c.


0230 V a.c. 50 Hz

Analogiques ± 5 V, ± 10 V, 010 V, 420 mA


Pour sondes de température
Convertisseur A/D
Convertisseur D/A

Automates programmables industriels 23


API - Terminal de programmation
Pupitre operateur Terminal de maintenance,
affichant des messages ou une
représentation du procédé

Console de Pour écrire des programmes


programmation simples. Connexion par port
ou sans fil.

Interface graphique Ecran d'affichage / tactile ou


un PC

Automates programmables industriels 24


API - Alimentation

• Puissance nominale et maximale

• A dimensionner envisageant la possibilité d’expansion

• Alarme arrêt

• Redondance

Automates programmables industriels 25


API – Communication (1)

Fieldbus RS 232C, RS 485


Ethernet
Optique

I/O à distance Acquisition de données en


systèmes distribués

Protocolles Profibus, Fieldbus Fundation


Device Net - CAN
ModBus
CSMA/CD (TCP-IP)

Automates programmables industriels 26


API – Communication (2)

Automates programmables industriels 27


API - Coprocesseur

Utilisé pour calculs de grand complexité numérique

Languages Basic
C

Connexions directes avec l'extérieur


Mémoire réservée

Automates programmables industriels 28


API – Modules pour la commande
Encodeur Comptoirs à grande vitesse pour la
lecture de encodeurs (incrémentaux et
absolus)

PID Module pour créer un boucle de


commande suivant un algorithme de
type PID (avec set-point)

Servo Module pour la commande de


moteurs

Automates programmables industriels 29


API – Backup et redondance

Backup: deux (ou plus) API qui contrôlent le même procédé

Secours immédiat API de secours marche en parallèle à


(eng: hot standby) API principal (même état)

Secours manuel API de secours activé si API principal


(eng: cold standby) tombe en panne

Sécurité intrinsèque Action validée si concordance ou 2 sur 3

Automates programmables industriels 30


API – Lang. de programmation (1)
Norme IEC 61131-3 : languages de programmation pour API

Portabilité Le logiciel doit fonctionner dans


différents environnements d'exécution
(p.e., API Telemecanique ou Siemens)

Maintenabilité Le logiciel doit être simplement et


rapidement réparé ou mis au jour ou
modifié.

Langages Standardisés
Automates programmables industriels 31
API – Lang. de programmation (2)
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

Automates programmables industriels 32


API – Lang. de programmation (3)
Exemple: IL (Instruction List) - Pseudo assembler
Démarrer un moteur si le bouton «start» est pressé et si on n’est pas dans un
condition d’alarme
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
Automates programmables industriels 33
API – Lang. de programmation (4)
Exemple: ST (Structured Text) - Langage de haut niveau

Démarrer un moteur si le bouton «start» est pressé et si on n’est


pas dans un condition d’alarme

if (start and (not alarm) )

then power_on

end if

Automates programmables industriels 34


API – Lang. de programmation (5)
Exemple: FBD (Function Block Diagram) - blocs, connectables
entre eux, réalisant des opérations

Démarre un moteur si le bouton «start» est pressé et si on n’est


pas dans un condition d’alarme

start
power_on
AND
alarm
NOT

Automates programmables industriels 35


Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD

Automates programmables industriels 36


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. A B

•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.

Automates programmables industriels 37


LD – Echelle
Ladder = échelle en anglais.

Schéma électrique d’une alimentation


1
en tension: représentée par deux traits
verticaux reliée horizontalement par
des rungs (barreaux) parcourus par
2 courant.

Se lit de haut en bas: chaque rung


3 représente une instruction du
program.

Sur chaque rung l'évaluation des


valeurs se fait de gauche à droite (on
peut pas inverser l’orientation).
Automates programmables industriels 38
LD – Eléments fondamentaux
I
• 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.
X
• 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 T1


t
avancées (temporisation, comptage, etc.).
Positionnés à l’extremité droite du rung (un seul par rung). C1
n

Automates programmables industriels 39


LD – Contacts
Associés à une variable booléenne d’entrée (I) ou interne (X) ou
de sortie (O).
Contact normalement ouvert (NO: normally
I
open)
(NO)
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


I closed)
(NC)
Il est normalement fermé mais il est ouvert
(aucun passage de courant) lorsque la variable
booléenne I est vraie (I=1).
Automates programmables industriels 40
LD – Bobines
Associés à une variable booléenne interne (X) ou de sortie (O).

X 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 à
X=vraie si alimentée 'fausse‘ (X=0).

X
Bobine inversée (NC: normally closed)
Si alimentée alors la variable booléenne associée est
X=vraie si non alimentée mémorisée à ‘fausse‘ (X=0), sinon elle est mémorisée
à ‘vraie‘ (X=1).

Automates programmables industriels 41


LD – Example XOR
I1 I2 O XOR
1
if (I1 and (not I2)) or ((not I1) and I2)
then O = 1
I1 I2 O else O = 0
2
end if

Chronogramme
I1
Représentation équivalente
t
I1 I2 O
1 I2

I1 I2 O
2 t

Automates programmables industriels t1 t2 t3 t4 42


LD – Temps de retard XOR
I1

I1 I2 O t

1
I2

t
I1 I2
2 O

t1 t2 t3 t4
t1 D
I1 vraie I1 memorisée O affectée T = temps de cycle
D = temps de retard
cycle k cycle k+1
Pour XOR: T < D < 2T
T T
Automates programmables industriels 43
LD – Ordre des rungs
I1 I2 X1 Comme dans tous programmes
1 d’ordinateur, l’ordre des instructions
(rung) est fondamental.
X1 I3 O
2 O = I1 and (not I2) and I3

X1 I3 O
1 O= X1 and I3

I1 I2 X1 Si X1 n’est pas devenue vraie dans un


2 cycle précédente, quand on détermine O
X1 = 0  O = 0 n’importe quel
valeur ont I1, I2 et I3.

Automates programmables industriels 44


LD – Affectation des sorties
Les sorties sont affectées seulement à la fin du cycle

Valeurs entrées I1 =1
I2 =1

I1 O
1
O = I1 = 1

I2 O
2 O = not I2 = 0

Bien que la variable O soit assignée vraie dans le premier rung, la sortie qui
corresponde à O n’est jamais affectée vraie.

Automates programmables industriels 45


LD – Front montant
Le front montant de la variable I est une variable impulsive O qui est vrai
quand I change de fausse à vraie.

I X O t

1
X

t
X
O

t1 t2 t3 t4

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 46
LD – Structures logiques
I1 I2 X1 Choix if I2=1 then
1
if I3=1 then
X2=1
end if
I2 I3 X2 else
2 if I1=1 then
X1=1
end if
end if

I1 I2 X1
1
Parallélisme if I2=0 and I1=1 then
X2=1
I1 I2 X2 X1=1
2 end if

Le rung 2 peut etre eliminé

Automates programmables industriels 47


LD – Bascule Set-Reset (1)
IS IR X La variable X deviens vraie si IS
1 deviens vraie et IR est fausse, et reste
vraie pendant que IR reste fausse
X
(mémorisation du valeur)
2

IS

IR
Démarrage moteur:
t
IS: bouton marche
X
IR: bouton arrêt
t
X: commande moteur (Q=X, Q=not X
Automates programmables industriels 48
LD – Bobines à action set/reset
Bobines qui mémorisent le valeur (set) jusqu’à quand sont mises à zéro
(reset).

X La bobine à action Set (Latch) si


S alimentée assigne le valeur X=1.

Bobine à action Set

X
R X garde le valeur jusqu’à quand la
bobine Reset (Unlatch) est
Bobine à action Reset alimentée et assigne le valeur X=0.

Si l’API est arrêté X est remise a zéro.

Automates programmables industriels 49


LD – Bascule Set-Reset (2)
IS X La variable X deviens vraie si IS
1 S deviens vraie et garde le valeur.

X est remise à zéro quand IR


IR X deviens vraie.
2 R

IS

IR
Démarrage moteur:
t
IS: bouton marche
X

t
IR: bouton arrêt
X: commande moteur
Automates programmables industriels 50
LD – Temporisateurs
Un temporisateur (timer) impose un délai prédéterminé entre un front
montant à l’entrée et à la sortie du temporisateur.

Temporisateur : La variable booléenne T1 deviens vraie


T1
quand le temporisateur reste alimentée consécutivement
t
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


T1R deviens vraie quand le temporisateur reste alimentée
t
consécutivement ou non pour un temps
T1 D = t * 0.01 s (t centièmes de seconds)
R T1 est mise à zéro par une bobine Reset.

Automates programmables industriels 51


LD – Exemple temporisateur
I1 0.5s 0.5s
t
I1 I2
1 T1 I2
50
t

T1
T2R
100 t

I2 T2 T2
T2
2 R
t

R-T2

Automates programmables industriels 52


LD – Compteur
Un compteur sert à compter des impulsions (front montant) et à
avertir le programme lorsqu’un nombre prédéterminé d’impulsions
ont été reçues.
Le compteur a une variable interne à 16 bits qui compte
C1
les impulsions reçues.
n
La variable booléenne C1 devient vraie si la variable
interne dépasse n.

C1
La bobine Reset mets à zéro la variable interne et donc
R
la variable booléenne C1 aussi.

Automates programmables industriels 53


LD – Exemple compteur
I1

t
I1 C1 O
I2
1
t

I1
C1
2 C1
3 t

I2 C1 C1
O
3 R
t

R-T2

Automates programmables industriels 54


LD – Saut
I A
1 JMP

Si I est vraie saute à LBL A

Jump = saut
A Label = étiquette
50 LBL
51

Automates programmables industriels 55


LD – Sous-programme
I A
1 JSR

Si I est vraie on exécute le sous-


programme A. Terminé le sous-
programme on retourne à
l’instruction suivante.
A
SBR: Sub-routine = sous-programme
50 SBR
JPR: Jump sub-routine
51

Le sous-programme peut être utilisé


70 RET dans plusieurs parts du programme.

Automates programmables industriels 56


LD – Master Control Relay

I Si I est vraie on exécute les


1 MCR instructions entre les deux
bobines MCR.
2

Si I est fausse on n’exécute pas


les instructions entre les deux
70 MCR bobines MCR et toutes bobines
internes (sauf bobines Set) sont
mises à zéro.

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.

Automates programmables industriels 57


LD – Autres opérations
Fonctions logiques, mathématiques, gestion de la mémoire, communication.

Instruction La fonction Instruction est exécuté avec les arguments


Oper-1
Oper-2 Oper-1, Oper-2, …, Oper-n
.
.
Oper-n
ADD: addition
MUL: multiplication
AND: multiplication binaire bit à bit
OR: addition binaire bit à bit
Exemples 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

Automates programmables industriels 58


Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD

Automates programmables industriels 59


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.

Automates programmables industriels 60


SFC – Exemple
Démarre un moteur si le
bouton start est pressé et si on
moteur
1 n’est pas dans un condition
OFF
d’alarme.
start &
Tr1
not alarm Arrête le moteur si le bouton
stop est pressé ou si l’alarme
moteur
2 se déclenche.
ON
Ordre d’exécution : du haut
vers le bas si non spécifié.
Tr2 alarm Tr3 stop

Automates programmables industriels 61


SFC – Eléments de base
Etape Symbolise un état ou une partie de l’état du système
Représentée par un carreau numéroté i=1, 2 …
i Peut avoir une action associée.

Transition Indique la possibilité d’évolution qui existe entre deux étapes.


Représentée par un épais trait horizontal étiqueté Trj (j =1, 2 …)
Trj Cj Peut avoir une réceptivité Cj associée.

Liaison Lien que lie une étape avec une transition ou une transition avec
orientée une étape.
Représentée par un fin trait vertical (et connections horizontales).
Tr2
1 Si l’orientation est du haut vers le bas, aucune flèche est
Tr1 nécessaire.
3
Tr3
2
Automates programmables industriels 62
SFC – Exemple
Étapes
Étape 1 – action: « moteur OFF »
moteur
1 Étape 2 – action: « moteur ON »
OFF
_____
Tr1 start & alarm
Transitions
Tr1 – réceptivité: start & not alarm
moteur
2 Tr2 – réceptivité: alarm
ON
Tr3 - réceptivité: stop

Tr2 alarm Tr3 stop L’étape 2 est:


-en amont de Tr2 et Tr3
-en aval de Tr1

Automates programmables industriels 63


SFC – Etapes (1)
i j Etape i; étape initial j

i j Etapes actives

Xi  1  étape i active Variable booléenne Xi associé à l’étape i


X i  0  étape i non active
Xi

t
Variable booléenne t /Xi / D associé à
t /Xi /D D l’étape i (retarde d’activation de D)
Ex: t /X5 / 3s
t

Automates programmables industriels 64


SFC – Etapes (2)
Action O associée à l’étape i

i O O : variable de sortie ou interne mise à 1 par l’action

Xi

t
Variable O = 1 si l’étape i est active

O
O = Xi
t

Autres types d’actions peuvent être définis.

Automates programmables industriels 65


SFC – Transitions (1)
Trj : étiquette de la transition (j = 1, 2 , …)
Trj Cj
Cj : réceptivité de la transition

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: _____
Tr1 start & alarm Tr2 t/X3/2s

Vraie si start=1 et alarm = 0 Vraie si étape 3 active depuis 2/+ sec

Si toujours vraie, la réceptivité est omise ou indiqué =1. Tr4 =1

Automates programmables industriels 66


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 2 1 2 1 2

T1 C1 T2 C2=0 T3 C3=1

3 4 3 4 3 4

Non validée Validée Franchissable


non franchissable
Automates programmables industriels 67
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 2 Franchissement de Tr3 1 2

Tr3 C3=1 Tr3 C3=1

3 4 3 4

Automates programmables industriels 68


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.

Automates programmables industriels 69


SFC – Exemple

start = 0

1 alarm = 0 entrées
_____ stop = 0
Tr1 start & alarm
M=0 sortie

2 M
Aucune transition
franchissable = état stable
Tr2 alarm Tr3 stop On attends le prochain
évènement.

Automates programmables industriels 70


SFC – Exemple

start = 1

1 alarm = 0 entrées
_____ stop = 0
Tr1 start & alarm
M=0 sortie

2 M
Tr1 est franchissable

Tr2 alarm Tr3 stop

Automates programmables industriels 71


SFC – Exemple

start = 0

1 alarm = 0 entrées
_____ stop = 0
Tr1 start & alarm
M=1 sortie

2 M
Aucune transition
franchissable = état stable
Tr2 alarm Tr3 stop On attends le prochain
évènement.

Automates programmables industriels 72


SFC – Exemple

start = 0

1 alarm = 0 entrées
_____ stop = 1
Tr1 start & alarm
M=1 sortie

2 M
Tr3 est franchissable

Tr2 alarm Tr3 stop

Automates programmables industriels 73


SFC – Exemple

start = 0

1 alarm = 0 entrées
_____ stop = 0
Tr1 start & alarm
M=0 sortie

2 M
Aucune transition
franchissable = état stable
Tr2 alarm Tr3 stop On attends le prochain
évènement.

Automates programmables industriels 74


SFC – Structure de base (1)

1 1
_
a&b a&b

a&b
2 2
_
c a&b
c

3 3

Saut d’étape Reprise de séquence


Quand a=1 avance de l’étape 1 Quand a=1 avance de l’étape 2 mais:
mais si b=1 avance à 3 (étape 2 -Si b=1 étape 2 est répeté
est sautée) -Si b=0 passe à 3
Automates programmables industriels 75
SFC – Structure de base (2)
1 Aguillage (ou choix)
_ _ Apres l’étape 1 :
a& b b&a -Si a=1 avance à 2
-Si b=1 avance à 3
2 3
Attention: si a e b sont simultanément vraies les
c d étapes 2 et 3 sont activées au même temps.
Si ca n’est pas souhaité (parallélisme interprété):
4 5 -On peut donner priorité à a (en violet)
-On peut mettre un XOR (en azur et violet)
e f
Convergence
6 On peut arriver à l’étape 6 soit par l’étape
4, soit par l’étape 5
Automates programmables industriels 76
SFC – Structure de base (3)
1
Parallélisme
a
Si a=1 on avance de l’étape 1 et les étapes 2
et 3 sont simultanément activées
2 3
Branche 2
Branche 1

Les branches 1 et 2 sont exécutées en


b c parallèle dans n’importe quel ordre

4 5
Synchronisation (ou rendez-vous)
d
On peut activer 6 seulement si toutes les deux
6 branches on terminé (4 et 5 actives)

Automates programmables industriels 77


SFC – Structure de base (4)
L’étape initiale 11 du slave est
11 activée au démarrage mais la
transition en aval est non
2 S11 X2 franchissable (réceptivité =0).

X13 12 Quand l’étape 2 du master est


activée le slave peut procéder et
3 exécuter son sous-programme.

13 A la fin du sous-programme l’étape


_
13 est activée et la transition en
X2 aval de l’étape 2 du master est
franchissable.
Master Slave
Quand l’étape 2 est désactivée, le
slave est réinitialisé.
Automates programmables industriels 78
SFC – Actions (1)
Action O de type <Q> associée à l’étape i
<c>
- O : variable de sortie mise à 1 par l’action
i <Q> O - <Q> : identifiant du type d’action
- <c> : condition (seul. pour actions conditionnelles)

Actions continues - type N (non-stored)


Xi

O = Xi i N O t

Variable O = 1 si étape i active ou O

t
Type N peut être omis. i O

Automates programmables industriels 79


SFC – Actions (2)
Actions impulsionnelles – Type P (pulse) Xi

i P O O

t
O = front_montant(Xi) OR front_descendant(Xi)
Variable O = 1 à l’activation ou désactivation de l’étape i
Xi

t
Actions conditionnelles
cond cond

Action conditionnelle simple


– Type C i C O t

O
O = Xi AND cond
t
Variable O = 1 si étape i est active et cond est vraie
Automates programmables industriels 80
SFC – Actions (3)
Xi

D = 3s t

Action retardée – Type D


(delay) i D O t /Xi /D D

t
O = Xi AND t /Xi / D
Variable O = 1 si étape i est active avec retard de D O

D = 3s Xi

Action limitée dans le temps t

– Type L (limited) i L O
______
t /Xi /D D

O = Xi AND not(t /Xi / D) t


Variable O = 1 si étape i est active mais pour une durée
limitée à D O

Automates programmables industriels t


SFC – Actions (4)
Actions mémorisées Xi

Action set – Type S i S O


Xj

Action reset – Type R j R O O

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).

Automates programmables industriels 82


Sommaire
• Introduction
• API: Définition et caractéristiques
• Ladder Diagram
• Sequential Functional Chart
• Traduction de SFC à LD

Automates programmables industriels 83


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


Automates programmables industriels 84
SFC→LD: Algorithme RS
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.

1 1
Cycle k

T1 C1=1 T1 L’action O associée à


C1 C1 l’étape 2 n’est pas
2 O 2 O exécutée.

T2 T2
C2=1 C2=1
3 3

T4 T4
C3=0 C3=0

Automates programmables industriels 85


SFC→LD: Algorithme RS
Algorithme à recherche de stabilité

Mémoriser
les entrées

OUI NO
1re cycle

Détermination transitions franchissables


Activer étapes initiales

Détermination du nouvel état

OUI NO
Ètat stable

Affecter
les sorties

Automates programmables industriels 86


SFC→LD: Algorithme SRS
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].

1 1 1
Cycle k Cycle k+1

C1=1
T1 T1 T1
C1 C1 C1
2 O 2 O 2 O

T2 T2 T2
C2=1 C2=1 C2=1
3 3 3

T4 T4 T4
C3=0 C3=0 C3=0

Automates programmables industriels 87


SFC→LD: Algorithme SRS
Algorithme sans recherche de stabilité

Mémoriser
les entrées

OUI NO
1re cycle

Détermination transitions franchissables


Activer étapes initiales

Détermination du nouvel état

Affecter
les sorties

Automates programmables industriels 88


SFC→LD: Algorithme SRS

L’algorithme sans recherche de


stabilité est similaire au cycle
séquentiel qui caractérise les
API

Automates programmables industriels 89


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

Automates programmables industriels 90


1 - Initialisation
Initialisation (seulement au première cycle): les étapes initiales sont activées
et les actions correspondants exécutées.
W a
1 JMP
Si on est au première cycle (W=0) on
W
active les k étapes initiales
2 S
in-1, in-2, …, in-k
Xin-1
Activation première étape initiale
3 S
. . W est mis à 1 : aux prochains cycles la
. . phase d’initialisations est sauté.
. .
Xin-k
Activation dernière étape initiale
k+2 S A la fin de l’initialisation on saute à
actions
l’exécutions des actions associées aux
k+3 JMP étapes initiales.
a
k+4 LBL

Automates programmables industriels 91


2 – Détermination des transitions
Détermination de transitions franchissables dans ce cycle (le nombre total de
transitions est m).

X1 X2 C1 Tr1
1
1 2
X3 C2 Tr2
2

Tr1
Détermination franchissement transition 3 C1
3
. .
3
. .
. .
Détermination franchissement transition m
m Tr2
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.
Automates programmables industriels 92
3 - Mis à jour de l’état (1)
Franchissement des transitions avec désactivation des étapes en amont et
activation des étapes en aval.
Première partie: on spécifie les étapes en amont qui sont désactivées par
le franchissement de chaque transition

Tr1 X1
1 R 1 2
X2
R
Tr2
X3 Tr1
2 R C1
. . 3
. .
. .
Désactivation étapes en amont transition m Tr2
m C2

4
Automates programmables industriels 93
3 - Mis à jour de l’état (2)
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.

Tr1 X3
m+1 S 1 2

Tr2
X4
m+2 S
Tr1
C1
. . 3
. .
. .
Activation étapes en aval transition m Tr2
2m C2

4
Automates programmables industriels 94
4 - Exécution des actions (1)
Exécution des actions associées aux étapes actives (le nombre total de étapes est p).
actions Plusieurs cases possibles.
1 LBL

X1 1
2

X2 O1 2 O1
3

W1
X3 W1 O2
4 3 C O2

X4 O3
5 S 4 S O3
. .
. .
. .
Automates programmables industriels 95
4 - Exécution des actions (2)
Exécution des actions associées aux étapes actives (le nombre total de étapes est m).
. .
. .
. X5 . T 1s
Y2
6
5 D O2

T1
100

X6
7 T2 Tr1
300 6 t/X6/3s

. .
. .
. .

Exécution actions étape q


p+1

Automates programmables industriels 96


Exemple - Perceuse
p = démarrage S = remontée
a = fin course haut D = descente
m = moyenne course R = rotation
b = fin course bas O = huilage
x = contact pièce
y = pièce en place

• 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.
Automates programmables industriels 97