Vous êtes sur la page 1sur 32

AUTOMATES PROGRAMMABLES INDUSTRIELS

Questions sur oraux.be :

1. Fonctionnement d’un API p.1


2. Langage Ladder = combinatoire Æ comment simuler le séquentiel ?
p.9
3. Diagramme Ladder
4. Grafcet (au moyen d’un exemple) p.12
5. Comment passer d’un Grafcet à un Ladder
6. Gemma
7. Questions de réflexion, il faut bien piger le cours apparemment, c’est pourquoi les réponses
sont larges…

Réponse (très large) à ces questions :

1. Fonctionnement d’un API

= Contrôle et commande automatisés des processus industriels à l’aide des systèmes


numériques de traitement d’information.

• Contrôle : décrit la possibilité d’observer le mode environnant (à l’aide des capteurs, des
interrupteurs, des boutons poussoirs, ...). L’environnement peut être analogique ou
numérique (on parle des variables de type Tout Ou Rien - TOR).

• Commande : reflète le fait que sur base des informations récoltées on aimerait avoir la
possibilité de prise de décision et de l’action (commande des relais, des moteurs, des
électrovalves, des signaux, etc.)

Ö On parle des systèmes de production de connaissance (même si cette connaissance est


très limitée) lorsque le système est capable de produire une action sur base d’une
condition.

• Automatisé implique:
๏ L’existence des faits : principalement la mesure des grandeurs physiques dans
l’environnement proche ou lointain de l’automate
๏ L’existence d’un mécanisme d’inférence (des règles de déduction) fourni par un
programme
๏ Le moyen d’action sur l’environnement

• Processus industriels : pas uniquement les chaînes de fabrication automatisées, mais aussi
les ascenseurs, les feux de circulation, le contrôle d’accès (portières automatiques) etc.

• Systèmes de traitement d’information numériques : Depuis la Pascaline, en passant par la


machine de Turing, EDVAC, ENIAC et autres … Classement en fonction de l’information qui
décrit le support matériel :
๏ Programmables
๏ Configurables (ASICs, ASIPs, logique câblée, ...)
๏ Re-Configurables (FPGAs, DPGAs)

1
API : système de traitement d’information numérique programmable (donc
universel).

• Appartient à la classe des systèmes numériques programmables à coté de


microcontrôleurs, micro-ordinateurs ou des solutions hybrides.

• Il s’agit donc des systèmes universels de traitement d’information numérique car ils
intègrent la notion de programme.

• Les APIs sont proches des ordinateurs classiques, mais ils présentent certaines différences
importantes au niveau des exigences d’où la différence en conception matérielle, la
programmation et le fonctionnement.

1. Structure matérielle : Schéma fonctionnel d’un API et les éléments constitutifs.

2. Programmation : Un aperçu des différents langages de programmation.

3. Principe de fonctionnement : Notion de l’image des entrées et des sorties. Principe de


programmation et d’exécution de programme.

4. Différences par rapport à un ordinateur classique

• Un API est une machine séquentielle.

• L’état de l’automate : représenté par des variables internes, codées à l’aide des variables
binaires, et sauvegardées dans le mémoire de l’unité centrale.

• Pour les APIs, il existe des formalismes permettant de s'affranchir de la synthèse


traditionnelle des systèmes séquentiels (ELEC-212 Circuit Logiques) et raisonner en termes
de spécifications graphiques : d'où les langages de programmation spécifiques aux APIs.

Æ Schémas
capture de certaines grandeurs physiques action sur l’environnement

2
1. Structure matérielle :

ENTREE : capteurs UNITE CENTRALE SORTIE : actionneurs


๏ Filtrage des entrées a. Unité de traitement (UT): ๏ Isolement opto-électronique
analogiques/numériques ๏ un µP (ou µC) relativement (opto-coupleurs)
๏ Adaptation des signaux simple et pas ultra-performant ๏ Amplification des sorties
๏ Isolement opto-électronique ๏ opération arithmétiques / ๏ Relais électromagnétiques
(opto-coupleurs) logiques de base (pas poussées)
๏ pour des opérations plus
complexes, ajouter des extensions
๏ traitement en virgule flottante
en option, co-processeurs etc.
b. Mémoires:
๏ Registres - Mémoire interne à
l’unité de traitement et au
fonctionnement de l’automate
(sens plus large que celui de µP)
๏ RAM - programmes/données
de utilisateur/système
๏ ROM
๏ EEPROM - permettant la
sauvegarde de(s) programme(s)
c. Connexion à la console (PC,...)
๏ Configuration
๏ Programmation
๏ Debug

3
BUS DE COMMUNICATION PERIPHERIQUES SUPPLEMENTAIRES

a. Bus d’entrées/sorties (bus fond de a. Coupleurs de communication


panier) Permettent aux APIs de dialoguer avec
Assure la communication entre l’automate d’autres systèmes de commande ou avec des
proprement dit et le monde extérieur via les entrées/sorties déportées.
coupleurs. Sujet de standardisation,
cependant un grand nombre de standards b. Cartes d’extension
actuellement en jeu (standard VME p.e.). permettant la réalisation des calculs
complexes de façon efficace (efficace: le temps
d’exécution).

b. Bus système c. Interfaces pour le matériel informatique


Assure la communication entre les standard
différentes parties de l’automate proprement ๏ unités IO standards tels que claviers, écrans,
dit (communication entre l’unité centrale et écrans tactiles, imprimantes
les mémoires correspondantes p.e.). ๏ unités de stockages (HDD, DVD etc)
Généralement propriétaire. ๏ cartes d'acquisition de données ...

2. Programmation : La programmation native (en langage machine) consiste en une liste


d’instructions de type :

si {condition} alors {affectation}

๏ condition : une expression Booléene


๏ affectation : concerne les variables internes et/ou les sorties

• On souhaite programmer les APIs facilement et rapidement.

• La Commission Electrotechnique Internationale (CEI) a proposé plusieurs standards (le


premier standard a été publié en 1993) qui décrivent la spécification matérielle et les
langages de programmation conseillés pour les APIs.

• Langages de programmation de la norme … :

1. Liste des Instructions (Instruction List - IL) proche de l’assembleur


combinatoires

2. Texte structuré (Structured Text - ST) proche des langes Ada, C


Systèmes

3. Les langages graphiques de type schémas à relais (contacts) (Ladder diagrammes -


LD)

4. Diagrammes des blocs fonctionnels (Functional Bloc Diagrams - FBD) dans lequel
séquentiels
Systèmes

on peut classer le GRAFCET (dérivé des Réseaux de Petri) et diagrammes


fonctionnels en séquence (Sequential function chart - SFC)

4
• Il est d’usage courant de mélanger les différents langages au sein d’un même programme
en fonction des besoins.

3. Principe de fonctionnement :

1. En début de chaque cycle de scrutation, les valeurs des entrées sont sauvegardées dans la
mémoire-image des entrées. Tout changement des variables à l’entrée sera donc ignoré par
l’automate pour ce cycle.

2. Pendant l’exécution de programme, toute référence aux entrées est faite par rapport à la
mémoire-image des entrées.

3. Les instructions qui modifient les sorties font référence à la mémoire-image des sorties (les
vraie sorties ne sont pas encore modifiées à ce stade).

4. Lorsque le cycle de scrutation en cours est fini, les vraies sorties de l’automate sont mis à
jour.

5. L’automate entame un nouveau cycle: acquisition des entrées, scrutation, mis à jour des
sorties.

• Les instructions du programme : exécutées dans l’ordre, l’une après l’autre, il n’y a pas
d'ordonnancement d’instructions (si l’ordonnancement, alors tâches RTOS).

• En fonction de la condition logique posée par une instruction, deux situations sont
possibles:
๏ Soit la condition est vrai: l’instruction est exécutée,
๏ Soit elle est fausse: l'instruction n’est pas exécutée.

• Lorsque l’automate a exécuté toutes les instructions du programme, il va recommencer un


nouveau cycle en partant de la première instruction de programme. Ce cycle d’exécution est
ininterrompu, ou alors pendant des périodes beaucoup plus courtes qu’un cycle de
scrutation.

• A chaque coupleur d’entrée correspond une zone de mémoire dans l’unité centrale, dite
mémoire-image des entrées, dans laquelle on enregistre l’état de TOUTES les entrées.
L’enregistrement des valeurs d’entrées se fait de façon synchrone à des moments bien précis,
généralement avant le cycle de scrutation.

5
• Le même principe d’une mémoire-image est appliquée aux sorties : à chaque sortie
correspond une zone de mémoire modifiée par le programme. La mise à jour des sorties
physiques (en fait des coupleurs correspondants) se fait donc à la fin d’une phase de
scrutation.

• Le principe de mémoire-image des entrées et des sorties : à l’aide d’une machine


universelle séquentielle on peut émuler le fonctionnement concurrentiel (très important!!!)
par rapport aux entrées et sorties exigé pour le contrôle des processus industriels (les actions
différées sont tolérables, mais doivent être maîtrisées).

• Il est donc possible de concevoir des APIs sur base des composants habituels des systèmes
de traitement d’information numérique (CPUs et mémoires classiques dans des architectures
de Von Neumann - une instance d’unité de traitement plus la mémoire).

• La durée d’exécution d’une instruction 1 / : fonction du type de l'automate (en


fonction de type de processeur et de sa vitesse).
• La durée de la phase de scrutation 10 : dépend de la longueur de programme.
• Afin de pouvoir agir sur l’environnement de façon souhaitée, les constantes de temps de
l’environnement et de programme doivent être pris en considération (on doit faire comme si
c’était instantané).

1) Le temps de scrutation doit être assez grand pour permettre l'exécution de tout le
programme en temps plus court que le temps de scrutation...vu qu’il doit y avoir un cycle
d'exécution (effectue toutes les instructions du programme) par cycle de scrutation

2) il doit être le plus court possible étant donné qu’on est en temps réel même si c'est un
temps réel généralement pas super contraignant. Mais bon on a kan même envie que quand
on met quelque chose a l’entrée on n’attende pas 10 min avant qu’il réagisse!

Donc généralement on met le temps de scrutation à +- 10ms (1nanoseconde par instruction


environ donc il peut en faire un paquet) sans que pour autant le temps de réaction soit trop
long.

6
• Le principe de scrutation et de la mise à jour des entrées et de sorties a pour conséquence
un temps de réponse = 1 à 2 x temps de scrutation.

4. Différences avec l’ordinateur classique :


• Le milieu de travail hostile, donc besoin de robustesse.

• Fiabilité : le crash d’un traitement de texte n’a pas le même impact que le crash d’une fusée.

• Les constantes de temps sont tout à fait différentes et on doit les maîtriser (respect
d'échéances).

• Les entrées : peuvent être nombreuses et pas uniquement numériques (elles peuvent être
analogiques aussi).

• Principe de mémoire-image pour les entrées/sorties implique l’émulation de la


concurrence. Le multi-tâches/multi-threading, ce n’est pas du tout la même chose (matière
des RTOS - un problème à part).

• Les bugs ne sont pas de même nature (problème des courses critiques n’existe pas
vraiment dans le software).

ÆPrincipales exigences

• Robustesse et fiabilité
Extrême robustesse et fiabilité des APIs (milieu industriel = environnements agressifs, bruit,
pollution, choques mécaniques etc.).

• Modularité
Les chaînes de production de taille variable, le nombre d’entrées/sorties qui varie de
quelques dizaines à quelques centaines voir milliers de variables.

• Rapidité
On souhaite des réponses instantanées (quoique les constantes de temps sont beaucoup plus
faibles de ce que l’on rencontre d’habitude en informatique ... on est dans le temps réel, mais
“temps réel lent” et on veut des garanties).

7
• Simplicité
De la mis en place, la programmation, la maintenance.

• Faible coût
Ca va de soi...

Æ Définitions
Systèmes combinatoires
Les sorties de tels systèmes ne dépendent que des entrées.

Systèmes séquentiels
Les sorties dépendent aussi de l’état interne du système. Le système décide de son état futur
en fonction des entrées et de son état présent.
IDEs = Environnements de Développement Intégrés

Réactifs : réagissent en fonction de leur environnement, la mise à jour se fait avec une
fréquence déterminée par l’environnement.

Interactifs : réagissent avec l’environnement de façon continue (ou en tout cas avec la
fréquence d'échantillonnage réelle – la vitesse émule le continu).
Æ Exemples:
✴ API sont des systèmes réactifs
✴ Couple ordinateur/OS est l’exemple d’un système interactif.

8
2. Langage Ladder = combinatoire Æ comment simuler le séquentiel ?
3. Diagramme Ladder

• LD = langage basé sur des systèmes de règles, définis par le programme (rule-based
systems), par opposition aux langages procéduraux. Il s’agit d’une représentation graphique
de fonctions Booléennes à l’aide des contacts et des relais.

• Les règles (appelés réseaux) spécifient comment le système calcule les sorties en fonction
des entrées. Les différents réseaux sont supposés être exécutés en parallèle. Il s’agit de la
zone de test et de la zone d’action mises ensemble.

• Instruction API si {condition} alors {affectation} traduit par deux zones en LD :

Zone de test Zone d’action

๏ La zone de test représente la condition sur des entrées


Î Formalisme pour représenter les équations logique : langage de contact associé
aux variables = Contact normalement ouvert : NO
Contact normalement fermé : NF
Î Peut comprendre les expressions complexes (on parle aussi de l’algèbre de
contacts). Elle peut être composée de multiples contacts mis en parallèle et/ou en
série, comme :

๏ La zone d’action représente le résultat sur les sorties de système :


Î Décrit l’application de la fonction f, produite dans la zone de test. Il s’agit bien de
l’application de f à la mémoire-image des sorties.
Î Chaque sortie possède un seul réseau. Dans le cas où plusieurs réseaux sont
couplés à la même sortie, c’est le dernier réseau qui fixera la valeur de la sortie
(les résultats précédents seront ignorés). En effet, si on veut que toutes les sorties
soient prises en compte en même temps, il faut les geler a un moment. Mais donc
les différentes valeurs que la sortie a pris avant le moment du gel ne sont pas
prises en compte évidemment.

• Exige seulement la connaissance de base de la logique Booléenne.


• Le formalisme implique la possibilité de réalisation des IDEs graphiques permettant
l’implémentation rapide des programmes.

• Pour des problèmes plus complexes, la lisibilité des programmes n’est pas évidente
(exemple de la STIB: croisement des lignes de métro 1 et 2).
• Le debug (recherche d’erreurs) n’est pas simple... (problème des courses critiques etc.).
Malgré une représentation de calcul en parallèle (tous les réseaux sont traitées en même
temps), l’exécution est faite pas à pas (deux réseaux adressant une même sortie : c’est le
dernier réseau qui fixera la valeur de la sortie, le calcul du premier réseau sera ignoré).
• Problème de représentation des variables analogiques et des opérations arithmétiques
complexes.

9
• Le programme = ensemble des réseaux agissant sur des sorties, variables internes et/ou de
contrôle de programme.

Réalisation des systèmes synchrones à l’aide des LD (bascule SR)

• Du point de vue utilisateur, tous les réseaux sont exécutés en même temps et agissent de
façon synchrone par rapport à l’environnement, ce qui n’est évidement pas vrai dans le cas
d’un API universel. Ce type de fonctionnement est en fait simulé à l’aide d’un programme au
sens informatique du terme (exécution séquentielle d’une suite d’instructions) :
๏ avec un échantillonnage synchrone des entrées
๏ hypothèse que le couple API-programme fonctionne suffisamment rapidement, càd plus
rapidement que l'évolution des entrées.

• La possibilité de mémoriser une variable nous permet de réaliser des systèmes séquentiels
synchrones.
Æ A chaque variable d’état on associe un bit de mémoire.
Æ Pour chaque fonction logique de contrôle (S ou R) on décrit un réseau (il s’agit en fait des
fonctions d’excitations si l’on utilise le langage d’ELEC-H-305).

• Il est possible de faire une rétroaction avec une sortie (le VHDL ne permet pas ce genre de
choses, mais attention au problème des courses critiques qui est d’actualité).

Liste (non-exhaustive) des fonctions du diagramme LD

Catégorie de fonction Description (MAJ = majoration)

Instructions de contact • Contact normalement ouvert et fermé : MAJ à la fin de cycle.

• Contact immédiat normalement ouvert et fermé : MAJ instantané

• NOT

• Détection de flanc montant (ou descendent)

Instructions de sortie • Sortie - MAJ de la sortie se fera à la fin de cycle de scrutation

• Sortie immédiate - MAJ est instantané

• Mémoire (SR) - principe de la bascule SR

• Mémoire immédiate - même chose sauf qu’il n’y a pas d’attente


pour la MAJ

Instructions de • Egalité == ; plus grand ou égal >=; plus petit ou égal <=
comparaison
Æ en fonction du type de donnée : byte, word, double word,
éventuellement les réels

10
Timers & Compteurs • Deux sortes de timers:
๏ On-Delay Timer (TON) :
ENABLE activé (par une variable) Æcompte le temps
ENABLE désactivé Æ mise à zéro automatique

๏ Retentive On-Delay Timer (TONR) :


ENABLE activé (par une variable) Æcompte le temps
ENABLE désactivé Æ le temps déjà compté est sauvegardé
Nouvelle activation de ENABLE Æ remets la mise à zéro automatique

• Compteurs /décompteurs
๏ CU - le flanc montant de CU incrémente la valeur du compteur.

๏ PV - il est possible de faire un PRESET, lorsque la sortie atteint une


valeur définie. Le bit de sortie est alors mis à 1.

๏ R - mise à zéro du compteur.

Contrôle de mémoire • MOV - déplacement des données individuelles (byte, word, dword)
et de block de données (tableaux de données).

• FILL - initialisation d’un block de mémoire.

• Manipulation des tableaux de données :


๏ Ajout d’un élément selon le schéma Last In.
๏ Retrait d’un élément (selon le principe de FIFO, LIFO)
๏ Recherche d’un élément spécifié par un pattern et le critère de
recherche: ==, <=, >=.

Instructions logiques & • Fonctions logiques standards : AND, OR, XOR, NOT
conversions sur des opérandes de taille byte, word, double word.

• Conversions :
๏ entier à BCD (Binary Coded Decimal),
๏ ASCII à HEX (American Standard Code for Information Interchange),
๏ Decode (3 → 1000), encode (1000 0010 0000 0000 → 9), segment (le
fameux convertisseur de 7-segment...)

Instructions de • STOP implique l’arrêt immédiat du processeur de l’API (passe du


contrôle de programme mode RUN en mode STOP), reprise possible.

• END tout programme doit posséder cette instruction (sinon erreur


de compilation). La fin du programme peut être conditionnelle ou
inconditionnelle.

• JMP, LBL. Saut conditionnel (ou inconditionnel) à l’endroit spécifié


par le label :

• Appel d’une sous-routine et les boucles for, next.

11
4. Grafcet (au moyen d’un exemple)

Réseaux de Pétri (RdP) : formalisme précurseur pour le Grafcet

= outil mathématique (graphique) permettant de formaliser les systèmes qui intègrent des
notions d'événements et de concurrence.

= quadruplet noté: RdP={P, T, Pré, Post}

Avec :

✴P - un ensemble de places (={p1,p2,p3})

✴T - un ensemble des transitions (={a,b,c,d,e})

✴ Pré - l’application des places précédentes

✴ Post - l’application des places suivantes

✴ C=Post-Pré - la matrice d’incidence

Réseau de Pétri marqué = couple RdPM = { RdP, M}

Avec:

✴ RdP à p places

✴ M est le marquage (•)

✴ M(p) est le nombre de marques (jetons) contenus dans la place p

Analogies entre:
✴ Places et transitions ET états et évolutions possibles
✴ Marquage et marquage initial ET état présent et état initial
✴ Notion de franchissement et de la séquence de franchissement ET les règles d’évolution

12
Transition franchissable (validée, sensibilisée) ssi : p, M≥Pré(p)
Æ a et c dans l’exemple

Franchissement d’une transition (tir, firing) : produit un nouveau marquage M+ comme suit :

Séquence de franchissement : A partir d’un marquage M0, arriver à des marquages M0, M1, M2,
M3, ...

Propriétés des RdP :

• RdP Non-Vivant (blocage - état puits) : Aucune transition n’est franchissable.


• RdP Vivant (sans blocage) : Pour un ensemble de marquages toutes les transitions sont
franchissables par une séquence finie des tirs.
• RdP Sauf (Sain) : si chacune des places contient au plus un jeton.
• RdP Propre (Réinitialisable) : il existe une séquence fini des tirs permettant de
retrouver une situation initiale.
• Un Rdp Vivant, Sauf et Propre = RdP Conforme, un tel modèle d’un système
séquentiel est généralement satisfaisant.

Graphe de marquage :
= extension graphique permettant de représenter l'ensemble des marquages possibles
(accessibles) à partir d’un marquage initial.

• L’étude du graphe de marquage peut renseigner certaines propriétés. Exemple: si le graphe


représente une zone non-bouclée, cela veut dire qu’une fois franchi, il existe des marquages
non-accessibles.

Grafcet = séquentiel

Directement inspiré des RdP, mais en ajoutant les notions suivantes :


✴ Réceptivité pour les transitions = matérialisation des entrées
✴ Action pour les places (en langage Grafcet - étapes) = matérialisation des sorties
✴ Temps : nécessaire pour une implémentation industrielle.

• Grafcet = synchrone : on suppose l'existence d’une horloge, nécessaire pour tenir compte de
la validité des réceptivités et des actions.

= une suite d'alternances de type : étape-transition, étape-transition, étape-transition, ...


Le non-respect de cette règle implique un Grafcet de syntaxe erronée.

13
AVANTAGES :
• Possibilité de réalisation des interfaces graphiques de programmation.
• Particulièrement bien adapté aux problèmes complexes, dont le fonctionnement est
facilement décomposables en étapes.
• Il est possible de traduire des programmes Grafcet en langage d’équations Booléennes
(compilateurs pour des APIs programmés ou alors la réalisation en logique câblée).
• Intuitif (formation, programmation et maintien rapide)
• Grafcet est une approche formelle. Il est donc possible de vérifier le fonctionnement d’un
programme de Grafcet avant la mise en service (important étant données les contraintes de
fiabilité).
• Deux niveaux d’abstraction différents, utilisés par le Grafcet:
✴ Grafcet de niveau 1 - Spécifications fonctionnelles –
Traduction formelle des spécifications verbales: comprendre le problème et faire une
première description de l’automatisme qui devra réaliser la tâche demandée.
✴ Grafcet de niveau 2 - Spécifications technologiques -
Sur base de Grafcet 1: choix technologiques concernant les capteurs et les actionneurs. A ce
stade le Grafcet devient une spécification “exécutable”, il décrit le fonctionnement réel de
l’automate.
Æ Dans les deux cas on suppose toujours le fonctionnement normal de système (pas
d’anomalies sur les événements et le fonctionnement des composantes).
✴ Une autre partie de spécification permettra de s’occuper des actions en cas de
fonctionnement anormal (pannes, arrêts d’urgences etc.)

Î REPRESENTATION GRAPHIQUE DES GRAFCET

1. ETAPES
Défini un comportement précis et invariant de système par rapport à ses entrées et ses
sorties.
• Etape initiale: étape dans laquelle le système se trouve lors de la mise en service.
• Etape initialisable: étape qui peut être activée par un ordre donné par un autre Grafcet.
• Une étape est soit active, soit inactive. On peut associer à chaque étape d’un Grafcet une
variable Booléenne . Nous avons donc : 1, étape active et
0, étape inactive.

14
2. LIAISONS (éventuellement orientées - flèches) entre les différentes étapes.
= lignes qui relient les différentes étapes entre elles, indiquent l’ordre d’exécution des étapes.
Les liaisons sont représentées par des lignes verticales, l’ordre d’exécution va de haut en bas,
ou horizontales.
Afin d'éviter les ambiguïtés, les lignes peuvent être orientées (flèches).

3. TRANSITIONS auxquelles on associe des réceptivités.


= barrières entre les étapes, peuvent être franchies selon certaines conditions.
Æ Validée ou non-validée : la condition de validité (passage à l’étape suivante) = état actif de
l’étape immédiatement précédente et réceptivité associée VRAIE.

4. RÉCEPTIVITÉS
Æ associée à une transition (pour que un GRAFCET soit bien formé chaque transition doit
posséder une réceptivité).
= équation logique Booléenne classique, un LD diagramme etc.
= ensemble des conditions permettant de franchir la transition.
• Les variables liées aux réceptivités :
✴ informations extérieures au API: capteurs, directives de l’opérateur;
✴ variables auxiliaires: compteurs, temporisateurs;
✴ état d’autres étapes: attentes, interdictions
✴ transitions sur d’autres variables: fronts montants ou descendants.

Type de réceptivité Description


= condition logique exprimée avec une équation Booléenne.
Les variables de ces équations = valeurs Booléennes associées aux
Niveau
capteurs du système, et/ou les variables internes.
Æ Au sein des différents IDEs, les réceptivités peuvent être
représentées différemment : les équations, les LD etc.
= transition toujours franchie.
Toujours vraie
Lorsque l’étape qui précède la transition associée est activé, cette
transition est immédiatement franchie.
= transition validée après une période d’atteinte.
ÆL’activation de l’étape précédente déclenche un temporisateur.
Temporisé Æ Réceptivité vraie lorsque la valeur d’un temporisateur a atteint
la valeur spécifiée.
ÎIl est possible de combiner la valeur de temporisateur à d’autres
conditions logiques.
Impulsionnelle = réceptivité de type flanc montant ou descendent.

5. ACTIONS
= action qui sera effectuée par l’automate sur son environnement lorsque le système se
trouve dans l’étape associée.
• Une étape peut comprendre plusieurs actions (une action peut être vue comme un LD).

15
• L’action peut être représentée comme
- une injonction verbale (Grafcet de niveau 1), ou alors comme
- une équation logique (Grafcet de niveau 2)

Type d’action Description


Action continue = se poursuit tant que l’étape à laquelle l’action est associée est
active (cas le plus fréquent)
Action conditionnelle = se poursuit tant que l’étape est active ET que une (ou plusieurs)
condition(s) logique(s) supplémentaire(s) associées à cette étape
est (sont) VRAI(s).

Action temporisée - = se poursuit si l’étape est valide ET le temps écoulé en cette


retardée dans le temps étape > T (condition logique supplémentaire fournie par un
temporisateur qui mesure une durée).

Action prolongée/limitée = se poursuit si l’étape est valide ET le temps < T (condition


dans le temps logique supplémentaire fournie par un temporisateur qui mesure
une durée : ici 5 sec), quelque soit la durée de l’étape.

Action maintenue = même action maintenue pendant le franchissement de plusieurs


étapes.
Æ action maintenue si au moins une des étapes parmi plusieurs
étapes possibles est activée.

16
Règle d’évolution du Description
Grafcet
1. Initialisation • Il existe au moins une étape active lors du lancement d’un
Grafcet: c’est l’étape initiale. Il peut y en avoir plusieurs,
comme dans le cas d’un automatisme à plusieurs Grafcets.
• Par défaut cette étape est activée lors de la mise en route de
l’automatisme.
• On peut s’en servir pour initialiser les variables internes p.e.
2. Validation des Validée lorsque l’étape immédiatement précédente est active.
transitions Ne peut être franchie que lorsqu’elle est validée ET que la
réceptivité associée est vraie. L’étape immédiatement après est
inactive.
3. Franchissement • Le franchissement implique l’activation de l’étape suivante et la
désactivation de l’étape précédente (passage de jeton).
• Si le GRAFCET présente plusieurs transitions : les transitions sont
franchies lorsque toutes les étapes sont activées ET toutes les
transitions valides. Implique la désactivation des toutes les étapes
précédentes...
4. Franchissement de Si le GRAFCET présente plusieurs transitions simultanément
plusieurs transitions franchissables, elles seront franchies en même temps (notion de
concurrence).
Lorsque E2 valide: les étapes 4,12 non-validée et les étapes 7,9,10 validée.

5. Activation et Si, au cours du fonctionnement, une même étape doit être activée et
désactivation désactivée simultanément, elle reste activée.
simultanée d’une étape Cela est nécessaire à la cohérence théorique du GRAFCET.

Structure type Description


d’un Grafcet
Séquence unique Grafcet linéaire • La suite des étapes définie par le Grafcet est toujours
parcourue dans le même ordre.
• On a une exécution séquentielle (et cyclique) de toutes
les étapes.
Multiples Séquences exclusives • Permet l’exécution conditionnelle d’une série d’étapes
séquences parmi deux ou plusieurs séries d’étapes possibles.
• On parle alors de: divergence & convergence en OU.
• Lorsque l’étape finale de la série d’étapes entamée est
franchie, l'évolution de Grafcet peut se poursuivre.

17
Séquences • Permet l’exécution concurrentielle (simultanée) de
simultanées deux ou plusieurs séries d’étapes.
• On parle de : divergence et convergence en ET.
• Ce n'est que lorsque toutes les étapes finales de toutes
les séquences sont actives simultanément (attente) que
l'évolution peut se poursuivre par le franchissement
simultané d'une même transition.

Saut d’étapes • Permet l’exécution partielle (conditionnelle) d’une


série d’étapes au sein d’un Grafcet.
• Attention: afin de préserver la correction de Grafcet
les conditions r1 et r15 doivent être mutuellement
exclusives (ne peuvent pas être VRAI en même temps).

18
Reprise d’étapes • Permet de répéter une même séquence jusqu'à ce que
la réceptivité de fin de séquence soit vraie (il s’agit des
boucles - séquences exclusives).

Extensions aux Hiérarchie Æ afin de structurer des Grafcet complexes : meilleure


Grafcet lisibilité, programmation simplifiée, documentation plus
(pour un Grafcet structurée.
plus complexe) • Si plusieurs Grafcets sont utilisés pour contrôler un
même système, ils peuvent être ordonnés de façon
hiérarchique.
Æ Hiérarchisation possible grâce aux notions de :
• Etapes et transitions de type : source et puits
• Tâches - analogie avec des sous-programmes
• Macro-étape - analogie avec des macros
Etapes: sources, • source : étape qui n’est pas précédé d’un couple
puits transition-réceptivité. Activé que par un ordre explicite
d’activation. Une étape initiale p.e.
• puits : étape qui n’est pas suivi d’un couple transition-
réceptivité. Désactivée que par un ordre explicite de
désactivation.

19
Transitions: source, • source : transition qui n’a pas d’étape qui la précède.
puits Par convention toujours validée, pour la franchir il suffit
que la réceptivité soit VRAIE.
• puits : transition qui n’est pas suivi d’une étape. Seule
action possible : désactivation de l’étape précédente
(active aucune autre étape).
Grafcet des tâches • Tâche = sous-programme composé de :
๏ 1 étape initiale, unique (tâche en attente).
๏ 1 couple transition-réceptivité qui suit l’étape initiale =
conditions de lancement de tâche.
๏ Etapes de la tâche décrites par un Grafcet (tâche en
cours d’exécution).
๏ 1 dernière étape de la tâche qui implique la
signalisation de la fin de tâche.

Macro-étapes • Regroupe un ensemble d’étapes (expansion d’une


étape).
• Défini un point d’entrée (E) et un point de sortie (S).
Æ franchissement de la transition de point d’entrée =
franchissement de la transition indiquée dans l’étape
d’entrée.
ÆL’étape de sortie active la transition de sortie.

Différence entre une • Une tâche implique le mécanisme d’appel et de retour


tâche et une macro- d’un autre Grafcet. Analogie avec un appel d’une fonction
étape dans un langage de programmation classique.

20
• Une macro-étape est juste un formalisme permettant
une écriture (lecture) plus simplifiée d’un Grafcet
complexe. Analogie avec des macros en langage de
programmation (ou des fonctions inline). Le
remplacement de la macro par la définition par le pré-
compilateur.
Forçage • Implique l’interruption d’exécution normale d’un
Grafcet (à l’aide des étapes sources et puits p.e.) pour
l’exécution d’un seul Grafcet : activation explicite d’une
étape (source).
• Seulement les Grafcets d’ordre hiérarchique plus élevé
peuvent imposer un forçage.
• Utilisation : boutons d'arrêt d’urgence (les beaux gros
boutons rouges...).
Figeage • Implique l’arrêt de l’évolution normale du Grafcet et
ceci malgré la modification potentielle de réceptivités (et
des transitions par conséquence) - il n’y a plus
d’activation/désactivation d’étapes.
• N’implique pas l’arrêt des actions...
• Afin de bloquer des actions en cours (dans un cas
d'arrêt d’urgence p.e.) il faut prévoir leurs arrêts
explicites (aspect sécurité - car il est possible d’imaginer
les situations où un arrêt des actions non surveillées
peut provoquer une catastrophe).
Mise en équation = dériver les équations logiques d’un système séquentiel
équivalant au Grafcet.
• Utilité :
✴ Formalisation de problème
✴ Réalisation d’un Grafcet avec de la logique câblée,
par opposition à la logique programmée (différence : ).
✴ Réalisation d’un programme dans un autre langage à
partir d’un Grafcet (p.e: si l’automate ne peut pas être
programmé en Grafcet, alors Grafcet vers LD, LD vers
automate)

• Analogie entre une étape d’un Grafcet et d’un état pour


un système séquentiel.

• A chaque étape on associe un état (un bit de mémoire -


une bascule).
• On détermine les équations logiques pour les
commandes de la bascule (typiquement les expressions
pour S et R): il est donc possible de représenter
(traduire) un Grafcet en LD en utilisant des mémoires.

21
• Plusieurs possibilités de formalisme permettant la
mise en équation d’un Grafcet. On présente le
formalisme le plus sure (celui qui garanti que les deux
étapes ne sont pas activées de façon simultanée) :
๏ Franchissement d’une transition
Lorsque étape est activé ET lorsque la réceptivité
associée à la transition est VRAI :
๏ Activation d’une étape
Si la transition précédente est franchie. L’étape restera
active tant qu’elle est active ET la transition suivante
n’est pas franchie :

ERREURS POTENTIELLES

๏ Erreur de fond
Le non-respect de la règle transition-étape-transition (on en a parlé).
๏ Erreur de forme (mauvaises constructions)
‣ Problème de regroupement des liaisons
‣ Problème d’accès aux étapes
‣ GUI peut aider ...

• Regroupement des liaisons (ET) commun

Divergence en ET

22
Convergence en ET

• Mauvaises constructions - accès à l’étape

•Mauvaises constructions : Confusion par rapport à la convergence

ETUDE

• L’interprétation d’un GRAFCET est défini par l’ensemble:


๏ Des réceptivités associées aux transitions.
๏ Des actions associées aux étapes.
• Le rôle de l’interprétation est de synchroniser l’évolution de l’automate avec son
environnement (son évolution en fonction de l’évolution de l’environnement).

• Deux types de réceptivités:


๏ Externes –
Fonctions ayant comme arguments des variables externes uniquement (les entrées).
๏ Internes -
Fonctions ayant comme arguments des variables internes uniquement (variables d’état).
• GRAFCET = représentation décomposable au niveau des réceptivités si toute réceptivité
peut être représentée comme suit (séparation des entrées et des variables d’état) :

23
ÆExemple de décomposition de GRAFCET

Î Deux types de réceptivités et la possibilité de décomposition impliquent deux classes


particulières des GRAFCETs: ๏ GRAFCET libre
๏ Auto-synchronisé

Type de Grafcet Description


Libre Les GRAFCETs n’ayant pas de synchronisation interne (que des
variables externes, et pas de variables internes).
Auto-synchronisé Les GRAFCETs n’ayant pas des variables externes, uniquement des
variables internes (synchronisation - uniquement variables internes).
ÆEn pratique les GRAFCETs sont rarement exclusivement libres ou
auto-synchronisés.
Autonome = noyau du GRAFCET = représentation de l’automatisme
indépendante du monde extérieur.
๏ Obtenu en partant d’un GRAFCET complet en conservant que des
interprétations internes (toutes les interprétations externes sont
considérées comme indifférentes - don’ t cares).
๏ Son utilité : étudier le GRAFCET de façon progressive.
Complet = Grafcet autonome + Interprétation externe

24
Type de transition Description
Sensibilisée Si : ๏ Elle est validée ET si la réceptivité interne est vraie.
๏ Si la réceptivité interne n’existe pas alors on suppose que la
transition est sensibilisée dès que la transition est validée.
๏ Dans un GRAFCET complet une transition sensibilisée sera
franchie lorsque la réceptivité externe associée sera vraie.
๏ Dans un GRAFCET autonome une transition peut être franchie ou
non suivant si on envisage que la réceptivité externe est vraie ou
fausse Æpermet d’étudier le GRAFCET sans son interprétation
externe et surtout TOUTES ses évolutions possibles et de
progressivement amener l’information sur l'extérieur afin d’affiner le
modèle.
Solidaires Deux transitions partagent une même situation S. Si elles sont
sensibilisées par S et si le franchissement de l’une met fin à la
sensibilisation de l’autre :
๏ S-solidaires
si le franchissement d’une transition désensibilise l’autre à cause de
leur structure (solidaire par la structure - S pour structure).

๏ I-solidaires
le franchissement d’une transition désensibilise l’autre à cause de leur
interprétation interne (solidaire par l'interprétation interne - I pour
interne).

25
Concurren
ntes Si ellees sont senssibilisées pa
ar une mêmee situation n
non-partagéée.

Indépendaantes Deux transitionss ni concurreentes ni soliidaires.

Type de
d réceptivitté externe Descrip
ption
(relation (.)) 2)
Incompaatibles si pour cettte situation elles ne peu
uvent jamaiis être vraies
simultaném ment
Totalem
ment incompaatibles si pour tou
ute situation n elles ne peeuvent jamaais être vraies
simultaném ment
Identiqu
ues si pour cettte situationn elles sont toujours
t vraaies
simultaném ment
Totalem
ment identiqu
ues si pour touute situation n elles sont toujours vrraies
simultaném ment
Compattibles si pour cettte situationn elles peuvvent être vraaies ou non
simultaném ment
Totalem
ment compatibbles si pour touute situation n elles peuv
vent être vraaies ou nonn
simultaném ment

• Pour 1 Grafcet AVEC


A transittions solidaaires : exameen des interprétations extternes permet de
faire la distinction entre ces trois classes de
d Grafcet différentes:
d
๏ Transitionns d’Interprrétation Resstrictive
Si toutes les transittions solidaiires sont inccompatibless (ne sont jaamais vraiess simultanéément).
๏ Transitionns d’Interprrétation Larrge
Si toutes les transittions solidaiires sont inccompatibless ou identiq ques (ne son nt jamais vrraies ou
sont touujours vraiees simultanéément).
๏ Transitionns d’Interprrétation Quelconque
Si toutes les transittions solidaiires sont compatibles (peuvent
( maais ne doiveent pas êtree vraies
simultanément).

• Classiffication des GRAFCET :

26
ANALYSE

• = recherche de toutes les situations possibles dans lesquelles le Grafcet peut se trouver. On peut
faire la distinction entre les :
๏ Situations atteintes
L’automatisme est immergé dans son environnement avec lequel il interagi (et/ou dans un
environnement de simulation). Forcément l’automate ne suivra pas toutes les évolutions
possibles. L’automate est là pour faire des choses de façon répétitive.
๏ Situations accessibles
Toutes les situations potentiellement “atteignables” par l’automatisme en ignorant le monde
extérieur et son action sur l’automate (une vue exhaustive - parfois trop exhaustive - des
évolutions possibles). Bien sur, l’ensemble des situations accessibles renferme l’ensemble de
situations atteintes.

• Méthodologie - algorithme de validation en 3 étapes


1) Etablissement d’un GRAFCET autonome
Rendre toutes les réceptivités extérieures indifférentes.
๏ A partir de cahier de charge on établi un premier jet de GRAFCET.
๏ On analyse la possibilité de décomposition de GRAFCET complet (on met à l’écart
l'interprétation externe)
๏ On “extrait” le noyau de GRAFCET pour:
‣ Etudier les différents types des transitions: Identification des transitions solidaires
‣ Etudier les évolutions de l’automatisme : analyser les situations accessibles
indépendamment du monde extérieur.

2) Recherche de l’ensemble des situations accessibles


On établi l’ensemble des situations possibles en partant de GRAFCET autonome dans la
situation initiale S0. Afin de simplifier cette tâche (explosion combinatoire) on considère le
GRAFCET autonome renseigné (l’apport des éléments de l'interprétation interne).
๏ On part de la situation initiale S0
๏ On établi la liste de toutes les transitions sensibilisées par cette situation.

27
๏ Parmii les transitiions sensibiilisées on no
ote les transsitions francchies et les n
nouvelles
situationns produitees par ces frranchissemeents. On ana alyse toutess les solutio
ons possibles car on
considèère le GRAC CET autonom me.
Intérêt
• Identiification dess situations bloquées : des situatio ons qui ne sensibilisent
s t aucune tra
ansition
(elles ex
xistent indéppendammeent de l'interrprétation externe)
e - il existe des p
parties de
GRAFC CET qui n’évvoluent pass - ceci n’est peut être pas
p normal....
• Des éttapes réactiivées – lorsqqu’une étap pe est activéée par un fraanchissement, et réactiivée par
un autree franchisseement, cela peut poser des problèm mes de cohéérence.
• Des siituations in
nstables - lorrsque la sommme des récceptivités ex xternes vau
ut 1.

3) Etabliissement d’u
un graphe dess situations accessibles
a
Montre l’évolution n de l’autommatisme par rapport au ux situationss possibles - il indique toutes
les séqu
uences de frranchissemeent des tran nsitions posssibles perm mettant de paasser d’une
situationn à l’autre. C’est une reeprésentatio on équivaleente à ... ?
๏ En paartant de la Table
T de sittuations acccessibles
๏ Pour chaque
c Situ
uation possiible on désignera un nœ œud de graaphe
๏ On no ote ensuite à l’aide des arcs les franchissemen nts des transsitions permmettant de passer
p
d’un nœœud à l’autrre. On note des transitiions permetttant de réalliser le franchissementt.
Dans l’eexemple:
on passe d’une situ uation (étap
pe 1 active) à l’autre (éttapes 2,3,4 actives)
a en ffranchissantt les
ons t1 et t2
transitio

VALID
DATION
N

(Propriéétés des GRA


AFCETs (la base:
b les Réseeaux de Pétrii)
• P1 - SAUF
Si à partir de toute situation accessible deepuis S0 auccune étape n’est réactiv vée.
RAFCET estt sauf il n’y aura pas dee réactivatio
Si le GR on d’étapes..
• P2 - VIVANT
V
Si à partir de toute situation accessible deepuis S0 on peut trouver des séqu uences de
franchisssement perrmettant dee franchir to oute transition.
Si le GR
RAFCET estt vivant on est e sûr qu’ill ne bloquerra pas et qu ue toutes sess parties ne
deviend drons jamais “inertes” (étapes non n-activées ett transitionss non-sensibbilisées).
• P3 - PSEUDO-VI
P IVANT
Si à partir de toute situation accessible deepuis S0 il existe
e au mo oins une traansition sensibilisé.
Garantii uniquemen nt le non-bllocage, maiss existe la possibilité
p dees parties in
nertes.
• P4 - PROPRE
P
Si à partir de toute situation accessible deepuis S0 il existe
e une sééquence dess transitions
permetttant de reveenir à l’état initial.
On est sur
s de reven nir à la situaation initialle.)

28
Apport de l'interprétation externe
Jusqu'à ici le GRAFCET autonome (pas d’influence externe, uniquement des réceptivités
internes et pas d’actions). Ici on considère le GRAFCET autonome, la table des situations
accessibles et l'interprétation externe.
• Recherche des cycles
Dans certaines conditions d’entrées nous pouvons avoir repassage périodique par les mêmes
situations au lieu d’avoir une évolution vers un état stable (une boucle infini p.e.).
• Compatibilité des actions simultanées
A partir de la table des situations accessibles on peut déterminer l’ensemble des actions qui
seront entreprises et vérifier que ces actions ne sont pas incompatibles (p.e. en même temps
marche/arrêt ...).
• Corrélations actions-réceptivités
Les actions sont corrélées aux réceptivités et peuvent engendrer des situations de blocage
(p.e. on commande une monté et on est réceptif à la position basse...).
Méthode en résumé
• Consiste en (application à tout GRAFCET):
๏ Analyse d’un GRAFCET autonome
‣ Représentation tabulaire de GRAFCET.
‣ Table et graphe des situations accessibles.
‣ Recherche des propriétés (propre, vivant, pseudo-vivant) le plus souvent avec un
GRAFCET renseigné afin de réduire l’espace des solutions.
๏ Apport de l’information externe (GRAFCET complet)
‣ Recherche des cycles, la compatibilité des actions simultanées.
Peut s'avérer assez fastidieux si fait à la main. Mais c’est un processus qui peut être rendu
automatique (ordinateur).

• Validation - le processus permettant d’offrir une preuve de la correction de spécification


(pas uniquement: “ça marche” ce qui malgré sa sonorité ingénieur n’est pas acceptable dans
certains cas).
• On a vu une méthode permettant d’y arriver (avec plus ou moins d’effort en fonction de la
complexité du problème ...)
• Aujourd’hui avec la complexité des problèmes traités, la validation (manuelle) n’est pas
simple.
• Heureusement les outils informatiques nous permettent de vérifier certains (pas toutes)
propriétés d’un GRAFCET.
• ... et bien sûr il existe la simulation. La question qui se pose alors est liée à la qualité de
l’environnement de test.

REDUCTION

• Réduction de GRAFCET = simplification i.e. réduction de nombre d’étapes (et de


transition)
• Possible car lors de l’élaboration de GRAFCET il est possible que nous ayons introduit de
la redondance (sans faire exprès).
• Réductions:

29
๏ Soit des méthodes systématiques de simplification: analyse de GRAFCET complet pour
l'obtention d’un GRAFCET minimal.
Implique des méthodes complexes (penser à la simplification des tables d’états pour des
systèmes séquentiels), mais pas forcement automatisables dans le cas de GRAFCET...
๏ Soit des méthodes simples, de bonne pratique, permettant d’obtenir un “meilleur”
GRAFCET (approche pragmatique à la simplification).

• La simplification d’un GRAFCET - obtention d’une même spécification de l’automatisme


mais d’un formalisme plus simple
• Implique:
๏ Moins de ressources pour une réalisation avec de la logique câblée
๏ Lors d’une implémentation dans des APIs (ressource pas critique):
‣ Mise en ouvre plus simple
‣ Réduction de risque d’erreur
‣ Validation (non-formelle) plus simple et plus rapide
‣ Meilleure lisibilité
• Possible car l’écriture d’un GRAFCET initial peut impliquer:
๏ Transitions redondantes
๏ Etapes redondantes
๏ Etapes fusionnables

Transitions redondantes
• Les transitions sont identiques si elles ont les mêmes étapes d’entrée et les mêmes étapes
de sortie.
• De telles transitions sont regroupées avec une nouvelle réceptivité associée à la transition
(le OU logique entre les deux expressions Booléennes).

Etapes redondantes
• Une étape Si est étape implicite d’un ensemble d’étapes S si:
๏ dans toutes les situations lorsque Si est active il existe une étape dans l’ensemble S
également active
๏ dans toutes les situations où apparaît une étape active de l’ensemble S, Si l’est aussi.
• L’étape implicite et toutes les liaisons d’entrée et de sortie sont supprimées, les actions sont
reportées aux autres étapes du GRAFCET (actions de type niveau uniquement!)
• En pratique: il faut trouver des étapes dont l’activité est toujours simultanée avec celle
d’autres étapes dans une table des étapes accessibles.
• A la main c’est un peu compliqué pour un grand nombre d’étapes, mais la méthode est
programmable.

Etapes fusionnables

30
• Condition de fusionnement de n étapes:
๏ quelque soit la situation du GRAFCET si une étape active peut être caractérisé par une
condition logique ci
๏ si les conditions logiques caractérisant l’activité de chacune de n étapes sont exclusives
entre elles
• De telles transitions sont regroupées avec une nouvelle réceptivité associée à la transition
(le OU logique entre les deux expressions Booléennes).

31
6. Comment passer d’un Grafcet à un Ladder Î bascule RS… ? + voir p.10 & 21

7. Gemma

VOIR SLIDES : partie 3 slides 51 à 83

32