1 / 78

Automatismes Séquentiels

Automatismes Séquentiels. 3 Cours, 3 Travaux Dirigés et 3 séances de TP de 4h. Plan du cours. Plan du cours. Plan du cours. Plan du cours. Plan du cours. Plan du cours. Exemples vidéos de postes automatisés. Contexte et possibilités: Illustrations. Pourquoi automatise-t-on?.

sorena
Télécharger la présentation

Automatismes Séquentiels

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Plan du cours

  3. Plan du cours

  4. Plan du cours

  5. Plan du cours

  6. Plan du cours

  7. Plan du cours

  8. Exemples vidéos de postes automatisés Contexte et possibilités: Illustrations

  9. Pourquoi automatise-t-on?

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

  11. Analyse fonctionnelle

  12. Du point de vue de la commande • Compte-rendu • de fonctionnement • - Signalisation visuelle, sonore • Signalisation via un module IHM • Ecriture dans une base de données • … • Consignes de fonctionnement • - Mise en fonctionnement • Mise à l’arrêt • Consigne de cadence • Consigne de recette • … Partie Commande • Informations sur • 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. • 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

  13. Différents moyens d’implanter une partie commande

  14. Architectures d’automatismes Architecture centralisée Architecture décentralisée

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

  16. Exemple d’architecture de commande

  17. L’Automate Programmable Industriel API : Automate Programmable Industriel PLC : Programmable LogicControlleur Un API est un dispositif électronique de contrôle commande en temps réel des systèmes , programmable et robuste. 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); …

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

  19. Non exhaustives 2 Gammes d’API

  20. L’API: Structure logicielle 3 notions importantes:

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

  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…

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

  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: 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. 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 La mémoire image des entrées est rafraichie en début de scrutation suivante

  25. Traitement mémoire des E/S: MIS Selon un mécanisme similaire: 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. Chaque nouvelle instruction met la mémoire image à jour Après déroulement complet de la scrutation, les états de la MIS sont recopiées en bloc vers les coupleurs de sortie.

  26. Structure logicielle mono-tâche et multi-tâches 2/2 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 Structure mono tâche: - Le traitement interne programme constructeur. - Une tâche maître standard. Ordonnancement correspondant

  27. Structure multi tâches: tâche par ordre de priorité croissante • Le traitement interne programme constructeur. • Une tâche maître standard. • tâches rapides • (Optionnelles, Toujours périodique (1-255ms), E/S propres, Chien de garde affecté) • tâches évènements • (Optionnelle, Sur occurrence d’un évènement prédéfini, E/S propres, Chien de garde affecté) Structure logicielle mono-tâche et multi-tâches 1/2 A tout moment, une seule tâche exécutée. Les tâches ont leurs propres cycles de traitement (Lecture/Calcul/Ecriture) 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 61131-3 / NF EN 61131-3 • 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. CEI 61131 • Informations générales • Définitions générales et Caractéristiques fonctionnelles générales des PLC • Spécifications et essais matériels • Définitions de caractéristiques mécaniques, électriques et de conditions d’environnement • Langages de programmation des PLC • Harmonisation des langages de programmations des PLC, Modèle élémentaire de programme d’automatisation • Aide utilisateur • Informations pratiques d’aide à l’utilisateur depuis l’analyse du besoin et l’acquisition du PLC jusqu’à la maintenance • Communications • Communications entre les PLC de différents constructeurs et autres équipements

  29. Périmètre de la CEI 61131-3

  30. Les unités logiques de programmation • Ce sont des modules logiciels qui peuvent être de 3 types: • Les programmes • Les blocs fonctionnels • Les fonctions 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 • Toutes les applications de programmation d’API intègrent nativement des fonctions et blocs fonctionnels prédéfinis: La norme prévoit de pouvoir créer ses propres fonctions et blocs fonctionnels

  32. Ces modules logiciels sont hiérarchisés • Les appels réciproques sont hiérarchisés Types d’appel possible entre module logiciel selon IEC 61131-1

  33. Structure commune des modules logiciels IEC • Les codages de ces modules logiciels ont des structures identiques: Exemple du bloc fonctionnel « bascule SR » recrée en ST:

  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 Exemple n°1: Une fonction qui prend un mot en argument et retourne l’octet de poids faible ou celui de poids fort. Ecrite en IL Exemple n°2: Une fonction qui réalise D=(A+B)*C Ecrite en FDB • Tous langages de la norme peut servir à définir une fonction

  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

  36. Instanciation d’un bloc fonctionnel • Les blocs fonctionnels, dès lors qu’ils sont crées, s’instancient • On instancie un BF dans un programme, ou dans un autre BF. • 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 ☢ Toutes les valeurs sont conservées d’une exécution de bloc fonctionnel jusqu’à l’autre

  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)

  38. Les blocs déclaratifs des variables • Pour chaque blocs déclaratifs des modules logiciels, il est nécessaire de définir: • La portée de chacune des variables utilisées dans le bloc. • 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

  40. Types de données standards selon le CEI 61131-3 Principaux types de données prédéfinis par l’IEC61131

  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

  42. Identification et étendues des variables 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 <Equipement.>slot.voies) Exemple: %I1.2; %IW0.1; %MB10; %KD10;

  43. Les 5 langages de programmation de la norme

  44. Langage IL 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 Principe: • 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. Exemple: D=A*B+C D=A*(B+C) LD A (*Accu=A*) MUL B (*Accu=Accu*B*) ADDC (*Accu=Accu+C*) ST D (*D=Accu=A*B+C*) LD A (*Accu=A*) MUL( B (*Accu1=B*) ADD C (*Accu1=Accu1+C*) ) (*Accu=Accu+Accu1*) ST D (*D=Accu*)

  45. Langage IL: Principaux opérateurs Opérateurs d’affectation Opérateurs logiques Opérateurs arithmétiques Opérateurs de comparaison + fonctions de conversion de type, sur chaînes de bits, sur chaînes de caractères…

  46. Langage IL: Branchement et Appel Opérateurs de branchements Appel d’un bloc fonctionnel ST NomInstance.Entrée1 etc…. CAL NomInstance(<Entrée1>:=<Valeur>,….) LD NomInstance.Sortie ST Resultat Appel d’une fonction: Ex fonction utilisateur LIMIT(Min,Val,Max) LD Min LIMIT Val,Max ST Resultat

  47. Langage IL: Exercices 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 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. Exemple: (*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

  50. Langage ST: Opérateurs d’itérations 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.

More Related