Le Grafcet – G7
grafcet fonctionnel
vs
grafcet technologique
Grafcet fonctionnel / technologique
grafcet fonctionnel : prise en compte de la partie fonctionnelle, en
faisant abstraction de toute réalisation technologique
grafcet technologique : en s'appuyant sur le grafcet fonctionnel, intègre
les contraintes technologiques et opérationnelles.
grafcet
grafcet fonctionnel technologique
technologie
principe pneumatique
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 2
Grafcet fonctionnel / technologique
Pour garantir l'indépendance du grafcet fonctionnel, faire attention à certains cas particuliers.
Gestion des fronts : permet de tester l'apparition / disparition d'evt plutôt que leur
présence. C'est le cas lorsqu'une information est déjà présente dans l'état initial.
Exemple : commande d'un moteur : lorsque l'opérateur commande la rotation, l'information
du capteur p de position est déjà vraie => tester l'apparition de p et non sa présence.
Rmq : en fait le test d'un front montant se traduit ds le grafcet technologique à l'aide d'une
étape supplémentaire.
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 3
Grafcet fonctionnel / technologique
Exclusivité au niveau des divergences : l'exclusivité de a et c peut être :
{ liée au procédé : par ex. capteurs "opposés" (objet à gauche / objet à droite);
{ incompatibilité temporelle : a priori jamais en même temps;
{ exclusion logique : structurellement, cf. schéma.
Mais pour garantir l'indépendance, il vaut mieux expliciter l'exclusivité de façon
structurelle
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 4
Grafcet fonctionnel / technologique
Gestion des simultanéités en fin de convergence
Hypothèse sur les capteurs
1 solution, mais avec
Pb : si une action finie solution la meilleure.
hypothèse : capteurs à
avant l'autre, elle ne
contact maintenus
peut pas s'arrêter
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 5
Le Grafcet – G7
Dialogue entre grafcets
Le Grafcet – G7
Dialogue entre grafcets :
Communication dans l'entreprise
CF COURS RLI
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 8
Communications
Evolution des architectures d'automatismes : introduction de communications
de façon hiérarchique
En entreprise : hiérarchie des communications = pyramide CIM (Computer
Integrated Manufacturing)
Cf. cours
RLI
Avantages :
{ Réduction du câblage
{ Réduction des coûts (câblage, interface PO/PC (interface capteurs))
{ Modularité
Inconvénients :
{ Gestion des délais, pertes, contraintes temporelles, répartition des données
⇒ problématique des réseaux locaux industriels (RLI)
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 9
Le Grafcet – G7
Dialogue entre grafcets :
Division technologique
Réalisation technologique
Il est donc souvent nécessaire ou judicieux de diviser la partie
commande et/ou la partie opérative :
{ Application complexe divisée en sous parties de moindre complexité;
{ Synchronisation et dialogue entre sites réparties géographiquement;
{ Intégration du concept de CIM avec nécessité d'optimiser les
communications entre niveaux.
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 11
Réalisation technologique
Exemple : 2 chariots
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 12
Le Grafcet – G7
Hiérarchisation de la partie
commande
Hiérarchisation
Exemple : 3 chariots.
{ Les chariots 1 et 2 se chargent (CPi) à gauche et se
déchargent (Dpi) à droite dans le chariot 3;
{ chariot 1 en 1er
{ Le chariot 3 se décharge (Dp3) à droite.
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 14
Hiérarchisation
Découpage de la PC :
{ Gestion des chariots (3 grafcets, un par chariot)
{ Gestion des synchronisations, mémorisations, ressources.
chariot 1 chariot 2
chariot 3
synchro
synchro synchro
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 15
Hiérarchisation
grafcet de
Synchronisation et gestion de la ressource chariot 3 : synchronisation
chariot 1 chariot 2
chariot 3
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 16
Hiérarchisation
Commande hiérarchisée :
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 17
Le Grafcet – G7
Implantation
Mise en oeuvre
La norme définit les symboles et les règles nécessaires à la
représentation graphique de ce langage, ainsi que l’interprétation qui
en est faite.
Les techniques de mise en œuvre (passage d’une spécification
GRAFCET à une réalisation câblée et (ou) programmée) ne font pas
partie du domaine d’application de cette norme.
Rmq : ds le cas des systèmes de commande intégrant un automate
programmable, la norme CEI 61131-3 (1993) définie un ensemble de
langages de programmation destinés aux automates programmables.
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 19
Implantation du grafcet
Description du comportement du grafcet = règles d'évolution => modèle
comportementale.
Pour l'implantation, on a besoin d'une formalisation supplémentaire :
{ Soit algorithme d'évolution
{ Soit équation booléennes équivalentes (équations logiques)
Ces 3 représentations sont équivalentes (même comportement du système
vis-à-vis des E/S)
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 20
Le Grafcet – G7
Algorithme d'évolution
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 22
Algorithme d'évolution
Exemple :
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 23
Algorithme d'évolution
Exemple :
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 24
Algorithme d'évolution
IMPLANTATION INFORMATIQUE : plusieurs façons selon des critères
d'optimisation (taille mémoire, tps d'exécution..)
Exemple simple :
Paramètre. Paramètre. Paramètre. Paramètre. Paramètre.
Données ou ou ou ou ou
Propriété Propriété Propriété Propriété Propriété
Entrée Nom Valeur N° Connex. 1 = vert
0 =rouge
Sortie Nom Valeur N° Connex. 1 = vert
0 =rouge
Etapes Nom Etat Initiale ? Liste Trans. Amont Liste Trans. Aval
Transition Nom Franchissable ? Réceptivité Liste Etapes Amont Liste Etapes Aval
Réceptivité Nom Valeur Fonction
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 25
Algorithme :
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 26
Algorithme d'évolution
Variantes :
{ Algorithme sans recherche de stabilité : le précédent; (nom : SRS)
{ Algorithme avec recherche de stabilité (nom : ARS) : de nouvelles entrées ne
sont lues que lorsque le grafcet a atteint un état stable.
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 27
Algorithme d'évolution
Intérêt de la recherche de stabilité
Exemple : déplacement d'un mobile
Fonctionnement :
{ Déplacements initiaux : H et D (1) (2)
{ Si atteinte de b avant a : le mobile repart à gauche (3)
jusqu'à c
(4)
{ Si atteinte de a avant b, et le bouton poussoir m
enclenché : continu d'aller à droite jusqu'à d (ne (5)
monte plus)
(6)
{ Si atteinte de a avant b, et m non enclenché : va à
droite jusqu'à b, puis revient à gauche jusqu'à c. (7)
(8)
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 28
Algorithme d'évolution
Mise en œuvre SANS stabilité :
1) Lecture des entrées
2) Evolution de la situation (franchissement d'1 ou plusieurs transitions simultanées)
3) Exécutions des actions
Exemple de scénario d'entrée : capteur m, puis a, puis b rapidement après a
Comportement : (situation initiale {1,2} )
{ Lecture de m
{ Evolution {1,2} →{1,4}
Rmq : si b arrive + tard, la transition n°6 sera franchie
{ Action : H,D avant la n°5 => comportement non déterministe, ce
{ Lecture de ↑a qui n'est pas dans l'esprit du Grafcet
{ Evolution {1,4} →{3,4}
{ Action : D
{ Lecture de ↑ b
{ Transitions franchissables : n°5 ET n°6
⇒ simultanément franchies, pas très correct a priori (branches censées être exclusives)
{ Actions : G et D => confirmation du problème !!
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 29
Algorithme d'évolution
Une solution : assurer explicitement l'exclusivité des branches d'une structure
de choix, ou éviter les situations instables (difficile, et grafcet souvent limité).
Autre solution : Mise en œuvre AVEC stabilité
1) Lecture des entrées
2) Evolution de la situation jusqu'à atteinte d'une situation stable
3) Exécutions des actions
Sauf cas particulier, la recherche de stabilité est indispensable à la mise en
œuvre correcte d'un grafcet.
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 30
Algorithme d'évolution
Optimisations :
{ Diminution du nb de transitions à explorer : au lieu d'explorer toutes les
transitions, on sélectionne les transitions aval des étapes actives.
{ Diminution du nb de transitions à explorer : au lieu d'explorer toutes les
transitions, on ne sélectionne que les transitions associées aux entrées
qui ont changées.
{ Rmq : ces optimisations sont + ou – efficaces suivants l'implémentation
mémoire des données (listes, chaînées ou doublement chaînées,
tableaux, etc..)
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 31
Le Grafcet – G7
Équations équivalentes
Equation logique d'une étape
Principe : on considère une étape Xp et son environnement.
Une étape p est active (Xp vaut 1) si :
{ elle est activée par l'amont
{ elle valait déjà 1 et n'est pas désactivée par l'aval
Xp(tn +1) = ConditionActivation + Xp(tn) × (ConditionDesactivation)
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 33
Équations équivalentes
Equation logique d'une étape
Initialisation : activation des étapes initiales, désactivation des autres :
{ Init(Xp) = 1 à t0 si Xp est une étape initiale, 0 sinon.
Xp (t n +1 ) = Init ( Xp ) + ConditionActivation + Xp(t n ) × (ConditionDesactivation)
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 34
Équations équivalentes
Exemple : début de choix de séquences
b+c
d
e
X10 = X9.a + X10.(b + c)
X21 = X10.b + X21.d
X31 = X10.c + X31.e
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 35
Équations équivalentes
Exemple : fin de choix de séquences
a
g
f
X9 = (X22.g + X32.f) + X9.a
X22 = X21.d + X22.g
X32 = X31.e + X32.f
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 36
Équations équivalentes
Exemple : début de séquences parallèles
b
d
e
X10 = X9.a + X10.b
X21 = X10.b + X21.d
X31 = X10.c + X21.e
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 37
Équations équivalentes
Exemple : fin de séquences parallèles
a
X31.b
X30.e X21.b
X10 = X21.X31.b + X10.a
X21 = X20.d + X21.X31.b
X31 = X30.e + X31.X21.b
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 38
Équations équivalentes
Conditions d'activation (CAXp) : pour Xp à l'instant n+1
∀i , j amont de p ⎧⎪ ⎡ ⎤ ⎫⎪
∑ ⎨∑ ( Xi . Ri ) + ∑ ⎢∏ Xj1 .. Xjd . Rj )⎥ ⎬
⎪⎩ i
i
j1 jd
j ⎣ ju ⎦ ⎪⎭
Ti Ri Tj Rj
instant n
instant n+1
p
l1 ld
Conditions de désactivation (CDXp) : Tk Rk
Tl Rl
∀k ,l aval de p
⎧ ⎡ ⎤⎫
∑ ⎨∑ ( Rk ) + ∑ ⎢∏
l ⎣ lv
Xl 1 .. Xld . Rl ) ⎥⎬
⎦⎭
⎩k
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 39
Équations équivalentes
Gestion des actions
Action continue : son activité dépend de l'activité des étapes
auxquelles elle est associée.
Exemples :
• A = X1 + X3
• A = X1 • B = X2
• B = X2
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 40
Équations équivalentes
Gestion des actions
Action conditionelle : son activité dépend de l'activité des étapes
auxquelles elle est associée ET des conditions.
Exemple :
A = X1 . e
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 41
Équations équivalentes
Gestion des arrêts d'urgence :
{ AU doux : stop des actions
A = Xp . AUd
Signaux d'arrêt d'urgence
{ AU Dur : désactivation des étapes
Xp(tn +1) = ( Init(Xp) + CAXp + Xp(tn) × (CDXp) ). AUD
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 42
Équations équivalentes
Exemple 1 : Les équations équivalentes
• Xi(0) = 0 ∀i
le grafcet • Init = 1 à t=1
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 43
Équations équivalentes
Exemple 2 : commande du cycle d'1 vérin avec initialisation et détect° de dépassement du tps
le grafcet
1
T1 10
NonGA T2 GA
2 Ordre VaGauche T5 X4
T2 GA
11 Début détection
3 Attente
T3 GoCycle T6 X3 T7 t/X11/5 sec
4 Ordre VaDroite 12 ALARME
T4 DA T8 ACQ
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 44
Équations équivalentes
le grafcet
Les équations équivalentes
X1 = Init + X1.(GA + GA)
X1 = Init + X1.1 = Init + X1.0
X1 = Init
X2 = X1.GA + X4.DA + X2.GA
X3 = X2.GA + X1.GA + X3.GoCycle
X4 = X3.GoCycle + X4.DA
Les équations de sorties X10 = Init + X12.ACQ + X11.X3 + X10.X4
X11 = X10.X4 + X11.( X3 + (t / X11 / 5 sec))
VaGauche = X2
X12 = X11.(t / X11 / 5 sec) + X12.ACQ
VaDroite = X4
ALARME = X12
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 45
Conclusion
Ces principes montrent comment passer d'un Grafcet à une
réalisation algorithmique ou à un circuit.
Ils s'appliquent quelque soit la technologie:
{ circuits logiques
{ programmation logique sur API
{ programmation classique sur PC industriels
{ etc...
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 46
Le Grafcet – G7
Quelle technologie ?
Mise en œuvre
Le Grafcet n'impose aucune solution : le choix ne dépend que de
critères économiques ou des conditions d'utilisation.
Exemples :
{ Si besoin de modification, si bcp d'E/S ou si implémentation personnalisée : API,
programmé directement en G7 par une console de programmation (et / ou réseau).
{ Si : langage simple (ET, OU, mémoires)
{ Si fonctionnement prédéfini et figé, et simple : câblage électronique (portes et
bascules).
{ Si environnement peu compatible avec l'électronique : câblage non électronique
(réalisation pneumatique ou électrique)
{ Si fonctionnement complexe avec besoin de rapidité ou de calcul numérique : carte
µ-contrôleur ou même µ-processeur.
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 48
Mise en œuvre
Approches de mise en œuvre :
{ Approche câblée asynchrone
bascules RS
{ Approche câblée synchrone
diagramme d'états, séquenceur à bascules D
{ Approche câblée programmée
mémoire et bascules D
{ Approche programmée
µcontrôleur et processeur booléen
+ flexible
{ Automate Programmable
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 49
Le Grafcet – G7
Programmation par logique câblée
Réalisation technologique
Programmation en logique câblée :
{ Logique combinatoire
{ Logique séquentielle asynchrone
Bascule RS
{ Logique séquentielle synchrone
{ Séquenceur électrique
{ Séquenceur pneumatique
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 51
Le Grafcet – G7
Exemple :
Câblage par bascules RS
Câblage asynchrone
Mise en œuvre par câblage asynchrone : cas simple d'un grafcet linéaire.
{ Une bascule RS par étape
{ Une étape s'active si son étape amont est active + réceptivité vraie
{ Une étape se désactive qd la suivante est active
Etape i :
• Si : Set
Etape 2 : • Ri : Reset
• Qi : Sortie
{ Activation : S2 = Q1.d
{ Sortie X : X=Q2
{ Désactivation : R2=Q3
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 53
Câblage asynchrone
Schéma du câblage du système complet :
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 54
Câblage asynchrone
Principale difficulté : le routage, surtout pour un circuit imprimé (croisements de pistes
impossibles). D'autant plus que chaque composant doit être alimenté (alimentations non
représentées ici). Mais il existe désormais de bons logiciels de routage.
La mise en œuvre d'un Grafcet par câblage n'est pas très compliquée, par contre la
modification est difficile (souvent, nouveau câblage si modif du G7). De même, la
recherche d'erreurs après coup étant difficile => test du câblage dès sa réalisation.
Autre problème de cette méthode :
{ une étape active désactive son étape amont en permanence, tant qu'elle reste active (au lieu
de ne le faire qu'au moment de la transition).
⇒ L'étape amont ne peut alors pas être activée par un autre signal (ex : bouton "init")
Solution : mémoriser par une bascule intermédiaire l'état des transitions.
{ trop complexe !
{ reste des difficultés liées aux tps de réponse ≠ des bascules
⇒ câblage synchrone (bascule D), …
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 55
Le Grafcet – G7
Automate Programmable Industriel
(API)
Automate Programmable Industriel
Caractéristiques essentielles : adapté pour le contrôle de procédé
{ Un ordinateur durci : ambiance industrielle
{ Une connectique adaptée : connexion rapide
{ Un système d'exploitation adapté : fonctionnement préformé
{ Programme et exploitation adaptés : formalisme proche de la définition des
équations de commande.
larité
S du
E/ mo
Cycle de base :
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 57
Automate Programmable Industriel
Structure des systèmes
automatiques :
Principe de fonctionnement
d'un API :
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 58
Automate Programmable Industriel
• si machine = µ-processeur
⇒ spécifique au µ-processeur
• si machine = machine logique spécialisée
⇒ proche du langage booléen
LANGAGE
Langages des API
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 59
Automate Programmable Industriel
Programmation en langage booléen
Fonctions combinatoires élémentaires :
Ex : langage STEP5
{ ET logique : entre la variable et le résultat précédent, sur une console
PG605 pour les
{ OU logique : entre la variable et le résultat précédent, automates de types
{ LIRE : l'état de la variable indiquée, SIMATIC S5 Siemens
{ RANGER : le résultat dans la variable indiquée,
{ NON : inverser l'état de la variable sélectionnée
Pour chaque étape i :
{ Écrire sa condition d'activation CAXi (U : fonction ET)
{ Écrire sa condition de désactivation CDXi
{ Écrire son action associée
{ Utilisation d'une variable interne associée M0,i
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 60
Automate Programmable Industriel
Projet
P5+P7
Programmation en langage à contacts (ladder)
Type d'éléments : Ex : langage PL7-2 sur un
{ Entrées (contacts) : contact ouvert ou fermé terminal TSX-T407 pour
les automates
{ Sorties (bobines) : set et reset Télémécanique TSX 17-
{ Fonctions : AND, OR, XOR, NOT (NAND, NOR) 20/27/47-J/47-10/20
Programmation d'une étape i avec action A :
{ Écrire sa condition d'activation CAXi
{ Écrire sa condition de désactivation CDXi
{ remplacement de chaque étape Xi par une variable interne de
l’automate notée Bi ;
{ câblage de la CAXi sur le SET de Bi et de la CDXi sur le RESET de Bi;
{ câblage de l’action A associée à Xisur la variable interne Bi.
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 61
Automate Programmable Industriel
Programmation en expressions booléennes
Langage proche de l'écriture directe et non du schéma.
Ligne :
Ln° : NomVariable = ExpressionBooleenne
Instruction de saut
• exemple : L20 : (E3+E5) = L35
⇒ si (E3+E5) est vraie, le programme va ligne L35 (sinon L21)
• utilisation :
Initialisation
Mode Panne ou Normal
Calcul en fonction d'une valeur de variable
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 62
Automate Programmable Industriel
Projet
Programmation "directe" en GRAFCET P5+P7
Ex : automate
Programmation structurée en 3 parties : Télémécanique TSX 47
avec le langage
GRAFCET PL7-2 sur un
terminal TSX-T407
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 63
Automate Programmable Industriel
Programmation "directe" en GRAFCET
Exemple
Bits systèmes de l'automate :
SY21=I1,7 : init du G7
SY22=I1,6 : RAZ du G7 (AUD)
SY09=I1,5 : mise à 0 des Out (Aud)
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 64
Automate Programmable Industriel
Programmation des API : aléas
{ Il existe une différence entre l'exécution du système d'équations
séquentielles théoriques et l'exécution d'une suite d'équations sur un API.
{ Dans un API, l'état final atteint peut dépendre de l'ordre des équations /
instructions / ladder.
{ Pour éviter cela : si modification d'une variable pendant un cycle, ne pas
faire les calculs restant avec la nouvelle valeur mais avec celle de début du
cycle (utiliser une variable temp).
Exemple :
temp = a
a = b+c
≠ d=a a = b+c ⇔ d=a
a = b+c
d=a a = b+c d = temp
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 65
Automate Programmable Industriel
Programmation en langage évolué
Le programme est également structuré de
façon séquentielle (comme pour l'API) afin de
tenir compte du traitement séquentiel des
informations du système automatique.
Implémentation de l'algorithme d'évolution.
Ex : Pascal, C.
[email protected] Polytech' Montpellier, ERII4 - Cours "Automatismes et SED " 66