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

1

Automatismes Séquentiels

3 Cours, 3 Travaux Dirigés et 3 séances de TP de 4h

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

2

Plan du cours

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

3

Plan du cours

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

4

Plan du cours

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

5

Plan du cours

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

6

Plan du cours

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

7

Plan du cours

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

8

Exemples vidéos de postes automatisés

1 Production: Fabrication de tube 1 1m11s

2 Fabrication de bretzel 2 54s

3 Assemblage meubles 3 27s

4 Assemblage semi automatisé 4 32s

5 Mouvement 1 axe, Mouvement 2axes 5 16s

6 Effort et précision 6 23s

7 Contrôle Qualité intégré 7 32s

8 Marquage, traçabilité 8 24s

9 Rapidité et précision 1 9 35s

10

Rapidité et précision 2 10 10s

Contexte et possibilités: Illustrations

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

9

Pourquoi automatise-t-on?

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

10

Constituants d’un Système Automatisé de Production

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, VoyantsTerminaux de dialogue

Distribuer l’énergie

Contacteur électrique,Distributeur pneumatique…

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

11

Analyse fonctionnelle

Energie convertie

Energie du réseau de distribution

Ordre

Compte rendu InformationCapteurs

Acquérir de l’information

Préactionneurs

Distribuer l’énergie

ActionneurConvertir l’énergie en

action

Effecteurs

Agir sur le produit

Constituants de dialogue

Dialoguer avec l’opérateur

Constituants decommunication

Communication avecd’autres systèmes

PARTIE COMMANDE

Traiter lesinformations

Consignes, Messages

Echange d’énergie

Echanged’informations

Ajout de valeur ajoutée

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

12

Du point de vue de la commande

PARTIE COMMANDE

CONSIGNES DE FONCTIONNEMENT

- Mise en fonctionnement- Mise à l’arrêt- Consigne de cadence- Consigne de recette- …

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.

COMPTE-RENDU 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ériqueBloc de régulation PID intégré, consigne de vitesse- Consigne pour modules déportés

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

13

Différents moyens d’implanter une partie commande

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

14

Architectures d’automatismes

Architecture centralisée

Architecture décentralisée

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

15

Commande décentralisée et répartie

Architecture décentralisée et répartie

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

16

Exemple d’architecture de commande

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

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); …

Un API est un dispositif électronique de contrôle commande en temps réel des systèmes ,

programmable et robuste.

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

18

L’API: Structure Matérielle

Exemple de configuration matérielle d’un API modulaire

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

19

2 Gammes d’API Non exhaustives

Siemens LOGO S200 S300 C7 S400

Schneider

ZELIO TWIDO TSX Micro M340 Premium Quantum

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

20

L’API: Structure logicielle

3 notions importantes:

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

21

Principe du déroulement d’un cycle automate

Scrutation cyclique Scrutation 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

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

22

Déterminisme temporel des APIChaque 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…

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

23

Temps de réponse maximal d’un API

Temps de réponse: entre 1 à 2 temps de scrutation (borné par chien de garde)

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

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

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

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.

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

26

Structure logicielle mono-tâche et multi-tâches 2/2

Structure mono tâche:

- Le traitement interne programme constructeur.

- Une tâche maître standard.

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

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

27

Structure logicielle mono-tâche et multi-tâches 1/2

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

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

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

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.

1. Informations généralesDéfinitions générales et Caractéristiques fonctionnelles générales des PLC

2. Spécifications et essais matérielsDéfinitions de caractéristiques mécaniques, électriques et de conditions d’environnement

3. Langages de programmation des PLCHarmonisation des langages de programmations des PLC, Modèle élémentaire de programme d’automatisation

4. Aide utilisateurInformations pratiques d’aide à l’utilisateur depuis l’analyse du besoin et l’acquisition du PLC jusqu’à la maintenance

5. CommunicationsCommunications entre les PLC de différents constructeurs et autres équipements

CEI 61131

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

29

Périmètre de la CEI 61131-3

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

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

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

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

31

Fonctions et blocs fonctionnels standards

Toutes les applications de programmation d’API intègrent nativement des fonctions et blocs fonctionnels prédéfinis:

Fonctions prédéfiniesnumé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éfinisTON Temporisateur à l’enclenchement

TOFF Temporisateur au déclenchement

TP Monostable

CTU compteur

CTUD Compteur / Décompteur

R_TRIG Front montant

F_TRIG Front descendant

File FIFO/LIFO Registre First In-First Out …

La norme prévoit de pouvoir créer ses propres fonctions et blocs fonctionnels

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

32

Ces modules logiciels sont hiérarchisés

Types d’appel possible entre module logiciel selon IEC 61131-1

Les appels réciproques sont hiérarchisés

Page 33: Automatismes Séquentiels 3 Cours, 3 Travaux Dirigés et 3 séances de TP de 4h 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:

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

34

La fonction: Unité logique de programmationUne 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

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)*CEcrite en FDB

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

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

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

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

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

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)

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

38

Les blocs déclaratifs des variables

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.

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

39

Éléments commun des langages

Chaque variable doit être parfaitementTypée Identifiée ou localiséeDe 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

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

40

Types de données standards selon le CEI 61131-3Type de données Description Bits Gamme

BOOL booléen 1 [0, 1]

BYTE Chaîne de 8bits 8 [0,…,16#FF]

WORD Chaîne de 8bits 16 [0,…,16#FFFF]

DWORD Chaîne de 8bits 32 [0,…,16#FFFF FFFF]

LWORD Chaîne de 64bits 64 [0,…,16#FFFF FFFF FFFF FFFF]

SINT Entier signé court 8 [-128, 127]

INT Entier signé 16 [-32768,…,+32767]

DINT Entier double signé 32 [-2(31),…,2(31)-1]

LINT Entier long signé 64 [-2(63),…,2(63)-1]

USINT Entier court non signé 8 [0, 255]

UINT Entier non signé 16 [0,…,65535]

UDINT Entier double non signé 32 [-0,…,2(32)-1]

ULINT Entier long non signé 64 [-0,…,2(64)-1]

REAL Nombre réel 32

STRING Chaîne de car. ASCII .. 255 caractères maxi

DATE Date 32 D#0000-00-00

TOD Heure 32 Tod#00:00:00

TIME Durée 32 T#0s

Principaux types de données prédéfinis par l’IEC61131

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

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 TableauTYPE Mesure : ARRAY[1..10] OF INT; END_TYPE;

3°) Type StructureTYPE Acquisition STRUCT Valide:BOOL:=FALSE; Reference:RefType; ACQ:Mesure; END_STRUCTEND_TYPE

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

42

Identification et étendues des variables

Préfixe d’emplacement

Signification

I Emplacement d’entrée

Q Emplacement de sortie

M Emplacement de mémoire

K Emplacement de mémoire constante

Préfixe de taille

Signification

(Rien) Taille d’un seul bit

X Taille d’un seul bit

B Taille d’un octet

W Taille d’un mot de 16 bits

D Taille 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 <Equipement.>slot.voies)

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

43

Les 5 langages de programmation de la norme

IL ST LD FDB SFC

Instruction list Structured Text Ladder diagram Function block diagram

Sequential function chart

Listes d’instructions

Texte structuré Langage à contacts Langage à blocs fonctionnels

Langage inspiré du GRAFCET

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

44

Langage IL

Label Opérateur (<modificateur>)

Opérande Commentaire

L1: ADD 10 (* Accu:=Accu+10*)

Exemple:

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.

LD A(*Accu=A*)

MUL B(*Accu=Accu*B*)

ADD C(*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*)

D=A*B+C D=A*(B+C)

Principe:

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

45

Langage IL: Principaux opérateurs

Opérateur Description

LD Accu=Opérande (Op)

ST Op=Accu

S Si Accu Alors Set Op

R Si Accu Alors Reset Op

LDN Accu=NOT Op

STN Op= NOT Accu

Opérateurs d’affectation

Opérateur Description

AND Accu=Accu AND Op

OR Accu=Accu OR Op

XOR Accu=Accu XOR Op

NOT Accu= NOT Accu

ANDN Accu=Accu AND NOT Op

ORN, XORN…. …

Opérateurs logiques

Opérateur Description

ADD Accu=Accu + Op

MUL Accu=Accu * Op

MOD Accu=Reste Accu/Op

SUB Accu= Accu-Op

DIV Accu=Accu /Op

Opérateurs arithmétiques

Opérateur Description

GT Accu=(Accu>Op)

LT Accu=(Accu<Op)

EQ Accu=(Accu=Op)

GE Accu=(Accu>=Op)

LE Accu=(Accu=<Op)

NE Accu=(Accu<>Op)

Opérateurs de comparaison

+ fonctions de conversion de type, sur chaînes de bits, sur chaînes de caractères…

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

46

Langage IL: Branchement et Appel

Opérateur Description

JMPC Saut au Label si (Accu=TRUE)

JMP Saut inconditionnel au Label

JMPCN Saut au Label si (Accu=FALSE)

RETC RETURN si (Accu<>0)

RET RETURN

RETCN RETURN si (Accu=0)

Opérateurs de branchements

Appel d’un bloc fonctionnelST NomInstance.Entrée1 etc….CAL NomInstance(<Entrée1>:=<Valeur>,….)LD NomInstance.SortieST Resultat

Appel d’une fonction: Ex fonction utilisateur LIMIT(Min,Val,Max)

LD MinLIMIT Val,MaxST Resultat

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

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

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

48

Langage STLangage 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 THENFOR %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

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

49

Langage ST: Sélecteurs de branches

IF-THEN-ELSIF-ELSE-END_IF CASE-OF-ELSE-END_CASESyntaxe IF <Expression Booléenne> THEN

<énoncé><énoncé>;…

ELSIF <Expression Booléenne> THEN<énoncé>;<énoncé>;…

ELSE<énoncé>;<énoncé>;…

END_IF

CASE <Expression Entière> THEN<valeur>:<énoncé>;<valeur>:<énoncé>;<valeur>, <valeur>:<énoncé>;…

ELSE<énoncé>;<énoncé>;…

END_CASE

Enoncés ELSE et ELSEIF optionnels On peut avoir plusieurs valeurs différentes donnant lieu au même traitement.L’énoncé ELSE est optionnel.

Exemple IF manual AND not(alarm) THENLevel:=manual_level;bx126:=bit12 OR bit16;ELSE_IF over_mode THENlevel;:=(level*100)/scale;END_IF;IF overflow THEN alarm_level:=TRUE; END_IF;

CASE error_code THEN255 : err_msg:=‘Division par zéro’; fatal_eror:=TRUE;1 : err_msg:=‘Dépassement’;2,3 : err_msg:=‘Erreur de signe’;ELSEerr_msg:=‘Erreur Inconnue’;END_CASE;

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

50

Langage ST: Opérateurs d’itérations

WHILE-DO-END_WHILE REPEAT-UNTIL-END_REPEAT FOR-TO-BY-DO-END_FOR

Syntaxe WHILE <Expression

Booléenne> DO<énoncé><énoncé>;…

END_WHILE;

REPEAT<énoncé>;<énoncé>;…

UNTIL <Expression Booléenne>

END_REPEAT;

FOR<index>:=<mini> TO <maxi> BY

<pass> DO<énoncé>;<énoncé>;

END_DO;

BY est optionnel, par défaut, l’incrément est de 1.

String:=‘’ (*vide*);Nbchar:=0;IF ComlsReady() THENREPEAT 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.

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

51

Langage ST: Appel de fonctions et de blocs fonctionnels

Appel de fonction élémentaire:<resultat>:=NomFonction(<argument1,argument2,…);

Appel de bloc fonctionnel: On appelle une instance du bloc souhaité.On invoque les paramètres de sortie correspondants

NomInstanceBlocFonctionnel(<argument1,argument2,…);

<resultat1>:=NomInstanceBlocFonctionnel.<retour1>;<resultat2>:=NomInstanceBlocFonctionnel.<retour2>;…

Exemple: Si trigb1 est une instance de « R_TRIG », BF de détection de front montant.

trigb1(b1);IF trigb1.Q THEN nb_fronts:=nb_fronts+1; END_IF;

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

52

Langage LD

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

Entre la zone de calcul et la zone d’affectation ne transite que des valeurs booléennes

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

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é

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

54

LD: Schéma de base à connaître.

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)

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

55

Langage FDB

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

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

56

Langage FDB: Fonction de base

Désignation Nom de la fonction

Addition ADD

Soustraction SUB

Division DIV

Multiplication MUL

Transfert MOVE

Strictement supérieur GT

Strictement inférieur LT

Egalité EQ

Inégalité NE

OU Logique OR

ET Logique AND

NON NOT

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

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

57

Langage FDB: Exercice

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

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

58

Langage SFC

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

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

59

Le GRAFCET: outils de description des automatismes séquentiels

GRAFCET: GRaphe Fonctionnel de Commande Etapes-Transitions

C’est un langage normalisé (NE FR 60848 – 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

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

60

Le GRAFCET: Eléments de base

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

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

61

Grafcet: Exercice de base

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

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

62

Le GRAFCET: 5 Règles d’évolution

Règle n°1 Situation initiale du GRAFCETLes étapes initiales sont activées dès que la PC est opérationnelle

Règle n°2 Transition FranchissableUne 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 Franchissement d’une transitionLe 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

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

63

Le GRAFCET: 5 Règles d’évolution

Règle n°4 Franchissements simultanésPlusieurs transitions simultanément franchissables sont simultanément franchies

Règle n°5 Activation et désactivation simultanées

Si, au cours du fonctionnement, une même étape doit être désactivée et activée simultanément, elle reste active.

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

64

Une variable temporisation S s’écrit de manière générale [t1,E , t2] ou:- E une variable d’entrée booléenne.- t1 retard à l’enclenchement de E- t2 retard au déclenchement de E

Les réceptivités

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 Xi , bit d’étape n°i.

• d’une temporisation

: Toutes les actions continues sur X66 sont maintenue pendant 5s

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

65

Les actions 1/3

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

Action continue

Action conditionnelle

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

66

Les actions 2/3

Action conditionnée par une temporisation = Action temporisée

Action mémorisée

Action limitée Action retardée

Action impulsionnelle

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.

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

67

Les actions sur étapes instables 3/3

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

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

68

Le GRAFCET: Structures de base 1/4

L’écriture de GRAFCET décrivant des automatismes séquentiels fait apparaître des structures classiques et récurrentes, à connaître:

1. Séquence linéaire ou séquence obligée

2. Sélection de séquences

3. Séquences parallèles

4. Saut de séquence

5. Reprise de séquence

6. Séquences alternées

7. Séquences exclusives

La description complète d’une application d’automatisme résulte alors en la résolution d’un problème d’organisation et de synchronisation de

telles structures.

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

69

Le GRAFCET: Structures de base 2/4

1. Séquence linéaire.

2. Sélection de séquences

Branche de l’étape 22 prioritairesans blocage

Pas de branche prioritaireblocage 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.

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

70

Le GRAFCET: Structures particulières 3/4

3. Séquences parallèles

4. Saut de séquence 5. Reprise de séquence

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.

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

71

Le GRAFCET: Structures particulières 4/4

6. Séquences alternées

7. Séquences exclusives

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

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

72

Le GRAFCET: Organisation et synchronisation 1/2

En pratique, la description d’un automatisme complexe à l’aide du langage GRAFCET donne toujours lieu à la donnée de plusieurs grafcets partiels, interdépendants et hiérarchisés.

GRAFCET GLOBAL = GRAFCETi{ }i∈ 1...n[ ]

Appel et synchronisationInterdépendance:

1. Appel respectif

2. Synchronisation

3. Forçage

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

73

Le GRAFCET: Organisation et synchronisation 1/3

Synchronisation unilatérale

Synchronisation bilatérale

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

74

Le GRAFCET: Organisation et synchronisation 2/2

Notation : Gi{x} Grafcet n°i forcé dans la situation x

Forçage d’un grafcet

☢ 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é)

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

75

Grafcet: Exercice

Un étudiant, peu inspiré, a proposé l’analyse grafcet ci-contre.

Retrouver les erreurs..

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

76

Implantation d’une analyse grafcet dans un API

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

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

77

Implantation d’une analyse grafcet dans un automate

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)

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

78

Exercice

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


Recommended