La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Automatismes Séquentiels 3 Cours, 3 Travaux Dirigés et 3 séances de TP de 4h 1.

Présentations similaires


Présentation au sujet: "Automatismes Séquentiels 3 Cours, 3 Travaux Dirigés et 3 séances de TP de 4h 1."— Transcription de la présentation:

1 Automatismes Séquentiels 3 Cours, 3 Travaux Dirigés et 3 séances de TP de 4h 1

2 Plan du cours Partie 1: Les systèmes automatisés de productionPartie 2: L’Automate Programmable IndustrielPartie 3: Langages de programmation des automatesPartie 4: Le GRAFCET: Outils de description des automatismes Partie 5: Les Modes de Marches et d’Arrêts 2

3 Plan du cours Exemples vidéos introductifs Pourquoi automatise-t-on? Schéma de principe d’un automatisme Différents moyens d’implanter une partie commande Partie 1: Les systèmes automatisés de productionPartie 2: L’Automate Programmable IndustrielPartie 3: Langages de programmation des automatesPartie 4: Le GRAFCET: Outils de description des automatismes Partie 5: Les Modes de Marches et d’Arrêts 3

4 Plan du cours Partie 1: Les systèmes automatisés de production Quid des API /PLC? Structure matérielle Structure logicielle Exemple de gammes de différents constructeurs Intégration des API dans les architectures types des systèmes automatisés Partie 2: L’Automate Programmable IndustrielPartie 3: Langages de programmation des automatesPartie 4: Le GRAFCET: Outils de description des automatismes Partie 5: Les Modes de Marches et d’Arrêts 4

5 Plan du cours Partie 1: Les systèmes automatisés de productionPartie 2: L’Automate Programmable Industriel Position et périmètre de la norme IEC Principales conventions de la norme Les 5 langages: LD, IL, ST, FDB, SFC Partie 3: Langages de programmation des automatesPartie 4: Le GRAFCET: Outils de description des automatismes Partie 5: Les Modes de Marches et d’Arrêts 5

6 Plan du cours Partie 1: Les systèmes automatisés de productionPartie 2: L’Automate Programmable IndustrielPartie 3: Langages de programmation des automates Objectifs et convention du Grafcet Structures classiques particulières Méthode de développement de Grafcet Implémentation d’une analyse Grafcet en langage de l’IEC (LD et IL) Partie 4: Le GRAFCET: Outils de description des automatismes Partie 5: Les Modes de Marches et d’Arrêts 6

7 Plan du cours Partie 1: Les systèmes automatisés de productionPartie 2: L’Automate Programmable IndustrielPartie 3: Langages de programmation des automatesPartie 4: Le GRAFCET: Outils de description des automatismes De la nécessité de considérer les différents modes de fonctionnement d’une installation automatisée. L’outils GEMMA Structure multi-grafcets de gestion des modes de marches et d’arrêt d’un installation. Partie 5: Les Modes de Marches et d’Arrêts 7

8 Exemples vidéos de postes automatisés 8

9 Pourquoi automatise-t-on? Objectif de productivité Produire plus: plus vite et/ou plus longtemps. Objectif de réalisation Réalisation d’opérations irréalisables par l’homme: Rapidité d’exécution, Miniaturisation, Manutention cinématique complexe… Objectif de sécurisation Suppression de tâches dangereuses: Sciage, Dosage chimique… Suppression de manipulations fastidieuses: Ascenseur, Porte de garage Objectif de maîtrise de l’outils de production Intégration des chaînes logistiques Economie des ressources utilisées (GTC) Traçabilité de la production: Intégration dans un système d’informations global 9

10 Constituants d’un S ystème A utomatisé de P roduction Agir sur la matière d’œuvre Ventouse, convoyeur… Transformer l’énergie Moteur, Vérin… Acquérir des informations Capteur de Position… Traiter les données, Emettre des ordres API, Commande câblée… Communiquer IHM, Superviseur, Voyants Terminaux de dialogue Distribuer l’énergie Contacteur électrique, Distributeur pneumatique… 10

11 Analyse fonctionnelle 11

12 Du point de vue de la commande P ARTIE C OMMANDE CONSIGNES DE FONCTIONNEMENT - Mise en fonctionnement - Mise à l’arrêt - Consigne de cadence - Consigne de recette - … INFORMATIONS SUR L’ÉTAT DU PROCESS L’ÉTAT DU PROCESS -Informations binaires. Pièces en butée, Niveau atteint, Faisceau coupé, Évènement… -Informations numériques. Niveau de température, dans trémie. Comptage. COMPTE-RENDU DE FONCTIONNEMENT DE FONCTIONNEMENT - Signalisation visuelle, sonore - Signalisation via un module IHM - Ecriture dans une base de données - … ORDRES D’ACTIONS SUR LE PROCESS. - Ordre booléen Ouverture/Fermeture vanne, Mise en marche moteur - Ordre numérique Bloc de régulation PID intégré, consigne de vitesse - Consigne pour modules déportés 12

13 Différents moyens d’implanter une partie commande Commande câblée Dès lors que l’on dispose des fonctions logiques élémentaires et d‘éléments de mémorisation, on est capable de réaliser la plupart des fonctions de commande. Réalisable en technologie électrique (Cf. Exemple), électronique, pneumatique Peu souple, pas d’intégrations d’éléments communiquant. Micro contrôleur Solutions demandant des temps de développement importants. Interfaçage vers des équipements industriels existants difficiles Intérêt dans le cadre d’application de série. Automate Programmable Industriel Equipements plus onéreux Programmation aisée Conception robuste Vaste gamme d’interfaces pour communiquer avec son environnement. 13

14 Architectures d’automatismes 14

15 Commande décentralisée et répartie 15

16 Exemple d’architecture de commande 16

17 L’Automate Programmable Industriel API : Automate Programmable Industriel PLC : Programmable Logic Controlleur Liste de principaux constructeurs: Allen Bradley (US) ; Siemens (GER) ; Schneider (FR) ; Rockwell Automation (US) ; FESTO (GER) ; WAGO (GER) ; GE Fanuc (US) ; Beckhoff (GER) ; Omron (JPN) ; ABB (SU) ; Mitsubishi (JPN) ; … 17

18 L’API: Structure Matérielle Exemple de configuration matérielle d’un API modulaire 18

19 2 Gammes d’API 19 Non exhaustives Siemens LOGOS200S300C7S400 Schneider ZELIOTWIDOTSX MicroM340PremiumQuantum Petite machine Machine Industrielle Process Manufacturier Infrastructure complète Mémoire et performance processeur(s) (plus d’instructions et plus vite). Modularité croissante, Service de communication croissant. Possibilités logicielles croissantes Intégration de IEC, Outils de simulation, diagnostic, supervision, Richesse des bibliothèques etc.

20 L’API: Structure logicielle Cycle automate périodique ou cyclique Déterminisme assuré par un chien de garde Notion de Scrutation Lecture et écriture synchrone de toutes les E/S, respectivement en début et en fin de scrutation. Le programme utilisateur ne travaille que sur des images mémoires. Notions d’images mémoires des E/S Structure mono-tâche ou multi-tâche possible. Notions de tâches 3 notions importantes: 20

21 Principe du déroulement d’un cycle automate Scrutation cycliqueScrutation périodique 1.Les instructions du programme sont exécutées les unes après les autres 2.Lorsque toutes les instructions on été évaluées, le programme reprend à nouveau depuis le début, de toute façon. Cette scrutation peut s’effectuer de manière cyclique ou périodique: Cette relecture cyclique est ininterrompue, on parle de scrutation ou encore de cycle automate 21

22 Déterminisme temporel des API Chaque tâche d’un programme d’automate dispose d’un chien de garde paramétrable vérifiant que sa durée de scrutation est limitée. Dès lors que ce temps de scrutation de la tâche maître est limité, on peut garantir une borne supérieure au temps de réponse à une entrée donnée Un API est une machine « temps réel » il garantit une réponse avant une durée maximale donnée et courte… 22

23 Temps de réponse maximal d’un API Temps de réponse: entre 1 à 2 temps de scrutation (borné par chien de garde) 23

24 Traitement mémoire des E/S: MIE Sur la durée d’une scrutation, les états des entrées sont rendus stables par l’utilisation de la mémoire image des entrées (MIE) Le principe est le suivant: 1.En début de scrutation, les états de chaque entrées des coupleurs d’entrées sont recopiés en mémoire MIE de l’UC. 2.En cours d’exécution du code utilisateur, si une instruction requiert l’état d’une entrée, c’est l’image mémoire correspondante qui est lue 3.La mémoire image des entrées est rafraichie en début de scrutation suivante 24

25 Traitement mémoire des E/S: MIS Selon un mécanisme similaire: 1.Chaque instruction du programme utilisateur affecte l’image mémoire de la sortie adressée. Cette image mémoire porte le même nom que la sortie physique. 2.Chaque nouvelle instruction met la mémoire image à jour 3.Après déroulement complet de la scrutation, les états de la MIS sont recopiées en bloc vers les coupleurs de sortie. 25

26 Structure logicielle mono-tâche et multi-tâches 2/2 26 Une tâche représente un ensemble d’opération exécuté séquentiellement. Contrairement à l’informatique, une tâche réalise l’ensemble des opérations qui lui sont désignées puis s’arrête et ce, jusqu’à son prochain lancement Ordonnancement correspondant

27 Structure logicielle mono-tâche et multi-tâches 1/ A tout moment, une seule tâche exécutée. 2.Les tâches ont leurs propres cycles de traitement (Lecture/Calcul/Ecriture) 3.Les tâches communiquent entre-elles par des zones de mémoires allouées Exemple Ordonnancement pour une tâche rapide à 200m

28 Norme CEI / NF EN Normalisation des 5 langages de programmation des API Développée par des constructeurs, utilisateurs industriels finaux, universitaires (1993 pour …-3) Valable pour automates présents et futurs. Intégration partielle conforme (Position dans la gamme) Pas d’obligation légale d’implantation de l’ensemble des aspects de la norme. 1.Informations générales Définitions générales et Caractéristiques fonctionnelles générales des PLC 2.Spécifications et essais matériels Définitions de caractéristiques mécaniques, électriques et de conditions d’environnement 3.Langages de programmation des PLC Harmonisation des langages de programmations des PLC, Modèle élémentaire de programme d’automatisation 4.Aide utilisateur Informations pratiques d’aide à l’utilisateur depuis l’analyse du besoin et l’acquisition du PLC jusqu’à la maintenance 5.Communications Communications entre les PLC de différents constructeurs et autres équipements CEI

29 Périmètre de la CEI Unité logique de de programmation Fonctions Blocs fonctionnels Programmes Eléments communs à tous les langages Typage des données Variables 5 langages LDILFDBSTSFC 29

30 Les unités logiques de programmation Ce sont des modules logiciels qui peuvent être de 3 types: 1.Les programmes 2.Les blocs fonctionnels 3.Les fonctions 30 Objectif poursuivit: Créer des encapsulations de structure de données et d’algorithme associé indépendant de l’application. Création de bibliothèques d’outils dédiés

31 Fonctions et blocs fonctionnels standards 31 Toutes les applications de programmation d’API intègrent nativement des fonctions et blocs fonctionnels prédéfinis: Fonctions prédéfinies numériques: ABS, SQRT, EXP… arithmétiques: ADD, MUL, SUB… Booléenne: AND, OR, XOR…. sur tableau de bits: RHL, SHL, ROL… comparaison: EQ, LT, LE…. sur chaînes de caractères: CONCAT, INSERT, DELETE… Conversion de type: x_TO_y, BCD,… … Blocs fonctionnels prédéfinis TONTemporisateur à l’enclenchement TOFFTemporisateur au déclenchement TPMonostable CTUcompteur CTUDCompteur / Décompteur R_TRIGFront montant F_TRIGFront descendant File FIFO/LIFORegistre First In-First Out … La norme prévoit de pouvoir créer ses propres fonctions et blocs fonctionnels

32 Ces modules logiciels sont hiérarchisés 32 Les appels réciproques sont hiérarchisés

33 Structure commune des modules logiciels IEC 33 Les codages de ces modules logiciels ont des structures identiques:

34 La fonction: Unité logique de programmation Une fonction est un module logiciel Une seule variable de sortie Plusieurs variables d’entrées possibles Pas de mémoire interne Tous langages de la norme peut servir à définir une fonction 34

35 Le bloc fonctionnel (FB) Un bloc fonctionnel est un module logiciel : Plusieurs variables de sortie possibles (ou aucune) des mémoires internes Eventuellement une entrée de validation et une sortie « pas d’erreur » Tous langages de la norme peut servir à définir un bloc fonctionnel 35

36 Instanciation d’un bloc fonctionnel Les blocs fonctionnels, dès lors qu’ils sont crées, s’instancient Une instance possède un identificateur unique et peut-être déclarée comme locale ou globale. En reprenant l’exemple: %Passage_droit.Q peut être utilisé en fonction de la déclaration de l’instance « Passage droit » du bloc fonctionnel bascule SR On instancie un BF dans un programme, ou dans un autre BF. ☢ Toutes les valeurs sont conservées d’une exécution de bloc fonctionnel jusqu’à l’autre 36

37 Le programme: Unité logique de programmation Il y a toujours un programme principal effectuant les affectations des E/S, des variables globales… Pour chaque programme, on peut définir un mode de scrutation indépendamment des autres. Il n’y a pas d’instance de programmes (sur un même API) 37

38 Les blocs déclaratifs des variables 38 Pour chaque blocs déclaratifs des modules logiciels, il est nécessaire de définir: 1.La portée de chacune des variables utilisées dans le bloc. 2.Le type de chacune de ces variables.

39 Éléments commun des langages Chaque variable doit être parfaitement Typée Identifiée ou localisée De portée déterminée (locale, globale, entrée, sortie, E/S..) Une variable ne peut-être typée que selon l’une des 3 catégories suivantes: - un type standard - Un type prédéfini par le développeur - une instance de bloc fonctionnel 39

40 Types de données standards selon le CEI Type de donnéesDescriptionBitsGamme BOOLbooléen1[0, 1] BYTEChaîne de 8bits8[0,…,16#FF] WORDChaîne de 8bits16[0,…,16#FFFF] DWORDChaîne de 8bits32[0,…,16#FFFF FFFF] LWORDChaîne de 64bits64[0,…,16#FFFF FFFF FFFF FFFF] SINTEntier signé court8[-128, 127] INTEntier signé16[-32768,…,+32767] DINTEntier double signé32[-2(31),…,2(31)-1] LINTEntier long signé64[-2(63),…,2(63)-1] USINTEntier court non signé8[0, 255] UINTEntier non signé16[0,…,65535] UDINTEntier double non signé32[-0,…,2(32)-1] ULINTEntier long non signé64[-0,…,2(64)-1] REALNombre réel32 STRINGChaîne de car. ASCII..255 caractères maxi DATEDate32D# TODHeure32Tod#00:00:00 TIMEDurée32T#0s 40

41 Type de données prédéfinis 1°) Type Enuméré TYPE Couleur : (rouge, verte, bleue); END_TYPE; TYPE RefType : (REF,DIFF):=REF; END_TYPE; 2°) Type Tableau TYPE Mesure : ARRAY[1..10] OF INT; END_TYPE; 3°) Type Structure TYPE Acquisition STRUCT Valide:BOOL:=FALSE; Reference:RefType; ACQ:Mesure; END_STRUCT END_TYPE 41

42 Identification et étendues des variables 42 Préfixe d’emplacement Signification IEmplacement d’entrée QEmplacement de sortie MEmplacement de mémoire KEmplacement de mémoire constante Préfixe de tailleSignification (Rien)Taille d’un seul bit X BTaille d’un octet WTaille d’un mot de 16 bits DTaille d’un mot de 32 bits Exemple: %I1.2; %IW0.1; %MB10; %KD10; Une variable peut être identifiée de manière symbolique ou bien localisée Pour une variable localisée, la désignation est normalisée: %(Préfixe d’emplacement)(Préfixe de taille)(Indices de positions slot.voies)

43 Les 5 langages de programmation de la norme ILSTLDFDBSFC Instruction listStructured TextLadder diagramFunction block diagram Sequential function chart Listes d’instructions Texte structuréLangage à contacts Langage à blocs fonctionnels Langage inspiré du GRAFCET 43

44 Langage IL 44 LabelOpérateur ( )OpérandeCommentaire L1:ADD10(* Accu:=Accu+10*) Langage textuel, de bas niveau, proche du langage assembleur. Un programme IL se présente comme une liste de ligne d’instructions évaluées séquentiellement - Le label est optionnel, il ne sert qu’au éventuel saut de programme. - L’opérateur code l’opération a effectuer entre l’accumulateur et l’opérande. Le résultat de cette opération est placé dans l’accumulateur - Le modificateur « ( » permet de créer un second accumulateur quand nécessaire. - Cet accumulateur est évalué et détruit par l’opérateur « ) », parenthèse fermante. LDA (*Accu=A*) MULB (*Accu=Accu*B*) ADDC (*Accu=Accu+C*) ST D (*D=Accu=A*B+C*) LDA (*Accu=A*) MUL(B (*Accu1=B*) ADDC (*Accu1=Accu1+C*) ) (*Accu=Accu+Accu1*) ST D (*D=Accu*) D=A*B+CD=A*(B+C)

45 Langage IL: Principaux opérateurs 45 OpérateurDescription LDAccu=Opérande (Op) STOp=Accu SSi Accu Alors Set Op RSi Accu Alors Reset Op LDNAccu=NOT Op STNOp= NOT Accu OpérateurDescription ANDAccu=Accu AND Op ORAccu=Accu OR Op XORAccu=Accu XOR Op NOTAccu= NOT Accu ANDNAccu=Accu AND NOT Op ORN, XORN….… OpérateurDescription ADDAccu=Accu + Op MULAccu=Accu * Op MODAccu=Reste Accu/Op SUBAccu= Accu-Op DIVAccu=Accu /Op OpérateurDescription GTAccu=(Accu>Op) LTAccu=(Accu=Op) LEAccu=(Accu=Op) + fonctions de conversion de type, sur chaînes de bits, sur chaînes de caractères…

46 Langage IL: Branchement et Appel 46 OpérateurDescription JMPCSaut au Label si (Accu=TRUE) JMPSaut inconditionnel au Label JMPCNSaut au Label si (Accu=FALSE) RETCRETURN si (Accu<>0) RETRETURN RETCNRETURN si (Accu=0) Appel d’un bloc fonctionnel STNomInstance.Entrée1 etc…. CAL NomInstance( :=,….) LDNomInstance.Sortie STResultat Appel d’une fonction: Ex fonction utilisateur LIMIT(Min,Val,Max) LD Min LIMITVal,Max STResultat

47 Langage IL: Exercices 47 1°) Ecrire le programme IL qui code l’équation combinatoire suivante: Résultat=a1+(a2*(a3-a4)*a5)+a6 2°) Ecrire le programme IL qui code les instructions FDB suivantes 3°) Ecrire un bloc fonctionnel AFFECTE qui a pour argument un entier non signé « Selecteur » et qui si Selecteur=i i ∈ {0,1,2} positionne un bit de sortie bsi à TRUE i ∈ {0,1,2} sans modifier les autres bits Ecrire une séquence d’instruction IL qui appelle ce bloc et lit un des 3 bits de sortie

48 Langage ST 48 Langage textuel, de haut niveau, proche de langage informatique type PASCAL. Le langage ST est adapté à la programmation de fonctions algorithmiques complexes, aux manipulations sur tableaux, difficile à traduire en langage graphique. (*Recherche du premier élément non nul dans un tableau de 32 mots, détermination de sa valeur (%MW10), de son rang (%MW11). Cette recherche s ’effectue si %M0 est à 1, %M1 est mis à 1 si un élément non nul existe, sinon il est mis à 0*) IF %M0 THEN FOR %MW99:=0 TO 31 DO IF TAB[%MW99]<>0 THEN %MW10:=TAB[%MW99]; %MW11:=%MW99; %M1:=TRUE; EXIT; ELSE %M1:=FALSE; END_IF; END_FOR; ELSE %M1:=FALSE; END_IF

49 Langage ST: Sélecteurs de branches 49 IF-THEN-ELSIF-ELSE-END_IFCASE-OF-ELSE-END_CASE Syntaxe IF THEN ; … ELSIF THEN ; … ELSE ; … END_IF CASE THEN : ;, : ; … ELSE ; … END_CASE Enoncés ELSE et ELSEIF optionnelsOn peut avoir plusieurs valeurs différentes donnant lieu au même traitement. L’énoncé ELSE est optionnel. Exemple IF manual AND not(alarm) THEN Level:=manual_level; bx126:=bit12 OR bit16; ELSE_IF over_mode THEN level;:=(level*100)/scale; END_IF ; IF overflow THEN alarm_level:=TRUE; END_IF ; CASE error_code THEN 255 : err_msg:=‘Division par zéro’; fatal_eror:=TRUE; 1: err_msg:=‘Dépassement’; 2,3 : err_msg:=‘Erreur de signe’; ELSE err_msg:=‘Erreur Inconnue’; END_CASE ;

50 Langage ST: Opérateurs d’itérations 50 WHILE-DO-END_WHILEREPEAT-UNTIL-END_REPEATFOR-TO-BY-DO-END_FOR Syntaxe WHILE DO ; … END_WHILE; REPEAT ; … UNTIL END_REPEAT; FOR := TO BY DO ; … END_DO; BY est optionnel, par défaut, l’incrément est de 1. String:=‘’ (*vide*); Nbchar:=0; IF ComlsReady() THEN REPEAT String:=string+ComGetChar(); Nbchar:=nbchar+1; UNTIL ( (nbchar>=16 )OR NOT( ComlsReady( ))) END_REPEAT; Length:=mlen(message); Found:=FALSE; FOR index:=1 TO length DO Code:=ascii(message,index); IF code:=searched_chard THEN Found:=TRUE; EXIT ; END_IF ; END_FOR ; Instructions: EXIT : Quitte la boucle d’itérations (FOR, WHILE ou REPEAT). RETURN : Quitte la fonction ou le bloc fonctionnel dans laquelle elle est placée.

51 Langage ST: Appel de fonctions et de blocs fonctionnels 51 Appel de fonction élémentaire: :=NomFonction(

52 Langage LD 52 Langage graphique, proche du langage à contact des électriciens. Ce langage est toujours disponible, quelque soit la gamme API.

53 Langage LD 53 Relais direct output:=input Relais inversé output:=NOT(input) Relais forçage SET: IF Input THEN Output:=TRUE END_IF Relais forçage RESET: IF Input THEN Output:=FALSE END_IF Contact direct passant si %I1.2 L’association en série (ET) et en parallèle (OU) de contacts de différentes natures réalise la logique booléenne souhaitée Contact inversé passant si NOT(%I1.2) Contact passant sur Front de %I1.2 Toutes fonctions/bloc fonctionnels ramenant une valeur logique peut être utilisé dans la zone de calcul ( Fonction de comparaison, Temporisation…) Toutes fonctions peut être invoquées par la possibilité d’adjoindre une entrée EN (et une sortie ENO correspondante) [ même pour des blocs qui n’ont pas été crée nativement avec cette entrée] Dès lors que cette entrée est à 1, résultat d’un réseau LD, le bloc est exécuté

54 LD: Schéma de base à connaître. 54 Reconstruction d’un front en LD Si l’interface de programmation de l’API ne permet pas d’obtenir directement l’information « front »), on reconstruit l’information en utilisant un bit additionnel (ici b), selon le schéma ci-contre: Mémoire à enclenchement prioritaire Mémoire à déclenchement prioritaire M0=/OFF·(ON+M0) M0=ON+(/OFF·M0)

55 Langage FDB 55 Langage graphique concis Une instruction FDB est décrite comme un réseau de fonctions plus élémentaires, reliées par des fils orientés, correspondant à des flux de donnés typées

56 Langage FDB: Fonction de base 56 DésignationNom de la fonction AdditionADD SoustractionSUB DivisionDIV MultiplicationMUL TransfertMOVE Strictement supérieurGT Strictement inférieurLT EgalitéEQ InégalitéNE OU LogiqueOR ET LogiqueAND NONNOT Etc.… etc.……. l’entrée EN « Enable » L’entrée EN est utilisée pour autoriser l’exécution de la fonction La sortie ENO « Enable Out» Est mise à UN quand la fonction a été correctement réalisée

57 Langage FDB: Exercice 57 Ligne de conditionnement: Une ligne de conditionnement doit travailler sur 2 types de pièces différentes. Pour chaque pièce, le nombre de pièces par sacs et le nombre de sac par carton varie. Le système doit permettre de visualiser à tout moment le nombre de pièces en cours de conditionnement « Valeurs courante pièces » et de donner l’information « carton plein ». On souhaite écrire un bloc fonctionnel type « Compteurs pièces », ont été crées 2 instances portant les noms « Compteur pièces1 » et « Compteur pièces 2 » Ecrire le bloc fonctionnel « Compteur de pièces » en langage FDB

58 Langage SFC 58 Langage graphique de programmation directement inspiré du langage GRAFCET. SFC est particulièrement adapté à la programmation des séquences. Les principes et conventions sont identiques aux principes et conventions du grafcet à quelques exceptions près -Un bloc SFC doit avoir une en-tête déclarative. -Les actions sont caractérisées N (continue),D(retardée),L(limitée dans le temps), R,S(mémorisée),P(impulsionnelle) -Les actions peuvent correspondre à l’appel d’autres modules fonctionnels -Les forçages ne sont pas si explicite. -…

59 Le GRAFCET: outils de description des automatismes séquentiels 59 GRAFCET: GRaphe Fonctionnel de Commande Etapes-Transitions C’est un langage normalisé (NE FR – 08/2002) de description du fonctionnement de systèmes séquentiels ☢ Le GRAFCET n’est pas un langage de programmation. On parle d’analyse GRAFCET d’une système séquentiel

60 Le GRAFCET: Eléments de base 60 L’état du GRAFCET peut se résumer au vecteur X dont les composantes sont les variables d’étapes binaires X i, représentant l’état de l’étape i.

61 Grafcet: Exercice de base 61 2 bacs sont utilisés de façon similaire. Le bac 1 est vide lorsque le niveau est au dessous de b1. Il est plein lorsque le niveau est au dessus de h1. A l’état initial, les 2 bacs sont vides. Au moment où on appuie sur un bouton poussoir m, les 2 bacs se remplissent grâce à l’ouverture des vannes V1 et V2. Dès qu’un bac est plein, on arrête son remplissage et on commence à utiliser son contenu. Lorsque le bac est vide, on ferme la vanne W correspondante. Le remplissage ne pourra recommencer que lorsque les 2 bacs seront vides. Ce remplissage sera déclenché par appui sur le bouton poussoir m. Proposer un grafcet qui corresponde au fonctionnement souhaité.

62 Le GRAFCET: 5 Règles d’évolution 62 Règle n°1 Les étapes initiales sont activées dès que la PC est opérationnelle Règle n°2 Une transition est validée dès lors que toutes ses étapes immédiatement précédentes sont actives. Une transition est franchissable et franchie dès lors que: Elle est validée ET La réceptivité associée est VRAIE Règle n°3 Le franchissement d’une transition entraine simultanément: - la désactivation de toutes les étapes immédiatement précédentes - l’activation de toutes les étapes immédiatement suivantes

63 Le GRAFCET: 5 Règles d’évolution 63 Règle n°4 Plusieurs transitions simultanément franchissables sont simultanément franchies Règle n°5 Si, au cours du fonctionnement, une même étape doit être désactivée et activée simultanément, elle reste active.

64 Une variable temporisation S s’écrit de manière générale [t 1,E, t 2 ] ou: - E une variable d’entrée booléenne. - t 1 retard à l’enclenchement de E - t 2 retard au déclenchement de E Les réceptivités 64 Condition logique affectée à toute transition et calculée à partir: d’une entrée booléenne (issue des MIE/MIS par exemple) d’un évènement (↑e ) ou (↓b) : changement d’état d’un booléen une condition logique toujours vraie: 1 de l’évaluation de toute fonction ramenant un booléen [Cpt>6]; [Value=10];… d’une état d’un GRAFCET X i, bit d’étape n°i. d’une temporisation : Toutes les actions continues sur X66 sont maintenue pendant 5s

65 Les actions 1/3 65 Il existe 4 types d’action que l’on peut associer à une étape GRAFCET: 1.Les actions continues 2.Les actions conditionnelles (dont temporisées) 3.Les actions mémorisées. 4.Les actions impulsionnelles KA1=X21 KA1=X21./Depassement

66 Les actions 2/3 66 Action limitéeAction retardée De durée théorique nulle, ces actions peuvent être effectuées à l’activation, à la désactivation d’une étape ou sur l’occurrence d’un évènement.

67 Les actions sur étapes instables 3/3 67 Supposons les étapes 1 et 11 actives et b=1, lorsque la variable a passe de 0 à 1, les étapes 3 et 13 sont alors directement activées. Les étapes 2 et 12 sont ici instables. L’action continue sur X2 instable n’est pas réalisée, de toute façon. L’action mémorisée sur X12 instable est effectuée, dès lors qu’elle est programmée comme action à l’activation ou à la désactivation de l’étape 12. On parle d’évolution fugace quand plusieurs transitions successives sont franchies sans évènement sur les réceptivités correspondantes

68 Le GRAFCET: Structures de base 1/4 68

69 Le GRAFCET: Structures de base 2/4 69 Branche de l’étape 22 prioritaire sans blocage Pas de branche prioritaire blocage si a=b=1 Structure OU ☢ Si a=b=1 lors de l’évènement activation de l’étape 21, Les étapes 22 et 23 seront activés immédiatement … Et l’on a réalisé le ET de séquences parallèles Solution: rendre exclusive les réceptivités a et b Cette structure permet de traduire les séquences obligées.

70 Le GRAFCET: Structures particulières 3/4 70 Structure ET : parallélisme structurel de séquences ☢ Toujours resynchroniser le retour de 2 séquences parallèles: C’est le rôle des étapes 25 et 26 ici. La dernière de ces 2 étapes a être activée aura une activité fugace.

71 Le GRAFCET: Structures particulières 4/4 71 Cas classique d’une ressource commune à laquelle 2 moyens doivent avoir accès consécutivement : Séquence 1, puis séquence 2, puis séquence 1… Cas classique d’une ressource commune à laquelle 2 moyens doivent avoir accès de manière concurrente Ce sont les réceptivités r1et r2 qui gèrent l’attribution de la ressource. On peut envisager une attribution de priorité séquentielle….

72 Le GRAFCET: Organisation et synchronisation 1/2 72

73 Le GRAFCET: Organisation et synchronisation 1/3 73

74 Le GRAFCET: Organisation et synchronisation 2/2 74 Notation : G i {x} Grafcet n°i forcé dans la situation x ☢ Les ordres de forçage rompent « brutalement » les séquences. Ils sont à utiliser avec parcimonie pour résoudre des « situations anormales » dans le déroulement du processus (typiquement le traitement de problème de sécurité, d’apparition d’obstacle etc…) - Difficulté pratique d’implantation de ces ordres dans les API (forçage ciblé)

75 Grafcet: Exercice 75 Un étudiant, peu inspiré, a proposé l’analyse grafcet ci-contre. Retrouver les erreurs..

76 Implantation d’une analyse grafcet dans un API 76 Dès lors que l’on ne peut utiliser le langage SFC, Il s’agit de coder, dans le langage choisi, et dans l’ordre: 1.Les évolutions de tous les grafcets 2.Les équations de sortie associées à chacune des actions

77 Implantation d’une analyse grafcet dans un automate 77 Principe de transcription d’une analyse grafcet en équation booléenne. 1. A chaque étape on affecte un bit mémoire Ce bit doit être mis à 1 quand la transition amont est franchie (ON) Ce bit doit être mis à 0 quand le transition avale est franchie (OFF) Mémoire à enclenchement prioritaire ( R5 d’évolution). M21= ON + NOT(OFF).M21 2.Pour programmer les « ON/OFF », on associe à chaque transition un bit qui est mis à 1 dès lors que la transition est franchissable (Toutes étapes amont actives et réceptivité associée vraie) 3.Il est nécessaire d’initialiser toutes les étapes initiales (Si aucun bit mémoire d’étape n’est à 1 Alors Mettre à 1 les bits mémoires des étapes initiales)

78 Exercice 78 Ecrire l’ensemble des équations booléennes permettant d’implanter cette analyse grafcet dans un API ne se programmant pas en SFC.


Télécharger ppt "Automatismes Séquentiels 3 Cours, 3 Travaux Dirigés et 3 séances de TP de 4h 1."

Présentations similaires


Annonces Google