Vous êtes sur la page 1sur 32

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 = togglebutton1.value
a = togglebutton2.value ...
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.font.bold = 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