Langages de Programmation
sous la Norme IEC 61131-3
• Langage Ladder (LD) ;
• Liste d'instructions (IL) ;
• Sequential function chart (SFC), proche du langage
Grafcet ;
• Texte structuré (ST) ;
• Boîtes fonctionnelles (FBD), sous forme de diagramme ;
Introduction
Le GRAFCET (Graphe Fonctionnel de Commande
Étapes et Transitions) est un diagramme fonctionnel. Il
permet de représenter par un graphe le fonctionnement
d’un système automatisé
Développé en France à la fin des années 70
Initialement (1977), le Grafcet servait à la description
des Automates Programmables Industriels (API)
Devient standard IEC 848 en 1988
Appelé SFC (Sequential Function Chart) dans le
standard IEC 61131-3
Langage graphique de haut niveau
Introduction
Le Grafcet est un Système Dynamique à Evénements Discrets
* Système dynamique : dont l’état dépend des entrées passées et
présentes (en opposition aux systèmes statiques)
* Système à événements discrets :
• l’état du système est discret : à valeur dans un ensemble fini (en
marche, à l’arrêt, etc)
• le système répond à des événements ( capteur de fin de course,
mise en marche, arrêt d’urgence, etc) (en opposition aux
systèmes (à états) continus)
Exemple
-3 états : {à l’arrêt, initialisation, en
marche}
-3 événements : {début, marche, arrêt}
Description
Un grafcet est un graphe orienté biparti défini
par G=(E,T,A,M0)
• des étapes (rectangles 1,2,3,4)
- actives : marquées par un • (4)
- inactives (2,3)
- initiales : actives à t=0 (double rectangle, 1)
• des transitions (trait horizontal, (1), (2), (3))
- entre des étapes
- associées à des événements et / ou variables
(début, a, b)
• des arcs (trait vertical)
- d’une étape vers une transition
- d’une transition vers une étape
• un marquage initial
- Ensemble des étapes actives à t=0 (1, 4)
Description des étapes
Un grafcet comporte un nombre fini d’étapes
-Une étape se trouve entre 2 transitions et :
- est représentée par un rectangle
- est active ( • ) ou inactive ( )
- représente l’état du système
-On définit un vecteur d’état booléen X :
Xi= 0, si l’étape i est inactive (X3=0)
Xi= 1, si l’étape i est active (X2=1)
- À une étape peut être associée une action :
- l’action est effectuée quand l’étape est active
Description des étapes
On décrit fréquemment l’évolution d’un grafcet par des chronogrammes :
Description des transitions
Un grafcet comporte un nombre fini de transitions
-Une transition se trouve entre 2 étapes et :
- est représentée par un trait horizontal
- est validée si l’étape amont est active
- Aux transitions sont associées des réceptivités,
notées Ri , dépendant:
- de variables internes (X3) ou externes (arrêt)
- d’événements internes (↓X5) ou externes (↑début)
- de combinaisons des 2
-SI (une transition est validée) ET (sa réceptivité est vraie)
=> ALORS la transition est franchissable
Ici 2 est active, dès que fin de course =1, (2) est franchissable
Description des arcs
Un grafcet comporte un nombre fini d’arcs
-Un arc est représenté par :
- un trait vertical de haut en bas
- une flèche s’il va de bas en haut
-Un arc est orienté :
- d’une étape vers une transition (de 1 vers (1))
- d’une transition vers une étape (de (1) vers 2)
- d’une étape vers plusieurs transitions
- Possibilités de convergences / divergences :
- en OU pour modéliser les choix
- en ET pour modéliser la simultanéité
Description du marquage
Le marquage initial :
ensemble fini non vide d’étapes actives à l’instant
initial, représentées par des doubles rectangles (1).
De manière générale, à un instant t, le marquage :
- est l’ensemble des étapes actives ( )٭
- décrit l’état dans lequel se trouve le système
Pour résumer G=(E,T,A,M0) peut se représenter par :
Reste à détailler l’évolution (c-à-d les actions) au cours du
temps d’un grafcet en réponse à des événements
→ besoin de règles d’évolution déterministes
Règles d’évolution
Une transition peut avoir plusieurs étapes en amont et en aval
Une transition est validée si toutes ses étapes en amont sont
actives
Une transition est franchissable si est validée et sa réceptivité
est vraie
Règles d’évolution
Effets d’un franchissement :
Toutes les étapes amont sont désactivées
Toutes les étapes aval sont activées
Divergence en OU
Pour représenter un choix
Convergence en OU
Pour représenter un choix
Convergence/ Divergence en ET
Pour représenter la simultanéité
Divergence / convergence
Retour sur la gestion du conflit : - on peut aussi autoriser les 2
- on avait proposé une (suivant le CdC)
exclusion, avec priorité à a
Structure correcte ?
1 2 3 4
5 6 7 8
Structure correcte ?
1 2 3 4
5 6 7
Structure correcte ?
4
1 2 3
Ces grafcets fonctionnent-ils ?
1 2 3
Reprise de séquence
Le saut en arrière permet
de reprendre une séquence
lorsque les actions à réaliser
sont répétitives.
Saut d’étape
Le saut en avant permet de
sauter une ou plusieurs
étapes lorsque les actions à
réaliser deviennent inutiles
Représentation des actions (1)
Action continue
Action conditionnelle
Représentation des actions (2)
Action retardée
Action limitée
Représentation des actions (3)
Action mémorisée
Représentation des actions (4)
action à l’activation et à la désactivation
Une action à l’activation est une action mémorisée lors de
l’activation de l’étape liée à cette action.
Incrémentation du compteur C à l’activation de l’étape 10
Une action à la désactivation est une action mémorisée
lors de la désactivation de l’étape liée à cette action
Mise à 0 du compteur C à la désactivation de l’étape 10.
Représentation des actions (5)
Action sur événement
Une action sur évènement est une action mémorisée
conditionnée à l’apparition d’un événement, l’étape à
laquelle l’action est reliée étant active. Il est impératif que
l’expression logique associée à l’évènement
comporte un ou plusieurs fronts de variables d’entrées.
Incrémentation du compteur
C sur le front montant de « a
», l’étape 10 étant active.
Types Du Grafcet
Il existe trois types du GRAFCET qui sont :
1. GRAFCET DE NIVEAU 01 (GRAFCET/ partie système)
Ce type de GRAFECT est basé sur la représentation de toutes les
parties du système automatisé avant l’existence de ce dernier
(système automatisé). Par ailleurs le GRAFCET de niveau 1 est un
GRAFCET de coordination des données et des actions.
Types Du Grafcet
2. GRAFCET DE NIVEAU 02 (GRAFCET/ partie opérative)
Ce type de GRAFCET est basé sur la technologie des actionneurs
(moteurs électriques, vérins, …etc.) et capteurs, ces derniers nous
permettent de réaliser un diagramme séquentielle qui définit le
comportement de la partie commande d’un système automatisé.
Types Du Grafcet
3. GRAFCET DE NIVEAU 03 (GRAFCET/ partie commande)
Ce type de GRAFCET prend le matériel existant (automates
programmables, contacteurs, boutons poussoirs, …etc.) pour réaliser
la partie commande. Le GRAFCET de niveau 03 est basé sur la
programmation des automates programmables en utilisant par
exemple le langage ladder (langage contact) dont les entrées (%I0.0)
et les sorties (%Q0.0)
Exemple 1
Cahier des charges : après appui sur départ cycle
« dcy », les chariots partent pour un aller-retour. Un
nouveau départ cycle ne peut se faire que si les deux
chariots sont à gauche.
CH1, CH2 : chariot 1, 2 dcy
g : capteur « position gauche »
d : capteur « position droite » CH1
G : action « aller à gauche » g1 d1
G1 D1
D : action « aller à droite »
CH2
g2 G2 D2 d2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2 dcy
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g : capteur « position gauche » g1 G1 D1 d1
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 d2
G2 D2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2 dcy=1
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g : capteur « position gauche » g1 G1 D1 d1
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 d2
G2 D2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g : capteur « position gauche » g1 G1 D1 d1
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 d2
G2 D2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g1 G1 D1 d1
g : capteur « position gauche »
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 G2 D2 d2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g1 G1 D1 d1
g : capteur « position gauche »
d : capteur « position droite » CH2
G : action « aller à gauche »
D : action « aller à droite » g2 G2 D2 d2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g1 G1 D1 d1
g : capteur « position gauche »
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 G2 D2 d2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g1 G1 D1 d1
g : capteur « position gauche »
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 G2 D2 d2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g1 G1 D1 d1
g : capteur « position gauche »
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 G2 D2 d2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2 Etape 4 = étape « d’attente »
g1 g2 Aucune action
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g1 G1 D1 d1
g : capteur « position gauche »
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 G2 D2 d2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g1 G1 D1 d1
g : capteur « position gauche »
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 G2 D2 d2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2 Étapes 4 & 7 actives
g1 g2 Synchronisation
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g1 G1 D1 d1
g : capteur « position gauche »
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 G2 D2 d2
1
dcy . g1 . g2
2 D1 5 D2
d1 d2
3 G1 6 G2
g1 g2 dcy
4 7
=1
CH1
CH1, CH2 : chariot 1, 2
g1 G1 D1 d1
g : capteur « position gauche »
d : capteur « position droite »
CH2
G : action « aller à gauche »
D : action « aller à droite » g2 G2 D2 d2
Solution 2
Application. : Malaxage industriel
Proposer un programme en langage Ladder décrivant le fonctionnement du
système suivant:
Entrées : BP, STOP, NIV0, NIV1, NIV2 , NIV3
Sorties: LPR, ADD, BRA, PPE
Application.2: Tête d’usinage Automatisée
La figure suivante représente une station d’usinage automatisée commandée par un
API, la partie opérative est composée par deux moteurs. Le moteur T sert pour
la montée et la descente du forêt, le moteur B consiste pour le fonctionnement du
forêt. Le système est contrôlé par trois capteurs S1, S2 et S3 et commandé par un
bouton poussoir DCY pour le démarrage de la machine et un bouton poussoir AU
pour l’arrêt d’urgence .
Au repos la tête d’usinage est en haut et contrôlée par le capteur S1, à l’impulsion
sur DCY (départ cycle) le système effectue le cycle suivant :
De S1 à S2, Le tête descente en Grand Vitesse (GV).
De S2 à S3, Le tête descente en Petite Vitesse (PV) et fonctionnement foret.
De S3 à S1, Le tête remonte en Grand Vitesse (GV) et fonctionnement foret.
Convertir le cahier de charge de point de vue PC par un programme en
langage Grafcet