Automates Programmables Industriels

  • Uploaded by: sumororo
  • 0
  • 0
  • January 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Automates Programmables Industriels as PDF for free.

More details

  • Words: 7,391
  • Pages: 32
Loading documents preview...
AUTOMATES PROGRAMMABLES INDUSTRIELS Questions sur oraux.be : 1. 2. 3. 4. 5. 6. 7.

Fonctionnement d’un API p.1 Langage Ladder = combinatoire Æ comment simuler le séquentiel ? p.9 Diagramme Ladder Grafcet (au moyen d’un exemple) p.12 Comment passer d’un Grafcet à un Ladder Gemma 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 ๏ Filtrage des entrées analogiques/numériques ๏ Adaptation des signaux ๏ Isolement opto-électronique (opto-coupleurs)

UNITE CENTRALE a. Unité de traitement (UT): ๏ un µP (ou µC) relativement simple et pas ultra-performant ๏ opération arithmétiques / 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

SORTIE : actionneurs ๏ Isolement opto-électronique (opto-coupleurs) ๏ Amplification des sorties ๏ Relais électromagnétiques

3

BUS DE COMMUNICATION

PERIPHERIQUES SUPPLEMENTAIRES

a. Bus d’entrées/sorties (bus fond de panier) Assure la communication entre l’automate proprement dit et le monde extérieur via les coupleurs. Sujet de standardisation, cependant un grand nombre de standards actuellement en jeu (standard VME p.e.).

a. Coupleurs de communication Permettent aux APIs de dialoguer avec d’autres systèmes de commande ou avec des entrées/sorties déportées.

b. Bus système Assure la communication entre les différentes parties de l’automate proprement dit (communication entre l’unité centrale et les mémoires correspondantes p.e.). Généralement propriétaire.

b. Cartes d’extension permettant la réalisation des calculs complexes de façon efficace (efficace: le temps d’exécution). c. Interfaces pour le matériel informatique standard ๏ unités IO standards tels que claviers, écrans, écrans tactiles, imprimantes ๏ unités de stockages (HDD, DVD etc) ๏ 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.

Systèmes séquentiels

Systèmes combinatoires

• Langages de programmation de la norme … : 1. Liste des Instructions (Instruction List - IL) proche de l’assembleur 2. Texte structuré (Structured Text - ST) proche des langes Ada, C 3. Les langages graphiques de type schémas à relais (contacts) (Ladder diagrammes LD) 4. Diagrammes des blocs fonctionnels (Functional Bloc Diagrams - FBD) dans lequel 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). 10 : dépend de la longueur de programme. • La durée de la phase de scrutation • 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 Zone de test

{affectation} traduit par deux zones en LD :

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 Instructions de contact

Description (MAJ = majoration) • 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 comparaison

• Egalité == ; plus grand ou égal >=; plus petit ou égal <= Æ 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 & conversions

• Fonctions logiques standards : AND, OR, XOR, NOT 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 contrôle de programme

• STOP implique l’arrêt immédiat du processeur de l’API (passe du 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 1, étape active et variable Booléenne . Nous avons donc : 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é Niveau

Toujours vraie

Temporisé

Impulsionnelle

Description = condition logique exprimée avec une équation Booléenne. Les variables de ces équations = valeurs Booléennes associées aux 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. 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. Æ 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. = 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 Action continue Action conditionnelle

Description = se poursuit tant que l’étape à laquelle l’action est associée est active (cas le plus fréquent) = 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 retardée dans le temps

= se poursuit si l’étape est valide ET le temps écoulé en cette étape > T (condition logique supplémentaire fournie par un temporisateur qui mesure une durée).

Action prolongée/limitée dans le temps

= se poursuit si l’étape est valide ET le temps < T (condition 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 Grafcet 1. Initialisation

2. Validation des transitions

3. Franchissement

4. Franchissement de plusieurs transitions

Description • 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. Validée lorsque l’étape immédiatement précédente est active. 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. • 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... Si le GRAFCET présente plusieurs transitions simultanément 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 désactivation simultanée d’une étape

Structure type d’un Grafcet Séquence unique

Multiples séquences

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

Description Grafcet linéaire

Séquences exclusives

• 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. • Permet l’exécution conditionnelle d’une série d’étapes 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 simultanées

• Permet l’exécution concurrentielle (simultanée) de 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

Extensions aux Grafcet (pour un Grafcet plus complexe)

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).

Hiérarchie

Æ afin de structurer des Grafcet complexes : meilleure lisibilité, programmation simplifiée, documentation plus structurée. • 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 • source : étape qui n’est pas précédé d’un couple 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 transitionréceptivité. Désactivée que par un ordre explicite de désactivation.

Etapes: sources, puits

19

Transitions: source, puits

Grafcet des tâches

• source : transition qui n’a pas d’étape qui la précède. 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). • 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 tâche et une macroétape

• Une tâche implique le mécanisme d’appel et de retour d’un autre Grafcet. Analogie avec un appel d’une fonction dans un langage de programmation classique. 20

Forçage

Figeage

Mise en équation

• 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. • 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...). • 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). = 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 Libre Auto-synchronisé

Autonome

Complet

Description Les GRAFCETs n’ayant pas de synchronisation interne (que des variables externes, et pas de variables internes). 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. = 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. = Grafcet autonome + Interprétation externe

24

Type de transition Sensibilisée

Solidaires

Description 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. 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 (relation (.)) 2) Incompaatibles Totalem ment incompaatibles Identiqu ues Totalem ment identiqu ues Compattibles Totalem ment compatibbles

Descrip ption si pour cettte situation elles ne peu uvent jamaiis être vraies simultaném ment si pour tou ute situation n elles ne peeuvent jamaais être vraies simultaném ment si pour cettte situation n elles sont toujours t vraaies simultaném ment si pour tou ute situation n elles sont toujours vrraies simultaném ment si pour cettte situation n elles peuv vent être vraaies ou non simultaném ment si pour tou ute situation n elles peuv vent être vraaies ou non n 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 ๏ Transition ns d’Interprrétation Resstrictive Si toutes les transittions solidaiires sont inccompatibless (ne sont ja amais vraiess simultanéément). ๏ Transition ns d’Interprrétation Larrge Si toutes les transittions solidaiires sont inccompatibless ou identiq ques (ne son nt jamais vrraies ou sont tou ujours vraiees simultanéément). ๏ Transition ns 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

ote les transsitions francchies et les n nouvelles ๏ Parmii les transitiions sensibiilisées on no situation ns produitees par ces frranchissemeents. On ana alyse toutess les solutio ons possibles car on considèère le GRAC CET autonom me. Intérêt ons qui ne sensibilisent s t aucune tra ansition • Identiification dess situations bloquées : des situatio (elles ex xistent indép pendammeent de l'interrprétation externe) e - il existe des p parties de GRAFC CET qui n’év voluent pass - ceci n’est peut être pas p normal.... • Des éttapes réactiivées – lorsq qu’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 som mme des récceptivités ex xternes vau ut 1.

un graphe dess situations accessibles a 3) Etabliissement d’u Montre l’évolution n de l’autom matisme 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 situation n à 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 perm mettant 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 vée. Si à partir de toute situation accessible deepuis S0 auccune étape n’est réactiv RAFCET estt sauf il n’y aura pas dee réactivatio on d’étapes.. Si le GR • P2 - VIVANT V Si à partir de toute situation accessible deepuis S0 on peut trouver des séqu uences de oute transition. franchisssement perrmettant dee franchir to 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-sensib bilisées). • P3 - PSEUDO-VI P IVANT Si à partir de toute situation accessible deepuis S0 il existe e au mo oins une traansition sensibilisé. nt le non-bllocage, maiss existe la possibilité p dees parties in nertes. Garantii uniquemen • 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

Related Documents

Automates
January 2021 0

More Documents from "omariosoft"