GRAFCET : IEC/CEI 60848 … vidéo Rappels Structuration & Hiérarchisation Éléments IEC 61131-3 Implémenter Des Grafcets Coordination De Taches vidéo Raymond Philippe janvier.2004
Chapitre 1 Rappels
Historique GRAphe Fonctionnel de Commande d’Étape-Transition 1977 L’AFCET propose les bases d'un outil qu'elle appelle GRAFCET. 1982 NF C03-190: Norme française 1987 IEC 848: Norme européenne (reprend une partie de la norme NF) 2002 IEC 60848 – langage de spécification GRAFCET pour diagrammes fonctionnels en séquence. 2006 maintenance …
E/S Introduction B A Etapes r0 Transitions r1 Actions r2 Liaison(s) orientée(s) Etapes r2 r1 r0 réceptivités A Actions B Transitions
Etapes 9 9 * X9 variable d’étape de l’étape 9 X9 =0 (False) X9 =1 (true) Etat actif de l’étape Symbole de l’étape initiale * est un repère alphanumérique *
La réceptivité est une fonction logique ! Réceptivités 1 2 =1 Réceptivité toujours vraie & vol 100 =1 > X1 e1 r2 r2 La réceptivité est une fonction logique !
Règles De Construction Graphique Respecter l ’alternance étape transition !
1 Situation Initiale La situation initiale d'un Grafcet caractérise le comportement initial de la partie commande (vis à vis de la PO, de l'opérateur…). Elle correspond aux étapes actives au début du fonctionnement. Elle traduit généralement un état de repos.
2 Franchissement D'une Transition Une transition est dite validée lorsque toutes les étapes immédiatement précédentes sont actives. franchissement SI : la transition est validée ET réceptivité associée vraie franchie Non franchissable franchissable
3 Evolution Des Étapes Actives Le franchissement d'une transition entraîne : l'activation de toutes les étapes immédiatement suivantes et la désactivation de toutes les étapes immédiatement précédentes franchissable franchie
4 Evolution Simultanée Plusieurs transitions simultanément franchissables sont simultanément franchies franchissable franchie
5 Activation Et Désactivation Simultanée D'une Étape Si au cours du fonctionnement la même étape est simultanément activée et désactivée elle reste active
Postulat Temporel A l’échelle du temps interne, la durée séparant l’instant où une transition est franchissable de l’instant où elle est franchie (appelée durée d’évolution) est aussi petite qu’il est nécessaire, mais non nulle. En conséquence, la durée minimale de l’activité d’une étape ne sera jamais nulle.
Exemple Du Registre À Décalage e.a t X1 X2 X3 a e 1 2 3
Convergence & Divergence En OU x.y x.y
Saut Et Reprise De Séquence
Convergence & Divergence En ET étapes d’attente =1
A Éviter…formellement ! Synchronisation ?
Les Actions normal mémorisée
Les Actions Type C (Condition) Type D (Delay) Type L (Limited) Sm=Xn.Cn Type D (Delay) Type L (Limited)
Action Sur Front Action au front descendant (désactivation de l’étape) 2 a Action au front montant (activation de l’étape) 2 a Action au front descendant (désactivation de l’étape) 2 ^X2 C
opérateur normalisé "t1/En/t2" CEI/IEC 617-12 Temporisations 1 2 t/X1/3s 1 2 3s/X1 3s opérateur normalisé "t1/En/t2" CEI/IEC 617-12
Compteurs c:=c+1; c:=0; C<N C=N c:=c-1; c:=N; C>0 C=0 2 1 3 2 1
Chapitre 2 Structuration & Hiérarchisation
Macro Etape EXPANSION Etape Entrante Cycle Etape Sortante =1 M5 E5 1 2
Comportement Dynamique Transition validée Transition validée M5 1 2 S5 E5 M5 1 2 S5 E5 M5 1 2 S5 E5 M5 1 2 S5 E5
Remarque M5 1 2 S5 E5 l’expansion de la macro-étape est la représentation unique d’un fonctionnement et n’est donc pas « duplicable » comme un sous-programme.
Mécanisme Appel Réponse Acquittement 11 12 13 10 G1 Comment exécuter G1 à partir de T1 ? XT1 APPEL T1 X13 REPONSE XT1 ACQUITTEMENT
Utilisation En Sous Programme 11 12 13 10 TACHE A TA1 TA2 TACHE A XTA1+XTA2 appel X13 réponse acquittement XTA1.XTA2
La ressource peut être utilisée par A (macro M1) ou B (macro M2) Ressource Commune 99 R1 R2 M1 M2 A B Ici, l’étape 99 Représente la ressource Commune La ressource peut être utilisée par A (macro M1) ou B (macro M2)
Comportement Dynamique 99 B A (t1) R1 R2 M1 M2 L’étape 99 est active, la « ressource » est libre
Comportement Dynamique 99 B A (t1) R1 R2 M1 M2 Le franchissement de la transition (t1) entraîne la désactivation de l’étape 99. La ressource est donc utilisée par M1
Comportement Dynamique 99 B A R1 R2 M1 M2 Le processus B doit attendre la fin du processus A (M1) pour utiliser la ressource qui n’est plus disponible (étape 99 inactive)
Comportement Dynamique 99 B A R1 R2 M1 M2 La fin de la macro M1 entraîne la réactivation de l’étape 99. La ressource est de nouveau disponible pour B par exemple
F/Grafcet : {contexte} Forçage Grafcet {contexte} 10 nouvelle écriture… F/Grafcet : {contexte} 10 Le forçage est un ordre interne consécutif à une évolution. L’application du forçage est prioritaire par rapport à toute évolution. Les actions associées aux étapes des grafcets forcés sont maintenues pendant la durée du forçage ! Le grafcet forcé ne peut évoluer tant que l’ordre de forçage est présent.
Cohérence La cohérence de la hiérarchie impose que : Si un grafcet force un autre grafcet, la réciproque est impossible Un grafcet ne peut être forcé que par un et un seul grafcet GM1 Gs7 GM0 Gs1 Gs22 Gs21 GM2 Gs2 Gs1
Forçage Dans La Situation Vide (Désactivation) Gs 4 2 1 3 6 5 10 Gs { } L’activation de l’étape 10 entraîne la désactivation de toutes les étapes du grafcet Gs
Forçage Dans Une Situation Donnée Gs 4 2 1 3 6 5 10 Gs {4,5} L’activation de l’étape 10 entraîne l’activation des étapes 4 et 5 du grafcet Gs et le maintient dans ce contexte tant que l ’ordre de forçage est émis
Forçage Dans La Situation Courante :Figeage 6 3 10 Gs {*} 4 L’activation de l’étape 10 entraîne le figeage du grafcet Gs dans la situation courante et le maintient dans ce contexte tant que l ’ordre de forçage est émis 1 5 2 Gs
Forçage Dans La Situation Initiale 6 3 10 Gs {INIT} 4 L’activation de l’étape 10 entraîne l’initialisation du grafcet Gs et le maintient dans ce contexte tant que l ’ordre de forçage est émis 1 5 2 Gs
Exemple Pas d’activation de l’étape 7 a=1 G1{8} F/G1: {8} a a G1 G1 6 5 7 2 1 3 F/G1: {8} a G1 6 8 5 7 2 1 3 G1{8} a G1 a=1 Pas d’activation de l’étape 7
Etape Encapsulante 4 3 5 9 * 2 1 9 L’activation de l’étape encapsulante entraîne L’activation des étapes indiquées par *
Etape Encapsulante 4 3 5 9 * 2 1 9 Les grafcets encapsulés peuvent ensuite évoluer normalement tant que l’étape encapsulante est active
Etape Encapsulante 9 4 3 5 * 2 1 La désactivation de l’étape encapsulante entraîne la désactivation de toute les étapes encapsulée
Chapitre 3 Éléments IEC 61131-3
Programmation Des Réceptivités PreCheck Power MotorChecks Go Vibration Fuel Bear1 Tank1 FBD (Temp1>2000) AND (Press > 20) S1 S2 ST S1 S2 GS1.X Sw1 %IX4 LD ***.X drapeau d’étape (type booléen, domaine local)
Actions Associées Aux Étapes - Action qualifiers Actions Associées Aux Étapes Qualifier Explanation None Non-stored (null qualifier) N Non-stored R overriding Reset S Set (Stored) L time Limited D time Delayed P Pulse SD Stored and time Delayed DS Delayed and Stored SL Stored and time Limited
exemple - Action qualifiers Exécuté à l’activation de l’étape 1 Exécuté pendant l’activation de l’étape 5
Réalisation De to/Xi *.t temps écoulé depuis l’activation (type time) 1 2 3s/X1 1 2 GS1.t >=t#3s
Réalisation De to/Xi 1 2 3s/X1 1 2 %MX2 S1.X t#3s %T0 TON IN1 IN2 OUT
Durée d’activation GS*.t pour isagraf et X*.v pour pl7 exemple drapeau d’étape (ou variable d’étape) GS*.x pour isagraf ou X* pour pl7 Durée d’activation GS*.t pour isagraf et X*.v pour pl7
Réalisation des compteurs… 2 C:=C+1 2 Action(P) C:=C+1; End_action; C=3 C=3 1 C:=0 1 Action(P) C:=0; End_action;
Réalisation des compteurs… 2 2 C:=C+1 C=3 C<3 %MX2 Not %MX2 1 C:=0 S2.X CTU %MX2 CU Q S1.X RESET 3 PV
Traitement préliminaire (fronts,réceptivités,…) Structuration Traitement préliminaire (fronts,réceptivités,…) Structure Actions associées aux étapes
Structuration Des Graphes Si les Instructions de forçages ne sont pas définis dans la norme IEC 61131, les ateliers constructeurs offrent parfois des possibilités de hiérarchisation Isagraf : Notion de père et de fils Le père donne naissance au fils (GSTART) Le père tue le fils (GKILL) Le père gèle le fils (GFREEZE) PL7 junior : Notion de bit système Agit sur la totalité du chart ! %S21 pour G7 { INIT} %S23 pour G7 {*}
Chapitre 4 Implémenter Des Grafcets Vous disposez d’un atelier logiciel SFC ? 0ui Les difficultés se limitent à la saisie des structures complexes, exotiques et à la réalisation des forçages Les ateliers SFC n’offrent pas toujours la possibilité de réaliser des structures hiérarchisées complexes ( Mode de Marches et d’Arrêt) Xn1:=Xb0 and e0 or Xb1 and not e1; Non
Algorithme Sans Recherche De Stabilité Initialisation Calcul des réceptivités complexes Calcul de l’évolution Commande des actions 1 2 r2 r1 A B
Calcul des réceptivités Passage sur API Init ? Initialisation Oui Non Calcul des réceptivités complexes Calcul de l’évolution début Commande des actions fin E T S
Méthode N°1 (Trivial) Initialisation OU X0 S init X1 R X2 1 2 R0=i0.i1.i2 r2 r1 A B X0 S init X1 R X2
Méthode N°1 calcul des réceptivités 2 r2 r1 A B r0 i2 i1 i0 r0=i0.i1.i2
Méthode N°1 Évolution X1 S X0 r0 R X2 r1 r2 r0 1 A r1 2 A B r2
Méthode n°1 commande des actions X2 X1 B 1 2 r1 r2 A B r0
Exemple Complet 1 2 r1 r2 A B
Traitement des divergences 10 11 12 21 20 22 X10 R r10 X11 S X12 X20 R r201 X21 X22 S
Traitement des divergences 10 12 11 r3 r4 21 20 22 X10 R r1 X11 S r2 X12 X20 R r3 X22 S X21 r4
Re-synchronisation impossible Non respect de la règle 4 X21 R r1 X11 X22 S X12 … r4 21 22 20 r0 r1.X11 r2 11 12 10 r1.X21 r5 Re-synchronisation impossible
temps de franchissement « nul » X1 S X0 e P R X2 1 2 e Compteur et structure registre impossible
Exercice ^e0 1 S1 S4 e1 /e1.(to/X1) e3 C 2 S2 4 S1 5 S2 e2 e2 3 =1
Méthode 2 Principe De Base 1 r1 r3 X’i = nouvelle état Xi = ancien état Exemple X’0 et X0 X’0:= nouvel état X1.r1 Conditions d’activation + X0 maintient De l’activation… . (X0.r3) …a condition de ne pas évoluer !
Mémorisation du nouvel état dans l’ancien pour le cycle suivant ! Méthode 2 Mémorisation 1 r1 r3 évolution X’0:=X1.r1+X0./(X0.r3) mémorisation X0:=X’0 E T S Cycle n-1 évolution X’0:=X1.r1+X0./(X0.r3) mémorisation X0:=X’0 E T S Cycle n Mémorisation du nouvel état dans l’ancien pour le cycle suivant !
Méthode N°2 (Trivial) Initialisation R0=i0.i1.i2 1 2 r2 r1 A B X0 S init X1 R X2 OU ! Uniquement l’ancien état (Xi)
Méthode 2 calcul des réceptivités r0:=i0 . i1. i2 R0:=i0 and i1 and i2; 1 2 r0=i0.i1.i2 r2 r1 A B
Méthode 2 Évolution X’0:=X2.r2+X0./(X0.r0) X’1:=X0.r0+X1./(X1.r1) X’2:=X1.r1+X2./(X2.r2) 1 2 r0 r1 r2 A B X0:=X’0 X1:=X’1 X2:=X’2 Toute les équations sont évaluées avec l’état antérieur ce qui permet le respect des règles 4 et 5 !
Méthode 2 commande des actions A:=X’1+ X’2 B:=X’2 1 2 r0 r1 r2 A B
X’0:=(X1.X2.r1 + X3.X4.r2) + X0.[X0.(r3+r4)] Cas Général 2 1 4 3 r1 r2 r3 r4 X’0:=(X1.X2.r1 + X3.X4.r2) + X0.[X0.(r3+r4)]
Exercice ^e0 1 S1 S4 e1 /e1.(to/X1) e3 C 2 S2 4 S1 5 S2 e2 e2 3 =1
Exemple CADEPA Rôle de W0,4 W0,5 et W0,6 ?
Exemple CADEPA Rôle de W0,1 W0,2 W0,3 ?
Exemple CADEPA Rôle de W0,0 ?
Réalisation Des Forçages X0 R fo X1 S X2 (fo = true) permet le forçage du grafcet 1 2 e./fi (fi = true) permet le figeage du grafcet
Algorithme Avec Recherche De Stabilité
Chapitre 5 Coordination De Taches