Chapitre 3
Automates Programmables Industriels A.P.I
1. Introduction
Les API sont apparus aux états unis vers 1969, ou ils répondaient aux désirs des industriels de
l’automobile de développer des chaines de fabrication automatisées qui pourraient suivre l’évolution
des techniques et des modèles fabriqués.
En France les premiers API sont apparus sur le marché vers 1971. L’API est substitué aux armoires à
relais en raison de sa souplesse (mise en œuvre, évolution), et dans les automatismes de commande
complexe, car les couts de câblage et de mise au point étaient devenus très élevés.
Le cahier des charges de ceux-ci comprend des spécifications des conditions d’utilisation en milieu
industriel perturbé, le nombre d’E/S industrielles, la simplicité de mise en œuvre par le personnel et les
couts de développement des automatismes, ce qui le met comme une solution potentielle.
2. Apport des API
Les principales avantages de L’API par rapport au projet d’automatisation se résume essentiellement à :
2.1. Au plan conception installation
La vocation de l’API est d’être un outil proche de l’utilisateur car il est doté d’un dispositif de dialogue
(console de programmation), adapté au mode de pensée et aux besoins du technicien de procédé.sa
structure, le symbolisme souvent proche de représentations traditionnelles da la logique câblée, en
font un outil directement accessible. Les auxiliaires associés (mémoire, imprimante) sont autant
facilités que l’utilisateur découvrira en bout de très peu de pratique et dont il appréciera l’apport.
2.2. Au plan exploitation-maintenance
L’exploitation des automatismes séquentiels conçus autour d’un API peut être adaptée au contexte de
l’entreprise par la puissance des fonctions offertes par ces machines.
Le dialogue avec l’opérateur peut être organisé à différents niveaux garce à des dispositifs standards
(console de programmation, unité de dialogue en ligne, etc.) ou à l’aide de modules spécialisés.
La possibilité de changer de programmes pour faire face à de nouvelles conditions d’exploitations. Il est
aussi possible de confier aux API la mission de diagnostic sur le fonctionnement du procédé pour aider
à localiser et identifier les pannes.
3. Domaines d’utilisation des API
Les API sont destinés à des applications que l’on trouve dans la plupart des secteurs industriels et dans
le domaine de l’enseignement ou ils ont une valeur pédagogique certaine.
- Métallurgie et sidérurgie
- Mécanique et automobiles
- Industries chimiques
- Industries pétrolières
- Industries agricoles et alimentaires
- Transport et manutention
- Application divers
4. Architecture des Automates Programmables
4.1. Organisation matérielle d’un API
L’API est constitué d’un processeur et d’une mémoire. Un ensemble de dispositifs forment l’API et
assurent les fonctions :
- La circulation interne des informations
- La communication avec l’extérieur
- La synchronisation et l’enchainement des taches
- Les adaptations physiques des signaux
L’unité centrale est l’ensemble des dispositifs nécessaires au fonctionnement logique interne de l’API.
Les entrées/sorties est l’ensemble des constituants permettant l’échange d’informations entre l’API et
le monde extérieur (procédé).
4.2. Echange des informations : Notion de bus
L’UCT est le siège de flux permanents d’informations car il doit traiter de nombreuses opérations : mise
en forme (conversion, transcodage, …), calculs, synchronisation etc.., les informations concernées par
ces opérations peuvent être des données significatives ou des informations de services utilisées par
l’API pour assurer son propre fonctionnement ou celui de l’un de ses auxiliaires.
Ces flux de données quelque soit leurs nature empruntent un chemin commun, le bus qui relie entre
toutes les unités fonctionnelles : mémoires, processeur, coupleurs d’E/S…
La capacité du bus est adaptée aux informations qui y circulent : mot mémoire, adresse, signaux de
contrôle.
La spécialisation de la mémoire n’est pas une contrainte pour l’utilisateur. Au contraire, elle le
décharge complètement des procédures d’E/S industrielles qui vont être gérées par la machine.
Lorsque celle-ci trouve une variable Ui dans une équation, elle se charge d’acquérir la valeur
correspondante. S’il s’agit d’une variable Xi la recherche en mémoire. Quand le résultat d’une équation
est affecté à une variable Xj, elle la range en mémoire. Cependant pour une variable codée Yi, elle
effectue une sortie.
Figure 1. L’API et son environnement
4.3. Processeur Uc
C’est l’ensemble fonctionnel chargé d’assurer le contrôle de l’ensemble et d’effectuer les traitements
demandés par les instructions des programmes.
a. Les registres
Le processeur est organisé autour d’un certain nombre de registres. Un registre est une mémoire
rapide à semi conducteur complétée de dispositifs logiques permettant la manipulation des
informations qu’elle contient ou leur combinaison avec des informations extérieures.
Certains registres sont utilisés par la machine seulement, d’autres sont accessibles à l’utilisateur
(implicitement ou explicitement).
a1. Registres internes
- Le compteur ordinal : pointeur
Contient en permanence l’adresse de l’instruction en cours d’exécution (zone mémoire où est
rangé le programme actuellement actif).
- Le registre instruction :
Il reçoit de la mémoire centrale le code opération (c.o), de l’instruction à exécuter, désigné par le
compteur ordinal.
- Le registre adresse :
Il reçoit parallèlement au registre instruction la partie adresse opérande (A.O) de l’instruction
chargée depuis la mémoire centrale. Cette instruction est, en général, l’adresse de l’opérande
concernée.
Il existe des registres d’état.
a2. Les registres généraux accessibles à l’utilisateur :
- Registre index : Base d’adresse indexée
- Registre accumulateur A : ou s’effectuent les opérations du jeu d’instructions de l’Uc
- Registre accumulateur B : extension du registre A
Les piles :
Elles sont constituées d’un ensemble ordonné d’informations et d’une politique de leur acquisition
(empilement) et de leur restitution (dépilement). Elle peut être réalisée de registres câblés ou de mots
mémoires gérés par un logiciel spécialisé politique : LIFO – FILO – FIFO.
Circulation des informations :
Les flux d’informations circulant dans l’Uc ou échangés avec l’extérieur suivent des chemins spécialisés. La
réalisation des routes est conditionnée par le contenu des registres internes, par les signaux de service émis
par l’horloge. Les transferts se font en parallèle, leur gestion est conçue pour éviter la collision des
informations et leurs dégradations (perte). L’intégrité des informations échangées est testée après chaque
transfert.
Figure 2. Structure générale de l’unité de commande et du traitement UC d’un API
5. Technologie câblée, microprogrammation et microprocesseur
La technologie du processeur était câblée, composée de circuits logiques exécutant des opérations
booléennes de base. L’intégration technologique depuis une cinquantaine d’année a permis de disposer de
modules fonctionnels complexes sous forme de circuits intégrés : registre accumulateur, index, compteur
ordinal. L’unité de traitement se présente sous forme d’une carte de circuits imprimés, matérialisant le
câblage, sur laquelle sont insérés les circuits intégrés. Ce qui permet de disposer, sur un volume réduit, des
fonctions de plus en plus importantes. Elle rend la conception des UC à la fois plus simple (min de
composants) et plus complexe (multiplicité de fonctions) particulièrement la mise au point, la correction
ou l’adjonction de fonctions.
Il s’est avéré intéressant de franchir une étape supplémentaire dans le concept de logique programmable
dans ce cas, l’exécution d’une instruction machine, au lieu d’être physique, par la mise en œuvre directe
par les circuits intégrés, est réalisée une suite d’instructions constituant un microprogramme. Les micro-
instructions qui le constituent sont exécutées sur une micromachine appelé microprocesseur (μp). Une
mémoire particulière dite mémoire de commande, associé au μp contient l’ensemble des
microprogrammes qui simule le jeu d’instructions.
Figure 3. Logiques programmables : Technologie câblée et Technologie microprogrammée
6. la mémoire centrale
La mémoire d’un système informatique est habituellement divisée en deux parties : la mémoire centrale
contenue dans l’UCT et la mémoire de masse située en périphérique (disque dur mobile, flash disque, CD…)
6.1. Rôle de la mémoire centrale
Elle est conçue pour contenir toutes les informations nécessaires au fonctionnement du système et son
exploitation, une partie est réservée au logiciel développé et fourni par le constructeur, pour faciliter la
mise en œuvre du système.
La mémoire centrale contient également le logiciel d’application, ensemble des programmes réalisée par
l’utilisateur en cours d’exploitation du système. Elle mémorise les données, constantes et variables utilisées
et produites au cours d’élaboration des programmes d’applications.
La mémoire dialogue donc avec le processeur d’une part et avec les organes d’E/S d’autre part.
6.2. Notion d’adresse
La juxtaposition de plusieurs mots constituent une méoire.la capacité de la mémoire est définie par le
nombre de mots qu’elle contient. L’unité de mesure est soit : le kilo-mot, le méga-mot, le giga-mot :
1 kilo-mot = 1024 mots
1 méga-mot = 1024*1024 mots =
1 giga-mot = 1024*1024*1024 mots =
Chaque est identifiée de manière précise par son adresse. Une mémoire d’1 kilo-mot possède 1024
adresses de 0 à 1023.
6.3. Techniques d’adressage : modes d’adressage
Les modes d’adressage ont évolué pour permettre plus de souplesse et de sécurité au cours des
manipulations des instructions dans des volumes de plus en plus grands.
La technique traditionnelle utilisée est proche de l’organisation matérielle du système. Les paramètres sont
contenus dans l’instruction à utiliser.
0 3 4 5 6 7 8 15
Code opération Type Typa Adresse opérande
d’opération d’dresse
Tab 1. Structure générale d’une instruction
6.4. Modes d’adressage
- Adressage immédiat : l’opérande se trouve directement dans la zone réservée à l’adresse de l’opérande.
- Adressage relatif : la zone adresse contient un nombre positif ou négatif qui doit être algébriquement
additionné à l’dresse actuelle c.à.d au contenu du compteur ordinal) pour obtenir l’adresse effective.
- Adressage absolu : l’adresse opérande est celle qui figure dans la zone correspondante.
- Adressage indirect : il est utilisé pour rendre étendre le volume mémoire adressage. La zone adresse
opérande indique l’adresse d’un mot ou se trouve contenue l’adresse effective.
- Adressage indexé : dans ce cas on fait appel à un index ou un registre général, chargé d’un nombre entier
qui s’ajoute algébriquement à l’adresse opérande de l’instruction.
- Adressage combiné : faire appel à des combinaisons des modes d’adressages précédents. Exemples :
adressages pré- ou post- indexés.
6.5. Organisation et gestion de la mémoire des API
Un programme et ses données doivent être présents en mémoire centrale. Généralement la mémoire
utilisateur est disponible à la fois pour les programmes et les données, on dit qu’elle est banalisée.
La lecture d’un mot binaire ne permet de savoir sans être spécifié par une autre information, s’il s’agit
d’une instruction ou d’une donnée.
Les programmes résident en mémoire d’un API pendant des temps relativement longs. La stabilité des
applications exécutables et les impératifs d’efficacité et de sureté de fonctionnement ont conduit à
spécifier leur mémoire centrale.
a. Structure de la mémoire
Une première zone de la mémoire est réservée au système d’exploitation et aux informations
associées. Elle est organisée en mots. Sa capacité varie en fonction du volume du logiciel de base.
La zone programme reçoit les programmes d’application. Elle est organisée en mots. Un
programme y est repéré par l’adresse de sa première instruction ou par un code définissant son
nom.
La zone de données est divisée en une partie recevant les variables acquises, tendis qu’une
seconde mémorise les variables intermédiaires, résultats de traitements devant servir
ultérieurement.
Une troisième partie contenant les valeurs de sorties à transmettre aux actionneurs.
b. Capacité et extensibilité de mémoire
Les premières générations d’API avaient de mémoires d’assez faibles capacités. Différents facteurs
contribuaient à cet état de fait : les simples problèmes traités à cette époque, le cout des mémoires
ainsi que les limites technologiques. Le nombre d’instructions étaient par conséquent très limité
(réduit) de 4 à 30 instructions au maximum.
Bien entendu, la technologie permet maintenant, à faible cout, de passer une architecture plus
étendue (32 et 64 bits). Il est clair que non seulement la capacité mémoire qu’en bénéficie, mais aussi
l’adressage est encore étendu, la partie calcul a évolué et le jeu d’instruction s’est nettement enrichi.
7. Fonctionnement du processeur central
Pour comprendre le fonctionnement d’un automate, il est nécessaire d’examiner le traitement d’une
instruction et d’une équation logique. Prenons l’exemple de l’automate dit ‘LEM’ défini par :
7.1. Présentation de l’automate LEM
Soit un petit automate dont les caractéristiques sont :
a. Jeu d’instructions
Le LEM possède les instructions décrites dans le tableau suivant :
Nature de Code Code Fonction réalisée
l’instruction mnémonique interne
Instruction de SI 0001 Test d’ne variable
chargement SI/ 0010 Test du complément d’une variable
Instructions ET 0011 Fonction ET
logiques ET/ 0100 ET avec complément de la variable
OU 0101 Fonction OU
OU/ 0110 OU avec complément de la variable
Instructions OUT 0111 Affectation d’nue valeur à une variable
d’affectation OUT/ 1000 Affectation du complément
Instructions TEM Temporisation d’une variable
particukières COM Comptage
NOP 0000 Pas d’opération (code nul)
Tab2. Jeu d’instructions de l’automate ‘LEM’
Le format de l’instruction à 13bits est donné par :
12 11 10 9 8 7 6 5 4 3 2 1 0
Code opération Adresse de l’opérande
C.O (4 bits) A.O (9 bits)
Figure 3. Format de l’instruction de l’automate LEM
b. Organisation de la mémoire
La zone d’adresse de l’instruction de cet API permet d’adresser 29 – 512 bits, nous admettons qu’il peut
traiter 128 entrées ui, 128 sorties Yj et qu’il est doté de 256 bits réservés aux variables intermédiaires Xk.
Dans ces conditions, la mémoire de données comprend 512 bits en octalde ‘0 à ‘777selon le schéma ci-
après.
‘0
128 entrées UI
‘200 ‘177
128 sorties Yj
‘400 ‘377
256 mémoires internes Xk
‘777
Figure 4. Organisation de la mémoire de données
La mémoire programme comporte 1024 mots de 13 bits, d’adresses de ‘0 à ‘1777.
c. Architecture d’une instruction
Le processeur central comprend un compteur ordinal ou pointeur P (registre à 10 bits) qui adresse
l’instruction en cours d’exécution en registre d’instruction I de 13 bits et en accumulateur logique
A qui, avec son bit unique, sert dans tout le traitement logique.
Enfin, une pile de 4 bits de type LIFO (last input first output) permettra de trater les opérations en
chaine.
7.2. Déroulement d’une instruction
Pour examiner comment s’exécute une instruction de chargement de l’accumulateur par une variable
d’entrée :
SI U3
Si on suppose que l’instruction est contenue dans le mot d’adresse ‘1000 ; la variable U3 désigne l’entrée
N° 3. L’opération se déroule en trois étapes :
Figure 5. Exécution d’une instruction
a. Recherche de l’instruction
Le pointeur P contient l’adresse de l’instruction en cours à exécuter ‘1000. P comprend 10 bits et est
complété à gauche de 2 bits fictifs égaux à 0 afin de permettre la transcription en octal. ‘1000 correspond à
001 000 000 000. La logique de contrôle du processeur demande et exécute le transfert du contenu
correspondant dans le registre instruction I. Lequel contient alors le mot : 0001 000000011 équivaut à S1
U3
b. Recherche de l’opérande
Le décodage des 4 bits C.O reconnait l’instruction de chargement S1. Le processeur va ensuite charger A
par le contenu de l’adresse spécifiée par la partie A.O. cette dernière est chargée dans le registre d’adresse
S. qui autorise l’accès à la mémoire commande correspondante : zone des variables d’entrée, bit N° 3. La
logique commande le transfert du contenu de cette mémoire dans l’accumulateur. Le code S1 n’implique
ce qui signifie le code S1.
c. Incrémentation du compteur P
Le contenu de P est incrémenté de +1 pour adresser l’instruction suivante.
7.3. Exemple de traitement d’une équation logique
Soit l’équation booléenne suivante :
Y1 = (U1 + U2). (ῡ3.X1 + X3. ῡ8)
U1 U3 X1
Y1
11
U2 X2 U8
11
Cette équation logique se programme de la manière suivante : 11
Numéro de Code Commentaire 1
l’instruction
0 SI U1 Test de l’entrée U1
1 OU U2 OU avec l’entrée U2
2 SI/ U3 Test du complément de l’entrée U3
3 ET X1 ET avec la mémoire X1
4 SI X2 Test Dde la mémoire X2
5 ET/ U8 Test du complément de l’entrée U8
6 OU ῡ3.X1 + X3. ῡ8
7 ET ET entre le résultat du OU ci-dessus et l’expression U1 + U2
8 OUT Y1 Sortie du résultat du ET vers Y1
On choisit par exemple d’implanter les variables aux adresses respectives suivantes :
U1 : ‘001
U2 : ‘002
U3 : ‘003
U4 : ‘010
X1 : ‘401
X2 : ‘402
Y1 : ‘201
Si on suppose que le programme est chargé à partir du mot mémoire d’adresse ‘0, le contenu des
9 premiers mots de mémoire est donné par le tableau suivant :
Adresse
C.O A.O
‘0 0 0 0 1 0 0 0 0 0 0 0 0 1
‘1 0 1 0 1 0 0 0 0 0 0 0 1 0
‘2 0 0 1 0 0 0 0 0 0 0 0 1 1
‘3 0 0 1 1 1 0 0 0 0 0 0 0
‘4 0 0 0 1 1 0 0 0 0 0 0 1 0
‘5 0 1 0 0 0 0 0 0 0 1 0 0 0
‘6 0 1 0 1
‘7 0 0 1 1
‘10 0 1 1 1 0 1 0 0 0 0 0 0 1
Tab 4. Contenus des neuf premiers mots mémoires
L’exécution du programme se fait instruction par instruction. Le résultat de chaque instruction se
trouve dans l’accumulateur. Si un chargement de A est demandé par une instruction OUT ou
OUT/ , contenu de A sera chargé dans la pile LIFO pour faire place à l’information dont le
chargement est demandé. Pour réaliser une opération entre le contenu de A et celui du haut de la
pile LIFO, on utilise les codes opérations avec un adressage implicite de la pile. Le tableau ci-
dessous présente le déroulement étape par étape du programme.
N° de 0 1 2 3 4 5 6 7 8
l’instruction
Adresse de ‘0 ‘1 ‘2 ‘3 ‘4 ‘5 ‘6 ‘7 ‘10
l’instruction
Code SI U1 OU U2 S1/ U3 ET X1 SI X2 ET/ U8 OU ET Y1
Contenu de A U1 U1 + U2 ῡ3 ῡ3.X1 X2 X2 . ῡ8 X2 . ῡ8 (X2 . ῡ8 (X2 . ῡ8 +
+ + ῡ3.X1). (U1+U2)
ῡ3.X1 ῡ3.X1). Y1
(U1+U2)
Contenu de la U1 + U2 U1 + U2 ῡ3.X1 ῡ3.X1 U1 + U2
pile LIFO
U1 + U2 U1 + U2
Tab 5. Exécution du programme