4. GRAFCET OUTIL - ingveh.ulg.ac.be 4 OUTIL... · Une action peut être constituée d’un autre...
Transcript of 4. GRAFCET OUTIL - ingveh.ulg.ac.be 4 OUTIL... · Une action peut être constituée d’un autre...
4.
GRAFCET OUTIL
D’ANALYSE
Pierre Duysinx
Université de Liège
Année académique 2017-2018
1
GRAFCET:
EXTENSION DE LA LOGIQUE
DE BASE &
FONCTIONS SPECIALES
2
GRAFCET: éléments complémentaires
On associe généralement deux variables aux étapes:
La variable d’activité: variable booléenne gérée par le système qui vaut
1 si l’étape est active
Dans la norme CEI 1131-3, nom_étape.X
La variable de durée d’activité: variable de type temps gérée par le
système qui indique depuis combien de temps l’étape est active
Dans la norme CEI 1131-3, nom_étape.T
Pas toujours disponible d’emblée sans déclaration a priori
Remarque:
Ces variables sont une facilité pour la programmation.
On peut les recréer à partir de bits internes et de tempos
3
GRAFCET: éléments complémentaires
CEI 1131 ALLEN-
BRADLEY
CADEPA ISAGRAPH TELEME-
CANIQUE
variable
d'étape
étape . X *SCj:n . SA Xi GSi . X Xi
durée
d'étape
étape . T *SCj:n . TIM - GSi . t *Xi, V
réceptivité
associée à la
durée
étape . T >
T#5s
SCj:n . DN T/i/5s/ GSi . t > 5s Xi, V > 50
Solutions adoptées par différents constructeurs
pour les variables d’étape
ALLEN-BRADLEY
j : n° du fichier de contrôle SFC
n : n° de la structure de contrôle attachée à l'étape considérée
SCj:n . PRE : valeur de présélection pour la durée d'étape
CADEPA, ISAGRAPH, TELEMECANIQUE
i : n° de l'étape
4
GRAFCET: éléments complémentaires
TYPES D’ACTIONS:
On a supposé que les actions associées aux étapes étaient effectuées
et maintenues durant toute la période d’activité de l’étape.
Ce sont des actions de types « non mémorisées »
Pour simplifier la tâche du programmateur, les constructeurs puis la
norme CEI1131-3 ont introduit d’autres d’actions répondant à des
besoins pratiques.
Par contre l’utilisation de ces actions rend plus difficile la lecture des
GRAFCET
GRAFCET plus implicite
Difficulté de mise au point et de maintenance
5
GRAFCET: éléments complémentaires
Mettre à la disposition du programmeur des fonctions couramment
utilisées dans les automatismes
Bi stables
SR forcé dominant / RS réinitialisé dominant / SEMA sémaphore
Temporisateurs
Impulsion TP / temporisation à l’enclenchement TON / temporisation au
déclenchement TOF / RTC horloge temps réel (date et heure)
Compteurs
Compteur CTU / décompteurs CTD / compteur-décompteur CTUD
Différentiateurs
Détecteurs de front montant R-TRIG ou descendant F-TRIG
6
GRAFCET: éléments complémentaires
Différents types d’action 7
Temporisation
La fonction temporisation
permet de décaler un signal
logique par rapport à un autre
d’un délai fixé.
Décalage à l’enclenchement
ou au déclenchement
Sur les automates modernes la
temporisation est effectuée par
une horloge interne à 100 ms,
parfois à 10 ms
TEMPO
T
E S
E
S
T
t
t
E
S
T
<
T
t
tT
a. Retard à l'enclenchement b. Retard au déclenchement
8
Temporisation
IL Lancement LD t#2s ST Tempo1.PT LD INPUT ST Tempo1.IN CAL Tempo1
Utilisation LD Tempo1.Q ST OUTPUT
ST Lancement Tempo1 (IN : = INPUT , PT : = t#2s) Utilisation OUTPUT : = Tempo1.Q
LD
INPUT OUTPUT
EN
TON
Tempo 1
IN Q
PT ET
OK
t#2s
FBD INPUT OUTPUT
TON
Tempo 1
IN Q
PT ET t#2s
Programmation d'un bloc
fonctionnel de
temporisation
dans les différents
langages normalisés
9
Comptage
Les fonctions de comptage et de décomptage sont des fonctions couramment utilisées
Il existe divers compteurs logiciels, mais ils ne peuvent compter que des impulsions espacées d’une durée significativement supérieure au temps de cycle de l’automate (10 à 100 ms)
Pour les comptages rapides, on recourt à des cartes spéciales (horloges à plusieurs kHz)
COMPTEU
R
P
E S
E
S
t
t
t
N
PPrésélection
Compteur avec présélection:
devient vrai lorsque le nombre
d’entrées est dépassé.
10
Différentiateurs
Délivrent des impulsions d’une
durée égale à un cycle
d’automate lors du
changement d’état d’une
variable logique
E
S
t
t
E
S
t
t
largeur = 1 cycle
E SP
E SN
11
Fonctions d’organisation du cycle
BRANCHEMENTS ET REPETITIONS
Fonctions qui permettent d’intervenir sur le déroulement du cycle
de l’automate
Fonctions de branchement
Permettent de sauter conditionnement ou inconditionnellement une
série d’instructions
Saut avant / saut arrière / saut absolu / saut relatif (nombre
d’instructions)
Boucles de répétition
Permettent de répéter un groupe d’instructions un nombre de fois
donné
12
Fonctions d’organisation du cycle
JMR n
DO 5
END
JSR SR1
JSR SR1
JMP X
X
JMP Y
Y
n instr. 5 X
RET
RET
SR1
SR2
JSR SR1
JSR SR1
SR1
SR2
SR11
SR12
a. Saut direct b. Saut inverse c. Saut relatif d. Boucle DO
e. Sous-routines (économie mémoire) e. Sous-routines (structuration des programmes)
Instructions pour le contrôle du cycle13
Fonctions d’organisation du cycle
SOUS ROUTINES
A pour effet de faire abandonner la séquence d’instructions en cours par le processeur au profit d’une séquence d’instructions (la sous routine) située ailleurs dans la mémoire.
La deuxième séquence se termine par une instruction de retour RETURN qui ramène le processeur à l’endroit où il avait quitté la séquence initiale
Deux avantages
Économiser la place mémoire
Séquence reproduite plusieurs fois mais une seule fois présente en mémoire
Structurer les programmes
Décomposer les problèmes complexes en sous ensembles plus simples, correspondant par ex. à des entités technologiques
Structure modulaire et hiérarchique
Faciliter la maintenance et la lisibilité
14
Fonctions d’organisation du cycle
INTERRUPTIONS
L’automate ne scrute le monde extérieur que de manière cyclique
Pour les évènements urgents, cela demanderait des temps de cycle très
courts et donc des automates surpuissants.
Les procédures d’interruptions sont des solutions beaucoup plus
efficaces.
Les sources d’interruptions sont connectées individuellement ou par une
fonction OU à des lignes spéciales du bus, les lignes d’interruption.
Le processeur scrute automatiquement les lignes d’interruption après
chaque instruction (quelques microsecondes).
Si on détecte une demande d’interruption, on interrompt l’exécution du
programme, on réalise les traitements désirés puis on reprend
l’exécution du programme interrompu.
Au moment de l’interruption on a accès direct à tous les I/O.
15
GRAFCET: éléments complémentaires
NATURE DES ACTIONS
Le plus souvent, une action = changer une ou plusieurs variables
booléennes
La norme permet également de réaliser des opérations arithmétiques ou
autres dans un langage quelconque de l’automate
Ces instructions sont effectuées à chaque cycle pendant la durée de
l’action
Une action peut être constituée d’un autre GRAFCET.
Démarrage au moment du démarrage de l’action
Tué lorsque l’action est arrêtée (toutes les actions désactivées)
16
GRAFCET : UN OUTIL
D’ANALYSE
21
Approche progressive
Rédaction du cahier des charges: description claire, précise, sans
ambiguïté ni omission du rôle et des performances de l’équipement
Diviser la description en plusieurs niveaux ou points de vue:
1/ Point de vue système:
Description sous forme littérale du procédé, de la coordination et de
l’évolution des différentes séquences.
Description abstraite sans notions techniques.
2/ Point de vue partie opérative
Description sous forme d’actions fonctionnelles du comportement de la partie
opérative.
Effectuer le choix technologique.
3/ Point de vue partie commande
Description des échanges d’informations et d’ordres
Langage technique
22
Approche progressive
Niveau 1: Spécifications fonctionnelles
Description du comportement de la partie commande vis-à-vis de la
partie opérative PO
Comprendre ce que l’automatisme doit faire
Caractériser les réactions de l’automatisme face aux infos de la PO
Définir les différentes fonctions, informations et commandes impliquées dans
l’automatisation de la PO sans préjuger des technologies
Pas d’influence de la nature ni des caractéristiques des capteurs et
actionneurs
La sécurité de fonctionnement est incluse dans les spécifications
fonctionnelles
23
Approche progressive
Niveau 2: Spécifications technologiques
Préciser les spécifications technologiques des actionneurs, capteurs…
Spécification d’interface: insertion de l’automatisme dans le processus et
son environnement
Préciser
La nature et les informations sur les capteurs et actionneurs
Les contraintes sur les capteurs (température, humidité…)
24
Approche progressive
Niveau 3: Spécifications opérationnelles
Servir au suivi de fonctionnement de l’automatisme au cours de son
existence
Définir les spécifications sur l’équipement une fois réalisé et en
exploitation: fiabilité, pannes, disponibilité, modifications, maintenance,
HMI…
25
GRAFCET: introduction
Le GRAFCET est utilisé pour les différents niveaux de description
Description de l’automatisme par une ensemble de:
ETAPES auxquelles on associe des ACTIONS
TRANSITIONS auxquelles on associe des RÉCEPTIVITÉS
LIAISONS ORIENTEES reliant les étapes aux transitions et les
transitions aux étapes
Principes
La partie commande reste dans une étape tant que son comportement est constant.
On change d’étape lorsqu’elle est réceptive ce qui provoque le franchissement de la transition
Fonctionnement de la commande = une succession alternée d’étapes et de transitions
26
Exemple: presse
Presse destinées à la fabrication de pièces à partir de poudre comprimée
27
Exemple: presse
Partie opérative:
Poinçon inférieur fixe C
Poinçon supérieur A et une partie mobile B
Sous ensemble de mise en place de la matière
Sous ensemble d‘évacuation de la pièce
28
Exemple: presse
Fonctionnement du cycle
Matrice en haut de sa course. Poinçon inférieur engagé délimite un
espace suffisant pour recevoir de la matière. Le poinçon supérieur est
alors dans sa position haute pour permettre l’introduction de la poudre
Lors la matière pulvérulente est en place, le poinçon supérieur descend,
comprime la matière puis remonte en position haute
La matrice descend jusqu’à ce que le poinçon inférieur affleure et libère
la pièce. La pièce est ensuite évacuée
La matrice reprend sa place et le cycle peut recommencer.
29
Exemple: presse
Etude de la partie commande – GRAFCET de niveau 1
Etape 1 ; action : mise en place de la matière
Transition 1-2 ; réceptivité : matière en place et départ cycle
Etape 2 ; action : descente du poinçon
Transition 2-3 ; réceptivité : fin de compression
Etape 3 ; action : remontée du poinçon
Transition 3-4 ; réceptivité : poinçon en haut
Etape 4 ; action : descente matrice
Transition 4-5 ; réceptivité : matrice en bas
Etape 5 ; action : évacuation de la pièce comprimée
Transition 5-6 ; réceptivité : pièce évacuée
Etape 6 ; action : remontée matrice
Transition 6-1 ; réceptivité : matrice en haut
30
Exemple
GRAFCET de niveau 1
31
Exemple: presse
Etude de la partie commande – GRAFCET de niveau 2
Il convient de préciser les choix technologiques des actionneurs et des
capteurs
Dans cet exemple
Pas de procédure d’arrêt d’urgence
Mise en place manuelle de la matière par un opérateur. Un voyant vert
est allumé pendant la durée de mise en place. A la fin, l’opérateur
autorise la suite des opérations en poussant sur un bouton poussoir d
Les mouvements du poinçon supérieur et de la matrice sont réalisés par
des vérins hydrauliques double effet. Les positions hautes et basses
sont contrôlées par des capteurs de fin de course a0, a1, b1, b0
L’évacuation de la pièce est commandée par un jet d’air actionné par
une électrovanne E
32
Exemple: presse
Etude de la partie commande – GRAFCET de niveau 2
ORDRES
vers le milieu extérieur et l'opérateur
V : voyant "Prêt"
commande des actionneurs
a + : descente poinçon
a – : remontée poinçon
b – : descente matrice
b + : remontée matrice
E : évacuation
lancement de temporisations
LT1 : lancement temporisation d'évacuation
INFORMATIONS
déroulement du cycle
d : autorisation de départ cycle
fin de course des actionneurs
a1 : position basse du poinçon
a0 : position haute du poinçon
b0 : position basse de la matrice
b1 : position haute de la matrice
fin de temporisation
ft1 : fin de temporisation d'évacuation
33
Exemple
GRAFCET de
niveau 2
34
GRAFCET: METHODOLOGIE
DE GESTION D’UN PROJET
35
GRAFCET
METHODOLOGIE DE GESTION D’UN PROJET
Structuration
Approche top down
Utilisation de sous grafcets
Synchronisation : gestion du multitâche
Le mode de représentation GRAFCET autorise le lancement d’activités en
parallèle et se déroulant de manière indépendante
Nécessité de resynchroniser ces activités
Protection des ressources communes
Eviter les accès simultanés
Transposition du GRAFCET en langage automate
36
GRAFCET
METHODOLOGIE DE GESTION D’UN PROJET
Structuration
Approche top down
Utilisation de sous grafcets
Synchronisation : gestion du multitâche
Le mode de représentation GRAFCET autorise le lancement d’activités en
parallèle et se déroulant de manière indépendante
Nécessité de resynchroniser ces activités
Protection des ressources communes
Eviter les accès simultanés
Transposition du GRAFCET en langage automate
37
GRAFCET: Structuration
Pour garder au GRAFCET son potentiel de clarté: il faut le structurer
Aborder la conception d’un automatisme dans une approche top-down: du
général vers le particulier
Utiliser des étapes pouvant être décomposées en des Grafcets eux-mêmes
38
GRAFCET: Structuration
Intérêt de l’approche TOP-DOWN
Plusieurs niveaux de description facilite la description
Niveaux supérieurs compréhensibles par des non spécialistes
Outil de dialogue entre différents métiers
Répartition du travail
Entre plusieurs équipes
Test et maintenance :
Identifier les blocs origines du problème
Objectif: à chaque niveau, on peut avoir un GRAFCET sur une page ou à
l’écran
39
GRAFCET: Structuration
Utilisation des macro étapes (rappel)
5
R1
A1
6
X103
MACRO- ETAPE
8
R4
A4
9 A5
100
X6
101
R2
102
R3
A3
103
A2
= 1
40
GRAFCET: Structuration
Utilisation des actions Grafcet (rappel)
5
R1
A1
6
8 A4
9 A5
100
R2
101 A3
A2
41
GRAFCET: Structuration
Utilisation du principe du client serveur
Consiste à utiliser une action GRAFCET principal pour lancer le sous
GRAFCET
Le GRAFCET principal fait une demande de service au sous GRAFCET
Une fois sa tâche terminée le sous GRAFCET émet un compte-rendu
d’activité (bit de bonne fin) qui permet de poursuivre la séquence
Avantages de la procédure client serveur
Indépendance vis-à-vis de la numérotation des étapes
Facilité de tester séparément les SOUS-GRAFCETS
Facilité d’introduire des fonctions de diagnostic (variable de bonne fin ou
non)
42
GRAFCET: Structuration
Principe du client serveur pour la structuration des GRACETs
43
GRAFCET
METHODOLOGIE DE GESTION D’UN PROJET
Structuration
Approche top down
Utilisation de sous grafcets
Synchronisation : gestion du multitâche
Le mode de représentation GRAFCET autorise le lancement d’activités en
parallèle et se déroulant de manière indépendante
Nécessité de resynchroniser ces activités
Protection des ressources communes
Eviter les accès simultanés
Transposition du GRAFCET en langage automate
44
GRAFCET: Synchronisation
Synchronisation explicite
Regroupement de branches
parallèles sur une double barre
horizontale avec une réceptivité
unique.
S’applique lorsque les activités
parallèles sont si étroitement liées
qu’une représentation graphique
explicite de leurs interactions est
indispensable.
Lorsque les activités sont faiblement
couplées, on lui préfère des
GRAFCETs indépendants pour des
raisons de clarté. On les synchronise
implicitement par variables d’étape.
= 1
11
R11
5
R5
6
7
8
R6
R7
2
R2
3
4
R3
9
R9
10
R1
1
45
GRAFCET: Synchronisation
Synchronisation implicite horizontale:
Echange de variables entre GRAFCETs de même niveau
Les activités sont décrites par des GRAFCETs graphiquement indépendants
Les activités sont synchronisées par des bits d’étapes croisés qui servent de réceptivités dans les autres GRAFCETs
46
GRAFCET: Synchronisation
Synchronisation implicite verticale
La synchronisation horizontale peut devenir difficile à suivre à cause des
croisements de variables d’étape
Synchronisation verticale utilise un GRAFCET supplémentaire de
synchronisation et utilise le principe du client serveur
Le GRAFCET supérieur contrôle l’exécution des activités
Les interactions ne se font qu’avec le GRAFCET de synchronisation
47
GRAFCET: Synchronisation
500
R1
501
502
OK400
503
= 1
OK100.OK200.OK300
DEM100 DEM200 DEM300
DEM400
Démarrer les activités 100, 200, 300
Attendre la fin des activités 100, 200, 300
Démarrer l'activité 400
Attendre la fin de l'activité 400
8
100
DEM100
2
R2
3
R3
4
200
5
R5
6
R6
7
R7
300
9
R9
10
400
11
20
R11
DEM200 DEM300 DEM400
OK100
OK200
OK300 OK400
Synchronisation verticale
48
GRAFCET
METHODOLOGIE DE GESTION D’UN PROJET
Structuration
Approche top down
Utilisation de sous grafcets
Synchronisation : gestion du multitâche
Le mode de représentation GRAFCET autorise le lancement d’activités en
parallèle et se déroulant de manière indépendante
Nécessité de resynchroniser ces activités
Protection des ressources communes
Eviter les accès simultanés
Transposition du GRAFCET en langage automate
49
GRAFCET: Protection des ressources
communes La protection des ressources communes se pose typiquement lorsque l’on
traite des activités se déroulant en parallèle.
Les ressources communes doivent être protégées
Exemple de protection d’une ressource
commune: wagonnets de chargement
d’un haut fourneau
50
GRAFCET: Protection des ressources
communes Le GRAFCET permet de gérer
ces conflits de manière
élégante
Utilisation d’une étape de
verrouillage
L’état libre ou occupé de la
ressource commune est
représenté par la variable
d’étape X1
Pour éviter le cas où les deux
wagons se présentent
simultanément en WA et WB,
on a la réceptivité /X12, ce qui
donne priorité au wagonnet A.
Mécanisme de protection de la ressource
commune – Méthode explicite 51
GRAFCET: Protection des ressources
communes Mécanisme de protection de
la ressource commune par
l’utilisation d’un graphe de
synchronisation
Remarque : étape 1 joue le
rôle de sémaphore en
programmation temps réel
Mécanisme de protection de la ressource commune
Utilisation d'un graphe de synchronisation
1
X13 + X23
2
X14 + X24
14
10
Démarrage
11
12 Attente
13
Point WA atteint
Point WA atteint
Point A atteint
WAGONNET A
X1
24
20
Démarrage
21
22
23
Point WB atteint
Point WB atteint
Point B atteint
X1./X12
WAGONNET B
52
GRAFCET
METHODOLOGIE DE GESTION D’UN PROJET
Structuration
Approche top down
Utilisation de sous grafcets
Synchronisation : gestion du multitâche
Le mode de représentation GRAFCET autorise le lancement d’activités en
parallèle et se déroulant de manière indépendante
Nécessité de resynchroniser ces activités
Protection des ressources communes
Eviter les accès simultanés
Transposition du GRAFCET en langage automate
53
GRAFCET: TRANSPOSITION
EN LANGAGE AUTOMATE
54
Transposition en langage automate
Types de méthodes:
Bits d’étape:
L’activité d’une étape est représentée par l’état vrai ou faux d’une
variable binaire interne
Plusieurs variantes qui peuvent être programmées en IL, Ladder
Diagram, etc.
Pointeur de phase;
L’activité est représentée par la valeur d’un mot
Valeur du mot = numéro de l’étape active
Affecter un mot aux branches susceptibles d’évoluer en parallèle
Travail sur des mots langages adéquats ST
55
Transposition en langage automate
Critères de choix Facilité d’édition et lisibilité du programme
Adéquation entre méthode et langage utilisé
Exemple:
Structured Text le pointeur de phase est meilleur
IL: bit d’étape
Facilité de mise au point
Forçage des variables en phase de mise au point
Intérêt et sécurité du pointeur de phase
Facilité de diagnostic
Visualisation dynamique du pointeur de phase
Performances:
Dépend du type d’automate et du nombre d’étapes du GRAFCET
Pas de règle générale
56
Transposition en langage automate
Difficultés potentielles
Cause: les instructions décrivant le GRAFCET ne sont pas exécutées de manière simultanée, mais de manière séquentielle.
Durée d’activation minimale d’une étape doit être au moins égale à un temps de cycle
Les sorties sont calculées durant le cycle, mais elles ne sont inscrites dans la table des images et envoyées vers les interfaces qu’à la fin du cycle
Si étape activée et désactivée au cours d’un même cycle: pas d’effet!
Règle: les étapes doivent rester actives au moins un temps de cycle d’automate
Conditions d’activation de course potentiellement liées à l’ordre de scrutation des GRAFCETs.
57
Transposition en langage automate
Problème de parallélisme d’exécution Pas de solution radicale et universelle
L’utilisateur doit détecter le problème et organiser la programmation pour contrer le problème
Etudier la logique (si elle est donnée) avec laquelle le programme exécute le programme (par exemple en logigramme de droite à gauche et de haut en bas)
Problème de synchronisation Problème lié à l’échange de variables d’étape pour synchroniser, pour le
parallélisme et pour la protection des ressources communes
Dans ce cas, la difficulté est contournée de la manière suivante: lorsqu’un GRAFCET prend le contrôle de la ressource, il fait évoluer dans le même temps le GRAFCET de synchronisation
On duplique donc les évolutions du GRAFCET de contrôle
58
Problème des branches parallèles interactives
Cas idéal: évolution simultanée
R1
A1
= 1
A11
A1
A2
A2 . /A11
A3
R1
A1
= 1
A11
A1
A2
A2 . /A11
A3
R1
A1
= 1
A11
A1
A2
A2 . /A11
A3
59
Problème des branches parallèles interactives
Scrutation dans l’ordre 1-2-3:
On atteint l’état stable correct après
deux cycles
R1
A1
= 1
A11
A1
A2
A2 . /A11
A3
R1
A1
= 1
A11
A1
A2
A2 . /A11
A3
R1
A1
= 1
A11
A1
A2
A2 . /A11
A3
1 2 3
60
Problème des branches parallèles interactives
Scrutation dans l’ordre 3-2-1:
On atteint l’état stable erroné après
deux cycles
R1
A1
= 1
A11
A1
A2
A2 . /A11
A3
R1
A1
= 1
A11
A1
A2
A2 . /A11
A3
R1
A1
= 1
A11
A1
A2
A2 . /A11
A3
1 2 3
61
Problème de synchronisation
14
10
Démarrage
11
12 Attente
13
Point WA atteint
Point WA atteint
Point A atteint
WAGONNET A
X1
1
24
20
Démarrage
21
22
23
Point WB atteint
Point WB atteint
Point B atteint
X1./X12
WAGONNET B
2
1
X13 + X23
2
X14 + X24
3
Etat initial
62
Problème de synchronisation
Etat final:
Evolution fautive dans le cas
d’une scrutation 1 – 2 -3
14
10
Démarrage
11
12 Attente
13
Point WA atteint
Point WA atteint
Point A atteint
WAGONNET A
X1
1
24
20
Démarrage
21
22
23
Point WB atteint
Point WB atteint
Point B atteint
X1./X12
WAGONNET B
2
1
X13 + X23
2
X14 + X24
3
63
Organisation des programmes
Partie combinatoire
Séparer la partie combinatoire de la partie séquentielle
Mettre la partie combinatoire en avant
Partie séquentielle
Séparer la partie du programme relative à l’évolution du GRAFCET et la
partie calcul des actions
Les actions
Calcul des actions en fin de programme
Trier le calcul des actions en une seule équation
Facilité de la mise au point
Traitement plus facile des arrêts d’urgence
64
Organisation des programmes: actions
A
A
S
R
M2
M2
M2
M3
M3
M3
M4
M4
M4
A
A
A
A
A
a.
b.
c.
AU
Intérêt de regrouper les équations
relatives aux actions
65
Méthodes de transpositions
Calcul préalable des conditions de transition
Les conditions de transition pour toutes les étapes sont calculées en début de programme
Les bits internes de résultats sont ensuite utilisés en tant que réceptivités dans la description de l’évolution du GRAFCET
Si une étape était activée au cours du cycle, on est certain qu’elle ne peut pas être désactivée dans un même cycle d’automate puisque la réceptivité + validation est nécessairement faux
Les actions sont regroupées à la fin du programme
– Exemple de GRAFCET
– Calcul des conditions de transition
condition de transition 10 - 20
LD
AND
ST
LD
AND
ST
M10
R1
M11
M20
R2
M21
Si l'étape 10 est active
et que la réceptivité R1 est vraie
activer la condition de transition M11
condition de transition 20 - 30
Si l'étape 20 est active
et que la réceptivité R2 est vraie
activer la condition de transition M21
– Calcul de l'évolution
transition 10, 20
LD
AND
S
R
M10
M11
M20
M10
Si l'étape 10 est active
et que la condition de transition est vraie
alors activer l'étape 20
et désactiver l'étape 10
transition 20, 30
LD
AND
S
R
M20
M21
M30
M20
Si l'étape 20 est active
et que la condition de transition est vraie
alors activer l'étape 30
et désactiver l'étape 20
– Calcul des actions
20
30
R2
R1
10
66
Méthodes de transpositions
Calcul préalable des conditions de
transition
Lourd point de vue calcul
Forçage facile (un bit à forcer)
Purement logique (pas
d’opérations arithmétiques ni de
sauts)
Assure un temps de cycle au
moins par étape
Assure la condition pour les
actions « impulsionelles »
– Exemple de GRAFCET
– Calcul des conditions de transition
condition de transition 10 - 20
LD
AND
ST
LD
AND
ST
M10
R1
M11
M20
R2
M21
Si l'étape 10 est active
et que la réceptivité R1 est vraie
activer la condition de transition M11
condition de transition 20 - 30
Si l'étape 20 est active
et que la réceptivité R2 est vraie
activer la condition de transition M21
– Calcul de l'évolution
transition 10, 20
LD
AND
S
R
M10
M11
M20
M10
Si l'étape 10 est active
et que la condition de transition est vraie
alors activer l'étape 20
et désactiver l'étape 10
transition 20, 30
LD
AND
S
R
M20
M21
M30
M20
Si l'étape 20 est active
et que la condition de transition est vraie
alors activer l'étape 30
et désactiver l'étape 20
– Calcul des actions
20
30
R2
R1
10
67
Méthodes de transpositions
Utilisation des sauts conditionnels
Si le langage comporte des sauts conditionnels, on peut les utiliser pour éviter des calculs inutiles
On saute d’étape en étape jusqu’à tomber sur l’étape active
On calcule la réceptivité pour l’étape active et si elle est vraie on fait évoluer le GRAFCET
On saute à la fin du programme
Les actions sont regroupées à la fin du programme
transition 10 - 20
ET10 : LDN
JMPC
LD
S
R
JMP
M10
ET20
R1
M20
M10
ACTION
Si l'étape 10 n'est pas active
sauter à l'étape suivante
Sinon tester la réceptivité et, si elle est vraie
activer l'étape 20
désactiver l'étape 10
sauter au calcul des actions
transition 20 - 30
ET20 : LDN
JMPC
LD
S
R
JMP
M20
ET30
R2
M30
M20
ACTION
Si l'étape 20 n'est pas active
sauter à l'étape suivante
Sinon tester la réceptivité et, si elle est vraie
activer l'étape 30
désactiver l'étape 20
sauter au calcul des actions
ACTION :
calcul des actions
68
Méthodes de transpositions
Utilisation des sauts conditionnels
Plus difficile pour le forçage des variables car il faut recalculer R1
On peut envisager un calcul préalable des réceptivités avec un bit interne de mémorisation, mais on perd une partie du bénéfice des sauts.
transition 10 - 20
ET10 : LDN
JMPC
LD
S
R
JMP
M10
ET20
R1
M20
M10
ACTION
Si l'étape 10 n'est pas active
sauter à l'étape suivante
Sinon tester la réceptivité et, si elle est vraie
activer l'étape 20
désactiver l'étape 10
sauter au calcul des actions
transition 20 - 30
ET20 : LDN
JMPC
LD
S
R
JMP
M20
ET30
R2
M30
M20
ACTION
Si l'étape 20 n'est pas active
sauter à l'étape suivante
Sinon tester la réceptivité et, si elle est vraie
activer l'étape 30
désactiver l'étape 20
sauter au calcul des actions
ACTION :
calcul des actions
69
Méthodes de transpositions
Utilisation d’un pointeur de phase
Pour les automates disposant de sauts conditionnels et d’opérations sur mots
Si le GRAFCET a des branches parallèles, on le replace par autant de GRAFCET simples synchronisés
A chaque GRAFCET on associe un mot de données appelé pointeur de phase dont la valeur est égale au numéro de l’étape active.
Condition de transition: comparaison avec le numéro de l’étape et la valeur du pointeur de phase
Evolution: le pointeur prend la valeur de la nouvelle étape active
a. Programmation en langage IL
Pointeur de phase MW1
transition 10 - 20
ET10 : LD
NE
JMPC
LD
JMPCN
LD
ST
JMP
10
MW1
ET20
R1
ACTION
20
MW1
ACTION
Si le pointeur de phase n'est pas égal à
10
sauter à l'étape suivante
sinon, tester la réceptivité
sauter au calcul des actions si elle est fausse
sinon mettre 20 dans le pointeur de
phase
sauter au calcul des actions
transition 20 - 30
ET20 : LD
NE
JMPC
LD
JMPCN
LD
ST
JMP
20
MW1
ET30
R2
ET20
30
MW1
ACTION
Si le pointeur de phase n'est pas égal à
20
sauter à l'étape suivante
sinon, tester la réceptivité
sauter au calcul des actions si elle est fausse
sinon mettre 30 dans le pointeur de
phase
sauter au calcul des actions
ACTION :
calcul des actions
b. Programmation en langage ST
transition 10 - 20
! IF [MW1=10] . R1
THEN 20 MW1 ; JUMP ACTION
transition 20 - 30
! IF [MW1=20] . R2
THEN 30 MW1 ; JUMP ACTION
ACTION :
70
Méthodes de transpositions
Utilisation d’un pointeur de phase
Désavantage
Méthode plus gourmande en
temps de calcul car opérations
sur mots
Avantages:
Garantit de manière intrinsèque
qu’il n’y a qu’une seule étape
active
Facilité du forçage
Facilité de la visualisation
Lisibilité
a. Programmation en langage IL
Pointeur de phase MW1
transition 10 - 20
ET10 : LD
NE
JMPC
LD
JMPCN
LD
ST
JMP
10
MW1
ET20
R1
ACTION
20
MW1
ACTION
Si le pointeur de phase n'est pas égal à
10
sauter à l'étape suivante
sinon, tester la réceptivité
sauter au calcul des actions si elle est fausse
sinon mettre 20 dans le pointeur de
phase
sauter au calcul des actions
transition 20 - 30
ET20 : LD
NE
JMPC
LD
JMPCN
LD
ST
JMP
20
MW1
ET30
R2
ET20
30
MW1
ACTION
Si le pointeur de phase n'est pas égal à
20
sauter à l'étape suivante
sinon, tester la réceptivité
sauter au calcul des actions si elle est fausse
sinon mettre 30 dans le pointeur de
phase
sauter au calcul des actions
ACTION :
calcul des actions
b. Programmation en langage ST
transition 10 - 20
! IF [MW1=10] . R1
THEN 20 MW1 ; JUMP ACTION
transition 20 - 30
! IF [MW1=20] . R2
THEN 30 MW1 ; JUMP ACTION
ACTION :
71