1
Cours Automatismes et Systèmes Logiques
2 1) Chapitre 1 : Systèmes de numération -
Les différents systèmes de numération Changements de base - Conversions Les nombres entiers signés
2) Chapitre 2 : logique combinatoire -
Les opérations logiques élémentaires Les opérations logiques induites Les expressions logiques et leur simplification Ecriture des fonctions booléennes Représentation décimale d’une fonction logique
3) Chapitre 3 : Logique séquentielle -
Systèmes synchrones et asynchrones Les bascules RS Les verrous : bascules D Les bascules JK Les compteurs
4) Chapitre 4 : Grafcet -
Eléments de base règles d'évolution Actions, sorties et réceptivités Structuration des grafcets partiels Conception de grafcet Réduction d'un grafcet
5) Chapitre 5 : Les automates programmables -
Introduction Constitution Principes de conception d’un système d’automatisation
6) Chapitre 6 : Les automates programmables S7200 de Siemens -
Présentation du logiciel step7-microwin Création de programmes à l’aide de STEP 7-Micro/WIN Configuration de l’interface pour liaison PC/PG-API Commande séquentielle : exemple de programme Programmation d’un mélangeur industriel
3
Chapitre 1 : Systèmes de numération Définition Un système de numération est un système dans lequel on va représenter les nombres. Il est définit par sa base B, et par les symboles qui vont permettre la représentation des nombres, le but es systèmes de numérotation est de faciliter les opérations. De manière générale, un nombre s’écrivant N = an-1...a1a0 (les ai représentent les n chiffres) dans une base B (on dispose de B symboles) s’écrit : (N)B= an-1 Bn-1+ an-2 Bn-2... a1 B1 +a0 B0
I. Les systèmes de numération I.1 Numérotation décimale Ce système de numération, usuel dans la vie quotidienne, dispose de dix symboles (les chiffres) : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. On travaille alors en base 10. Exemple : 7239 = 7.103 + 2.102 + 3.101 + 9.100 I.2 Numérotation binaire La numération en base deux (ou numération binaire) utilise deux symboles 0 et 1. Cette base est très commode pour distinguer les deux états logiques fondamentaux. On écrit : (an-1an-2...a1a0)2 = an-1.2n-1 + … + a0.20 (ai ∈ {0, 1}). Exemple : (4)10 = 1.22 + 0.21 + 0.20 = (100)2 Un nombre à n chiffres en base deux distingue 2n états. Un état binaire est appelé bit (contraction de binary digit). Un bit prend les valeurs 0 ou 1. Les puissances successives de 2 (1, 2, 4, 8, 16, 32, 64, 128, 256,...) sont appelées poids binaires. En général, le poids du bit de rang n est 2n (attention, on commence toujours au rang 0). Le bit de poids le plus fort est appelé MSB (Most Significant Bit). Le bit de poids le plus faible est appelé LSB (Less Significant Bit). exemple:
I.3 Numérotation octale Ce système utilise 8 symboles : 0, 1, 2, 3, 4, 5, 6, 7. Il n’est plus guère employé aujourd’hui, puisqu’il servait au codage des nombres dans les ordinateurs de première génération. (an-1an-2...a1a0)8 = an-1.8n-1 + … + a0.80
4
I.4 Numérotation hexadécimale Le développement des systèmes microprogrammés (mini- et micro-ordinateurs) a favorisé l’utilisation de ce code. Il comporte 16 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. (an-1an-2...a1a0)16 = an-1.16n-1 + … + a0.160 Un quartet, ou digit hexadécimal, évolue entre 0 et 15 (en base 10) soit 0 et F en hexadécimal. L’assemblage de 2 quartets forme un octet qui varie de 0 à 255 (en décimal). Pour indiquer la base 16, on peut la noter en indice suivant la manière générale. Mais dans la pratique on utilise une autre notation. On place le caractère $ (dollar) devant le nombre ou H derrière. Exemple (AA)16 = AAH = $AA = A.161+A.160 = 10.16+10.1 = (170)10
II. Changements de base - Conversions II.1. Conversion décimal vers binaire Il existe plusieurs moyens d’effectuer une telle conversion : - par soustractions successives des poids binaires dans la différence de l’étape précédente ; - par divisions successives par 2 du dividende de l’étape précédente. Les restes correspondants sont les bits consécutifs. C’est terminé au premier dividende nul. II.2. Conversion décimal vers hexadécimal On reprend les deux méthodes précédentes avec des poids hexadécimaux ou en divisant par 16. II.3. Décomposition d’un nombre décimal en octal Les mêmes principes s’appliquent aussi. II.4. Toutes les conversions vers le décimal Dans tous les cas, il n’y a rien de particulier à ajouter. Le principe de conversion est directement attaché à la manière dont on écrit un nombre dans une base donnée. (N)B= an-1 Bn-1+ an-2 Bn-2... a1 B1 +a0 B0 La conversion est réalisée automatiquement dans la mesure où le résultat est écrit directement dans la base dix.
5
II.5. Conversion binaire vers hexadécimal Un nombre hexadécimal est « découpable » en quartets facilement codables en binaire. Donc, pour convertir du binaire en hexadécimal, on divise le nombre binaire en « tranches de quatre » en partant de la droite. Chacun des « paquets » est ensuite converti en hexadécimal. Cette méthode revient à fractionner en décompositions successives. Exemple : (110101110001)2 = (1101 0111 0001)2 = D71H Explication : la mise en paquet revient à effectuer une série de factorisations partielles de la base de destination. Ici c'est 16 = 24. Les résidus constituent les chiffres de la conversion. Dans l'exemple précédent, cela donne : (110101110001)2 = 1.211 + 1.210 + 0.29 + 1.28 + 0.27 + 1.26 + 1.25 + 1.24 + 0.23 + 0.22 + 0.21 + 1.20 = {1.23+1.22+0.21+1.20}.(24)2 +{0.23+1.22+1.21+1.20}.24 +{0.23+0.22+0.21+1.20} = 13.162 + 7.161 + 1.160
II.6. Conversion hexadécimal vers binaire C’est le processus directement inverse, on écrit chaque quartet sur 4 bits en complétant éventuellement avec des zéros. Exemple : BC34H = (1011[B] 1100[C] 0011[3] 0100[4])2 = (1011 1100 0011 0100)2 II.7. Conversion binaire vers octale et inversement On reprend les mêmes principes, sachant que 8 = 23
III. Codage des nombres Un code constitue une correspondance entre des symboles et des objets à désigner. Les codes de la section I sont pondérés : dans une base de travail donnée, la valeur d’un rang donné est un multiple par la base de celle du rang inférieur. D’autres codes ne sont pas pondérés, c’est à dire que la position d’écriture ne correspond pas à un poids des autres. Ils ne permettent pas d’effectuer d’opérations arithmétiques III.1. Codes pondérés III.1.1. Code naturel Le code binaire naturel et ses dérivés (octal et hexadécimal) répondent aux règles classiques de l’arithmétique des nombres positifs (on peut calculer). III.1.2. Code décimal codé binaire (DCB) Dans ce codage (BCD, Binary Coded Decimal en anglais), chaque digit décimal est écrit en binaire puis tous sont juxtaposés. Cette représentation est commode pour traiter les nombres dans le mode de représentation le plus adapté à l’opérateur humain (lors d’un affichage par exemple). Exemple : 7239 = (0111 0010 0011 1001)DCB. = (1110001000111)2.
6
IV- LES NOMBRES ENTIERS SIGNÉS: IV.1 – Signe plus module: Par convention on réserve le bit le plus significatif comme bit de signe, le reste de la représentation binaire est considéré comme le module du nombre.
S = 0 => le nombre est positif (exp. N = 0110 0001 = +97) S = 1 => le nombre est négatif (exp. N = 1100 0000 = -64) La capacité de représentation:
-127 (-28-1+1) <= N <= +127 (28-1-1) -32767 (-216-1+1) <= N <= +32767 (216-1-1)
• avec 8 bits: • avec 16 bits: • avec 32 bits:
-2147483647 (-232-1+1) <= N <= +2147483647 (232-1-1)
IV.2 – Complément à 1: Le complément à 1 d’un nombre binaire s’obtient par le complément de chaque bit par son complément binaire. Le complément à 1 d’un nombre N est noté N Exemple: N = 11000011 et N = 0011110 Pour représenter des nbr. – et + avec la notion de complément à 1 on se réserve le MSB comme bit de signe (0 pour + et 1 pour –), le module « M» pour les nombres positifset le complément pour les nbr. négatifs +N = 0M et –N = 1 M
+57 = 00111001 et -57 = 11000110)
La capacité de représentation d’une telle méthode est: avec 8 bits: avec 16 bits: avec 32 bits:
-(27-1) = -127 <= N <= +(27-1) = +127 -32767 <= N <= +32767 -2147483647 <= N <= +2147483647
Avantage: Passage simple d’un nombre positif à un nombre négatif et inversement par un complément binaire Inconvénient: La valeur 0 a deux représentations possibles (+0: 00000000 et -0: 11111111)
7 IV.3 – Représentation des nombres en complément à 2: Elle est dite aussi complément vrai
Le complément à 2 d’un nbr. exige une taille en nbr. Des bits fixée d’avance pour la représentation des nombres Signification des nombres exprimés en complément à 2: On alloue au MSB un poids négatif correspondant à 2 la puissance du rang MSB
Exemple: quel est le nombre représenté par le complément à 2 suivant:10111001
-128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 1 0 1 1 1 0 0 1 ---------------------------------------------= -71 La capacité de représentation de cette méthode est: avec 8 bits: -128 <= N <= +127 avec 16 bits: -32768 <= N <= +32767 avec 32 bits: -2147483648 <= N <= +2147483647
8 Les langages de programmation tel que Pascal, C et Basic, utilisent la représentation des nombres entiers en complément à 2. Avantage: Le zéro a une représentation unique: 00000000 L’addition de deux nombres se fait sans distinction des signes La soustraction de deux nombres peut se ramener à une addition du premier nombre au complément à 2 du deuxième
9
Chapitre 2 : La logique combinatoire II. 1. Définitions II.1.1. Variable binaire On appelle variable binaire (ou logique), une variable prenant ses valeurs dans l’ensemble {0, 1}. Exemple : état d’un interrupteur, d’un bouton poussoir, la présence d’une tension,... Soit a la variable associée à l’état d’un bouton poussoir, alors a = 0 (faux ou bas) signifie qu’il n’est pas actionné, a = 1 (vrai ou haut) signifie qu’il est actionné. Un signal réel est une grandeur physique en général continue, on associe a cette grandeur un signal binaire (0,1) en fixant des seuils, le passage d'un seuil caractérise le passage de l'état 1 à O et réciproquement. Pour éviter les ambiguïtés on définit souvent une zone dans laquelle aucun état logique n'est défini
II.1.2. Equation logique On appelle équation logique une combinaison de plusieurs variables logiques donnant l’état d’une variable dite de sortie associée. Cette combinaison est réalisée à l’aide d’opérations logiques : Soit xi (i ∈ [1, n]) les variables d’entrée. L’équation A = f(xi ) définit l’état de la variable de sortie A. II.1.3. Table de vérité La table de vérité représente l’état de la variable de sortie pour chacune des combinaisons des n variables d’entrée (2n lignes).
II. 2.Les opérations logiques élémentaires II.2.1. Opérateur OUI L’opération (ou opérateur) OUI est dite unaire (ne s’applique qu’à une seule opérande). Elle affecte à la variable de sortie l’état logique de la variable d’entrée. Equation : x est la l’entrée, S la sortie : S = x. Remarque : les anglo-américains notent H (High) le niveau haut et L (Low) le niveau bas.
10
1 IEC, International Electrotechnical Commission (CEI en français). 2 IEEE, Institute of Electrical and Electronics Engineers.
II.2.2. Opérateur NON L’opération (ou opérateur) NON est la fonction unaire qui affecte à la variable de sortie l’état complémentaire de la variable d’entrée. Equation : x est la l’entrée, S la sortie, S = x (prononcer « x barre »).
11 II.2.3. Opérateur ET L’opération ET est le produit logique. Le signe est celui de la multiplication (un point), mais on lit « et ». C’est un opérateur binaire qui affecte à la variable de sortie l’état 1 si et seulement si les variables d’entrée sont à 1 simultanément. Equation : x et y les entrées, S la sortie, S = x.y On note aussi l’opération ET par un V retourné : x.y = x ∧ y (penser à l’intersection d’ensembles).
II.2.4. Opérateur OU L’opération OU est la somme logique. Le signe est celui de l’addition (+), mais on lit « ou ». C’est un opérateur binaire qui affecte à la variable de sortie l’état 1 si et seulement si une variable d’entrée est à 1. Cette définition induit directement le symbole ≥1. Equation : x et y les entrées, S la sortie, S = x+y . On note aussi l’opération OU par un V : x.y = x ∨ y (penser à l’union d’ensembles).
12
Remarque:
II.3. Les opérations logiques induites II.3.1. L’opération NON ET ou NAND Cette fonction logique est le résultat de l’association d’un NON et d’un ET. C’est un opérateur binaire qui affecte à la variable de sortie l’état 0 si et seulement si les variables d’entrée sont à 1 simultanément Equation : x et y les entrées, S la sortie, S = x.y On note aussi l’opération NAND par une flèche montante : S = x.y = x↑ y (penser ∧).
13
II.3.2. L’opération NON OU ou NOR Cette fonction logique est le résultat de l’association d’un NON et d’un OU. C’est un opérateur binaire qui affecte à la variable de sortie l’état 1 si et seulement si les variables d’entrée sont à 0 simultanément. Equation : x et y les entrées, S la sortie, S = x+y . On note aussi l’opération NOR par une flèche descendante : S = x+y = x↓ y (penser ∨).
II.3.3. L’opération OU EXCLUSIF ou XOR Cet opérateur logique binaire ne prend la valeur 1 que si une seule des entrées est à 1. Equation : x et y les entrées, S la sortie, S = x ⊕ y . Généralisation L’opérateur XOR se généralise à un ensemble de n variables d’entrée par la définition suivante : La sortie vaut 1 si et seulement si le nombre d’entrées à 1 est impair. Cet opérateur peut donc aisément faire fonction de contrôleur de parité (ou d’imparité).
14
II.4. Les expressions logiques et leur simplification Tous les opérateurs précédents permettent de combiner des variables pour en construire de nouvelles. Exemple :
II.4.1. Propriétés 4.1.1) Somme
4.1.2 Produit
a + 0 = a
Element neutre
a . 1 = a
a + 1 = 1
Element absorbant
a . 0 = 0
a + a = a
Idem potence (redondance)
a . a = a
a + a = 1
Propriété du complément
a .a = 0
a + b = b + a a+b+c=a+(b+c) =(a+b)+c
Commutativité Associativité
a . b = b . a a b c = a ( b c ) = ( a b )c
4.1.3) Combinaisons Somme - Produit. •
Distributivité : -
du produit par rapport à la somme :
-
de la somme par rapport au produit :
a(b+c)= ab + ac a+bc = (a+b)+(a+c)
15
* Règle du multiple du complément. a + a b =
(a + a ) (a + b) = a + b
a + a b + a b c + a b c = a (1 + b + b c ) + abc = a + bc
Exemple :
II.4.2. Théorèmes de De Morgan
16 But : exprimer les opérateurs ET, OU et NON exclusivement à l’aide d’opérateurs NOR seuls ou NAND seuls. On dit que les opérateurs NOR et NAND sont universels ou complets.
II.5. Ecriture des fonctions booléennes II.5.1. Définitions On appelle minterme de n variables, un produit logique de ces dernières (complémentées ou non). Avec n variables, on construit 2n mintermes, c’est-à-dire autant que de combinaisons possibles de n éléments prenant deux états.
17 Exemple : pour 2 variables a et b, voici les 4 mintermes : ab, ab, ab et ab . On appelle maxterme de n variables, une somme logique de ces dernières (complémentées ou non). De la même manière que pour les mintermes, on construit 2n maxtermes avec n variables. Exemple : pour 2 variables a et b, voici les 4 maxtermes : a + b, a + b, a + b et a + b
II.5 .2. Première forme canonique La première forme canonique : fonction produit d’une expression booléenne est composée d’un produit de maxtermes exclusivement. Pour une expression donnée cette forme est unique. Soient 3 variables a, b , c on peut définir les huits combinaisons de type P = abc représentées dans le tableau ci-dessous. Avec la convention d'écriture suivante les variables barres, seront écrites en rouge, dans la première colonne (jaune) figurent les valeurs de chacune des trois variables tandis que dans les huit colonnes de droite figurent les valeurs des produits. Pour des raisons de clarté nous n'avons fait figurer que les produits égaux à 1. Soit une fonction f quelconque des 3 variables a, b et c. On va constater (par exemple) que cette fonction vaut 1 en même temps que P1, P3 et P4. On va écrire : f = P1 + P3 +P4 = abc + abc + abc cette somme est dite somme canonique de produits
II.5.3. Seconde forme canonique La Seconde forme canonique : fonction somme d’une expression booléenne est composée d’une somme de mintermes exclusivement. Pour une expression donnée cette forme est unique.
18
On constatera par exemple qu'une fonction f vaudra 0 en même temps que S1, S2 et S8 et on pourra alors écrire que la fonction peut s'écrire sous la forme d'un produit canonique de sommes f = (a+b+c) (a+b+c) (a+b+c)
19
20
21
Chapitre 3 : La logique Séquentielle 3.1 Introduction La logique séquentielle se distingue de la logique combinatoire par le fait que dans cette dernière, les sorties ne réagissent qu'aux entrées, sans que le système ne soit sensible à l'histoire de ces entrées, ce qui est le cas en logique séquentielle. Il faut alors toujours prendre en compte les séquences d'entrée et de sortie du système que l'on veut analyser. Cet état de fait rend l'analyse et la synthèse de systèmes séquentiels plus pointue 3.2 SYSTÈMES SYNCHRONES ET ASYNCHRONES
Il y a une autre distinction importante qu'il nous reste à présenter : les systèmes logiques peuvent être synchrones ou asynchrones. - Système asynchrone : si on laisse un système électronique évoluer de lui-même, on disposera de l'information en sortie lorsque tous les délais électro-physiques se seront écoulés. Par exemple, le lecteur peut consulter des fiches techniques des portes logiques pour se faire une idée des ordres de grandeurs de ces délais. Dans ce cas, le système est asynchrone : le temps est continu car la sortie peut être lue n'importe quand. - Système synchrone : Dans ce cas, une horloge électronique cadence la marche du système, et on connaît les instants où l'on peut lire les sorties, on connaît le temps de réponse d'un système. Exemple : Soit une porte ET à deux entrées a et b, on distinguera 2 types de logique : • •
•
asynchrone : S résulte en permanence de la combinaison a ET b synchrone : on ajoute aux entrées a et b (les variables logiques ) une troisième entrée non permanente dite horloge. Dans ces conditions les portes ne seront ouvertes que pendant le court instant de présence du signal d'horloge (à 1). Il en résulte la notion de chronogramme qui permet la distinction claire entre logique synchrone et asynchrone.
22
3.2 Quelques fonctions séquentielles 3.2.1. Les Verrous L'élément verrou, ou bascule D permet de mémoriser un bit :
La bascule présente la fonction de recopier l'entrée D à la sortie Q, au flanc montant de l'entrée CP (Clock Pulse) : 3.2.2 Les Registres Un assemblage de verrous permet d'obtenir une mémoire d'un mot, appelée registre. L'accès du registre peut être parallèle, série. Dans l'exemple - type présenté précédemment il s'agit de registres à entrée parallèle et sortie parallèle. 3.2.3. Les Compteurs Les compteurs sont également réalisés à l'aide d'assemblage de verrou. Exemple de compteur : le HCT 4516 (compteur binaire up/down) 3.2.4Les Mémoires Une mémoire est constituée d'un ensemble de registres, muni d'un système d'adressage permettant dee stocker ou accéder à des informations. 3.2.5.Les Microprocesseurs Le microprocesseur, dans sa forme la plus dépouillée, est constitué : - d'un compteur de programme (PC), - d'une mémoire (MEM), - d'une unité arithmétique et logique (ALU), - d'interfaces ces d'entrée et sortie (E/S), - de connections entre ces sous-systèmes sous (BUS). 3.3 Les Bascules A l’instar des opérateur logiques élémentaires en logique combinatoire, les bascules (flip-flop) ( sont les éléments de base de la logique séquentielle. La bascule ule est un circuit bistable pouvant prendre deux états logiques "0" ou "1" . L'état de la bascule peut être modifié en agissant sur une ou plusieurs entrées. Le nouvel état de la bascule dépend de l'état précédent, c'est l'élément de base des circuits séquentiels. séquentiels. La bascule peut conserver son état pendant une durée quelconque, elle peut donc être utilisée comme mémoire. 3.3.1) 1) Bascules R S et R S R
S
µ1
µ1
Q1
Q2
R 0 0 1 1
S 0 1 0 1
Q1 Q2 x x 1 0 0 1 0 0
Interdit
S
Q1
R
Q2
Niveau « 1 » actif
23
S : Set = mise à un. . . R : Reset = mise à zéro. . .
Q1 est forcé à un par .S . . Q2 est forcé à un par .R . .
Autre montage : Bascule R S S
Q1
&
R 0 0 1 1
Q2
&
R
Application : Anti-rebond. S 0 1 0 1
Q1 Q2 1 1 0 1 1 0 x x
Interdit
Niveau « 0 » actif
3.3.2) Bascule R S H ( Bascule synchrone ). C'est une bascule R S dont la prise en compte de l'état des entrées est synchronisée par une impulsion d'horloge. Ceci permet d'éviter l'arrivée accidentelle de "zéro" sur R ou sur S. Lorsque H = .0. il y a mémorisation de l’état précédent. S S
&
Q
&
R
Q
S
Q
R
Q
H
&
R
&
Q
Q
Signal d'horloge: Une bascule synchronisée peut être déclenchée sur le front montant ou sur le front descendant de l'impulsion d'horloge. De plus, afin d'obtenir un fonctionnement correct, le constructeur indique des temps à respecter. ts : temps de stabilisation .
Entrée
th : temps de maintien (holding time) Horloge ts
th
Chronogramme Table de vérité h t
R 0 0 1 1
S 0 1 0 1
Q x 1 0
Q
S
x 0 1
R
Interdit
Q
t t t
24 3.3.3 Evolution vers la bascule JK Malgré l’avantage du synchronisme, l’inconvénient de l’état RS = 11 demeure. La solution à ce problème conduit à la bascule JK. Bascule J K synchrone. La bascule J K synchrone (simple étage) est obtenue à partir d'une bascule R S H dont les sorties sont rebouclées sur les entrées. Ceci permet d'éliminer l'état indéterminé. J
&
&
Q J K
H K
&
Q
Q
& Chronogramme
Table de vérité
h t
R 0 0 1 1
S 0 1 0 1
Q x 1 0 x
Q
x 0 1 x
J t K t Q t
Remarque: Pour J = K = .1. , on dit que l'on est dans le mode basculement et l'on définit la bascule « T »(Toggle). Cette bascule passe à l'état opposé à chaque signal d'horloge. Attention: Les montages que nous avons vus sont des montages de principe qui permettent de comprendre le fonctionnement mais ils ne répondent pas à l'exigence « déclenchement sur front ». Les bascules déclenchées sur front possèdent un circuit détecteur de front qui permet leur basculement uniquement sur un front montant ou un front descendant. 3.4 Bascule dérivée de la JK : bascule D 1,4) Bascule D. A) Bascule D synchrone. Une bascule D est réalisée à partir d'une bascule R S ou J K dont les entrées sont reliées par un inverseur. Ceci impose donc que les entrées prennent des états complémentaires.
25 Table de vérité
Chronogramme h
D 0 1
t
Q 0 1
D t Q t
Utilisation: La sortie prend l'état de l'entrée D aprés l'impulsion d'horloge. Ceci permet par exemple de synchroniser le transfert de données en parallèle. (Voir codeur de clavier). B) Bascule D à verrouillage ( Latch ). Cette bascule ne possède pas de circuit détecteur de front et la sortie Q prend donc l'état de l'entrée D tant que l'horloge est à l'état haut. D
&
&
Q D V
H
&
1
Q
Q
&
Table de vérité
Q
Chronogramme D
D x 0 1
V 0 1 1
Q Q 0 1
t
V t D t
Remarque : On ne parle plus dans cette bascule de l’entrée d’horloge mais plutôt de l’entrée de validation.
26
3.5 Les compteurs 2,1) Comptage / décomptage asynchrone.(Le modulo 8 nécessite 3 bascules J K) Compteur modulo 8 N 0 1 2 3 4 5 6 7
Qc Qb 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1
Qa 0 1 0 1 0 1 0 1
h
1
2
J
3
4
5
6
7
0 t
Qa t Qb t Qc t
Qa
«1»
h
Chronogrammes.
Qb
J
Q
K
Qc
Q
J
K
Q
K
RaZ
Chronogrammes.
Décompteur modulo 8. N 7 6 5 4 3 2 1 0
Qc Qb 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0
J
K RaZ
7
h
6
5
4
3
2
1
0 t
Qa Qa
t
Qb Qb
t
Qc Qc
t
Qa
«1»
h
Qa 1 0 1 0 1 0 1 0
Q
Qb
J
K
Q
Qc
J
K
Q
27 c) Compteur / Décompteur modulo 8. (Hb = Comp . Qa + Décomp . Qa ). C 1
1
& J
h
Q
a
J
µ1
K
1
& b
Q
J
µ1
K
&
c
Q
K
&
D d) Compteur asynchrone modulo 10. En général, La réalisation d'un compteur modulo 10 se fait par la remise à zéro du compteur à la 10ème impulsion. Ce type de compteur présente donc pendant un court instant la combinaison 1 0 1 0 (10) sur ses sorties, le temps de la remise à zéro. Afin d'éviter cet état intermédiaire on peut anticiper l'évolution des bascules au passage de 1 0 0 1 (9) à 0 0 0 0 (0) au lieu de 1 0 1 0. Il faut donc:
- Forcer le bit de poids fort à passer à zéro. . . - Interdire au bit de poids 21 de passer à « 1 ». . .
.
.
Montage Qa
Qb
1
Qd
1 J
a
Q
J 1
K
b
K
Qd 0 0 0 0 0 0 0 0 1 1 1
Qc Qb 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0
Qa 0 1 0 1 0 1 0 1 0 1 0
Q
J
c
K
Q
J 1 µ1
d
Q
K
Chronogrammes.
Table de vérité. N 0 1 2 3 4 5 6 7 8 9 10
Qc
h Qa Qa Qa Jd Qa Jb
t t t t t t t
28 2,2) Comptage en synchrone. L'impulsion d'horloge est appliquée simultanément à chaque bascule. Celles-ci évoluent en fonction des informations présentent sur leurs entrées J, K au moment ou apparait l'impulsion. Il faut donc prépositionner J et K à l'instant t pour obtenir le basculement désiré à l'instant t+1. Compteur modulo 8 synchrone. Qa
Qb
Qc
«1»
& J
K h
a
Q
J
K
b
Q
J
K
c
Q
29
Chapitre 4 : GRAFCET I – introduction Le fonctionnement d’un automatisme séquentiel peut être décomposé en un certain nombre d’étapes. Le passage (ou transition) d’une étape à une autre étape se fait à l’arrivée d’un évènement particulier (réceptivité) auquel le système est réceptif. Le GRAFCET (Graphe de Contrôle Etape-Transition) est un outil graphique normalisé (norme internationale depuis 1987) permettant de spécifier le cahier des charges d’un automatisme séquentiel. II- ÉLÉMENTS DE BASE Le Grafcet est un outil de modélisation de systèmes séquentiels et plus particulièrement pour les parties commandes d’automatismes. L’étape :
Une étape peut être active ou inactive. Pour représenter une étape active, on peut par exemple ajouter une marque dans l’étape. On peut associer une action à une étape (qui s’effectuera quand l’étape sera active) :
La transition : A côté de la transition, on doit indiquer la condition de validation (réceptivité). Si la condition est toujours vraie, on indique “1” ou “=1”.
Séquence :
branchement OU : Sélection de séquence et fin de sélection de séquence
branchement ET : Séquences simultanées :
exemple simple
30 Une barrière est commandée selon les conditions suivantes: Si la barrière est fermée (capteur "position a" activé ) et si on appuie sur le bouton marche (même brièvement) la barrière s'ouvre jusqu'en B (capteur "position b") puis se referme.
III - règles d'évolution La modification de l'état de l'automatisme est appelée évolution, et est régie par 4 règles : R1 : Les étapes INITIALES sont celles qui sont actives au début du fonctionnement. On les représente en doublant les côtés des symboles. On appelle début du fonctionnement le moment où le système n'a pas besoin de se souvenir de ce qui c'est passé auparavant (allumage du système, bouton "reset",...). Les étapes initiales sont souvent des étapes d'attente pour ne pas effectuer une action dangereuse par exemple à la fin d'une panne de secteur. R2 : Une TRANSITION est soit validée, soit non validée (et pas à moitié validée). Elle est validée lorsque toutes les étapes immédiatement précédentes sont actives (toutes celles reliées directement à la double barre supérieure de la transition). Elle ne peut être FRANCHIE que lorsqu'elle est validée et que sa réceptivité est vraie. Elle est alors obligatoirement franchie. R3 : Plusieurs transitions SIMULTANEMENT franchissables sont simultanément franchies R4: Si une étape doit être à la fois activée et désactivée, elle RESTE active. IV- ACTIONS, SORTIES ET RÉCEPTIVITÉS a) Le temps : On note t/i/D ou D/Xi la variable booléenne qui vaut 1 si et seulement s’il s’est écoulé un temps égal à D depuis la dernière fois que l’étape i est passée de l’état inactif à l’état actif. Exemple : pour maintenir une action pendant 15 secondes :
b) Les actions : Les actions associées à une étape sont inscrites dans un rectangle d’action de façon à mettre en évidence ce qui s’exécute lorsque cette étape est active. Souvent, il s’agira de commande d’actionneurs (vérins, moteurs, …). Ce peut être aussi des commandes de fonctions auxiliaires d’automates (compteur, tempos, …). Elles peuvent aussi décrire des liens avec d’autres systèmes logiques ou analogiques. Représentation normalisée
31
Au cas où l’on veut associer plusieurs actions à une étape, les représentations possibles sont décrites ci-dessous :
Action continue : c’est la plus classique. L’action n’est effectuée que pendant l’activation de l’étape
Action conditionnelle:
Actions temporisée ou retardée :L’action A est retardée de 3s, l’action B dure 1s au plus (si l’étape 2 est active plus d’une seconde)
Actions mémorisées On peut pour cela utiliser des affectations (A:=1) (correspond à la nouvelle norme). On rencontre fréquemment l’’utilisation de Set/Reset. Les affectations peuvent aussi s’appliquer à des variables (booléennes ou numériques) et à des compteurs (initialisation, incrémentation,…).
32
Actions impulsionnelles à l’activation ou à la désactivation : Les affectations sont considérées impulsionnelles et ont une durée théorique nulle. Ces actions peuvent être effectuées à l’activation, à la désactivation d’une étape.
c) Réceptivités Une réceptivité est une condition logique et/ou un événement. Une condition logique est une fonction booléenne de variables externes et de variables internes. Une variable interne est un Xi ou un bit contenant le résultat de la comparaison d’un compteur et d’une valeur. Une variable externe est l’information venant d’un capteur, d’un bouton ou d’un système extérieur. Exemples de conditions logiques : a + b.X4 ; (t/4/10s) + b.m ,où a et b sont des capteurs et m un bouton. V- Quelques astuces • Réduction d'un GRAFCET
•
STRUCTURATION PAR MACRO-ÉTAPES
Elles ont pour but de simplifier et de faciliter la description de systèmes complexes en allégeant le graphisme d’un grafcet et en détaillant séparément certaines parties
Norme :
33 1. Une expansion de macro-étape n’a qu’une étape d’entrée (notée E) et qu’une étape de sortie (notée S) 2. Tout franchissement d’une transition en amont de la macro-étape active l’étape d’entrée de son expansion. 3. L’étape de sortie de l’expansion participe à la validation des transitions en aval. • SRUCTURATION DES GRAFCETS PARTIELS L’ensemble des étapes et transition d’une commande peut être divisée en plusieurs grafcets connexes. Ces grafcets peuvent être regroupés en sous ensembles que l’on appelle grafcet partiel. La réunion de ces grafcets partiel décrit la commande du système considéré. Exemple : Un système automatisé fonctionne selon un cycle ‘autonome’ : Il s’agit d’un chariot qui fait des navettes entre un point A et un point B. On veut tout de même le commander grâce à deux boutons : Marche et Arrêt. C’est à dire que le chariot commence à effectuer ses cycles qu’une fois que le bouton Marche aura été appuyé et il arrêtera une fois son cycle terminé si l’on a appuyé sur le bouton Arrêt
Cette solution a un inconvénient : pour arrêter le chariot il faut appuyer sur Arrêt au moment ou le chariot arrive en A. Ce n’est pas satisfaisant L’idée est d’avoir un grafcet qui ‘écoute’ les boutons. Ce sera un grafcet superviseur
•
Forçage d’un GRAFCET partiel
34
•
Concevoir un Grafcet : approche fonctionnelle
Pour concevoir un grafcet, il est courant d’utiliser une méthode intuitive consistant à : - tracer l’étape initiale, - tracer la première action - prévoir les évolutions possibles - compléter en détaillant tous les cas. - vérifier que l’on a rien oublié, corriger, simplifier. Si cette méthode peut fonctionner pour des systèmes simples ou très séquentiels (peu de choix OU), elle trouve assez vite ses limites pour des systèmes complexes.
35
Chapitre 5 : Les automates programmables industriels 1) Introduction Les automates programmables industriels sont apparus à la fin des années soixante, à la demande de l'industrie automobile américaine (GM), qui réclamait plus d'adaptabilité de leurs systèmes de commande. Les coûts de l'électronique permettant alors de remplacer avantageusement les technologies actuelles. Avant : utilisation de relais électromagnétiques et de systèmes pneumatiques pour la réalisation des parties commandes ⇒ logique câblée Inconvénients : cher, pas de flexibilité, pas de communication possible Solution : utilisation de systèmes à base de microprocesseurs permettant une modification aisée des Systèmes automatisés ⇒ logique programmée 1.1) Contraintes du monde industriel : influences externes : - poussières, - température, - humidité, - vibrations, - parasites électromagnétiques, … Personnel : - mise en oeuvre du matériel aisée (pas de langage de programmation complexe) - dépannage possible par des techniciens de formation électromécanique - possibilité de modifier le système en cours de fonctionnement Matériel : - évolutif - modulaire - implantation aisée 1.2) Définition: L'Automate Programmable Industriel (API) est un appareil électronique programmable, adapté à l'environnement industriel, qui réalise des fonctions d'automatisme pour assurer la commande de préactionneurs et d'actionneurs à partir d'informations logique, analogique ou numérique. 2) Structure d'un système automatisé :
36
2.1) Partie opérative : Elle agit sur la matière d’oeuvre afin de lui donner sa valeur ajoutée. Les actionneurs (moteurs, vérins) agissent sur la partie mécanique du système qui agit à son tour sur la matière d’oeuvre. Les capteurs / détecteurs permettent d’acquérir les divers états du système. 2.2) Partie commande : Elle donne les ordres de fonctionnement à la partie opérative. Les préactionneurs permettent de commander les actionneurs ; ils assurent le transfert d’énergie entre la source de puissance (réseau électrique, pneumatique …) et les actionneurs. (Ex: contacteur)Ces préactionneurs sont commandés à leur tour par le bloc traitement des informations. Celui-ci reçoit les consignes du pupitre de commande (opérateur) et les informations de la partie opérative transmises par les capteurs / détecteurs. En fonction de ces consignes et de son programme de gestion des tâches elle va commander les préactionneurs et renvoyer des informations au pupitre de signalisation ou à d'autres systèmes de commande et/ou de supervision en utilisant un réseau et un protocole de communication. 2.3) Poste de contrôle : Composé des pupitres de commande et de signalisation, il permet à l’opérateur de commander le système (marche, arrêt, départ cycle …).Il permet également de visualiser les différents états du système à l’aide de voyants, de terminal de dialogue ou d’interface homme-machine (IHM). 3) Nature des informations traitées par l'automate Les informations peuvent être de type : *Tout ou rien (T.O.R.) : l'information ne peut prendre que deux états (vrai/faux, 0 ou 1 ).C'est le type d'information délivrée par un détecteur, un bouton poussoir … *Analogique : l'information est continue et peut prendre une valeur comprise dans une plage bien déterminée. C'est le type d'information délivrée par un capteur (pression, température …) *Numérique : l'information est contenue dans des mots codés sous forme binaire ou bien hexadécimale. C'est le type d'information délivrée par un ordinateur ou un module intelligent. 4) Architecture des automates : a. Aspect extérieur : Les automates peuvent être de type compact ou modulaire.
37 De type compact, (LOGO de Siemens, ZELIO de Schneider, MILLENIUM de Crouzet ...) il intègre le processeur, l'alimentation, les entrées et les sorties. Selon les modèles et les fabricants, il pourra réaliser certaines fonctions supplémentaires (comptage rapide, E/S analogiques ...) et recevoir des extensions en nombre limité. Ces automates, de fonctionnement simple, sont généralement destinés à la commande de petits automatismes. De type modulaire, le processeur, l'alimentation et les interfaces d'entrées / sorties résident dans des unités séparées (modules) et sont fixées sur un ou plusieurs racks contenant le "fond de panier" (bus plus connecteurs). Ces automates sont intégrés dans les automatismes complexes où puissance, capacité de traitement et flexibilité sont nécessaires. b. structure interne : • Module d'alimentation : il assure la distribution d'énergie aux différents modules. • Unité centrale : à base de microprocesseur, elle réalise toutes les fonctions logiques, arithmétiques et de traitement numérique (transfert, comptage, temporisation ...). • Le bus interne : il permet la communication de l'ensemble des blocs de l'automate et des éventuelles extensions. • Mémoires : Elles permettent de stocker le système d'exploitation (ROM ou PROM), le programme (EEPROM) et les données système lors du fonctionnement (RAM). Cette dernière est généralement secourue par pile ou batterie. On peut, en règle générale, augmenter la capacité mémoire par adjonction de barrettes mémoires type PCMCIA. • Interfaces d'entrées / sorties : *Interface d'entrée : elle permet de recevoir les informations du S.A.P (système automatisé de production). ou du pupitre et de mettre en forme (filtrage, ...) ce signal tout en l'isolant électriquement (optocouplage). *Interface de sortie : elle permet de commander les divers préactionneurs et éléments de signalisation du S.A.P. tout en assurant l'isolement électrique.
5) Fonctions réalisées : Les automates compacts permettent de commander des sorties en T.O.R et gèrent parfois des fonctions de comptage et de traitement analogique. Les automates modulaires permettent de réaliser de nombreuses autres fonctions grâce à des modules intelligents que l'on dispose sur un ou plusieurs racks. Ces modules ont l'avantage de ne pas surcharger le travail de la CPU car ils disposent bien souvent de leur propre processeur.
38 *Cartes d'entrées / sorties : Au nombre de 4, 8, 16 ou 32, elles peuvent aussi bien réaliser des fonctions d'entrées, de sorties ou les deux. Ce sont les plus utilisées et les tensions disponibles sont normalisées (24, 48, 110 ou 220V continu ou alternatif) Les cartes d'entrées permettent de recueillir l'information des capteurs, boutons ... qui lui sont raccordés et de la matérialiser par un bit image de l'état du capteur. Les cartes de sorties offrent deux types de technologies : les sorties à relais électromagnétiques (bobine plus contact ) et les sorties statiques (à base de transistors ou de triacs). * Cartes de comptage rapide : elles permettent d'acquérir des informations de fréquences élevées incompatibles avec le temps de traitement de l'automate. Exemple : signal issu d'un codeur de position. Cartes de commande d'axe : Elles permettent d'assurer le positionnement avec précision d'élément mécanique selon un ou plusieurs axes. La carte permet par exemple de piloter un servomoteur et de recevoir les informations de positionnement par un codeur. L'asservissement de position pouvant être réalisé en boucle fermée. * Cartes d'entrées / sorties analogiques : Elles permettent de réaliser l'acquisition d'un signal analogique et sa conversion numérique (CAN) indispensable pour assurer un traitement par le microprocesseur. La fonction inverse (sortie analogique) est également réalisée. Les grandeurs analogique sont normalisées : 0-10V ou 4-20mA. Autres cartes : - Cartes de régulation PID - Cartes de pesage - Cartes de communication (Ethernet ...) - Cartes d'entrées / sorties déportées 6) Alimentation des entrées de l'automate : L'automate est pourvu généralement d'une alimentation pour les capteurs/détecteurs (attention au type de logique utilisée : logique positive ou négative). Les entrées sont connectées au OV (commun) de cette alimentation. Les informations des capteurs/détecteurs sont traitées par les interfaces d'entrées.
7) Alimentation des sorties de l'automate : Les interfaces de sorties permettent d'alimenter les divers actionneurs.
39
8) Traitement du programme automate : Tous les automates fonctionnent selon le même mode opératoire : * Traitement interne : L'automate effectue des opérations de contrôle et met à jour certains paramètres systèmes (détection des passages en RUN / STOP, mises à jour des valeurs de l'horodateur, ...). * Lecture des entrées : L'automate lit les entrées (de façon synchrone) et les recopie dans la mémoire image des entrées. * Exécution du programme : L'automate exécute le programme instruction par instruction et écrit les sorties dans la mémoire image des sorties. * Ecriture des sorties : L'automate bascule les différentes sorties (de façon synchrone) aux positions définies dans la mémoire image des sorties. Ces quatre opérations sont effectuées continuellement par l'automate (fonctionnement cyclique).
•
• •
•
On appelle le temps de scrutation le temps mis par l'automate pour traiter l'ensemble des quatre opérations. Ce temps est de l'ordre d'une dizaine de millisecondes pour les applications standards. Le temps de réponse total (TRT) est le temps qui s'écoule entre le changement d'état d'une entrée et le changement d'état de la sortie correspondante Le temps de scrutation est directement lié au programme implanté. Ce temps peut être fixé à une valeur précise (fonctionnement périodique), le système indiquera alors tout dépassement de période. Dans certains cas, on ne peut admettre un temps de réponse aussi long pour certaines entrées : ces entrées pourront alors être traitées par l'automate comme des événements
40 (traitement événementiel) et prises en compte en priorité (exemples : problème de sécurité, coupure d'alimentation ...).
9) Langages de programmation Il existe 4 langages de programmation des automates qui sont normalisés au plan mondial par la norme CEI 61131-3. Chaque automate se programmant via une console de programmation propriétaire ou par un ordinateur équipé du logiciel constructeur spécifique.
41
10) Sécurité : Les systèmes automatisés sont, par nature, source de nombreux dangers (tensions utilisées, déplacements mécaniques, jets de matière sous pression ...). Placé au coeur du système automatisé, l'automate se doit d'être un élément fiable car : - un dysfonctionnement de celui-ci pourrait avoir de graves répercussions sur la sécurité des personnes, - les coûts de réparation de l'outil de production sont généralement très élevé, - un arrêt de la production peut avoir de lourdes conséquences sur le plan financier. Aussi, l'automate fait l'objet de nombreuses dispositions pour assurer la sécurité : Contraintes extérieures : l'automate est conçu pour supporter les différentes contraintes du monde industriel et à fait l'objet de nombreux tests normalisés (tenue aux vibrations, CEM ...) Coupures d'alimentation : l'automate est conçu pour supporter les coupures d'alimentation et permet, par programme, d'assurer un fonctionnement correct lors de la réalimentation. Mode RUN/STOP : Seul un technicien peut mettre en marche ou arrêter un automate et la remise en marche se fait par une procédure d'initialisation (programmée) Contrôles cycliques : *Procédures d'autocontrôle des mémoires, de l'horloges, de la batterie, de la tensions d'alimentation et des entrées / sorties *Vérification du temps de scrutation à chaque cycle appelée Watchdog (chien de garde), et enclenchement d'une procédure d'alarme en cas de dépassement de celui-ci (réglé par l'utilisateur) Visualisation : Les automates offrent un écran de visualisation où l'on peut voir l'évolution des entrées / sorties La défaillance d'un automate programmable pouvant avoir de graves répercussions en matière de sécurité, les normes interdisent la gestion des arrêts d'urgence par l'automate celle-ci doit être réalisée en technologie câblée. Il existe enfin des automates dits de sécurité (APIdS) qui intègrent des fonctions de surveillance et de redondance accrues et garantissent la sécurité des matériels. 11)Les automates et la communication : Avec le développement des systèmes automatisés et de l'électronique, il est apparue la nécessité de pouvoir gérer au mieux la production et par la suite baisser les coûts c'est à dire : - de recevoir les données liées à une application le plus rapidement possible, - de consulter, contrôler ou de modifier les paramètres d'une application à distance a. Les bus de terrain :
42 Pour diminuer les coûts de câblage des entrées / sorties des automates (systèmes étendus), sont apparus les bus de terrains. L'utilisation de blocs d'entrées / sorties déportés à permis de répondre à cette exigence. Avant : Les capteurs /actionneur distants impliquaient de grandes longueurs de câbles (fig1). 1ère évolution : Les interfaces d'entrées/sorties sont déportées au plus près des capteurs (fig2). Aujourd'hui : Les capteurs et les préactionneurs "intelligents" (IHM, variateurs, distributeurs ...) permettent la connexion directe au bus (fig3)
fig1
fig2
fig3 Pour assurer le "multiplexage" de toutes les informations en provenance des capteurs / préactionneurs ont été développés plusieurs protocoles de communication et des standards sont apparus (normalisés ou standards de fait). Exemple : Le bus ASi (Actuators Sensors interface) est un bus de capteurs/actionneurs de type Maître / Esclave qui permet de raccorder 31 esclaves (capteurs ou préactionneurs) sur un câble spécifique (deux fils) transportant les données et la puissance. Ce bus est totalement standardisé et permet d'utiliser des technologies de plusieurs constructeurs (interopérabilité). L'automate est pour cela doté d'un coupleur ASi. Avantages des bus de terrain : Réduction des coûts de câblage et possibilité de réutiliser le matériel existant Réduction des coûts de maintenance Possibilités de communication Inconvénients des bus de terrain : Taille du réseau limitée Coût global b-Les réseaux de terrain : L'émergence de ces nouvelles technologies à conduit à la définition de plusieurs catégories de réseaux locaux industriels (pyramide CIM) :
43 - les réseaux de terrain, - les réseaux de cellule, - les réseaux de supervision et de commande
12) Critères de choix d'un automate : Le choix d'un automate programmable est en premier lieu le choix d'une société ou d'un groupe et les contacts commerciaux et expériences vécues sont déjà un point de départ. Les grandes sociétés privilégieront deux fabricants pour faire jouer la concurrence. Le personnel de maintenance doit toutefois être formé sur ces matériels et une trop grande diversité des matériels peut avoir de graves répercussions. La possession d'un logiciel de programmation est aussi source d'économies (achat du logiciel et formation du personnel). Des outils permettant une simulation des programmes sont également souhaitables. Il faut ensuite quantifier les besoins : Nombre d'entrées / sorties : le nombre de cartes peut avoir une incidence sur le nombre de racks dès que le nombre d'entrées / sorties nécessaires devient élevé. Type de processeur : la taille mémoire, la vitesse de traitement et les fonctions spéciales offertes par le processeur permettront le choix dans la gamme souvent très étendue. Fonctions ou modules spéciaux : certaines cartes (commande d'axe, pesage ...) permettront de "soulager" le processeur et devront offrir les caractéristiques souhaitées (résolution, ...). Fonctions de communication : l'automate doit pouvoir communiquer avec les autres systèmes de commande (API, supervision ...) et offrir des possibilités de communication avec des standards normalisés (Profibus ...).
44
Chapitre 6 : Les automates programmables S7200 de Siemens Constitution d’un S7- 200
La led RUN quand elle est verte indique l’état de marche La led STOP quand elle est rouge indique l’état d’arrêt Sur la position Term ou Run, l'état de fonctionnement (RUN ou STOP) peut alors être télécommandé depuis la console PG ou le PC.
Modules d’extension S7-200 Pour mieux répondre aux exigences de vos applications, la gamme S7-200 inclut une large variété de modules d’extension dont vous pouvez vous servir pour ajouter des fonctions à la CPU S7-200.
Câble de communication PC-PPI
45
Principes de conception d’un système d’automatisation Il existe de nombreuses méthodes pour concevoir un système de micro-automate. Les principes généraux suivants sont valables pour de nombreux projets de conception : Subdivision du processus ou de l’installation en unités :
Segmentez votre processus ou votre installation en parties indépendantes les unes des autres. Ces subdivisions déterminent les limites entre les automates et ont une influence sur les descriptions fonctionnelles et l’affectation des ressources. Création des descriptions fonctionnelles :
Décrivez le fonctionnement de chaque partie du processus ou de l’installation, sans oublier les points suivants : entrées/sorties, description fonctionnelle de l’exploitation, états devant être atteints avant de permettre l’actionnement des actionneurs (tels que vannes, moteurs et entraînements), description de l’interface opérateur et toute interface avec d’autres sections du processus ou de l’installation. Conception des circuits de sécurité :
Déterminez les équipements nécessitant de la logique câblée pour la sécurité. Des défaillances dangereuses peuvent se produire dans les appareils de commande, entraînant par exemple un démarrage ou un changement inattendu dans le fonctionnement d’une machine. Lorsqu’il existe alors des risques de blessures sur les personnes ou de dommages matériels importants, il faut songer à utiliser des dispositifs de sécurité électromécaniques prioritaires opérant indépendamment des automates Création des schémas de configuration :
Créez des schémas de configuration de l’équipement de commande basés sur les exigences des descriptions fonctionnelles. Ils doivent inclure : - une vue d’ensemble indiquant l’emplacement de chaque automate par rapport au processus ou à l’installation, - les schémas électriques pour chaque automate et module d’extension (incluant les numéros de référence des appareils, les adresses de communication et les adresses d’E/S).
La relation entre le programme et les entrées et sorties physiques Le fonctionnement de base du S7-200 est très simple : - Le S7-200 lit l’état des entrées. - Le programme contenu dans le S7-200 utilise ces entrées pour évaluer la logique de commande. Le S7-200 actualise les données pendant l’exécution du programme. - Le S7-200 écrit les données dans les sorties. Le schéma ci-dessous illustre comment un diagramme de relais électrique est en relation avec le S7200.Dans cet exemple, l’état du commutateur pour le démarrage du moteur est combiné à l’état d’autres entrées. Le calcul de ces états détermine alors l’état de la sortie allant à l’actionneur qui démarre le moteur.
46
Exécution cyclique du programme dans le S7-200 Tous les automates SIMATIC fonctionnent de façon cyclique. Le cycle commence par la lecture des états des entrées et leur transfert dans la mémoire image des entrées MIE (phase d’acquisition des entrées). Cette mémoire image est la source d’approvisionnement du programme pour son exécution. En cours de traitement, le programme range les résultats des opérations dans la mémoire image des sorties MIS. A la fin du programme, les états contenus dans la MIS sont transférés aux sorties physiques (phase d’émission des sorties), et le cycle reprend au début.
En règle générale, un cycle dure entre 3 et 10 ms. Cette durée est fonction du nombre et de la nature des instructions programmées. Le cycle comprend deux éléments principaux : 1) Le temps système ( 1 ms), correspondant aux phases 1 et 3 . 2) Le temps d'exécution des instructions correspondant à la phase 2 . Les cycles ne sont traités que lorsque l'automate "travaille", c'est-à-dire lorsqu'il se trouve à l'état "RUN".
A propos de bits, octets, mots, ... En technique numérique, la plus petite unité d’information est le “bit”. Un bit ne peut prendre que les états “0” (ce qui équivaut à “faux” ou “non vrai”) et “1” (c’est-à-dire “vrai”). Dans un automate, les bits sont assemblés par groupes. Un groupe de 8 bits est appelé octet. Chaque bit de ce groupe est exactement défini par l’adresse de sa position dans le groupe.
Un octet a une adresse d’octet et les adresses de bits 0 à 7.
47 Un groupe de 2 octets forme un mot. La base de numération dans ce système est le système binaire à base 2.
Dans un API, un mot permet de représenter les valeurs numériques de -32768 à +32767 qui correspondent aux mesures données par les modules analogiques.
Combinaisons logiques La logique programmée connaît deux états : “0” et “1”. L’état “0” correspond à “faux” et l’état “1” à “vrai”. On parle par conséquent d’une interrogation ou d’un test à “0” (faux) ou à “1” (vrai).
Instructions
48
Accès aux données dans les zones de mémoire Mémoire image des entrées : I ou E
Le S7-200 lit les entrées physiques au début de chaque cycle et écrit ces valeurs dans la mémoire image des entrées. Vous pouvez accéder à la mémoire image des entrées par bits, octets, mots ou doubles mots. Bit : I [adresse d’octet].[adresse de bit] I0.1 Octet, mot ou double mot : I [taille] [adresse d’octet de départ] IB4 Mémoire image des sorties : Q
A la fin du cycle, le S7-200 copie dans les sorties physiques les valeurs contenues dans la mémoire image des sorties. Vous pouvez accéder à la mémoire image des sorties par bits, octets, mots ou doubles mots. Bit : Q[adresse d’octet].[adresse de bit] Q1.1 Octet, mot ou double mot : Q[taille][adresse d’octet de départ] QB5 Mémoire des variables : V
Vous pouvez vous servir de la mémoire des variables (mémoire V) pour sauvegarder des résultats intermédiaires d’opérations exécutées par la logique de commande dans votre programme. Vous pouvez également vous en servir pour la sauvegarde d’autres données en rapport avec votre processus ou votre tâche. Vous pouvez accéder à la mémoire V par bits, octets, mots ou doubles mots. Bit : V[adresse d’octet].[adresse de bit] V10.2 Octet, mot ou double mot : V[taille][adresse d’octet de départ] VW100 Mémentos : M
Les mémentos internes (mémoire M) - ou relais de commande - fournissent de l’espace mémoire pour l’état intermédiaire d’une opération ou d’autres informations de commande. Vous pouvez accéder à la zone des mémentos par bits, octets, mots ou doubles mots. Bit : M[adresse d’octet].[adresse de bit] M26.7 Octet, mot ou double mot : M[taille][adresse d’octet de départ] MD20
49 Entrées analogiques : AI
Le S7-200 convertit une valeur analogique (telle que la température ou la tension) en valeur numérique de 16 bits (un mot). Vous accédez à ces valeurs par l’identificateur de zone (AI), la taille des données (W) et l’adresse d’octet de départ. Comme les entrées analogiques sont des mots et commencent toujours sur des octets pairs (tels que 0, 2 ou 4), vous y accédez par des adresses d’octet paires (AIW0, AIW2, AIW4, par exemple). Seule la lecture des entrées analogiques est possible. Format : AIW [adresse d’octet de départ] AIW4 Sorties analogiques : AQ
Le S7-200 convertit une valeur numérique de 16 bits (mot) en un courant ou une tension proportionnelle à la valeur numérique. Vous écrivez ces valeurs via l’identificateur de zone (AQ), la taille des données (W) et l’adresse d’octet de départ. Comme les sorties analogiques sont des mots et commencent toujours sur des octets pairs (tels que 0, 2 ou 4), vous y accédez par des adresses d’octet paires (AQW0, AQW2 ou AQW4, par exemple). Seule l’écriture des sorties analogiques est possible. Format : AQW [adresse d’octet de départ] AQW4 Temporisations : T
Le S7-200 fournit des temporisations qui comptent des incréments de temps selon des résolutions (incréments de base de temps) égales à 1 ms, 10 ms ou 100 ms. Deux variables sont associées à chaque temporisation : - la valeur en cours : ce nombre entier signé de 16 bits contient la durée comptabilisée par la temporisation ; - le bit de temporisation : ce bit est mis à 1 ou à 0 selon le résultat de la comparaison entre valeur encours et valeur prédéfinie, cette dernière étant indiquée dans l’opération de temporisation.
Compteurs : C
Le S7-200 fournit trois types de compteurs qui comptent chaque transition du niveau bas au niveau haut aux entrées de comptage : les compteurs qui incrémentent, ceux qui décrémentent et ceux pouvant à la fois incrémenter et décrémenter. Deux variables sont associées à chaque compteur : - la valeur en cours : ce nombre entier signé de 16 bits contient le total cumulé ; - le bit de compteur : ce bit est mis à 1 ou à 0 selon le résultat de la comparaison entre valeur en cours et valeur prédéfinie, cette dernière étant indiquée dans l’opération de comptage.
Eléments fondamentaux d’un programme Un bloc de code est composé de code exécutable et de commentaires. Le code exécutable comprend un programme principal et des sous-programmes et programmes d’interruption facultatifs. Le code est compilé et chargé dans le S7-200 ; ce n’est pas le cas des commentaires de programme. Vous pouvez utiliser les éléments d’organisation (programme principal, sous-programmes et programmes d’interruption) pour structurer votre programme de commande.
50 Programme principal
Le programme principal contient les opérations qui commanderont votre application. Le S7200 exécute ces opérations séquentiellement, une fois par cycle. Le programme principal est également appelé OB1. Sous-programmes
Ces éléments facultatifs du programme ne sont exécutés que lorsqu’ils sont appelés : par le programme principal, par un programme d’interruption ou par un autre sous-programme. Les sous-programmes sont utiles pour exécuter une fonction de manière répétée. Plutôt que de récrire le code pour chaque endroit du programme principal où la fonction doit être exécutée, vous écrivez le code une fois dans un sous-programme et appelez ce sous-programme autant de fois que nécessaire dans le programme principal. Les sous-programmes présentent plusieurs avantages : - Leur utilisation permet de réduire la taille globale de votre programme. - Leur utilisation diminue le temps de cycle, car vous avez extrait du code du programme principal. Le S7-200 évalue le code dans le programme principal à chaque cycle, que ce code soit exécuté ou non, mais il n’évalue le code dans un sous-programme qu’en cas d’appel de ce dernier ; il ne l’évalue donc pas lorsque le sous-programme n’est pas appelé. - Leur utilisation permet de créer du code qui est portable. Vous pouvez isoler le code pour une fonction dans un sous-programme, puis copier ce sous-programme dans d’autres programmes avec peu ou pas de modifications. Programmes d’interruption
Ces éléments facultatifs du programme réagissent à des événements d’interruption spécifiques. Vous concevez un programme d’interruption pour traiter un événement d’interruption prédéfini. Le S7-200 exécute le programme d’interruption lorsque cet événement précis se produit. Les programmes d’interruption ne sont pas appelés par le programme principal. En effet, vous associez un programme d’interruption à un événement d’interruption et le S7-200 exécute les opérations figurant dans le programme d’interruption uniquement lorsque cet événement se produit.
Création de programmes à l’aide de STEP 7-Micro/WIN Pour ouvrir STEP 7-Micro/WIN, double-cliquez sur l’icône STEP 7-Micro/WIN ou sélectionnez la commande Démarrer > SIMATIC > STEP 7-Micro/WIN . la fenêtre de projet STEP 7-Micro/WIN vous fournit un espace de travail pratique pour créer votre programme de commande.
Les barres d’outils contiennent des boutons constituant des raccourcis pour les commandes de menu fréquemment utilisées. Vous pouvez afficher ou masquer n’importe quelle barre d’outils. La barre d’exploration présente des groupes d’icônes permettant d’accéder à différentes fonctions de programmation de STEP 7-Micro/WIN. L’arborescence d’opérations affiche tous les objets du projet et les opérations pour la création du programme de commande. Vous pouvez ”glisser et déplacer” des opérations individuelles de l’arborescence d’opérations dans votre programme ou bien double-cliquer sur une opération afin de l’insérer à la position en cours du curseur dans l’éditeur de programme. L’éditeur de programme contient la logique du programme et une table de variables locales dans laquelle vous affectez
51 des mnémoniques aux variables locales temporaires. Les sous-programmes et les programmes d’interruption apparaissent sous forme d’onglets au bas de la fenêtre de l’éditeur de programme. Cliquez sur ces Arborescence des opérations Editeur de programme Barre d’exploration l éditeur onglets pour aller et venir entre sous-programmes, programmes d’interruption et programme principal. Examinez la barre d’exploration : vous pouvez vous servir de ses icônes pour ouvrir des éléments du projet STEP 7-Micro/WIN.
Cliquez sur l’icône Bloc de code pour ouvrir l’éditeur de programme. Examinez l’arborescence des opérations et l’éditeur de programme. L’arborescence des opérations sert à insérer des opérations CONT dans les réseaux de l’éditeur de programme par glisser-déplacer des opérations de l’arborescence aux réseaux.
Editeurs de programmes STEP 7-Micro/WIN vous propose trois éditeurs pour la création de votre programme : schéma à contacts (CONT - SIMATIC - ou LD - CEI -), liste d’instructions (LIST) et logigramme (LOG - SIMATIC - ou FBD – CEI -). Avec quelques restrictions, les programmes écrits dans l’un quelconque de ces éditeurs de programme peuvent être affichés et édités dans les autres éditeurs. Fonctions de l’éditeur LIST
L’éditeur LIST affiche le programme sous forme textuelle. Avec l’éditeur LIST, vous entrez des abréviations d’opérations quand vous créez des programmes de commande. L’éditeur LIST permet également de créer des programmes qu’il n’est pas possible de représenter avec les éditeurs CONT/LD ou LOG/FBD. En effet, avec cet éditeur, vous programmez dans un langage natif du S7-200 et non dans un éditeur graphique où des restrictions sont nécessaires pour que les schémas soient tracés correctement. la programmation avec ce langage littéral est très similaire à la programmation en langage assembleur. Le S7-200 exécute chaque opération dans l’ordre spécifié par le programme, de haut en bas, puis recommence en haut. LIST utilise une pile logique pour résoudre la logique de commande. Exemple LD I0.0 //Lire une entrée
A I0.1 //La combiner selon ET avec autre entrée = Q1.0 //Ecrire valeur dans sortie 1
52 Fonctions de l’éditeur CONT
L’éditeur CONT (ou LD) affiche le programme sous forme de représentation graphique similaire aux schémas de câblage électriques. Les programmes CONT permettent au programme d’émuler le flux de courant électrique partant d’une source de tension, à travers une série de conditions d’entrée logiques validant, à leur tour, des conditions de sortie logiques. Un programme CONT comprend une barre d’alimentation à gauche qui est alimentée en courant. Les contacts fermés permettent au courant de circuler à travers eux vers l’élément suivant alors que les contacts ouverts bloquent le trajet du courant. La logique est subdivisée en réseaux. Le programme est exécuté réseau par réseau, de la gauche vers la droite et de haut en bas comme indiqué par le programme. Les différentes opérations sont représentées par des symboles graphiques de trois types fondamentaux. Les contacts représentent des conditions d’entrée logiques, telles que commutateurs, boutonspoussoirs ou conditions internes. Les bobines représentent généralement des résultats de sortie logiques, tels que lampes, démarreurs de moteur, relais intermédiaires ou conditions de sortie internes. Les boîtes représentent des opérations supplémentaires, telles que temporisations, compteurs ou opérations arithmétiques. Exemple
Fonctions de l’éditeur LOG
L’éditeur LOG (ou FBD) affiche le programme sous forme de représentation graphique similaire aux schémas de portes logiques courants. Il n’y a pas de contacts ni de bobines comme dans l’éditeur CONT/LD, mais des opérations équivalentes existent sous forme de boîtes d’opérations. LOG ne fait pas appel au concept de barres d’alimentation gauche et droite, On peut affecter directement à un opérande l’origine d’une entrée de flux de signal et la destination d’une sortie de flux de signal. Exemple
Configuration de l’interface pour liaison PC/PG-API • • •
Cliquez sur l'icône de communication dans la barre de navigation. Vérifier les paramètres de la communication. Double-cliquez sur le champ de mise à jour de la communication. Le logiciel devrait alors identifier et inscrire de lui-même la CPU connectée. • Si la CPU n'est pas identifiée ou s'il apparaît un message signalant que la communication n'est pas possible, double-cliquez sur le champ Câble PPI. • Dans l'interface PG/PC, sélectionnez le câble PC/PPI puis cliquez sur Propriétés. • Dans la fenêtre PPI, réglez l'adresse CPU sur 2 et la vitesse de transmission sur 9,6 kbits/s. Dans la fenêtre Connexion locale, sélectionnez l'interface à laquelle est connecté le câble PC/PPI. Dans chaque fenêtre, confirmez votre choix par OK.
53 •
Dans la fenêtre Liaisons de communication, double cliquez à nouveau sur le champ de mise à jour de la communication. La CPU est alors identifiée et inscrite automatiquement. Cette opération peut durer quelques secondes. Fermez alors la fenêtre Liaisons de communication.
54
Travaux Dirigés Automatisme et systèmes logiques
55 TD : Logique Combinatoire Exercice 1 D’après les équations logiques ci-dessous représenter les logigrammes correspondant en utilisant uniquement des fonctions OUI, NON , ET , OU :
Exercice 2 On donne le schéma à réseau de contact suivant:
a) Déterminer la fonction R=f(a,bx,y) b) Ce Schéma est un sous-ensemble de l'automatisme d'une machine conçue il y'a plusieurs années. On désire en construire un exemplaire utilisant une technologique faisant appel exclusivement à des opérateurs NAND, donner le logigramme correspondant Exercice 3 *D’après l' équations logique ci-dessous représenter le logigramme correspondant en utilisant uniquement des fonctions NAND : * D’après l' équations logique ci-dessous représenter le logigramme correspondant en utilisant uniquement des fonctions NOR :
Exercice 4 Simplifier les expressions suivantes :
Exercice 5 Vous devez concevoir un système avertisseur pour une automobile. L’avertisseur doit se déclencher si les ceintures de sécurité ne sont pas attachées et que le moteur tourne ou si les phares sont restés allumés et que le moteur ne tourne pas ou si la clé est dans le contact et que le moteur tourne et que la porte du conducteur est ouverte. 1. Déterminer le nombre des entrées et des sorties du système et établir la table de vérité. 2. Donner la première et la deuxième forme canonique de cette fonction
56 TD Logique séquentielle Exercice 1 Compléter les chronogrammes suivants (appliqués à une bascule RS et SR) :
Exercice 2 Compléter les chronogrammes suivants (appliqués à une bascule D active sur front montant) :
Exercice 3 1) Identifier les différents entrées J,K,H,Sd,Rd
2) compléter le chronogramme suivant:
57
3) soit il?
, simulez le fonctionnement (par chronogramme), de quel type de bascule s'agit-
4) soit J=K=1, simulez le fonctionnement (par chronogramme), de quel type de bascule s'agitil? Exercice4: Donner la forme d'onde S du système suivant:
58
TD GRAFCET Exercice1 L’appui sur m provoque les déplacements simultanés des chariots 1 et 2 vers b1 et b2.Lorsque les 2 chariots sont arrivés, le chariot 1 revient, puis on a le retour du chariot 2. Proposer un grafcet de fonctionnement et Proposer des réductions pour ce grafcet
Exercice2 Un chariot C peut se déplacer vers A ou vers B. Un bouton poussoir permet le démarrage du cycle. a et b sont des contacts de fin de course (NO) . D : déplacement du moteur vers la droite G : déplacement du moteur vers la gauche m : bouton poussoir Dans tous les cas, on demande de réaliser le grafcet de point de vue commande.
1) Hypothèse 1 : Au départ, le chariot est arrêté en A, quand on déclenche le cycle, le chariot part à droite, puis, arrivé en B, repart vers la gauche et stoppe en A. 2) Hypothèse 2 : Hypothèse 1 + le chariot doit s’arrêter 10s en B avant son retour vers A. 3) Hypothèse 3 : Hypothèse 1 + le chariot doit s’arrêter 10s en B seulement si un autre contact m1 est fermé. 4) Hypothèse 4 : Hypothèse 1 + si au bout de 10s le chariot n’a pas atteint B, une alarme AL se déclenche, suivie d’une intervention manuelle. Après acquittement de l’alarme (acq : bouton poussoir signifie que la panne est réparée), le chariot repart vers B avec la même condition que précédemment (c.à.d. si il n’atteint pas B au bout de 10s il y’a alarme)
59 Exercice 3 Atelier de bouchage de bouteilles : il se compose d’un tapis roulant qui transporte les bouteilles jusqu'à la boucheuse, puis les évacue vers l’atelier d’étiquetage. On suppose que toutes les alvéoles du tapis sont occupées par une bouteille, le déplacement du tapis est commandé par un moteur pas à pas. La rotation d’un pas du moteur permet de déplacer devant la boucheuse la bouteille suivante. Un index placé sur le tapis indique que l’avance d’un pas est terminée. La boucheuse est équipée d’un moteur à deux sens de rotation pour descendre, puis boucher la bouteille et remonter pour permettre à la bouteille suivante de se mettre en place. L’axe de la boucheuse est équipé de contacts de fin de course en haut et en bas, les bouchons sont placés à l’intérieur de cet axe, la pesanteur permet de placer un bouchon à l’intérieur de la pince qui équipe l’extrémité de l’axe de la boucheuse. Lorsque l’axe descend dans une bouteille la pince se ferme et comprime le bouchon. Lorsque l’axe remonte pour laisser la place à la bouteille suivante, la pince s’ouvre (grâce à un ressort) et le bouchon suivant descend. Le tapis ne peut avancer que si un opérateur enclenche la mise en marche de l’installation. Chaque information délivrée et chaque commande des différents moteurs est associée à une variable binaire. 1) Dresser la liste des entrées/sorties de l’installation 2) Proposer un grafcet qui modélise ce fonctionnement 3) Supposons maintenant que deux machines sont placées consécutivement le long du tapis ; la première bouche les bouteilles et la seconde colle une étiquette. Après que le tapis ait avancé d’un pas, une bouteille se trouve sous la boucheuse, et une autre se trouve sous l’étiqueteuse. L’étiqueteuse est équipée d’un axe qui se déplace horizontalement commandé en avant par l’action A et en arrière par R . la position de fin de course avant est repéré par la variable d, et l’arrière par r. l’étiquetage s’effectue en actionnant l’axe de l’étiqueteuse en avant puis en arrière. Modifier le précédent grafcet pour répondre au nouveau besoin Exercice 4 D’après le GRAFCET ci-dessous, rechercher les équations des étapes : 102, 106 et 112. Et rechercher le combinatoire des sorties : KMP, YS et HPM.
60
61
TD Programmation des automates Exercice 1 :L’ Automaintien ère
1
façon de réaliser l’automaintien
La sortie Q0.0 doit être activée dès l'appui sur S1 à l'entrée I0.0. Par automaintien, Q0.0 doit rester actif tant que l'on n'a pas appuyé sur S2 à l'entrée I0.1 qui annule l'automaintien.
-
Ecrire le programme correspondant en langage CONT ème
2
façon de réaliser l’automaintien
On rencontre souvent en logique programmée une autre façon de réalisation de la fonction de l'automaintien : Au lieu de ramener en entrée l'état de la sortie comme présenté dans l'exemple précédent, on utilise simplement les fonctions "Mettre à 1" et "Mettre à 0". - Ecrire le programme correspondant en langage CONT
Exercice 2 :Télérupteur Une lampe raccordée à la sortie Q0.5 doit s'allumer lors de l'actionnement passager du bouton S1 raccordé à l'entrée I0.0. Une nouvelle action sur S1 (I0.0) doit provoquer la remise à "0" de Q0.5 et donc l'extinction de la lampe. A chaque actionnement du bouton S1, la sortie Q0.5 doit donc changer d'état. Il s'agit d'un montage que les électriciens connaissent sous le terme de "télérupteur". Chronogramme
A chaque fois que le contact raccordé à I0.0 passe de l'état "ouvert" à l'état "fermé", la sortie Q0.5 doit changer une fois d'état. Le maintien du contact en position de fermeture ou d'ouverture ne doit pas donner lieu à un changement d'état en sortie.
Exercice 3 :Retard à la retombée L’actionnement de S1 (I0.0) met en marche un moteur de ventilateur à la sortie Q0.0. A l'ouverture de S1 (I0.0), le ventilateur doit continuer de tourner pendant 3 secondes avant d'être mis à l'arrêt.
62 Chronogramme
ère
1
façon de programmation
Combiner l’utilisation de l’automaintien et de la temporisation retard à la montée TON 2éme façon de programmation
Utiliser la temporisation retard à la retombée TOF
Exercice 4 : cuve de mélange Une cuve de mélange utilisée pour créer différents coloris de peinture. Deux tuyaux aboutissent au sommet de la cuve, apportant deux ingrédients différents. Un tuyau au bas de la cuve transporte le mélange de peinture achevé. L’exemple de programme commande le remplissage, surveille le niveau de la cuve et commande le cycle de mélange et de chauffage, selon le principe suivant : 1) Remplir la cuve avec l’ingrédient 1 2) Remplir la cuve avec l’ingrédient 2 3) Surveiller le niveau de la cuve (fermeture du commutateur de niveau supérieur) 4) Maintenir l’état des pompes si le commutateur de démarrage s’ouvre 5) Si le niveau supérieur est activé : démarrer une temporisation de 10 secondes 6) Si le niveau supérieur est activé : Démarrer le moteur mélangeur et activer la soupape de vapeur pendant 10 secondes 7) Tant que le niveau inférieur n’est pas activé faire le vidange de la cuve en activant la soupape et la pompe de vidange 8) Si le niveau inférieur est activé on démarre le comptage de chaque cycle 9) L’entrée I0.7 permet la remise à 0 du compteur de cycle 10) si on arrive à 12 cycles consécutifs la lampe reliée à la sortie Q0.6 s’allume
63
Ecrire le programme décrivant le fonctionnement de cette installation en langage CONT
Exercice 5 : La perceuse
Le moteur d'une perceuse est démarré en marche à droite par S1. Après 3 secondes, le mouvement d'avance est enclenché. Parvenu à la butée inférieure (contact sur I0.3), le mouvement d'avance est arrêté. Un ressort ramène la broche en position de base pendant que le moteur tourne à gauche (Q0.0 et Q0.1 sont à "1"). Parvenu en position de base I0.4 = "1", le moteur continue encore de tourner pendant 1 s avant la coupure complète de la machine. Le bouton d'arrêt permet de couper la machine à tout instant (activation par I0.0 = "0"). Ecrire le programme décrivant le fonctionnement de cette installation en langage CONT