Module : Automate programmable M2_MCIL/ESE/ UNIV.
BBA CHETOUAH Farouk
LES AUTOMATES PROGRAMMABLES
INDUSTRIELS.
Objectif du thème
- Définir les caractéristiques techniques et le fonctionnement de
l'automate et les langages de programmation.
1- Introduction: Banc de contrôle industriel BCI
La technologie câblée souffre d’un certain nombre de limitation :
Leurs encombrement (poids et volume) ;
La difficulté de maitriser des problèmes complexes ;
La complexité de recherche des pannes ;
Le changement de câblage dans le cas de changement de mode
de fonctionnement du système.
a- Définition
Un système automatisé comporte de nombreux constituants:
- Actionneurs: moteurs, vérins...;
- Pré actionneurs: contacteurs, variateurs de vitesse, distributeurs...;
- Capteurs de tous types: détecteurs, interrupteurs de position, capteurs
numériques...;
- Pupitre de commande;
- Terminaux d’intervention..,
L’automate programmable est au cœur de ce système, en liaison avec ces
nombreux constituants.
D'après la définition de la norme française EN 61131-1 :
« Système électronique fonctionnant de manière numérique, destiné à être
utilisé dans un environnement industriel, qui utilise une mémoire
~1~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
programmable pour le stockage interne des instructions orientées utilisateur
aux fins de mise en œuvre de fonctions spécifiques, telles que des fonctions
de logique, de mise en séquence, de temporisation, de comptage et de calcul
arithmétique, pour commander au moyen d’entrées et de sorties Tout-ou-
Rien ou analogiques divers types de machines ou de processus.
L’automate programmable et ses périphériques associés sont conçus pour
pouvoir facilement s’intégrer à un système d’automatisme industriel et être
facilement utilisés dans toutes leurs fonctions prévues ».
b- Son rôle
— un rôle de commande, élaborant des actions, suivant une algorithmique
appropriée, à partir des informations que lui fournissent des capteurs
(analogiques ou numériques) ;
— un rôle de communication dans le cadre de la production :
• avec des opérateurs humains : c’est le dialogue d’exploitation,
• avec d’autres processeurs, hiérarchiquement :
Supérieurs (calculateur de gestion de production) ou
Égaux (autres automates intervenant dans la même chaîne) ou
Inférieurs (instrumentation intelligente).
2- Critères de choix d’un A.P.I
Le choix d’un A.P.I est fonction de la partie commande à programmer.
On doit tenir compte de plusieurs critères :
- Nombres d’entrées/sorties
- Le temps de traitement.
- La capacité de la mémoire.
- Le nombre d’étapes ou d’instructions.
- Le nombre de compteurs.
- Le nombre de temporisateurs.
3- Constitution et architecture générale d'un A.P.I
Un A.P.I se compose essentiellement de trois grandes parties :
- Le processeur
- La zone mémoire
- Les interfaces entrées/sorties
Ces trois parties sont reliées entre elles par des BUS.
Lorsqu'on fait un programme, on peut choisir un langage évolué (Ladder,
Grafcet, Logigramme).
Les AP ne comprenant que les langages en liste d'instructions, il faut
compiler votre programme avant de la transférer dans l'AP.
~2~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Pour étudier cet équipement connecté à des systèmes réels en milieu
industriel, il nous faut passer en revue l’aspect matériel, l’aspect logiciel:
3.1- Matériel
La structure matérielle interne d’un API est donnée au schéma de la figure 1.
Figure 1 : Architecture d’un API
Nous analyserons chacun des composants qui apparaissent sur ce schéma.
3.1.1- Le processeur
Cœur de l’appareil (cerveau de l’automate); il gère l’ensemble des relations
entre la zone mémoire et les interfaces.
Lecture des informations d’entrée.
Exécution des instructions du programme contenue en mémoire.
Commandes des sorties
L’UC assure au moins les fonctions suivantes:
— opérations logiques sur bits (binary digit) ou sur mots (16 bits).
— temporisation et comptage.
Pour assurer la liaison entre l’UC et les cartes d’entrées/sorties, un réseau,
ou certaines consoles, il faut une carte d’interfaçage: le coupleur.
~3~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
3.1.2- Le module d’entrées/sorties (interface E/S)
Ils assurent le rôle d’interface de la partie commande et de la partie
opérative, où les actionneurs agissent physiquement sur le processus.
Elles sont destinées à :
- Recevoir l’information en provenance du capteur.
- Le signal électrique reçu doit être analysé par l’interface avant d’être
transmis à U.C par le bus.
- Traiter le signal en le mettant en forme, en éliminant les parasites et en
isolant électriquement les signaux logiques des signaux de la P.O par un
coupleur opto-électronique.
Pour ce faire, ils doivent :
- Regrouper des variables de même nature (diminuer complexité et coût ).
- Assurer le dialogue avec l’UC ;
- Traduire les signaux industriels en informations API et avec une
protection de l’UC et un traitement adéquats.
Beaucoup d’automates assurent cet interfaçage par des modules amovibles
comportant un nombre fixé et limité de voies d’un certain type.
Figure 2 : Partie opérative et partie commande
3.1.3- La mémoire (éléments de stockage)
La mémoire est organisée pour :
- Recevoir des informations issues des capteurs d’entrée
- Recevoir des informations générées par le processeur et destinées à la
commande des sorties ( valeur des compteurs, des temporisateurs…)
(mémoires de données).
- Recevoir et conserver les informations établies sous la forme d’un
programme (mémoire programme).
La mémoire vive (RAM) est volatile mais secourue par batterie.
La mémoire morte (ROM) dont l’utilisateur ne peut que lire le contenu:
~4~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
- Programmable une fois (PROM) qui contient le système d’exploitation.
- Reprogrammables plusieurs fois (EPROM).
La capacité de stockage d’une mémoire s’exprime en kilooctets (Ko):
1 Ko = 1024 ´ 8 bits.
La mémoire d'automate est très inférieure à celle de microordinateur.
3.1.4- La liaison (BUS)
Les liaisons s’effectuent :
— avec l’extérieur par des borniers (à visser, à clipser, etc.) sur lesquels
arrivent des câbles transportant le signal électrique ;
— avec l’intérieur par des bus, liaisons parallèles entre les divers éléments,
il peut y avoir plusieurs bus, car on doit transmettre des données, des états,
des adresses.
Les informations présentes sur les bus sont codées, d’où des systèmes
d’encodage et de décodage.
— les liaisons avec d’autres processeurs.
3.1.5- Auxiliaires
Il s’agit principalement :
— de l’alimentation électrique qui a pour rôle de fournir les tensions
continues que nécessitent les composants (5 V, 12 V…) avec de bonnes
performances, notamment face aux microcoupures du réseau.
Sa source d’énergie est parfois du 24 V continu.
Il ne faut pas oublier que les châssis d’extension et les entrées/sorties
déportées doivent aussi disposer d’une alimentation.
Il est parfois nécessaire, pour lutter contre les perturbations électriques,
d’introduire un transformateur d’isolement.
Un onduleur évite les risques de coupure si celles-ci risquent de dépasser
les tolérances admises.
— d’un ventilateur indispensable dans les châssis pour assurer une
température ambiante ( moins de 40 °C).
— du support mécanique. Il peut s’agir d’un rack (structure métallique
accueillant des cartes avec généralement un raccordement arrière),
l’automate se présentant alors sous forme d’un ensemble de cartes, d’une
armoire, d’une grille et des fixations correspondantes;
— d’indicateurs d’état concernant la présence de tension, l’exécution du
programme (mode RUN), la charge de la batterie, le bon fonctionnement des
coupleurs…
~5~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
3.2 Programmation
C’est un des atouts majeurs des API puisqu’elle permet une multitude de
traitements des informations reçues sans toucher à la configuration
matérielle. Certaines modifications peuvent même s’effectuer alors que
l’automate est en marche.
Il faut toutefois comprendre le fonctionnement du processeur, qui impose
certaines contraintes et choisir le langage le plus approprié dans le cadre du
problème à résoudre.
3.2.1 Déroulement du programme
Exemples
1- La taille maximale standard offerte pour les programmes utilisateurs
varie de 6 à 240 Ko pour les ALSPA 80-35.
2- La mémoire RAM du nano-automate TSX07 peut ainsi stocker 1000
lignes de programme en langage « Liste d’instructions », mais 500 en
langage à contacts ; elle peut aussi recevoir 256 mots variables de 16 bits, 64
mots constants, 128 bits internes.
Figure 3 : Ordonnancement des tâches
Il doit assurer en permanence un cycle opératoire qui comporte trois
types de tâches :
— l’acquisition de la valeur des entrées (lecture) ;
— le traitement des données ;
— l’affectation de la valeur des sorties (écriture).
~6~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Le premier et le troisième point s’effectuent par mise en
communication successive de chacune des voies d’entrée ou de sortie
(scrutation).
L’exécution des instructions se fait dans l’ordre de leur rangement dans la
mémoire programme ; l’incrémentation d’un compteur ordinal contenant
initialement l’adresse du début de mémoire permet le passage à l’instruction
suivante, sauf si un « saut avant » permet de se positionner plus loin, à une
adresse plus élevée, en n’exécutant pas un ensemble d’instructions.
Le cas le plus simple est celui où les tâches s’effectuent dans l’ordre indiqué
figure 3, cas a.
D’autres modes de gestion des tâches sont possibles (figure 4, cas b et c ).
Ces procédures posent le problème du synchronisme ou de l’asynchronisme
du fonctionnement de l’automate.
Dans le premier cas, le système est dit synchrone par rapport aux entrées et
aux sorties, ce qui signifie que tous les changements se font en même temps
: pendant le traitement, les E/S conservent la même valeur. Dans les autres
cas, une variable peut prendre différentes valeurs en différents points du
programme. Par contre, ces solutions peuvent raccourcir le temps de réaction
de l’automate à un événement, matérialisé par le changement d’état d’une
variable TOR.
Cela explique des aberrations apparentes telles le fait qu’une équation
fournisse un résultat faux pendant un cycle ou une portion de cycle.
Vis-à-vis de l’extérieur, la référence de cadence n’est pas l’horloge du
processeur, beaucoup trop rapide, mais le temps de scrutation (temps de
cycle).
3.2.2- Langages de programmation
L’une des particularités des API est de se programmer dans des langages
spécifiques adaptés à leur champ d’activités, orientés problème, souvent
tournés prioritairement vers la manipulation de variables TOR ou
numérisées. Les premiers langages étaient inspirés des schémas à contacts
car s’adressant prioritairement à des personnels ayant reçu une formation
d’électriciens. En France, dès le début des années 1980, sont apparus des
langages issus du GRAFCET.
Dans tous les cas régnait la plus grande hétérogénéité entre constructeurs, et
même, chez un même constructeur, entre différentes séries. Le besoin de
cohérence et la percée des outils informatiques (PC) à possibilités
graphiques ont entraîné une évolution qui s’est traduite par la promulgation
de la norme CEI 1131-3 reprise dans la norme française EN 61131-3.
~7~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Celle-ci n’unifie pas les langages, n’assure pas la portabilité d’une machine à
une autre car elle ne définit pas de classes de conformité, mais assure un
minimum de clarté et instaure des règles dans ce domaine. Elle définit le
logiciel suivant trois entités, présentées ci-après dans un ordre ascendant :
— la fonction (par exemple, le ET booléen, la comparaison de valeurs
numériques), à sortie unique ;
— le bloc fonction, composant logiciel réutilisable dans tous les langages
(par exemple, un compteur), qui peut comporter plusieurs sorties ;
— le programme. Elle fixe le mode de représentation des variables, des
constantes numériques, des dates et durées, des fonctions, des commentaires
non exécutables facilitant la lecture du programme, etc. Elle autorise quatre
types de langages, deux littéraux, deux graphiques, ainsi que des « éléments
de schéma » structurant les programmes (c’est à ce niveau qu’apparaît le
GRAFCET).
3.2.3- Mode de programmation
1. Langage ST
Le langage ST (Structured Text) est un langage textuel de haut niveau dédié
aux applications d’automatisation.
Ce langage est principalement utilisé pour décrire les procédures complexes,
difficilement modélisables avec les langages graphiques.
C’est le langage par défaut pour la programmation des actions dans les
étapes et des conditions associées aux transitions du langage
SFC.
Syntaxe
Un programme ST est une suite d’énoncés. Chaque énoncé est terminé par
un point-virgule (« ; »).
Les noms utilisés dans le code source (identificateurs de variables,
constantes, mots clés du langage ...) sont délimités par des séparateurs
passifs ou des séparateurs actifs, qui ont un rôle d’opérateur.
Des commentaires peuvent être librement insérés dans la programmation.
Les types d’énoncés standard sont :
— assignation (variable := expression;) ;
— appel de fonction ;
— appel de bloc fonctionnel ;
— énoncés de sélection (IF, THEN, ELSE, CASE) ;
— énoncés d’itération (FOR, WHILE, REPEAT) ;
— énoncés de contrôle (RETURN, EXIT) ;
— énoncés spéciaux pour le lien avec le langage SFC.
~8~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
2. Langage IL
Le langage IL (Instruction List), est un langage textuel de bas niveau.
Il est particulièrement adapté aux applications de petite taille.
Les instructions opèrent toujours sur un résultat courant (ou registre IL).
L’opérateur indique le type d’opération à effectuer entre le résultat courant
et l’opérande.
Le résultat de l’opération est stocké à son tour dans le résultat courant.
Syntaxe
Un programme IL est une liste d’instructions.
Chaque instruction doit commencer par une nouvelle ligne, et doit contenir
un opérateur, complété éventuellement par des modificateurs et, si c’est
nécessaire pour l’opération, un ou plusieurs opérandes, séparés par des
virgules (’,’).
Une étiquette suivie de deux points (’:’) peut précéder l’instruction.
Si un commentaire est attaché à l’instruction, il doit être le dernier élément
de la ligne.
Des lignes vides peuvent être insérées entre des instructions.
Un commentaire peut être posé sur une ligne sans instruction.
Exemples de lignes d’instruction
Étiquette Opérateur Opérande Commentaire
Début: LD IX1 (* bouton poussoir *)
ANDN MX5 (* commande valide *)
ST QX2 (* lance moteur *)
3. Langage SFC
Le langage SFC (Sequential Function Chart), ou GRAFCET, est un langage
graphique utilisé pour décrire les opérations séquentielles. Le procédé est
représenté comme une suite connue d’étapes (états stables), reliées entre
elles par des transitions.
Une condition booléenne est attachée à chaque transition.
Les actions dans les étapes sont décrites avec les langages ST, IL, LD ou
FBD.
4. Langage FBD
Le langage FBD (Function Block Diagram) est un langage graphique.
~9~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Il permet la construction d’équations complexes à partir des opérateurs
standards, de fonctions ou de blocs fonctionnels.
Format du diagramme FBD
Le diagramme FBD décrit une fonction entre des variables d’entrée et des
variables de sortie. Une fonction est décrite comme un réseau de fonctions
élémentaires. Les variables d’entrée et de sortie sont connectées aux boîtes
fonctions par des arcs de liaison. Une sortie d’une boîte peut être connectée
sur une entrée d’une autre boîte.
5. Langage LD
Le langage LD (Ladder Diagram) est une représentation graphique
d’équations booléennes combinant des contacts (en entrée) et des relais (en
sortie). Il permet la manipulation de données booléennes, à l’aide de
symboles graphiques organisés dans un diagramme comme les éléments
d’un schéma électrique à contacts.
Les diagrammes LD sont limités à gauche et à droite par des barres
d’alimentation.
Les composants graphiques élémentaires d’un diagramme LD sont :
Barre d'alimentation à gauche.
Barre d'alimentation à droite.
Arc de liaison horizontal.
Arc de liaison vertical.
Liaisons multiples verticales et horizontales.
Contact associé à une variable.
Relais associé à une variable de sortie ou interne.
~ 10 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
5.1 Barre d’alimentation
Un diagramme LD est limité sur la gauche et la droite par des lignes
verticales appelées respectivement barre d’alimentation à gauche et barre
d’alimentation à droite.
Les symboles du diagramme LD sont reliés entre eux et aux barres
d’alimentation par des arcs de liaisons verticaux ou horizontaux.
Chaque segment de liaison peut prendre l’état booléen FALSE ou TRUE.
L’état d’une liaison est propagé dans toutes ses extrémités à droite. Toute
liaison horizontale connectée à la barre d’alimentation à gauche a l’état
booléen TRUE.
5.2 Liaison multiple
La combinaison de liaisons horizontales et verticales permet la construction
de liaisons multiples. L’état aux extrémités d’une liaison multiple respecte
des règles logiques.
Une liaison multiple à gauche
Combine plusieurs liaisons horizontales connectées à gauche d’une liaison
verticale, et une seule liaison horizontale à droite. L’état de l’extrémité à
droite est le résultat du OU logique entre les états des extrémités à gauche.
Exemple de liaison multiple à gauche
(* État de l’extrémité droite : (v1 OR v2 OR v3) *)
~ 11 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Une liaison multiple à droite
Combine une seule liaison horizontale connectée à gauche d’une liaison
verticale, et plusieurs liaisons horizontales à droite. L’état de l’extrémité à
gauche est propagé dans toutes les extrémités à droite.
Exemple de liaison multiple à droite
(* Équivalence ST *)
output1 := input1;
output2 := input1;
Une liaison multiple à gauche et à droite
Combine plusieurs liaisons horizontales connectées à gauche d’une liaison
verticale, et plusieurs liaisons horizontales à droite. L’état de chacune des
extrémités à droite est le résultat du OU logique entre les états des
extrémités à gauche.
Exemple de liaison multiple à gauche et à droite
(* Équivalence ST *)
output1 := input1 OR input2;
output2 := input1 OR input2;
output3 := input1 OR input2;
5.3 Contacts et relais
Les types de contacts
Suivants peuvent être utilisés dans un diagramme :
— contact direct ;
— contact inversé ;
— contact à détection de front.
~ 12 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Les types de relais
Suivants peuvent être utilisés dans un diagramme :
— relais direct ;
— relais inversé ;
— relais à forçage de type SET ;
— relais à forçage de type RESET ;
— relais à détection de front.
Le nom de la variable
Associée est inscrit au-dessus du symbole graphique :
5.3.1 Contact direct
Un contact direct représente une opération entre l’état d’un arc de liaison et
une variable booléenne.
L’état de la liaison à droite est le résultat du ET logique entre l’état de la
liaison à gauche et la valeur de la variable associée au contact.
Exemples de contacts directs
(* Équivalence ST *)
output1 := input1 AND input2;
5.3.2 Contact inversé
Un contact inversé représente une opération entre l’état d’un arc de liaison et
l’inverse logique d’une variable booléenne.
~ 13 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
L’état de la liaison à droite est le résultat du ET logique entre l’état de la
liaison à gauche et l’INVERSE logique de la valeur de la variable associée
au contact.
Exemples de contacts inversés
(* Équivalence ST *)
output1 := NOT (input1) AND NOT (input2);
5.3.3 Contact à détection de front positif
Un tel contact représente une opération entre l’état d’un arc de liaison et le
passage à l’état TRUE d’une variable booléenne : front montant.
L’état de la liaison à droite prend l’état TRUE quand l’état de la liaison à
gauche est à TRUE et que l’état de la variable associée passe de FALSE à
TRUE. Il prend l’état FALSE dans tous les autres cas.
Exemple de contact à détection de front positif
(* Équivalence ST *)
ouput1 := input1 AND (input2 AND NOT (input2prev));
(* input2prev est la valeur de input2 au cycle précédent *)
5.3.4 Contact à détection de front négatif
Un tel contact représente une opération entre l’état d’un arc de liaison et le
passage à l’état FALSE d’une variable booléenne : front descendant.
L’état de la liaison à droite prend l’état TRUE quand l’état de la liaison à
gauche est à TRUE et que l’état de la variable associée passe de TRUE à
FALSE. Il prend l’état FALSE dans tous les autres cas.
~ 14 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Exemple de contact à détection de front négatif
(* Équivalence ST *)
ouput1 := input1 AND (NOT (input2) AND input2prev);
(* input2prev est la valeur de input2 au cycle précédent *)
5.3.5 Relais direct
Un relais direct permet le forçage d’une sortie booléenne avec l’état d’un arc
de liaison.
La variable associée est forcée à l’état de la liaison à gauche.
L’état de la liaison à gauche est propagé dans la liaison à droite.
La liaison à droite peut être connectée à la barre d’alimentation à droite.
La variable booléenne associée doit être de sortie ou interne.
Le nom de la variable associée peut être le nom du programme édité (pour
les fonctions seulement).
Dans ce cas, le relais représente l’affectation de la valeur renvoyée par la
fonction.
Exemple de relais directs
(* Équivalence ST *)
output1 := input1;
output2 := input1;
5.3.6 Relais inversé
Un relais inversé permet le forçage d’une sortie booléenne avec l’inverse
logique de l’état d’un arc de liaison.
~ 15 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
La variable associée est forcée à l’inverse logique de l’état de la liaison à
gauche. L’état de la liaison à gauche est propagé dans la liaison à droite.
La liaison à droite peut être connectée à la barre d’alimentation à droite.
La variable booléenne associée doit être de sortie ou interne.
Le nom de la variable associée peut être le nom du programme édité (pour
les fonctions seulement).
Dans ce cas, le relais représente l’affectation de la valeur renvoyée par la
fonction.
Exemple de relais inversé
(* Équivalence ST *)
output1 := NOT (input1);
output2 := input1;
5.3.7 Relais à action SET
Un relais à action SET permet le forçage d’une sortie booléenne en fonction
de l’état d’un arc de liaison.
La variable associée est forcée à TRUE quand la liaison à gauche prend
l’état TRUE. La variable garde cette valeur jusqu’à un ordre inverse donné
par un relais de type RESET.
L’état de la liaison à gauche est propagé dans la liaison à droite.
La liaison à droite peut être connectée à la barre d’alimentation à droite.
La variable booléenne associée doit être de sortie ou interne.
5.3.8 Relais à action RESET
Un relais à action RESET permet le forçage d’une sortie booléenne en
fonction de l’état d’un arc de liaison.
La variable associée est forcée à FALSE quand la liaison à gauche prend
l’état TRUE.
~ 16 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
La variable garde cette valeur jusqu’à un ordre inverse donné par un relais
de type SET.
L’état de la liaison à gauche est propagé dans la liaison à droite. La liaison à
droite peut être connectée à la barre d’alimentation à droite.
La variable booléenne associée doit être de sortie ou interne.
Exemple de relais à action SET et RESET
(* Équivalence ST *)
IF input1 THEN
output1 := TRUE;
END_IF;
IF input2 THEN
output1 := FALSE;
END_IF;
5.3.9 Relais à détection de front montant
Un relais positif permet le forçage d’une sortie booléenne en fonction de
l’état d’un arc de liaison.
La variable est forcée à TRUE quand la liaison à gauche passe de l’état
FALSE à l’état TRUE : front montant.
La variable est remise à FALSE dans tous les autres cas.
L’état de la liaison à gauche est propagé dans la liaison à droite.
La liaison à droite peut être connectée à la barre d’alimentation à droite.
La variable booléenne associée doit être de sortie ou interne.
Exemple d’utilisation d’un relais positif
(* Équivalence ST *)
IF (input1 and NOT (input1prev)) THEN
output1 := TRUE;
ELSE
~ 17 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
output1 := FALSE;
END_IF;
(* input1prev est la valeur de input1 au cycle précédent *)
5.3.10 Relais à détection de front descendant
Un relais négatif permet le forçage d’une sortie booléenne en fonction de
l’état d’un arc de liaison.
La variable est forcée à TRUE quand la liaison à gauche passe de l’état
TRUE à l’état FALSE : front descendant.
La variable est remise à FALSE dans tous les autres cas.
L’état de la liaison à gauche est propagé dans la liaison à droite.
La liaison à droite peut être connectée à la barre d’alimentation à droite.
La variable booléenne associée doit être de sortie ou interne.
Exemple d’utilisation d’un relais négatif
(* Équivalence ST *)
IF (NOT(input1) and input1prev) THEN
output1 := TRUE;
ELSE
output1 := FALSE;
END_IF;
(* input1prev est la valeur de input1 au cycle précédent *)
5.4 L’énoncé RETURN
Le symbole RETURN peut être utilisé pour représenter une fin
conditionnelle de l’exécution du programme. Aucune liaison ne doit être
tracée à droite du symbole RETURN.
Si l’état de la liaison à gauche est TRUE, la suite du diagramme LD (lignes
suivantes) n’est pas interprétée.
~ 18 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Exemple d’utilisation du symbole RETURN
(* Équivalence ST *)
If NOT (manual_mode) THEN RETURN; END_IF;
result := (input1 OR input3) AND input2;
5.5 Sauts et étiquettes
Les étiquettes, les sauts conditionnels ou inconditionnels, sont utilisés pour
contrôler l’exécution du diagramme.
Aucune connexion ne peut être réalisée à droite d’un symbole d’étiquette ou
de saut.
>>LAB : saut à l’étiquette de nom « LAB ».
LAB: : définition de l’étiquette « LAB ».
Si la liaison à gauche du symbole de saut prend l’état TRUE, l’exécution du
programme est déroutée après l’étiquette correspondante.
Exemple d’utilisation de saut et d’étiquette
(* Équivalence IL *)
Idn manual_mode
jmpc OTHER
Id input1
st result
jmp END
OTHER: Id input2
st result
END: (* fin de programme *)
~ 19 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
5.6 Blocs
Des boîtes fonctions, ou blocs, peuvent être connectées aux lignes
booléennes.
Il peut s’agir d’opérateurs, de blocs fonctionnels ou de fonctions.
Comme un bloc n’a pas forcément une entrée ou une sortie booléenne, son
insertion dans un diagramme LD peut entraîner l’ajout automatique de
nouveaux paramètres à l’interface.
L’entrée EN
La première entrée de certains opérateurs, blocs fonctionnels ou fonctions,
n’est pas du type booléen et ne peut donc pas être connectée à une ligne LD
booléenne.
Donc, pour ces blocs, une entrée supplémentaire booléenne est ajoutée
comme premier paramètre d’entrée.
Elle porte le nom EN. Dans ce cas, le bloc est exécuté uniquement si l’entrée
EN reçoit un signal TRUE.
Exemple du bloc comparateur
(*Équivalence ST*)
IF etat_ligne THEN
q := (value1 > value2);
ELSE
q := FALSE;
END_IF;
(* la liaison à droite prend l’état de q *)
La sortie ENO
La première sortie de certains opérateurs, blocs fonctionnels ou fonctions,
n’est pas du type booléen, et ne peut donc pas être connectée à une ligne LD
booléenne.
Donc, pour ces blocs, une sortie supplémentaire booléenne est ajoutée
comme premier paramètre de sortie.
Elle porte le nom ENO et prend toujours l’état de la première entrée du bloc.
~ 20 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Exemple du bloc AVERAGE
(* Équivalence ST *)
AVERAGE(etat_ligne, Signal, 100);
OutSignal := [Link];
eno := etat_ligne;
(* la liaison à droite prend l’état de ENO *)
Les paramètres EN et ENO
Dans certains cas, les deux paramètres EN et ENO sont ajoutés.
Exemple d’un opérateur arithmétique
(* Équivalence ST *)
IF etat_ligne THEN
result := (value1 + value2);
END_IF;
eno := etat_ligne;
(* la liaison à droite prend l’état de ENO *)
6- Systèmes d’automatisation
La gamme des nouveaux SIMATIC S7 comprend les systèmes
d’automatisation suivants:
SIMATIC S7-200
Le SIMATIC S7-200 est un micro-automate compact d’entrée de gamme. Il
possède un progiciel qui lui est propre et n’a pu être pris en compte dans la
suite de ce manuel, les propriétés du système S7-200 ne supportant pas une
conversion logicielle des programmes S5 en programmes S7.
~ 21 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
SIMATIC S7-300
Le mini-automate modulaire SIMATIC S7-300 fait encore partie de l’entrée
de gamme.
SIMATIC S7-400
Le SIMATIC S7-400 couvre le milieu, le haut et le très haut de gamme.
Pour faciliter l’orientation, les modules du S7-300 commencent par un 3 et
les modules du S7-400 commencent par un 4.
Figure 4 : Systèmes d’automatisation SIMATIC
Modules S7
Tout comme la gamme des SIMATIC S5 qu’elle vient compléter, la gamme
SIMATIC S7 mise sur la modularité bien éprouvée.
Vous trouvez les types de modules suivants :
• Unités centrales (CPU),
• Modules d’alimentation (PS),
• Coupleurs (IM),
• Processeurs de communication (CP) ; (par exemple pour le raccordement à
PROFIBUS),
• Modules de fonction FM ; (par exemple de comptage, régulation,
positionnement etc.),
• Les modules d’entrées/sorties TOR ou analogiques sont maintenant appelés
des modules de signaux (SM).
~ 22 ~
Module : Automate programmable M2_MCIL/ESE/ UNIV. BBA CHETOUAH Farouk
Caractéristiques techniques des CPU S7-300
7. Conclusion
L’automate est un bon produit, facile à programmer, à connecter, adapté aux
conditions industrielles.
Il ne faut pas vouloir en faire une solution miracle. Dans tous les cas :
— une bonne analyse du problème à résoudre ;
— le respect des règles d’installation ;
— un léger surdimensionnement pour préserver des marges de modification,
sont les conditions d’une implantation réussie, dont la durée de vie dépassera
largement celles habituelles dans le monde informatique, dont l’API est pour
partie issu.
~ 23 ~