Cours ‘‘Automates Programmables Industriels’’
Pour les Master II Systèmes Embarqués ‘‘S3’’
Contenu :
Chapitre 1 : API : Automates Programmables Industriels
Définition d'un API, Architecture interne et externe d'un API et caractéristiques. Choix de l'API. Types des
Entrées/Sorties d'un API et ses caractéristiques.
Chapitre 2 : Matérialisation de processus industriels par les API (3 semaines)
Définition d'un système automatisé. Les parties essentielles d’un système automatisé (PO, PC, HMI,
Interfaçage). Principe de fonctionnement d'un API et d'un système automatisé ordres-informations. Câblage.
Notions capteur-actionneur, réseaux industriels, …
Chapitre 3 : Programmation de l'API
Introduction au Grafcet. Introduction aux langages : LD, IL, FBD, SFC, SCL. Application : définition des
parties PO-PC, élaboration du grafcet, programmation en Ladder. Exercices d’application.
Chapitre 4 : Télégestion - Télésurveillance
Introduction aux Réseaux Industriels et au système SCADA
Prérequis : Connaissances en :
Logique combinatoire et séquentielle, Microprocesseurs, Microcontrôleurs, Capteurs, Réseaux et
communications industriels.
Chapitre 1 API : Automates Programmables Industriels
I.1 Historique
A la fin des années 60, un fabricant américain de voitures décide de remplacer les systèmes de
commande à base de logique câblée (relais électrique) par une logique programmée. Cette solution devait
répondre au cahier des charges suivant : un coût acceptable, utilisable par le personnel en place, supporter
l’ambiance industrielle, adaptation aux nombreuses variétés Entrées/Sorties, simplicité de mise en
œuvre…etc. Ceci ne pouvait être assuré par les ordinateurs de l’époque (trop volumineux, couteux…etc.).
Le premier automate programmable (model 084) a été inventé en 1969 par Dick Morley, il était composé de
trois modules montés sur un rail et utilisait le langage de programmation Ladder, il s’agit d’une version
électronique de schémas électriques élémentaires qu’utilisaient les ingénieurs électriciens.
I.2 Définition
‘‘L'Automate Programmable Industriel (API) est un dispositif é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’’.
Figure 1.1 Automate programmable Allen Bradley
I.3 Composition d’un API
L’automate programmable a été conçu afin ‘‘d’automatiser’’ un processus industriel : c’est-à-dire
remplacer l’être humain dans l’accomplissement des trois principales taches suivante : Détection, Réflexion,
Action. Il se compose de plusieurs parties et notamment d’une mémoire programmable dans laquelle
l’opérateur écrit, dans un langage propre à l’automate, des directives concernant le déroulement du
processus à automatiser. Son rôle consiste donc à fournir des ordres à la partie opérative en vue d’exécuter
un travail précis comme par exemple l’ouverture ou la fermeture d’une vanne. La partie opérative lui
donnera en retour des informations relatives à l’exécution dudit travail.
Figure 1.2 Rôle d’un API
I.4 Architecture externe d’un API
Il existe deux types d’API compact ou modulaire :
A. Type compact : Il intègre le processeur, l'alimentation et les entrées/sorties en une seule unité. Ces
automates, de fonctionnement simple, sont généralement destinés à la commande de petits
automatismes (par exemple : automate LOGO de Siemens).
Figure 1.3 API compact ‘‘LOGO’’ de Siemens
B. Type modulaire : Ils sont utilisés dans les automatismes complexes. Dans ce type d’API : le
processeur, l'alimentation et les interfaces d'entrées/ sorties forment des ‘‘modules’’ séparés, ils sont
fixées sur un ou plusieurs racks et reliés entre eux par des connecteurs à travers le bus interne. Ce
dernier permet la communication entre l'ensemble des blocs de l'automate et des éventuelles
extensions.
Figure 1.4 API S300 de Siemens
I.5 Architecture interne d’un API
Les API comportent quatre parties principales :
- Une mémoire : Elle est conçue pour recevoir, gérer, stocker des informations issues des différents
secteurs du système que sont le terminal de programmation (PC ou console) et le processeur. Elle
reçoit également des informations en provenance des capteurs. Trois types de mémoire cohabitent :
Mémoire du système d'exploitation (ROM ou PROM),
Mémoire du programme (EEPROM : (Electrically-Erasable Programmable Read-Only Memory
ou mémoire morte effaçable électriquement et programmable)
Mémoire des données lors du fonctionnement (RAM)
- Un processeur : Son rôle consiste d’une part à organiser les différentes relations entre la zone
mémoire et les interfaces d’E/S et d’autre part à gérer les instructions du programme. Il réalise toutes
les fonctions logiques, arithmétiques et de traitement numérique (comptage, temporisation…etc.).
- Des interfaces d’Entrées/Sorties (modules E/S) : L’interface d’entrée comporte des adresses
d’entrée, une pour chaque capteur relié. L’interface de Sorties comporte des adresses de sorties, une
pour chaque pré-actionneur. Le nombre d’E/S varie suivant le type d’automate. Les cartes d’E/S ont
une modularité de 8, 16 ou 32 voies (toujours par groupe de 8). Elles admettent ou délivrent des
tensions continues 0 - 24 Vcc.
- Un bloc alimentation (l’API est alimenté par 240 Vac et délivre une tension de 24 Vcc).
Ces quatre parties sont reliées entre elles par des bus (ensemble câblé autorisant le passage de
l’information entre ces 4 secteurs de l’API).
I.6 Différents types de modules entrées/sorties
I.5.1 Les modules entrées/sorties numériques (ou tout ou rien TOR)
Pour les signaux ‘‘discrets’’ qui n'ont que deux états : ON / OFF, OUVERT / FERMÉ, VRAI /
FAUX…etc.). Au nombre de 4, 8, 16 ou 32, ils peuvent aussi bien réaliser des fonctions d'entrées, de sorties
ou les deux. Exemple : entrées (contacteurs, boutons poussoirs, détecteurs de présence), sorties (alarmes,
lampes, vannes).
I.5.2 Les modules (cartes) entrées/sorties analogiques
Ils permettent de réaliser l'acquisition d'un signal analogique et sa conversion en signal numérique
(CAN), cette opération est indispensable pour assurer un traitement par le microprocesseur. La fonction
inverse (sortie analogique) est également réalisée à trvavers une conversion numérique/analogique.
Exemple : entrées (capteurs de débit, pression, vibrations, température…etc.), sorties (vannes analogiques,
actionneurs, moteurs électriques, compteurs analogiques…etc.)
I.5.3 Modules fonctions
Ce sont des cartes utilisées pour des applications spéciales comme la régulation, le comptage rapide,
commande (positionnement) d’axes...etc. Parmi lesquelles :
A. 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.
B. 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.
C. Autres cartes : Cartes de régulation PID, Cartes de pesage, Cartes de communication
(Ethernet ...)…etc.
I.7 Choix d’un automate programmable industriel
Les automates programmables industriels sont choisis selon le système à automatiser, et plus
particulièrement, la partie commande à programmer. Plusieurs critères doivent être pris en compte,
parmi lesquels : le nombre d’entrées/sorties intégrés, le temps de traitement (scrutation), la capacité
de la mémoire, le nombre de compteurs, le nombre de temporisateurs…etc. Plusieurs constructeurs
proposent leurs propres automates programmables (siemens, télémécanique, Honeywell,
Omron…etc.), les critères de choix essentiels d’un API doivent être :
Les compétences/expériences de l’équipe d’automaticiens en mise en œuvre et en
programmation de la gamme d’automate
La qualité du service après-vente
Les capacités de traitement du processeur (vitesse, données, opérations, temps réel...)
Le type des entrées/sorties nécessaire
Le nombre d’entrées/sorties nécessaire
I.8 En Conclusion Un automate programmable industriel (API) est une forme particuliere
d’automate a base de microprocesseur qui se fonde sur une memoire programmable pour
enregistrer les instructions et mettre en oeuvre des fonctions, qu’elles soient logiques, de
sequencement, de temporisation, de comptage ou arithmetiques, pour controler des
machines et des processus. II est concu pour etre manipulé par des ingenieurs ayant,
potentiellement, une connaissance limitee en informatique et en langages de
programmation.
En general, un systeme API est constitue des composants fonctionnels de base suivants :
une unite de traitement, de la memoire, une unite d’alimentation, des interfaces d’entrees-
sorties, une interface de communication et une unite de programmation. Pour fonctionner,
le systeme API doit pouvoir acceder aux donnees à traiter et aux instructions, c’est-a-dire
le programme, qui lui indiquent comment traiter les donnees. Ces informations sont
enregistrees dans la memoire de L’АРI afin d’y acceder au cours du traitement. Les
canaux d’entrees-sorties assu- rent une function d’isolation et de traitement du signal pour
que les capteurs et les actionneurs puissent etre, le plus souvent, connectes directement
aux entrees- sorties sans necessiter d’autres circuits electroniques. Les sorties peuvent
etre a relais, a transistors ou a triacs. L’interface de communication est utilisee pour rece-
voir et transmettre des donnees sur les reseaux de communication qui relient des API
distants. Les API existent principalement sous deux formes mecaniques : un bolc unique
(compact) et un systeme modulaire/rack.
Chapitre 2 Matérialisation de processus industriels par les API
I. Introduction
Un système de production est dit automatisé lorsqu’il peut gérer de manière autonome un cycle de travail
préétabli qui se d´décompose en s´séquences et/ou en ´étapes. Les systèmes automatisés, utilisés dans le
secteur industriel, possèdent une structure de base identique.
II. Systèmes automatisés
Les systèmes automatisés, utilisés dans le secteur industriel, possèdent une structure de base identique.
Ils sont constitués de plusieurs parties plus ou moins complexes reliées entre elles :
- la partie opérative (PO) ;
- la partie commande (PC) ou système de contrôle/commande (SCC) ;
- la partie relation (PR) de plus en plus intégrée dans la partie commande.
Figure 2.1 Système automatisé
III. La partie opérative PO
C’est la partie visible du système. Elle comporte les ´éléments du procédé, c’est `à dire :
- Des pré-actionneurs (distributeurs, contacteurs) qui reçoivent des ordres de la partie commande ;
- Des actionneurs (vérins, moteurs, vannes) qui ont pour rôle d’exécuter ces ordres. Ils transforment
l’´énergie pneumatique (air comprimé), hydraulique (huile sous pression) ou ´électrique en ´énergie
m´mécanique ;
- Des capteurs qui mesurent, surveillent et informent la partie commande sur l’´évolution du système.
IV. La partie commande PC
Elle reçoit un ensemble d'informations relevées par la partie opérative, et les utilisent pour élaborer une
succession d’ordres nécessaires en direction des pré-actionneurs et actionneurs (PO), afin d’obtenir les
actions souhaitées, selon une suite logique ainsi que le d´déroulement ordonne des opérations `à réaliser.
V. La partie relation PR
Elle regroupe les différentes commandes n´nécessaires au bon fonctionnement du procédé (pupitre de
commande et signalisation), c’est `à dire : marche/arrêt, arrêt d’urgence, marche automatique, …etc. De nos
jours, on utilise de plus en plus les interfaces homme-machine HMI.
VI. Les interfaces homme-machine HMI
Il s’agit d’un ensemble de dispositifs matériels et logiciels permettant à un utilisateur d’interagir avec un
système interactif, comme les systèmes d’exploitation des ordinateurs, terminaux de communications…etc.
Il s’agit d’exploiter tout support multimédia (son, image, vidéo…etc.) afin d’adapter les machines aux
caractéristiques des utilisateurs, à savoir :
- Les différences physiques (âge, handicap) ;
- Les connaissances et expériences dans le domaine de la tâche (novice, expert, professionnel) ;
- Les caractéristiques psychologiques : visuel/auditif, logique/intuitif…
- Les caractéristiques socio-culturelles : sens d'écriture, format des dates, signification des icônes,
des couleurs ;
Figure 2.2 dialogue homme-machine
VII. Les HMI et les API
La conception d'un panneau opérateur nécessite beaucoup de coordination avec la programmation de
l'automate et la conception de la machine à contrôler. Avant les systèmes conçus par ordinateur, il y avait
des systèmes de composants individuels qui étaient câblés aux dispositifs de contrôle à l'intérieur du
panneau, comme les panneaux de commande simple avec des boutons poussoirs et des commutateurs avec
des voyants lumineux (voir figure 2.3).
Malgré leurs possibilités, les API pèchent par un manque de réactivité qui rend indispensable la présence
de l’homme dans le cas de situations imprévues. Les tâches de surveillance, de diagnostic, de maintenance,
ainsi que la reprise après défaillance sont assignées à l’opérateur par l’automaticien pour augmenter la
fiabilité et la disponibilité des processus.
Cette fonction de conduite et de surveillance nécessite un échange d’information entre l’homme et la
machine. Ce dialogue Homme /Machine (HMI) est assuré par une interface spécialisée permettant la
communication dans les deux sens :
Opérateur→Machine et Machine →Opérateur.
Figure 2.3 Panneau de commande
De nos jours, la complexité des échanges, l’utilisation d’un langage évolué (graphique ou littéral) ont
amené les constructeurs à étudier et réaliser des organes de dialogues plus performants et acceptant le
langage naturel. Ces terminaux de dialogues TDI ont deux architectures, en fonction de leur capacité à gérer
le dialogue. Cette fonction demande une certaine intelligence qui sera localisée soit au niveau de l’API, soit
au niveau du terminal.
a) Niveau API
Les API possèdent des instructions de communication (Annexe) qui leur permettent un échange de
données entre eux mais aussi vers des périphériques type imprimante ou afficheur. Dans ce cas, c’est l’API
qui gère toute la communication et les échanges de messages. Les messages sont stockés dans la mémoire
API, le terminal n’ayant qu’un rôle d’afficheur.
Figure 2.4 Communication API-Afficheur
b) Niveau terminal
Dans ce cas, la gestion des messages est dévolue au terminal. Celui-ci possède sa propre mémoire de
stockage des messages, enregistrés sous des “adresses”, et qu’il affiche à la demande.
VII.1 Principe d’échanges entre l’API et le TDI
Les échanges entre l’API et le TDI se font à partir de tables de mots définies par configuration. Cette
configuration du terminal consiste à lui indiquer les adresses des mots avec lesquels il va communiquer dans
l’API. En général la configuration se résume à :
- Mot d’affichage d’écran : affich_écran : mot d’état ou l’on écrira le numéro de l’écran que l’on veut
voir afficher sur le terminal.
- Mot état d’affichage écran : écran_en_cours : mot d’état, contient le numéro de l’écran en cours
d’affichage sur le terminal.
- Mot état touches de fonction : état_touch : mot, accessible en bit, qui sera positionné en fonction de
la touche de fonction activée.
Pour les écrans graphiques tactiles, chaque élément graphique et associé à un bit ou un mot au moment
de sa création par la déclaration de ses « propriétés ». Actuellement, tous les terminaux industriels sont
programmables à partir de logiciels spécialisés qui dans certains cas s’intègrent dans l’atelier logiciel de
programmation du constructeur d’API permettant le développement de projet complet d’automatisation.
Après avoir défini tous les écrans du dialogue, sa mise en œuvre nécessite l’utilisation de deux types de
fonctions :
- Une fonction d’affichage écran qui permet à l’API de faire afficher sur le terminal un écran
quelconque (console…etc.).
- Une fonction de dialogue qui permet à l’API de détecter des actions de l’opérateur sur les touches
de fonction.
Figure 2.5 HMI exemple Automate Omron
VIII. L’interfaçage des entrées/sorties d’un API
VIII.1 Interfaces d’entrées TOR
Elles sont destinées à :
a) Recevoir l’information en provenance des capteurs logiques tels que les boutons poussoirs, les
pressostats, thermostats, fins de course, capteurs de proximité, capteurs photo-électriques, roues
codeuses…etc.
b) Assurer l’adaptation, l’isolement, le filtrage et la mise en forme des signaux électriques.
Une diode électroluminescente située sur la carte donne l’état de chaque entrée. Le nombre d’entrées sur une
carte est de : 4, 8, 16, 32. (voir figure ci-après)
Capteur fin de course
Figure 2.6 Interface d’entrée TOR
Lors de la fermeture du capteur : la LED1 signale que l’entrée automate est actionnée → la led D’ de
l’optocoupleur s’éclaire → le photo transistor T’ de l’optocoupleur devient passant → La tension Vs=Vce =
0V (transistor saturé).
Donc : ‘‘Lors de l’activation d’une entrée TOR, l’interface d’entrée envoie un 0 logique à l’unité de
traitement (si elle n’est pas actionnée, elle envoie un 1)’’
VIII.2 Interface d’entrée analogique
Destinée à recevoir l’information en provenance des capteurs analogiques à travers des transmetteurs
analogique, comme le montre la figure suivante :
Figure 2.7 Chaine d’acquisition de signaux analogiques d’un API
Transmetteurs analogique :
Les transmetteurs analogiques : permettent d’adapter les signaux issus des capteurs analogiques pour les
rendre compatibles avec l’unité de traitement. La variation de la grandeur d’entrée est convertie en une
variation :
En tension : de 0V→10V
En courant : de 0 mA →20 mA, ou de 4 mA →20 mA.
VIII.3 Interfaces d’entrée numérique
Elles permettent de dialoguer directement avec les roues codeuses. Certaines sont dotées d’un nombre
fixe de voies, chaque voie possède un nombre d’entrées qu’on organise selon ses besoins pour la
constitution des mots en respectant les règles prescrites par le constructeur. Généralement ce sont des
mots de 16 bits codés en BCD ( binary-coded decimal).
VIII.4 Interfaces de sorties TOR
Elles sont destinées à commander les pré-actionneurs et éléments des signalisations du système, et
adapter les niveaux de tensions de l’unité de commande à celle de la partie opérative du système, en
garantissant une isolation galvanique entre ces dernières.
Figure 2.8 Interface de sortie TOR
Lors de la commande d’une sortie automate, l’unité de commande envoie un 1 logique (5V) :
→T1 devient passant, donc D’ s’éclaire
→Le photo transistor T’ de l’optocoupleur devient passant
→LED 1 s’éclaire et nous informe de la commande de la sortie O0,1
→T2 devient passant
→La bobine RL1 devient sous tension et commande la fermeture du contact de la sortie O0,1
Donc pour commander une sortie automate l’unité de commande doit envoyer :
Un 1 logique pour actionner une sortie API
Un 0 logique pour stopper la commande d’une sortie API
VIII.5 Interfaces de sorties analogiques
L’information numérique, délivrée par l’unité de traitement est codée en binaire, et raccordée aux sorties
TOR. Elle est ensuite convertie en un signal analogique normalisé (0-10 V ; 0-20 mA) à travers un
convertisseur Numérique/Analogique. La figure suivante montre une interface de sortie analogique.
Figure 2.8 Interface de sortie analogique
VIII.6 Interfaces de sorties numériques
Elles permettent de dialoguer directement avec les afficheurs numériques, comme pour le cas des
entrées numériques. Les sorties de ce type sont dotées d’un nombre fixe de voies, chaque voie possède un
nombre d’entrées qu’on organise selon ses besoins pour la constitution des mots, en respectant les règles
prescrites par le constructeur. Généralement ce sont des mots de 16 bits codés en BCD.
VIII.7 Fonctionnement d’un API
Les API ont un fonctionnement cyclique, le cycle est constitué par les trois principales taches :
→Acquisition des données à travers l’interface d’entrée (temps du cycle : TE) ;
→Traitement du programme par l’unité de traitement (temps du cycle : TT) ;
→Mise a jours des sorties à travers l’interface de sortie (temps du cycle : TS) ;
Figure 2.9 Fonctionnement cyclique d’un API
Ainsi le temps de cycle complet TC est l’addition des trois cycles :
TC=TE+TT+TS
Il existe deux types de fonctionnement cycliques :
a) Fonctionnement mono-tâche cyclique ‘‘asynchrone’’ : ce type de fonctionnement consiste à
enchaîner les cycles les uns après les autres.
b) Fonctionnement mono-tâche périodique ‘‘synchrone’’ : dans ce mode de fonctionnement,
l'acquisition des entrées, le traitement du programme et la mise à jour des sorties s'effectue de
façon périodique te ms selon un temps défini par configuration API.
Chapitre 3. Programmation de l'API
III.1 Introduction
Les fabricants d’automates programmables industriels ont développés différents formats de
programmes commodes pour les ingénieurs ayant peu de connaissances en programmation. Toutefois,
puisque chacun a eu tendance à développer ses propres versions, une norme internationale a été établie pour
toutes les méthodes de programmation employées avec les API. Cette norme, publiée en 1993 par la
Commission électrotechnique internationale, est désignée sous la référence CEI 61131-3. La dernière
version, qui date de 2013, est une extension qui reste compatible avec la version antérieure.
III.2 Les différents langages de programmation pour les API
Les langages de programmation définis par la norme CEI 61131-3 sont : le langage a contacts (LAD,
Ladder Diagram), les listes d’instructions (IL, Instruction List), les graphes de fonction séquentielle (SLC,
Sequential Function Charts ou Grafcet), le texte structure (ST, Structured Text) et les diagrammes de
schémas fonctionnels (FBD, Function Block Diagram). Parmi ces langages, deux sont textuels : le texte
structure et les listes d’instruction, ils sont saisis sur I ’appareil de programmation à partir d’un clavier, une
ligne à la fois. Les autres : le langage a contacts, les graphes de fonction séquentielle et les diagrammes de
schémas fonctionnels sont graphiques, ils sont développés à partir d’éléments graphiques sur l’écran de I
‘appareil de programmation.
III.2.1 Le langage à contacts (LD : Ladder Diagram)
Langage graphique développé pour les électriciens. Il utilise les symboles tels que : contacts, relais et
blocs fonctionnels et s'organise en réseaux (labels). C'est le plus utilisé dans les API.
Exemple 1 : Soit le schéma du circuit électrique, qui permet de démarrer et d’arrêter un moteur
électrique (Figure 3.1a). Nous pouvons redessiner ce schéma de manière différente, en utilisant deux lignes
verticales pour représenter les sources d’alimentation et en insérant les autres éléments du circuit entre ces
deux lignes (Figure 3.1b). Les deux versions placent un interrupteur en série avec un moteur, qui est
alimente lorsque I ’interrupteur est ferme. La Figure 3.1b représente un schéma à contacts.
Figure 3.1 Schéma électrique pour démarrer et arrêter un moteur et son équivalent en LD
L‘alimentation est toujours représentée sous forme de lignes verticales, les autres éléments du circuit
sont placés sur des lignes horizontales. Les lignes d’alimentation, ou barres, s’apparentent aux montants
verticaux d’une échelle et les lignes horizontales, aux barreaux ; d’où le nom Ladder (échelle) en anglais. La
ligne horizontale présente uniquement les parties de commande du circuit (dans le cas illustré a la Figure
3.1b, il s’agit de I ‘interrupteur en série avec le moteur).
Exemple 2 :
Il s’agit d’un schéma à contacts pour un circuit qui permet de démarrer et d’arrêter un moteur à partir
de bouton-poussoir. Dans L’état normal, le bouton-poussoir 1 est ouvert et le bouton-poussoir 2 est fermé.
Lors d’un appui sur le bouton 1 le moteur démarre. Par ailleurs, les contacts de maintien branchés en
parallèle du moteur se ferment et le restent tant que le moteur fonctionne. Ainsi, lorsque le bouton 1 est
relâché, les contacts de maintien conservent le circuit et donc l’alimentation du moteur. L’arrêt du moteur se
fait par un appui sur le bouton 2. L’alimentation du moteur est alors coupée et les contacts de maintien
s’ouvrent. Ainsi, lorsque le bouton 2 est relâché, le moteur n’est plus alimenté. Nous avons donc un moteur
qui est démarré par un appui sur le bouton 1 et arrête par un appui sur le bouton 2.
Figure 3.2 Schéma à contact pour démarrer et arrêter un moteur par deux boutons poussoirs
A. Programmation en Ladder
Pour programmer des API en Ladder, il faut respecter les conventions suivantes :
Chaque ligne doit commencer par une ou plusieurs entrées (action de commande, comme fermer
les contacts d’un interrupteur…etc.) et doit se terminer par au moins une sortie (dispositif,
comme un moteur…etc.).
Les entrées et les sorties sont toutes identifiées par leur adresse, dont le format dépend du
fabricant de L’АРI. II s’agit de l'adresse de L’entrée ou de la sortie dans la mémoire de L’АРI. les
symboles standard définis par la norme CEI 61131-3 et utilisés pour les dispositifs d’entrées et de
sorties, sont représentés comme suit :
Figure 3.3 Symboles du LD
Les dispositifs électriques sont représentés dans leur condition normale. Ainsi, un interrupteur qui
est normalement ouvert jusqu’à ce qu’un objet le ferme est représenté ouvert sur le schéma à
contacts. Un interrupteur normalement ferme est représenté fermé.
Le nom de la variable associée à chaque élément et son adresse sont ajoutés au symbole. II est
préférable de choisir un nom descriptif (mnémonique), par exemple : interrupteur, moteurs...etc.
La Figure suivante présente le schéma a contacts de l’exemple 1, qu’il serait dessine avec les adresses au
format (a) Mitsubishi, (b) Siemens :
I0.0
Figure 3.4 Adressage des entrées/sorties pour (a) Mitsubishi, (b) Siemens
III.2.2 Portes logiques
Souvent dans l’industrie, on fait appel à des conditions logiques pour qu’une installation ou un dispositif
se mettent en marche. Il existe deux formes de symbolisation des portes logiques, l’une provenant des Etats-
Unis, l’autre étant un standard international (IEEE/ANSI), il s’agit d’un rectangle dans lequel est écrit la
fonction (voir la figure suivante).
Figure 3.5 Symbole de portes logiques, en haut USA, en bas IEEE/ANSI
Nous présentant dans ce qui suit quelques portes logiques et leur équivalent en LD :
Porte logique ET (AND) : utilisée par exemple dans le système de verrouillage d’une machine-outil
pour quelle ne démarre que si le dispositif de sécurité est en place et si elle est sous tension :
(a) (b) (c)
Figure 3.6 porte logique ET (a), équivalent LD (b), chronogramme (c)
Porte logique OU (OR) : L’entrée A ou L’entrée В doit être présente pour que la sortie soit présente,
par exemple : un circuit électrique dans lequel la sortie est alimentée lorsque I ‘interrupteur A ou I
‘interrupteur B ‘‘tous deux normalement ouverts’’, est fermé.
(a) (b) (c)
Figure 3.7 porte logique OU (a) équivalent LD (b), chronogramme (c)
II s’agit d’une porte logique NON {NOT) dans laquelle la sortie est présente lorsque l'entrée est absente, et
vice versa (voir Figure 5.11b). C’est pourquoi cette porte est parfois appelée inverseur.
Fonction NON (NOT) : appelée parfois inverseur, la sortie est présente lorsque l’entrée est absente,
et vice versa, par exemple dans un circuit électrique commande par un interrupteur normalement
ferme.
Figure 3.8 porte logique OU (a) équivalent LD (b), chronogramme (c)
Exercice : Etablir les chronogrammes des fonctions logiques : NON-OU, NON-ET et donner leur équivalent
LD
III.2.3 Le diagramme de schémas fonctionnels (FBD, Function Block Diagram)
II s’agit d’un langage graphique pour représenter les signaux et les données passant au travers de
blocs. Ces derniers sont des éléments logiciels réutilisables. Un bloc fonctionnel est une instruction du
programme qui, lorsqu’ elle est exécutée, produit une ou plusieurs valeurs de sortie, le nom de la fonction est
écrit dans la boite.
Figure 3.8 Bloc fonctionnel
Un bloc fonctionnel est tracé sous forme d’une boite rectangulaire, avec les entrées placées à gauche et les
sorties, à droite (norme CEI 61113-3). Le type du bloc est inscrit dans la boite, par exemple ET, tandis que
son nom dans le système apparait au- dessus, par exemple Temporisateur. Les noms des entrées des blocs
fonctionnels sont places à L’intérieur de la boite aux points d’entrées-sorties appropries. Des connexions
inter-schémas sont utilisées lorsque le trace des lignes graphiques serait complexe sans encombrer ou
compliquer le schéma. Les blocs fonctionnels peuvent mettre en œuvre des fonctions standard, comme ceux
qui correspondent aux portes logiques, aux compteurs et aux temporisateurs, ou des fonctions définis par
l’utilisateur. La Figures suivante montre des exemples de diagrammes de blocs fonctionnels.
Figure 3.8 Exemples de bloc fonctionnel
(a) Un compteur CTU qui produit une sortie sur Q lorsque le nombre d'impulsions sur L’entrée CU a
atteint la valeur fixée par PV. A chaque impulsion d'entrée, la sortie CV est augmentée de 1. L'entrée
R remet à zéro le compteur. Les libelles des entrées et des sorties indiquent le type du signal : BOOL
pour booléen et INT pour entier.
(b) Bloc défini par I ‘utilisateur pour calculer la moyenne de deux poids. II peut être réutilisé ensuite
dans d'autres blocs fonctionnels.
Exercice : Il s’agit d’établir un diagramme de schémas fonctionnels et de schéma a contacts pour une
application dans laquelle une pompe doit être activée pour pomper le contenu d’un réservoir lorsque le
bouton de mise en marche est ferme, lorsque le niveau du liquide dans le réservoir est en dessous du niveau
requis et lorsque le réservoir contient le liquide.
La solution peut être programmée par FBD (porte logique ET) ou schéma à contact (voir la figure suivante) :
A. Les temporisateurs
Pour nombre de caches de commandes, il esc necessaire de controler le temps. Par exemple, un moteur
ou une pompe peuvent avoir besoin de fonctionner pendant une duree precise ou d’etre mis en marche apres
un certain temps. C’est pourquoi les API disposent de temporisateurs integres. Les temporisateurs comptent
les secondes ou les fractions de seconde en utilisant I’horloge interne du CPU.
A.1- Différents type de temporisateurs
Il existe plusieurs type de temporisateurs : à I’enclenchement, au declenchement et a impulsion, La
Figure ci-aprés presente les symboles definis par la CEI. TON correspond aux temporisateurs a
l’enclenchement (egalement representes par T-0), TOF, aux temporisateurs au declenchement (egalement
representes par 0-T) et TP, aux temporisateurs a impulsion.
Figure 3.9 Différents type de temporisateurs
Avec dans la norme CEI 61131-1 : IN est I'entree booleenne, Q est la sortie booleenne, ET est la sortie de
temps ecoule, PT est l'entree qui precise le retard ou la duree de I'impulsion.
La temporisation definie est appelee preselection et correspond a un multiple de la base de temps.
Les bases de temps les plus frequentes sont 10 ms, 100 ms, 1 s, 10 s et 100 s. Ainsi, avec une preselection de
5 et une base de temps de 100 ms, la temporisation est de 500 ms.Voici les chronomgrammes des différents
temporisateurs :
Temporisateur a l’enclenchement (TON) : retarde la mise à « 1 » de la sortie Q de la durée
programmée PT. La temporisation est démarrée lorsque l'entrée IN passe de « 0 » à « 1 ». La durée PT
programmée commence à s'écouler au démarrage de l'instruction. Une fois la durée PT écoulée, la sortie
Q fournit l'état logique « 1 ». La sortie Q reste à 1 tant que l'entrée de démarrage fournit "1". Lorsque
l'état logique à l'entrée de démarrage passe de « 1 » à « 0», la sortie Q est remise à 0. La fonction de
temporisation est redémarrée lorsqu'un nouveau front montant est détecté à l'entrée de démarrage. Voici
un exemple de temporisateur TON pour API Siemens S300 (norme CEI)
Temporisateur au declenchement (TOF) : permet de retarder la mise à « 0 » de la sortie Q de la durée
programmée PT. La sortie Q est mise à 1 lorsque le résultat logique à l'entrée IN passe de « 0 » à « 1 ».
Lorsque l'état logique à l'entrée IN repasse à « 0 », la durée programmée PT démarre. Voici un exemple
de temporisateur TON pour API Siemens S300 (norme CEI).
Le temporisateur a impulsion (TP) : met la sortie Q à 1 pour une durée programmée. La temporisation
est démarrée lorsque l'entrée IN passe de « 0 » à « 1 » (front montant du signal). La durée PT
programmée commence à s'écouler au démarrage de l'instruction. La sortie Q est mise à « 1 » pour la
durée PT, indépendamment de l'évolution du signal d'entrée. Même la détection d'un nouveau front
montant du signal n'a pas d'influence sur l'état logique à la sortie Q tant que la durée PT n'est pas
entièrement écoulée. Voici un exemple de temporisateur TON pour API Siemens S300 (norme CEI).
B. Les compteurs
Un compteur est initialise a une valeur de preselection et, lorsque ce nombre d’impulsions d’entree a ete
recu, il actionne ses contacts. Les contacts normalement ouverts sont fermes, les contacts normalement
fermes sont ouverts. Dans les API, les compteurs sont disponibles sous forme d’elements integres et
permettent de compter le nombre d’occurrences des signaux d’entree. Cela peut servir a compter, par
exemple, des articles lorsqu’ils passent sur une bande trans- porteuse, le nombre de revolutions d’un axe ou
le nombre de personnes qui passent par une porte.
B.1 Différents type de compteurs
II existe deux types de compteurs : les compteurs degressifs et les compteurs progressifs :
Un compteur degressifs ou compteur decremental (CTD) : decompte a partir de la valeur
preselectionnee jusqu’a zero. Autrement dit, des evenements sont sous- traits de la valeur fixee.
Lorsque le compteur atteint zero, ses contacts changent d’etat. La majorite des API disposent de
compteurs degressifs.
Un compteur progressif ou compteur incremental (CTU) : compte à partir de zero jusqu’a la
valeur preselectionnee. Autrement dit, des evenements sont ajoutes jusqu’a ce que le cumul atteigne
la preselection. Lorsque le compteur atteint la valeur preselectionnee, ses contacts changent d’etat.
Certains API offrent dans une meme function une possibilite de comptage progressif et degressif. La Figure
suivante presente les symboles des compteurs tels que defmis par la CEI.
Figure 3.10 Différents types de compteurs, (a) compteur degressif, (b) compteur progressif et (c) compteur progressif-degressif.
Les Figures 3.11a et 3.11b montrent le programme pour un API d’Allen-Bradley avec des compteurs
progressifs et degressifs. Les termes suivants sont associes a ce type de compteurs :
- La valeur de preselection (PRE) correspond a la valeur que le compteur doit cumuler avant que sa
sortie ne soit mise a 1.
- La valeur cumulee (ACC) correspond au comptage du nombre de passages de 0 a 1 sur la ligne du
compteur.
- Le bit d’activation du comptage (CU) est à 1 lorsque la ligne du compteur progressif est a 1, et a 0
lorsque la ligne est a 0.
- Le bit d’activation du decomptage (CD) est a 1 lorsque la ligne du compteur degressif est a 1, et a 0
lorsque la ligne est a 0.
- Le bit de fin (DN) est a 1 pour les deux compteurs lorsque la valeur ACC est egale ou superieure a la
valeur PRE, et a 0 lorsqu elle est inferieure.
- Le bit de depassement superieur (OV) est a 1 lorsque le compteur progressif depasse la valeur
positive maximale.
- Le bit de depassement inferieur (UN) est a 1 lorsque le compteur passe en dessous de la valeur
negative maximale.
- La mise a zero (RES) remet a zero Гасситикгеиг du compteur. Tant que RES est a 1, ACC et tous les
bits de sortie sont maintenus a 0. Lorsque RES est a 0, le compteur est en mesure de compter.
Figure 3.10 compteur progréssif et dégréssif de l’API d’Allen Bradley
Exemple d’application : un circuit de comptage de base : Lors d’un front montant sur l’entrée El, le
compteur est mis à zero. Lors d’un front montant sur l’entree E2, le compteur se declenche. S’il est
configure pour, par exemple, dix impulsions, alors, apres dix impulsions sur l’’entree E2, c’est-a-dire dix
transitions de 0 a 1, les contacts du compteur se ferment et la sortie S1 est activee. Si, au cours du comptage,
une entree est presente sur El, le compteur est reinitialise et le cycle recommence pour dix impulsions.
III.2.4 Listes d'instructions (IL)
Les listes d’instructions sont un langage textuel de bas niveau simple à implémenter et utilisé par
nombre de fabricants d’API, principalement pour les modelés de petite et moyenne taille. Il s’agit d’un
langage textuel, c’est une méthode de programmation que l’on peut comparer à la saisie d’un schéma à
contacts sous forme d’un texte. Un programme écrit selon cette méthode est constitué d’une suite
d’instructions, chacune placée sur une nouvelle ligne. Chaque instruction est constituée d’un opérateur suivi
d’un ou plusieurs opérandes, c’est-à-dire les objets de I ’operateur. Par exemple :
LD A
Indique le chargement de I ’opérande A ; LD est I ‘operateur utilisé pour effectuer un chargement.
OUT Q
Indique qu’une sortie doit être produite sur Q
Les codes mnémoniques obéissent à la norme CEI 61131-3, le tableau suivant recense quelques
codes utilises par les fabricants :
Exemple : Voici un programme IL pour charger A dans le registre, faire une opération booléenne ‘‘ET’’ avec
une opérande B et stocker le résultat dans la sortie Q.
LD A (*Charger A*)
AND В (*ET B*)
ST Q (*Stocker le résultat dans Q, c-a-d sortie sur Q*)
Les mots entre parenthèses et précèdes et suivis par un caractère *, sont des commentaires qui expliquent
l’opération et ne font pas partie des instructions du programme.
III.2.5 Texte Structuré (ST)
Le texte structure est un langage de programmation qui ressemble énormément au langage Pascal.
Les programmes sont écrits sous forme d’une suite d’instructions séparées par des points-virgules. Il s’agit
d’instructions prédéfinies et de sous- routines qui permettent de modifier des variables, celles-ci étant des
valeurs définies, des valeurs mémorisées de manière interne ou des entrées et des sorties. Une instruction
d’affectation permet de modifier la valeur d’une variable, par exemple :
Lampe := InterrupteurA;
Cette instruction indique qu’une lampe (la variable), voit sa « valeur » modifiée, c’est-à-dire être allumée ou
éteinte, lorsque l’interrupteur A change sa « valeur », c’est-à-dire marche ou arrêt. Voici le format général
d’une instruction d’affectation :
X := Y;
La variable conserve la valeur qui lui a été affectée jusqu’ à ce qu’une autre affectation la modifie. Voici un
autre exemple :
Lampe := InterrupteurA OR InterrupteurB;
La lampe est allumée par l’interrupteur A ou par l’interrupteur B. La fonction ‘‘ET’’ existe également :
Marche := Vapeur AND Pompe;
La mise en marche se produit lorsque le détecteur de vapeur et la pompe sont actifs.
Le tableau suivant présente quelque opérateur utilisé dans un programme en ST, ainsi que leur priorité
relative lors de l'evaluation d’une expression.
Les parenthèses permettent de regrouper des expressions au sein d’autres expressions afin de fixer l’ordre
d’évaluation. Par exemple :
EntreeA := 6;
EntreeB := 4;
EntreeC := 2;
SortieQ := EntreeA/3 + EntreeB/(3 - EntreeC);
I ’expression (3 - EntreeC) est évaluée avant que sa valeur ne soit utilisée comme diviseur. La seconde partie
de I ‘expression de SortieQ devient donc 4/(3 — 2) = 4. Puisque la division est prioritaire sur l’addition, la
première partie de l’expression de SortieQ, 6/3, est évaluée avant l’addition. Autrement dit, la valeur de
SortieQ est 2 + 4 = 6.
Le langage ST comprend aussi des instructions conditionnelle du type ; If..Then..Else ainsi que d’itération :
For…Do…etc.
III.2.6 Graphe de fonction séquentielle (SFC, Sequential Function Chart) ou GRAFCET
Le terme graphe de fonction séquentielle (SFC, Sequential Function Chart) correspond a une
représentation graphique du fonctionnement d’un système afin de révéler I ’enchainement des évènements
qui conduisent à ce fonctionnement. Le fonctionnement est décrit par une suite d’étapes ou d’états distincts
relies séquentiellement et représentées par des rectangles. Chaque rectangle correspond à un état particulier
du système et où une action se produit.
Le grafcet c’est tout d’abord un outil graphique, puissant, directement exploitable, car c’est aussi un
langage pour la plupart des API existants sur le marché. Il comprend :
Des étapes associées à des actions ;
Des transitions associées à des réceptivités ;
Des liaisons orient´ees reliant ´etapes et transitions.
Afin d’illustrer le concept de grafcet, voyant celui qui décrit le fonctionnement d’une presse à emboutir :
Le fonctionnement : repos : position haute (et h à 1), action sur g et d → descente poinçon jusqu'à b→
remontée poinçon jusqu'à h →repos
Remarque : Il faut compléter ce grafcet par : l’arret d’urgence et la commande manuelle.
III.2.7 Description du GRAFCET
A. Les étapes
L’´etape symbolise un ´etat ou une partie de l’´etat du syst`eme. L’´etape poss`ede deux ´etats possibles :
active repr´esent´ee par un jeton dans l’´etape ou inactive. L’´etape i, rep´er´ee num´eriquement, poss`ede
ainsi une variable d’´etat, appel´ee variable d’´etape Xi. Cette variable est une variable bool´eenne valant 1
si l’étape est active, 0 sinon.
B. Les transitions
Cette condition est écrite sous forme d’une proposition logique, une fonction combinatoire calculée à partir :
o Des variables d’entr´ees traduisant l’´etat des capteurs, des boutons poussoirs, etc.,
o Du temps,
o De l’état courant des étapes du grafcet (les Xi).
Si la réceptivit´e n’est pas précisée, alors cela signifie qu’elle est toujours vraie.
Règle : si l’étape i est inactive, Xi = 0, la transition Tri est sans effet. Cependant, attention, valider sans
raison une transition peut avoir des cons´equences graves, perturbant le cycle dans certains cas.
C. Les liaisons orientées
Une liaison orient´ee est le lien qui lie une ´etape `a une transition ou l’inverse. Par convention, ´etapes et
transitions sont plac´ees suivant un axe vertical. Les liaisons orient´ees sont de simples traits verticaux
lorsque la liaison est orient´ee de haut en bas, et sont munis d’une fl`eche vers le haut lorsque la liaison est
orient´ee vers le haut.
D. Notation des entrées/sorties
Lors de l’´etablissement du grafcet de sp´ecification (grafcet de niveau 1), on utilise des noms explicites
pour les entr´ees du syst`eme modélisé ainsi que pour les sorties. Lors du passage au grafcet de r´ealisation,
on utilise plutˆot des noms logiques : Ei pour les entrées et Si pour les sorties.
E. Les actions
L’action associée à l’´etape peut ˆetre de 3 types : continue, conditionnelle ou mémorisée.
Actions conditionnelles
Une action conditionnelle n’est ex´ecut´ee que si l’´etape associ´ee est activeet si la condition associèe est
vraie. Elles peuvent ˆetre d´ecompos´ees en 3 cas particuliers :
D est la durée de la temporisation, c’est `a dire le retard mis pour passer à 1 aprés que Xi soit passé à 1.
On peut ainsi donner l’´equation d’un ordre A en fonction des ´etats des ´etapes, des conditions éventuelles
et du temps.
F. Les réceptivités
Une réceptivité est associ´ee à chaque transition. C’est une fonction bool´eenne calcul´ee `a partir des
entrées du graphe, des ´etats des ´etapes ou des temporisations. Une réceptivité est donc ´ecrite en utilisant
les op´erateurs ET, OU, NON et front. Le front montant ou descendant d’une variable permet de situer dans
le temps le changement de valeur de ce capteur. On les note respectivement E et ̅ E. Les fronts ne sont à 1
que durant un d´elai d, qui correspond au temps de prise en compte de l’évènement, c’est à dire le temps de
franchissement d’une transition.
G. Les temporisations
Les temporisations utilis´ees en GRAFCET font r´ef´erence aux variables d’´etapes (Xn). Une variable
temporisation Sn est une variable bool´eenne dont le mode d’´evaluation permet de prendre en compte le
temps. Elle peut s’´ecrire de mani`ere g´en´erale Sn = t1/Xn/t2 o`u :
La variable Xn (l’´etape n associ´ee) doit ˆetre active pendant un temps sup´erieur ou ´egal à t1 pour que Sn
puisse ˆetre ´evalu´ee.
III.2.8 Règles d’évolution du GRAFCET
Régle N°1 – Condition initiale : A l’ instant initial, seules les étapes initiales sont actives.
Règle N°2 – Franchissement d’une transition : Pour qu’une transition soit validée, il faut que toutes ses
étapes amont (immédiatement précédentes reliées à cette transition) soient actives. Le franchissement d’une
transition se produit lorsque la transition est validée, ET seulement si la réceptivité associée est vraie.
Règle N°3 – Evolution des étapes actives : Le franchissement d’une transition entraine obligatoirement
dans cet ordre-là d´désactivation de toutes ces étapes amont et l’activation de ses étapes aval.
Règle N°4 – Franchissement simultané : Toutes les transitions simultanément franchissables à un instant
donné sont simultanément franchies.
Règle N°5 – Conflit d’activation : Si une étape doit ˆêtre simultanément désactivée par le franchissement
d’une transition aval, et activée par le franchissement d’une transition amont, alors elle reste active. On
´évite ainsi des commandes transitoires (néfastes au procédé) non désirées.
A. Aiguillage entre deux ou plusieurs séquences
B. Saut d’étape et reprise de séquence
C. Parallélisme
D. Sous-grafcet ou séquence répétée
Dans un système automatisé, certaines s´séquences peuvent revenir de façon répétitive dans le cycle. Pour
éviter de répéter ces mêmes actions, il est possible d’utiliser un sous-programme. Celui-ci est écrit sous la
forme d’un grafcet indépendant, connecté au grafcet principal.
Au départ, les étapes initiales des deux grafcets sont activées. Dans le maitre, l’activation de l’´étape 4, X4 =
1, va activer le d´déroulement du grafcet esclave en validant la première transition, et provoquer le
déclenchement de la réceptivité X32. Dans l’esclave, l’activation de l’´étape 32, X32 = 1, provoque
l’apparition dans le maitre de la réceptivité X32 qui autorise le d´déroulement du programme principal, en
dévalisant X4. Cette étape 32 ”rend la main au maitre”.
III.2.9 GRAFCET de niveaux 1 et 2
A. GRAFCET de niveau 1 (du point de vue de la partie opérative)
C’est en général la description de l’automatisme seul, c’est `à dire l’enchaînement des actions et des
transitions permettant de contrôler le procédé. Lorsque l’on aborde l’analyse et la description d’un système,
on ne sait pas quelle technologie sera retenue pour les actionneurs, les capteurs et la commande. On décrira
dans ce GRAFCET les actions et les ´évènements en termes généraux.
B. GRAFCET de niveau 2 (du point de vue de la partie commande)
C’est la description complète de l’automatisme qui tient compte de toutes les contraintes du procédé. Les
points essentiels du GRAFCET de niveau 2 sont :
- la simplification du GRAFCET niveau 1, c’est à dire les parallélismes et les s´séquences répétées
- les modes de fonctionnement de l’automatisme, c’est `à dire la prise en compte de la marche
automatique, de la marche par cycle et de la marche manuelle utile pour la maintenance et les
réglages ;
- les arrêts d’urgence entrainant la coupure d’alimentation, l’utilisation d’une variable AU (si arrêt
d’urgence AU = 1) à rajouter dans les conditions logiques pour les différentes actions, une procédure
de d´engagement si AU = 0 ;
- les sécurités opérateur, c’est à dire la mise en place de protections, de commandes à deux mains, qui
doivent être activées pour le départ du cycle et pendant le cycle ;
- les s´sécurités procédé, c’est `à dire l’arrêt de l’automatisme si une condition anormale est détectée,
par exemple la d´détection d’un objet incorrect ou mal positionne ;
- les conditions initiales, c’est à dire les différentes positions au repos (au départ du cycle), l’état de
l’alimentation et l’ensemble des tests destinés à vérifier les conditions initiales.
II.3 Conception d’un programme
Quel que soit le langage dans lequel un programme va etre ecrit, une approche systématique du
probleme permet d’augmenter les chances d’arriver a une solution de haute qualité en un temps aussi reduit
que possible. La conception systematique se fonde sur les étapes suivantes :
1) La définition des besoins, en precisant les entrees et les sorties.
2) La definition de l’algorithme a utilisé. Un algorithme est une sequence pas à pas qui definit la
methode de resolution d’un probleme. II est souvent presentè sous forme d’un organigramme ou ecrit
dans un pseudo-code en utilisant les mots BEGIN, DO, END, IF-THEN-ELSE et WHILE-DO.
3) L’algorithme est ensuite converti en instructions, qui peuvent etre saisies dans I’API. Puisque les
programmes sont souvent tres longs et peuvent se reveler diffidles a ecrire sous forme d’un seul bloc
et encore plus difficiles a deboguer et a maintenir ulterieurement, il est preferable de les decomposer
en plusieurs niveaux de sections jusqu’a obtenir des blocs de taille agerable. Il s’agit de la
programmation structurée.
4) Le programme est ensuite teste et debogue.
5) Le programme est documente afin que les personnes qui I’utilisent ou qui doivent le modifier
ulterieurement comprennent son fonctionnement.
II.3.1 Organigramme et pseudo-code
La Figure 3.11a présente les symboles utilisés dans les organigrammes. Chaque etape d’un algorithme est
representee par un ou plusieurs de ces symboles, qui sont relies de maniere a indiqué le flux du programme
(voir Figure 3.11b). Le pseudocode est une maniere de decrire les etapes d’un algorithme de facon
informelle.
Figure 3.11 (a) Symboles d'un organigramme et (b) exemple d'organigramme simple.
Dans ce qui suit, nous allons voir différnents types de fonctionnements d’un programme, leurs
representation par un organigramme et leurs pseudo-code, puis leurs programmation a l’aide du langage a
contacts et du Grafcet :
– Sequentiel. Prenons une sequence dans laquelle l’evenement A doit etre suivi de I’evenement B.
Voici le pseudo-code correspondant :
BEGIN A
DO A
END A
BEGIN В
DO В
END В
La representation de ce fonctionnement sequentiel par : (a) un organigramme, (b) langage a conatct et
(c) Grafcet, est comme suit :
– Conditionnel. Prenons l’exemple d’un processus dans lequel l’action A ou l’action В se produit si
une condition X particuliere vaut OUI ou NON. Le pseudo-code qui decrit le fonctionnement fait
intervenir les mots IF-THEN-ELSE-ENDIF.
IF X
THEN
BEGIN A
DO A
END A
ELSE
BEGIN В
DO В
END В
ENDIF X
La representation de ce fonctionnement conditionnel par : (a) un organigramme, (b) langage a conatct et (c)
Grafcet, est comme suit :
– Boucle. Une boucle est une repetition d’une partie d’un programme qui se produit tant qu’une
condition est satisfaite. Voyons la representation de la repetition : Tant que la condition X est
remplie, la sequence action A suivie de Faction В se produit et se repete. Lorsque X n’est plus
satisfaite, le programme se poursuit et la boucle sur les actions A et В s’interrompt. En pseudo-code,
ce fonctionnement est represente à l’aide des mots WHILE-DO-ENDWHILE :
WHILE X
BEGIN A
DO A
END A
BEGIN В
DO В
END В
ENDWHILE X
La representation de cette boucle par : (a) un organigramme, (b) langage a conatct et (c) Grafcet, est comme
suit :
II.4 Exercices d’application
Chapitre 4. Télégestion - Télésurveillance
IV.1 Introduction
La télégestion et/ou télésurveillance, permettent la transmission d'informations entre des sites
géographiquement éloignés, à des fins de surveillance des installations et d'optimisation du processus. Les
récents progrès réalisés en matière de transfert des informations grâce aux réseaux de communication,
d'acquisition et de traitement des informations grâce à l'électronique, aux microprocesseurs et aux
équipements informatiques en général, permettent :
- L'assistance de l'opérateur dans ses actions de commande du processus de production (interface
IHM dynamique...)
- La visualisation de l'état et de l'évolution d'une installation automatisée de contrôle de processus,
avec une mise en évidence des anomalies (alarmes)
- La collecte d'informations en temps réel sur des processus depuis des sites distants (machines,
ateliers, usines...) et leur archivage.
- L'aide à l'opérateur dans son travail (séquence d'actions/batch, recette/receipe) et dans ses
décisions (propositions de paramètres, signalisation de valeurs en défaut, aide à la résolution d'un
problème ...)
- Fournir des données pour l'atteinte d'objectifs de production (quantité, qualité, traçabilité,
sécurité...)
IV.2 Systémes SCADA
Un système de contrôle et d’acquisition de données (SCADA) (anglais : Supervisory Control And Data
Acquisition, sigle : SCADA) est un système de télégestion à grande échelle, permettant de traiter en temps
réel un grand nombre de télémesures et de contrôler à distance des installations techniques.
IV.3 Domaines d'application
Le pilotage de grandes installations industrielles automatisées :
- métallurgie (laminoir ) production pétrolière (distillation),
- production et stockage agroalimentaire (lait, céréales...)
- production manufacturière (automobile, biens de consommation...)
Le pilotage d'installations réparties :
- alimentation en eau potable,
- traitement des eaux usées,
- gestion des flux hydrauliques (canaux, rivières, barrages...)
- gestion de tunnels (ventilation, sécurité)
La gestion technique de bâtiments et gestion technique centralisée (GTC) :
- gestion des moyens de chauffage et d'éclairage (économies d'énergie)
- gestion des alarmes incendies
- contrôle d'accès, gestion des alarmes intrusion
IV.4 Réseaux de communication et systémes SCADA
Un système SCADA doit pouvoir communiquer avec des ressources externes :
- Liaison matérielle locale (liaison série, carte spécialisée ASI, CAN...) vers une ressource
spécialisée (E/S distantes, automate...)
- Liaison matérielle de type standard (Ethernet) vers un matériel distant (E/S , automate...)
[éventuellement modifiée (Profinet)]
- Liaison radio (Bluetooth, ZigBee, WiFi) vers des E/S spécialisées
- Liaison avec un autre module logiciel local (IHM, tableur, base de donnée, serveur Web... )
- Liaison avec un autre module logiciel distant (serveur de données, serveur SQL autre
superviseur, logiciel MES...)
IV.5 Fonctions des systémes SCADA
IV.4.1. Synoptique
C’est une fonction essentielle de la supervision, fournit une représentation synthétique, dynamique et
instantanée de l'ensemble des moyens de production de l'unité, elle permet à l'opérateur d'interagir avec le
processus et de visualiser le comportement normal et/ou anormal.
IV.4.2. Courbes
Elles donnent une représentation graphique de différentes données du processus ainsi que les outils
d'analyse des variables historisées.
IV.4.3. Alarmes
Dans un systéme SCADA, elles permettent :
- Le calcule en temps réel les conditions de déclenchement des alarmes
- L’affichage de l'ensemble des alarmes selon des règles de priorité,
- Les outils de gestion depuis la prise en compte jusqu'à la résolution complète
- L'enregistrement de toutes les étapes de traitement de l'alarme
IV.4.4. Historisation du procédé
La fonction d’historisation permet :
- La sauvegarde périodique de grandeurs (archivage au fil de l'eau)
- La sauvegarde d'événements horodatés (archivage sélectif)
- Fournit les outils de recherche dans les données archivées
- Fournit la possibilité de refaire fonctionner le synoptique avec les données archivées (fonction de
magnétoscope ou de replay)
- permet de garder une trace validée de données critiques (traçabilité de données de production)
IV.4.5. Gestion des gammes de fabrication
Un systéme SCADA
- Donne un outil de gestion des lots de fabrication (batchs)
- Gère les paramètres de réglage des machines pour chacun des lots
La figure suivante résume les principales fonctions de la supervison :
Figure 4.1 Fonctions de la supervision
IV.4.6. Principales fonctionnalités d’un système de Supervision :
Un système SCADA comprend 2 sous-ensembles fonctionnels : la commande et la surveillance.
A) La commande
Le rôle de la commande est de faire exécuter un ensemble d'opérations (élémentaires ou non suivant le
niveau d'abstraction auquel on se place) au procédé en fixant des consignes de fonctionnement en réponse à
des ordres d'exécution. Il s'agit de réaliser généralement une séquence d'opérations constituant une gamme
de fabrication dans le but de fabriquer un produit en réponse à une demande d'un client.
La commande regroupe toutes les fonctions qui agissent directement sur les actionneurs du procédé qui
permettent d’assurer :
- le fonctionnement en l'absence de défaillance,
- la reprise ou gestion des modes,
- les traitements d'urgence,
- une partie de la maintenance corrective.
Et en marche normale :
- L'envoi de consignes vers le procédé dans le but de provoquer son évolution.
- L'acquisition de mesures ou de compte-rendus permettant de vérifier que les consignes envoyées
vers le procédé produisent exactement les effets escomptés.
- L'acquisition de mesures ou d'informations permettant de reconstituer l'état réel du procédé et/ou
du produit.
- L'envoi vers le procédé d'ordres prioritaires permettant de déclencher des procédures de sécurité
(arrêts d'urgence par exemple)
B) La suveillance
La partie surveillance recueille en permanence tous les signaux en provenance du procédé et de la
commande, reconstitue l'état réel du système commandé, fait toutes les inférences nécessaires pour produire
les données utilisées pour dresser des historiques de fonctionnement et enfin met en oeuvre un processus de
traitement de défaillance le cas echéant. La surveillance a donc un rôle passif vis-à-vis du système de
commande et du procédé.
Les prinncipaux objectifs de la partie surveillance sont :
- La recherche des causes et conséquences d'un fonctionnement non prévu ou non contrôlé
- L'élaboration de solutions permettant de pallier le fonctionnement non prévu
- La modification des modèles utilisés pendant le fonctionnement prévu pour revenir à ce
fonctionnement : changement de la commande, réinitialisations, etc.,
- La collaboration avec les opérateurs humains pour les prises de décision critiques, pour le recueil
d'informations non accessibles directement et pour l'explication de la solution curative envisagée ou
appliquée
- La détection d'un fonctionnement ne correspondant plus à ce qui est attendu.
En résumé, le système de surpervision contrôle et surveille l'exécution d'une opération ou d'un travail
effectué par d'autres sans rentrer dans les détails de cette exécution.
En fonctionnement normal, son rôle est surtout de prendre en temps réel les dernières décisions
correspondant aux degrés de liberté exigés par la flexibilité décisionnelle. Pour cela, il est amené à faire de
l'ordonnancement temps réel, de l'optimisation, à modifier en ligne la commande et à gérer le passage d'un
algorithme de surveillance à l'autre.
En présence de défaillance, la supervision va prendre toutes les décisions nécessaires pour le retour vers un
fonctionnement normal. Après avoir déterminé un nouveau fonctionnement, il peut s'agir de choisir un
solution curative, d'effectuer des réordonnancements "locaux", de prendre en compte la stratégie de
surveillance de l'entreprise, de déclencher des procédures d'urgence, etc.
IV.6 Cahier des charges externe d’un système SCADA
Il s’agit d’accéder aux informations (lecture et écriture ) des unités de traitement (automates, régulateurs,
chaînes d’acquisition, cartes E/S, systèmes d’identification, terminaux...) en temps réel. Ces périphériques
sont généralement hétérogènes (communications physiques diverses) :
- liaison série standard RS 232 ou RS485
- liaison dédiée (ASI, CAN, Profibus)
- réseau Ethernet…protocoles différents
- Modbus ASCII, RTU, TelWay
- CanOpen, DeviceNet
- UDP, TCP/IP, ModbusTCP ...
Il s’agit aussi de ‘‘visualiser’’ les informations dans une interface HMI du type graphique réactif aux
données et interactif avec l'opérateur. L’environnement graphique peut être propriétaire (logiciel graphique
intégré au superviseur) ou standard (utilisation d’une interface de type navigateur Web). La visualisation est
répartie sur plusieurs postes graphiques distants pour les applications de grande dimension.
Un systéme SCADA doit pouvoir :
- Calculer des grandeurs définies par des formules et/ou des séquences d’évènements
- Détecter prioritairement les situations d ’alarme, gérer les alarmes multiples, lancer les actions sur le
processus et prévenir les opérateurs, y compris à distance (envoi de sms, mails, appel téléphonique
automatique)
- Gérer la prise en compte des alarmes par les opérateurs (acquittement)
- Donner les moyens de contrôle direct des opérateurs sur le processus (forçage)
- Fournir des recettes [recipe] pour les changements de gamme de fabrication
- Enregistrer les valeurs des variables et les actions des opérateurs en vue d’une analyse ultérieure des
incidents (mode magnétoscope)
- Archiver sélectivement les données (grandeurs sources, variables internes calculées, commandes,
alarmes) et permettre la traçabilité
- Donner des outils d’analyse de données en vue d’une analyse visuelle, d'une exploitation statistique
(MTBF, MTTR, TRS…) ou d’une correction du processus (Maîtrise Statistique de la Qualité..)
En plus il doit aussi gérer la sûreté de fonctionnement :
- sûreté interne des programmes
- sûreté de la machine support du superviseur
- identification de l’utilisateur
- sûreté vis à vis des demandes de l’utilisateur (verrouillage de fonctionnalités suivant le niveau
hiérarchique de l’utilisateur)
- sûreté des communications (détection des défauts de mise à jour des variables) et gestion
automatique de la redondance matérielle ou logicielle
IV.7 Architecture matérielle d’un systéme de supervision
IV.8 Exemples de superviseurs commerciaux