Grafcet et Supervision
MASTER ASE et GSI
Grafcet
et
Supervision
Masters ASE GSI Supervision Industrielle P. Bonnet
Pierre BONNET
2011-2012
Grafcet et Supervision
Pourquoi un Grafcet en supervision?
Une partie de l'activit d'un superviseur est
dcrite sous forme d'une machine
squentielle
Exemple: produire 100 pices
Le superviseur agit sur le procd par
verrouillage de transition.
Exemple: arrt du procd en fin de cycle
aprs production de 100 pices
Le systme de commande doit inclure des
tapes et/ou transitions prenant en compte
les ordres du superviseur.
source: Thse Kattan 2004
Masters ASE GSI Supervision Industrielle P. Bonnet
Grafcet et Supervision
Rappel: Les automates ont pour activit
fondamentale d'agir sur les processus (sorties) en
fonction des valeurs acquises (entres) selon des
rgles (Grafcet, Ladder, ST, IL, SFC...).
Cette activit est faite priodiquement pour ragir
en temps rel aux entres.
Un automate est une machine informatique
totalement ddie l'excution du cycle de calcul du
Grafcet. La priodicit est de l'ordre de 1 10 ms.
L'excution de la fonction "Automate" sur une machine
informatique classique ou un superviseur exige une
traduction de ce mcanisme dans le langage disponible .
Masters ASE GSI Supervision Industrielle P. Bonnet
Grafcet et Supervision
Rappel des rgles de franchissement du graphe :
X1
action1
Transition T1
X2
action2
Transition T2
X3
action3
1 - une transition est valide si toutes les tapes immdiatement
prcdentes relies la transition sont actives
2 - la transition est franchie si la transition est valide ET si la rceptivit
associe la transition est vraie
3 - le franchissement de la transition provoque simultanment l'activation
de la ou les tapes suivantes et la dsactivation des tapes prcdentes.
4 - si une tape doit tre simultanment active et dsactive, elle reste
active
5 - plusieurs transitions simultanment franchissables sont simultanment
franchies (cascade de transitions franchissables)
Problme important : les langages de programmation sont squentiels et
ne permettent pas de prendre en compte la simultanit dans les rgles.
Masters ASE GSI Supervision Industrielle P. Bonnet
Grafcet et Supervision
Mthode de base avec mise jour directe de l'activit (rgles 1, 2 et 3):
%Programme en ST (IEC 61131-3)
%Acquisition des entres
Dbut cycle
Acquisition des entres
Calcul des conditions
de franchissement avec
mise jour immdiate
de l'activit
Mise jour des sorties
Fin cycle
itration
X1
%Franchissement 1-->2 :
Si (X1=1 ET T1=1) alors
X2:=1 ; X1:=0 ;
Fin_Si
%Franchissement 2-->3 :
Si (X2=1 ET T2=1) alors
X3:=1 ; X2:=0 ;
Fin_Si
action1
Transition T1
X2
action2
Transition T2
X3
action3
%Mise jour des sorties
Action1 := X1 ; ...
L'excution squentielle n'est acceptable que si le graphe reprsente une squence pure (graphe d'tat)
De faon gnrale, l'application des rgles peut provoquer un dysfonctionnement:
- la variable X2 prend sa valeur ds l'excution de la premire rgle
- la valeur utilise par une autre rgle est modifie ce qui peut conduire une volution errone
Masters ASE GSI Supervision Industrielle P. Bonnet
Grafcet et Supervision
Solution synchrone (volution parallle selon rgle 3):
Dbut cycle
Acquisition des entres
Calcul parallle des
conditions
de franchissement
Mise jour des activits
Mise jour des sorties
Fin cycle
itration
%Programme en ST (IEC 61131-3)
%Acquisition des entres
.....
%Franchissement 1-->2 :
Si (X1=1 ET T1=1) alors
New_X2:=1 ; New_X1:=0 ;
Fin_Si
%Franchissement 2-->3 :
Si (X2=1 ET T2=1) alors
New_X3:=1 ; New_X2:=0 ;
Fin_Si
X1
action1
Transition T1
X2
action2
Transition T2
X3
action3
%Mise jour simultane des activits
X1:=New_X1;
X2:=New_X2;
X3:=New_X3; ....
%Mise jour des sorties
....
Attention : cette solution est insuffisante: dans un graphe complexe , il peut y avoir affectations de
nouvelles valeurs contradictoires. (mise un et zro de la mme tape).
Masters ASE GSI Supervision Industrielle P. Bonnet
Grafcet et Supervision
Solution synchrone avec prise en compte de la rgle 4:
Principe de l'Appel/Rponse d'tape :
Appel:
mise 1
( New_Xi= 1 )
Rponse: mise 0
( New_Xi= 0 )
Equation de l'tape i avec priorit l'appel :
X i = X i . ReponseX i + AppelX i
Table d'volution de l'tape Xi :
Etat Courant Xi
Appel
Rponse
Etat Futur Xi
1*
1*
* cas o la priorit la mise 1 est
applique
La mthode d'appel-rponse ncessite de disposer de deux variables d'volution par tape (et la
valeur de l'tape elle-mme )
Masters ASE GSI Supervision Industrielle P. Bonnet
Grafcet et Supervision
Solution synchrone avec prise en compte de la rgle 4:
%Programme en ST (IEC 61131-3)
%Initialisation des variables
Appel_X1:=0 ; Reponse_X1:=0 ;
....
%Acquisition des entres
.....
%Franchissement 1-->2 :
Si (X1=1 ET T1=1) alors
Appel_X2:=1 ; Reponse_X1:=1 ;
Fin_Si
%Franchissement 2-->3 :
Si (X2=1 ET T2=1) alors
Appel_X3:=1 ; Reponse_X2:=1 ;
Fin_Si
X1
X1
action1
Transition T1
X2
action2
Transition
T3
Transition
T2
X3
action3
X4
action4
%Franchissement 2-->4 :
Si (X2=1 ET T3=1) alors
Appel_X4:=1 ; Reponse_X2:=1 ;
Fin_Si
%Mise jour simultane des activits
X1:= Appel_X1 OU (X1 ET Pas(Reponse_X1));
X2:= Appel_X2 OU (X2 ET Pas(Reponse_X2));
X3:= Appel_X1 OU (X1 ET Pas(Reponse_X3));
..
%Mise jour des sorties
....
Masters ASE GSI Supervision Industrielle P. Bonnet
Grafcet et Supervision
Solution synchrone (volution parallle):
Cette mthode permet de traduire toutes les structures de Grafcet :
- divergence et convergence OU
- divergence et convergence ET (paralllisme structurel)
- paralllisme interprt (plusieurs Grafcet et/ou plusieurs tapes initiales)
Masters ASE GSI Supervision Industrielle P. Bonnet
10
Grafcet et Supervision
Prise en compte de la rgle 5 :
Les rgles d'interprtation du Grafcet impliquent que toute
transition franchissable est instantanment franchissable.
ex: si X4 et X15 actives, la validation de t45 fait passer le
marquage X5 actif directement (X5 est active un temps
thoriquement nul)
Lorsqu'il y a une cascade de franchissements, la mthode
synchrone ne permet qu'un seul franchissement la fois par
cycle d'analyse
X4
t45
X15
X5
=1
X5
l'interprtation est momentanment incorrecte.
La situation finale (ensemble des marquages actifs d'tapes) n'est obtenue qu'aprs
plusieurs cycles de calcul , avec affectation des sorties associes aux tapes marques
transitoirement (commande impulsionnelle pouvant solliciter les actionneurs)
Masters ASE GSI Supervision Industrielle P. Bonnet
11
Grafcet et Supervision
Solution synchrone avec ARS (Algorithme de Recherche de stabilit):
L'volution de l'activit peut conduire valider de nouveaux franchissements pour les mmes
valeurs de variables d'entres.
Le principe de l'ARS est de vrifier si la
stabilit est atteinte par une nouvelle analyse
des transitions pour des valeurs d'entres
identiques et sans affecter les sorties:
Dbut cycle
Acquisition des entres
Calcul des conditions
de franchissement
- si les nouvelles valeurs d'activit sont
identiques aux anciennes, le systme est dans
un tat stable,
Evaluation de la Stabilit
- sinon ritrer jusqu' stabilit
Mise jour des Activits
non
L'activit
est-t-elle stable?
Mise jour des sorties
oui
Attention : un Grafcet peut
ne pas tre stable pour
un jeu donn d'entres
(instabilit permanente)
Fin cycle
Masters ASE GSI Supervision Industrielle P. Bonnet
12
Grafcet et Supervision
Solution synchrone avec ARS:
L'interprtation Avec ou Sans Algorithme de Recherche de Stabilit donne des rsultats diffrents:
Source: Dominique L'HER , thse "Modlisation du Grafcet", Rennes, 1997
Masters ASE GSI Supervision Industrielle P. Bonnet
13
Grafcet et Supervision
Mise en oeuvre de l'ARS:
Dans l'algorithme "synchrone", l'ARS consiste simplement vrifier que les nouvelles valeurs
d'tapes sont diffrentes ou non des valeurs prcdentes.
%Acquisition des entres et initialisation des variables internes
Stable:=0;
Appel_X1:=0 ; Rponse_X1:=0;...
Old_X1:=X1; Old_X2:=X2 ; Old_X3:=X3
TantQue (Stable=0)
%Franchissements
Si (X1=1 ET T1=1) alors
Appel_X2:=1; Reponse_X1:=1;
Fin_Si
Si (X2=1 ET T2=1) alors
Appel_X3:=1; Reponse_X2:=1;
Fin_Si ...
%Calcul des volutions
X1:= Appel_X1 OU (X1 ET Pas(Reponse_X1));
%Test Stabilit
Si (X1=Old_X1) ET (X2=Old_X2) ET ... alors
Stable:=1
Fin_Si
Fin_TantQue
%Mise jour des sorties permanentes...
Masters ASE GSI Supervision Industrielle P. Bonnet
14
Grafcet et Supervision
Limites de l'ARS:
- lorsqu'il y a volution, l'algorithme refait systmatiquement une boucle de calcul en vue de la
recherche de stabilit. Le calcul est donc plus long qu'avec un algorithme sans recherche de
stabilit. Les performances sont 2 fois moindres que sans ARS.
- pour un jeu d'entres donnes, il se peut que le Grafcet soit sans situation stable .
Dans un tel cas, l'algorithme boucle indfiniment
Il est donc impratif de limiter le nombre de boucle de recherche de la stabilit du
Grafcet
(implanter un compteur de boucles)
- l'ARS ne permet pas de traiter correctement une cascade de front
correspondant la mme variable d'entre.
Une solution est de dsactiver le front aprs utilisation dans une transition
franchissable pour viter la cascade (dlicat mettre en uvre dans le cas gnral
lorsque le front est utilis par plusieurs transitions avec et sans cascade)
X1
X1
a
X2
action2
a
X3
Masters ASE GSI Supervision Industrielle P. Bonnet
action1
action3
15
Grafcet et Supervision
Vrification du Grafcet:
La mthode d'implantation devrait permettre de vrifier les proprits suivantes:
- absence de blocage
- possibilit de retour la situation initiale
- l'accessibilit une situation particulire souhaite
- le marquage permanent d'une tape
- la possibilit d'une instabilit
Il est remarquer qu'aucune d'implantation du Grafcet ralise l'ensemble de ces vrifications
Masters ASE GSI Supervision Industrielle P. Bonnet
16
Grafcet et Supervision
Exercice 1
Donner l'algorithme complet du Grafcet en VBA, avec ARS et arrt forc au del de 10 boucles
de recherche de stabilit pour le Grafcet suivant:
X1
- Les entres et sorties seront simules par
des cellules Excel.
- les tapes seront visualises par des cellules.
- le nombre d'itration sera visualis
- Lorsque l'arrt de l'algorithme est forc,
donner un message d'erreur.
depart
X2
b
X3
V1
b
X4
V2
a
Le calcul sera lanc par directement par
Bouton Poussoir annexe (appel vnementiel du
Grafcet)
Le systme prsent-t-il des situations instables ? Pour quelles valeurs des entres ?
Masters ASE GSI Supervision Industrielle P. Bonnet
17
Grafcet et Supervision
Les actions sont associes l'activit des tapes. La norme CEI 61131-3
prvoit plusieurs type d'actions.
Actions :
Action l'activation : l'action est mene une fois lors de l'activation de
l'tape . Gnralement elle sera du type "mise 1" d'une sortie mmorise.
X1
action1
Transition T1
X2
action2
Transition T2
X3
action3
Action continue : l'action est mene pendant toute la dure de
l'activation de l'tape
Action la dsactivation : l'action est mene une fois lors de la
dsactivation de l'tape . Gnralement elle sera du type "mise 0" d'une
sortie mmorise.
Action conditionnelle: l'action est mene si les conditions logiques
associes sont vraies
Action temporise : l'action est mene pendant une dure spcifie.
Elle est gnralement remise 0 si l'activit de l'tape associe disparat
Voir descriptif dtaill Techniques Ingnieur N. Jouvray/Isagraf
Masters ASE GSI Supervision Industrielle P. Bonnet
18
Grafcet et Supervision
Evolution vnementielle :
L'activit d'un Grafcet ne peut voluer que lorsque l'une
des variables d'entre change d'tat [ou de valeur]
X1
action1
Transition T1
Les sources d'vnement sont:
X2
action2
Transition T2
X3
action3
- les entres externes du Grafcet (entre matrielle,
toute variable utilise en lecture)
- une action sur l'IHM
- les fin de temporisation
- les activits d'autres Grafcet excuts dans d'autres
processus
Masters ASE GSI Supervision Industrielle P. Bonnet
19
Grafcet et Supervision
Evolution vnementielle: Diagramme de commande
X1
action1
IHM
Chgt val,
clic...
Chgt valeur
Transition T1
X2
action2
Transition T2
X3
Timer
d'excution
priodique
action3
Entres
Externes
Chgt val
Tic
Grafcet
principal
Chgt valeur
Chgt valeur
Sorties
Chgt valeur
lancement
Fin tempo
Autres
Grafcet
Temporisations
Note : si une source de donnes ne cre pas d'vnement, il est possible de
prendre en compte les donnes par une excution priodique du Grafcet
Masters ASE GSI Supervision Industrielle P. Bonnet
20
Grafcet et Supervision
sortie
Temporisation:
Une temporisation est un objet externe, possdant :
- une entre (le lancement de temporisation)
- une sortie (la fin de temporisation)
Sub Execution_Grafcet
%Acquisition des entrees
% Calcul des evolutions...
%Mise jour des sorties
Si X2=1 alors
Lancement_Tempo Duree,"Fin_Tempo1"
FinSi
Sortie2 := ...
End Sub
Sub Fin_Tempo1()
Fin_Tempo1 := True
Execution_Grafcet
Fin_Tempo1 := False
End Sub
Attention : le timer ne doit pas tre
relanc chaque mise jour !
(voir solution de l'exercice)
Lancement
tempo
Graphe de
commande
entre
Temporisateur
entre
Fin
tempo
Lancement
tempo
Grafcet
Principal
sortie
Timer
d'excution
Fin tempo
X1
Depart
X2
Lancement_Tempo1
Fin_Tempo1
X3
Masters ASE GSI Supervision Industrielle P. Bonnet
Action
21
Grafcet et Supervision
Exercice 2 : Grafcet avec temporisation et arrt urgence
Allumer une lampe L1 pendant 3s par appui sur un bouton-poussoir bp de l'IHM .
Le bp ne sera relch qu'aprs la fin de temporisation
Un bouton d'arrt d'urgence au permet d'arrter le processus avant la fin de tempo.
L'arrt d'urgence est annul par un second appui.
Mthode :
- sparer l'application en processus (grafcet, lments de l'IHM , temporisateur, sortie...)
et prciser les donnes changes entre les processus
- crire le Grafcet de commande (le grafcet commande l'apparence des boutons, le
lancement de la tempo et la variable de sortie partir des valeurs d'entres que sont l'tat
des boutons et la fin de tempo)
- crer les fonctions vnementielles de gestion des processus (boutons, tempo).
Masters ASE GSI Supervision Industrielle P. Bonnet
22
Grafcet et Supervision
Couplage un autre processus :
Le processus externe doit possder :
- une entre pour le lancement
- une sortie pour la fin d'excution
sortie
Lancement
Processus
Graphe de
commande
Processus
Fin
Processus
entre
Sub Grafcet
% Calcul volutions...
%Mise jour des sorties
Si X2=1 alors
Lancement_Processus
FinSi
Sortie2 = ...
End Sub
Sub Fin_Processus_Event()
Fin_Process= True
Execution_Grafcet
Fin_Process = False
End Sub
Le couplage par vnement est dit asynchrone
lorsque le processus appelant n'est pas bloqu
pendant l'excution du processus appel
entre
Lancement
processus
Grafcet
Principal
sortie
Processus
externe
Fin processus
X1
Depart
X2
Lancement_Processus
Fin_Processus
X3
Masters ASE GSI Supervision Industrielle P. Bonnet
Action
23
Grafcet et Supervision
Exercice 3: supervision d'un processus de fabrication
Soit un systme de fabrication est activ par
une variable logique FAB. La fin de fabrication
est signale par le systme en activant la
variable fin_fab (simule par une temporisation
alatoire ou un bouton)
FAB
Grafcet
Supervision
Systme de Fabrication
Fin_fab
On dsire raliser une supervision de la fabrication avec les caractristiques suivantes :
- l'oprateur indique le nombre de cycles de fabrication raliser par saisie sur l'IHM
(le nombre est obligatoirement compris entre 1 et 10)
- il peut faire fonctionner le systme soit en mode manu, soit en mode auto. A tout moment, il
peut rebasculer d'un mode l'autre.
- il lance la fabrication en appuyant sur un bouton start sur l'IHM
- lorsque le total de cycles est atteint, le superviseur lance un message l'oprateur
- le temps total de fabrication est indiqu, ainsi que le temps moyen par cycle
Mthode :
- sparer l'application en un processus superviseur et un processus de production
- crire le Grafcet de commande de chacun des processus
Masters ASE GSI Supervision Industrielle P. Bonnet
24
Grafcet et Supervision
MASTER ASE
Systmes d'Information pour l'Industrie
Corrig des exercices
Grafcet sur Excel
Masters ASE GSI Supervision Industrielle P. Bonnet
25
Grafcet et Supervision
Solution Exo 1 : Grafcet avec recherche de stabilite
Principe du programme:
' Dclarations des variables (evite les erreurs)
Dim X1, new_X1 ... as Boolean
Sub Bouton_Calcul_Grafcet_Click
' Acquisitions des entres
depart = [Link]
a = [Link] ...
nb_iterations = 0
While (nb_iterations<10 and stable=False)
' Calcul des evolutions
If (X1=True and depart=True) Then
new_X2=True
new_X1=False
End if
If (X2=True and a=True) Then
new_X3=True
new_X2=False
End if
If ....
' Verification evolution ARS
If (new_X1=X1 and new_2=X2 and ...) Then
Stable = True
End if
nb_iterations = nb_iterations + 1
Prvoir l'initialisation du Grafcet et des variables
Sub Bouton_Init_Click
X1 = True
new_X1 = X1
X2 = False...
'Affichage sur l'iHM
End Sub
' Mise jour des activites
new_X1 = X1 ....
Wend
' Affichage des activits et sorties sur l'IHM
Cells(6,4) = X1...
End Sub
Masters ASE GSI Supervision Industrielle P. Bonnet
26
Grafcet et Supervision
Solution Exo 2 : Grafcet avec temporisation
Interface IHM
Temporisateur
au
au
Heure courante
Armement tempo
init
bp
Proprits au:
couleur
valeur
Fin de tempo
Horloge
bp
Proprits bp:
valeur
validit
Grafcet
Allumer la
lampe L1
Initialisation
faite
Initialisation
Masters ASE GSI Supervision Industrielle P. Bonnet
L1
27
Grafcet et Supervision
Solution Exo2 : Grafcet avec temporisation
Apparence d'un lment de l'interface iHM
L'aspect ou le comportement d'un lment de l'IHM
peuvent tre modifis dynamiquement en modifiant une
ou plusieurs proprits du l'lment.
Modification du texte affich:
nom_controle.caption = "Texte"
Modification de la police
nom_controle.[Link] = True
nom_controle.Forecolor = RGB(200,100,100)
Dvalidation d'un lment d'interface
Un lment "cliquable" perd cette proprit par :
nom_element.enable = False
Utiliser des boutons bascules et non des poussoirs
Sa valeur reste modifiable.
La diffrence d'aspect entre un bouton enfonc et un
bouton dvalid est faible. Bien distinguer les deux
notions.
Un bouton-poussoir ne possde pas de "value" en
VBA; pour un usage dans un Grafcet, il faut lui
recrer une valeur (stocke dans une variable
annexe). La gestion de la valeur sera faite lors
du "click" sur le bouton (mise 1) et dans le
calcul des sorties du Grafcet (mise 0 comme
sortie).
De plus, le bouton-poussoir ne peut pas tre
maintenu dans la position enfonce ( dfaut, on
peut dvalider la proprit "enable" pour griser
le bouton.
Masters ASE GSI Supervision Industrielle P. Bonnet
28
Grafcet et Supervision
Solution Exo2 : Grafcet avec temporisation (suite)
Temporisation:
La temporisation est une relation entre le Grafcet et le
temporisateur externe [timer Windows].
Sub Calcul_Grafcet
' Acquisitions des entres
' Calcul des volutions
If (X2=True and fin_T1=True) Then ...
' Vrification ARS
' Affectation des sorties
Heure_Fin_Tempo1 = Now + TimeSerial(0,0,3)
If (X2=1 and T1_On=false)
Application OnTime Heure_Fin_Tempo1, "Fin_Tempo1"
T1_On = True
End If
Lancement tempo
End Sub
Sub Fin_Tempo1
fin_T1 = True
Calcul_Grafcet
fin_T1 = False
T1_On = False
End Sub
Execution
Grafcet
Remarquer le verrouillage mis en place avec la variable
"T1_On" pour empcher le relancement du Timer lors
d'excution ultrieures du calcul Grafcet (pas de lancement
multiples d'une mme tempo, ni de rarmementpour la dure
totale)
Masters ASE GSI Supervision Industrielle P. Bonnet
29
Grafcet et Supervision
Solution Exo3 : Grafcet de supervision d'un process
Interface IHM
Initialisation
init
nb_cycles
nb cycles
start
Compteur
manu/auto
Initialisation
faite
start
Afficheurs
manu
Maxi
atteint
Incrmenter
compteur
FAB
Temps_Fab
Temps_Moyen
Processus
Grafcet
FAB,fin_fab
fin_fab
Calcul
temps
Heure courante
Horloge
Masters ASE GSI Supervision Industrielle P. Bonnet
30
Grafcet et Supervision
Solution Exo3 : Grafcet de supervision d'un process (suite)
Masters ASE GSI Supervision Industrielle P. Bonnet
31
Grafcet et Supervision
Solution Exo3 : Grafcet de supervision d'un process (suite)
Relation superviseur/processus:
La superviseur autorise le processus quitter son tape initiale X4
processus entre alors en phase de fabrication dans l'tape X5. Cette
(utiliser la fonction rnd pour crer un ala sur cette dure). Lafin
tempo, ce qui fait voluer le processus vers X6. Cette tape met 1
superviseur .
(attente) en mettant 1 la variable FAB. Le
tape lance un timer de dure environ 3s
de fabrication est signale par la fin de
la variable fin_fab pour avertir le
Particularit de l'tape X3:
La gestion d'lments fonctionnels (programme en langage littral IL, structur ST, en ladder LD avec des
fonctions de type "execute" ou de bloc fonctionnels FB) est volontairement mis en vidence sur le Grafcet par la
prsence d'une tape X3 consacre leur excution. Cette excution doit se faire une et une seule fois,
l'activation de X3. La transition en sortie de X3 dpend de l'interprtation du Grafcet:
- pour une interprtation avec ARS, il est impratif de grer une condition du type "fin_excution"
(donc une variable de ce nom).
- pour une interprtation sans ARS sur automate standard, les sorties de l'tape X3 sont excutes
une fois par cycle machine; une transition du type "=1" convient.
Excution du Grafcet:
L'excution par vnement est exploite autant que possible, mais certaines volutions doivent tre provoques
manuellement. Par exemple, la transition associe l'tape X3 est conditionne au passage 1 de fin_calcul.
Cette variable tant une variable interne, son passage 1 ne cre pas d'vnement. Il faut solliciter le calcul.
Masters ASE GSI Supervision Industrielle P. Bonnet
32