Vous êtes sur la page 1sur 10

Université A.

Mira-Bejaia M1 Automtismes Industiels


Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

Chapitre III : Généralité sur la programmation des A.P.I

L’étude des API fait partie de la discipline « Informatique Industrielle » qui utilise les
théories de l’automatique et les moyens de l’informatique dans le but de résoudre des
problèmes de nature industriels.

III.1) Définition d’un API (Norme NFC 63-850):


C’est un appareil électronique qui comporte une mémoire programmable par un
utilisateur automaticien à l’aide d’un langage adapté. Il est destiné à piloter en ambiance
industrielle et en temps réel, des procédés logiques séquentiels.

III.2) Historique des API:


Les API sont apparus aux U.S.A vers 1969, où ils répondaient aux désires des
industries de l’automobile de développer des chaînes de fabrications automatisées qui
pourraient suivre l’évolution des techniques et des modèles fabriqués.
Les premiers produits des API sont de marque MODICON et ALLEN-BRADLEY aux
USA 1969. En France 1971, par EDF, MERLIN-GERIN et ALSPA.
L’API s’est ainsi substitué aux armoires à relais en raison de sa souplesse (mise en
œuvre et évolution), mais aussi parce dans les automatismes de commande complexe, les
coûts de câblage et de mise au point devenaient top élevées.

III.3) Les langages des API:


Aux USA, les problèmes de logique (en industrie) ont été résolus par des armoires à
relais, puis par des mini-ordinateurs et en fin des API. En Europe, on a utilisé les armoires à
relais, puis la logique statique (portes logique) et en fin la logique programmable (API).
Chaque marque API a un langage spécifique, malgré les ressemblances qui existent.
Les langages des API peuvent êtres classés en deux groupes :
III.4) Les des langages graphiques:
Ils ont été les premiers utilisés sur les API et le plus ancien est le langage (schéma) à
relais, (Ladder en Anglais). Les autres langages graphiques sont: le langage (schéma) booléen
ou le Logigramme (FBD: function block diagramm) et le GRAFCET (SFC: sequentiel
fonction chart).
III.4.1) Le langage à relais (LD, Ladder):
Il a été créé par des américains à partir des schémas (électriques) à relais. L’intérêt
principal est le passage presque direct de la logique câblée à celle programmée. Les
constituants du schéma à relais sont aux nombre de cinq et ils sont récapitulés dans le tableau
ci-dessous:
Types de Convention Convention Signification
constituants américaine européenne
a a Relais normalement ouvert.
Constituants a a Relais normalement fermé.
logiques
Ouverture de branche parallèle.
Fermeture de branche parallèle.
Symbole Affectation du résultat à une
X ou Y X ou Y
d’affectation variable interne (X) ou de sortie
(Y).

1
Université A. Mira-Bejaia M1 Automtismes Industiels
Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

24 V 0V
Matérialisation de l’opérateur « ET » Y= a.b : a b Y

Matérialisation de l’opérateur « OU » Y= a+b : a Y


b

Exemple : programme Ladder d’un API de marque MODICON.

Il utilise un format à cinq constituants. Les quatre premières positions A, B, C, D de la


ligne sont réservées aux constituants logiques, la dernière position est le symbole
d’affectation identifiant par un numéro de ligne et la variable intermédiaire (mémoire de
travail) ou la variable de sortie (commande du procédé) à positionner suivant la logique
programmée.
Constituants logiques Symbole
d’affectation
A B C D mémoire/sortie
1010 1011 1013
0100

1012

0100 1020
0016
0110 1021

La ligne 0100 positionne la mémoire intermédiaire numéro 0100 à 1 si les entrées 1010 et
1011 sont respectivement à 1 et à 0 ou si 1012 est à 1, et si 1013 est à 1. Cette ligne
correspond à l’équation booléenne: A.B  C .D  0100 , dans laquelle [0100] indique le
contenu de la mémoire d’adresse 0100.

Afin de compenser la limitation en nombre de termes par ligne, il a été prévu la


possibilité de chaînage. C’est le cas dans l’exemple : la variable intermédiaire [0100]
conditionne la mise à 1 de la sortie 0016 qui commande le procédé. On retrouve la même
utilisation d’une variable intermédiaire [0110], résultant d’une équation non figurée dans le
schéma, qui valide l’entrée complémentée 1021. Sur MODICON les variables intermédiaire
sont codées 0xxx.
En langage ladder l’exécution se fait ligne par ligne à chaque cycle. Une ligne est elle-
même exécuté de gauche à droite.

2
Université A. Mira-Bejaia M1 Automtismes Industiels
Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

III.4.2) Le langage booléen (logigramme), (FBD : function block digramm):


Il a été développé en Europe. Il permet de programmer sur un API les équations
(logique) d’un automatisme sous forme d’un schéma logique (portes logiques et bascules).
Puisque, la représentation la plus adéquate du fonctionnement d’un automatisme est le
GRAFCET, alors tous les langages peuvent êtres un codage ou une matérialisation de ce
dernier. En particulier, le langage FBD est un programme (schéma logique) des équations
représentant les réceptivités, les étapes et leurs actions associées par des portes logique et des
bascules.
- Les réceptivités sont réalisées par des portes logiques (AND, OR, NO, …).
- Les étapes sont réalisées par un enchaînement de bascules (mémoires) (RS, JK).
Le branchement des éléments dépend de la structure du GRAFCET (branche unique, branches
multiples).
Un tel circuit (portes logiques et bascules) est appelé séquenceur, car il matérialise un
procédé à fonctionnement séquentiel.
A) Branche unique :
Le principe est le suivant : On active la bascule de l’étape suivante « i » (Xi=1) que si
la bascule de l’étape précédente « i-1» est déjà dans l’état « 1 » (Xi-1=1) et si la réceptivité
associé est égale à « 1 » (ri-1=1).
Ensuite la bascule de l’étape suivante « i » étant passée dans l’état « 1 » (Xi=1) devra
désactiver l’étape précédente « i-1 » (Xi-1=0) en remettant sa bascule à « 0 ».
La sécurité du fonctionnement de l’ensemble exige qu’a la mise sous tension, seul la
bascule de l’étape initiale (numéro 0) soit activée et tous les autres (numéros 1, 2, …) soient
désactivées. Ceci est obtenu en envoyant le signal d’initialisation sur l’entrée « S » d la
première bascule et sur les entrées « R » de toutes les autres bascules.

Initialisation « INIT »
Activation « a »

S0 R0

Q0=X0
r0
Actions

Liaison d’activation

Module standard

S1 R1

Q1=X1
r1
Actions

3
Université A. Mira-Bejaia M1 Automtismes Industiels
Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

S 0  INIT  a
L’étape initiale (numéro 0): 
R 0  X 1
Si  ri 1 .X i 1
L’étape « i » (i0): 
R i  INIT  X i 1

B) Branches multiples:

B-1) Divergence en OU : i

S j  ab.X i  S k  b.X i


Les équations des étapes j et k sont :  ;  ab b
 R j  X j1 R k  X k 1
j k
La désactivation de l’étape i (Xi=0) doit être faite si une des étapes j
ou k est active (Xj=1 ou Xk=1) et ses équations sont: a b
S i  ... dépent de (s) étape (s) et de(s) réceptivité(s) en amonts.
 j+1 k+1
 R i  X j  X k
En général, si on a « n » branches après l’étape « i », les équations sont :

S1= r1.Xi, S2= r2.Xi, …, Sn= rn.Xi.


r1 r2 … rn
Ri=X1+ X2+ … +Xn
1 2 n

B-2) Divergence en ET :
Si l’étape « i » est active (Xi=1) et si la réceptivité r=1, i
les étapes 1, 2, …, n doivent être activées
simultanément : r
S1= S2= … Sn= r.Xi
Ri=X1.X2. … .Xn
1 2 n

B-3) Convergence en ET :
L’étape « i » ne peut être active (Xi=1) que si les
1 2 n
étapes 1, 2, …, n sont simultanément activées et si la …
réceptivité « r » est vraie (r=1):
Si=X1.X2. … .Xn.r
r
Dès que l’étape « i » est active, les étapes 1, 2, …, n
sont désactivées : i
R1= R2= … Rn= Xi

4
Université A. Mira-Bejaia M1 Automtismes Industiels
Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

B-4) Convergence en OU :
L’étape « i » doit être activée (Xi=1) si l’étape 1 1 2 n
est active (X1=1) ET la réceptivité « r1 » est vraie (r1=1) …
OU l’étape 2 est active (X2=1) ET la réceptivité « r2 » r1 r2 … rn
est vraie (r2=1), OU, …, OU l’étape « n » est active
(Xn=1) ET la réceptivité « rn » est vraie (rn=1) :
i
Si=X1.r1+ X2.r2+ …+ Xn.rn
Dès que l’étape « i » est active, les étapes 1, 2, …, n sont désactivées :
R1= R2= … Rn= Xi

C) Exemple :
Soit INIT le la variable (bit) 0
d’initialisation du GRAFCET. m
1) Donner les entrées et les sorties du système
de commande (l’automatisme).
2) On note les réceptivités par ri i=1, …, 7, les 1 A
états des étapes par Xj j=0, …, 6 et les
entrées des bascules RS par Sj, Rj j=0, …, 6. a
- Donner les équations des réceptivités, des
entrées des bascules et des sorties.
2 B 4 C D
3) Tracer le logigramme qui matérialise le
GRAFCET.
a
4) donner le nombre de module standard
nécessaire. 3 A B
________________

1) Les entrées sont : INIT=z, m, a, b, c, d et e. bc


Les sorties sont : A, B, C, D et E.
2) Les réceptivités: 5 D E
de
r1=m, r2=a, r3  a , r4=b.c, r5  d.e , r6=d, r7=e.
Les sorties: d
A=X0+ X3, B=X2+ X3,
C=X4, D=X4+ X5, E=X5+ X6. 6 E

Les entrées des bascules RS :

S 0  X 6 .e  z S1  X 0 .m  X 5 .d.e S 2  X 1 .a , S 3  X 2 .a ,
 ,  ,  
 R 0  X1  R 1  X 2 .X 4  z R 2  X 3  z R 3  X5  z

S 4  X 1 .a , S 5  X 3 .X 4 .bc , S 6  X 5 .d
  
R 4  X 5  z  R 5  X1  X 6  z R 6  X 0  z
Les états Xi, i=0, …, 6 sont les sorties Qi des bascules qui matérialisent les étapes, donc:
Xi =Qi, i=0, …, 6.

5
Université A. Mira-Bejaia M1 Automtismes Industiels
Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

III.4.3) Le langage SFC (Sequential Function Chart)


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.
A) Format du graphique SFC
Un programme SFC est un réseau graphique d’étapes et de transitions, reliées par des
liaisons orientées. Les liens de connexion multiples sont représentés par des divergences et
des convergences. Une partie du graphique, nommée macro-étape peut être isolée, et
représentée dans le graphique principal par un seul symbole.
Les principales règles graphiques sont :
- une étape ne peut pas être suivie d’une autre étape ;
- une transition ne peut pas être suivie d’une autre transition.
B) Composants de base
Les composants de base (symboles graphiques) du graphique
SFC sont :
- étapes et étape initiale ;
- transitions ;
- liaisons orientées ;
- renvoi à une étape.
C) Renvoi à une étape
Un symbole de renvoi peut être utilisé pour représenter un Renvoi à
arc de liaison d’une transition vers une étape, sans tracer le lien. GS13
l’étape GS10
Il doit être référencé avec le nom de l’étape de destination.

GS10
Remarque : Le symbole de renvoi ne peut être utilisé vers une transition.
Exemple de renvois : les graphiques suivants sont équivalents.

G1
G1

G2
G2

G3 G4
G3 G4

G1 G1
D) Macro-étape
Une macroétape est un groupe unique d’étapes et de transitions représenté par un seul
symbole. Le corps de la macroétape est décrit séparément, ailleurs dans le même programme

6
Université A. Mira-Bejaia M1 Automtismes Industiels
Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

SFC. Elle apparaît comme un symbole unique dans le graphe principal.


Le symbole utilisé pour représenter une macroétape est :

S102

Le nom de référence écrit dans le symbole est le nom de référence de la première étape
du corps de la macroétape. Une étape de début du corps de la macroétape n’a pas de liaison en
amont (pas de transition précédente) ; une étape de fin n’a pas de liaison en aval (pas de
transition suivante).
Un symbole de macroétape peut apparaître dans le corps d’une autre macroétape.
Puisqu’une macroétape représente un groupe unique d’étapes et de transitions, la
même macroétape ne peut pas apparaître plusieurs fois dans le même programme SFC.
Exemple : Macro-étape :
(* Programme SFC incluant une macroétape *)
(* Schéma principal *)

S1 Initialisation

r1 r10

Alarme Pesée
S2 S101

r2 r20

S1

(* Corps de la macroétape *)

S101 Remplissage

r201

S102 Pesés

r202

S103 Vidange

r203

S104 Mémorisation

7
Université A. Mira-Bejaia M1 Automtismes Industiels
Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

II.5) Le langage ST (structured text, texte structuré)


Le langage ST 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 (réceptivités) 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... etc) 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.
Des séparateurs passifs peuvent être librement insérés entre les séparateurs actifs, les
expressions constantes et les identificateurs. Ces séparateurs sont l’espace (caractère blanc),
les caractères de tabulation et de fin de ligne. Contrairement aux langages formatés en lignes
tels que le IL, des caractères de fin de ligne peuvent être insérés partout dans le programme. Il
est recommandé de respecter les règles suivantes quand on utilise les séparateurs passifs, pour
assurer une bonne lisibilité du code source :
- ne pas écrire plusieurs énoncés sur la même ligne ;
- utiliser les tabulations pour indenter les structures de contrôle ;
- insérer des commentaires.

II.6) Le langage IL (instruction list, listes des instructions)


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.
A) 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

8
Université A. Mira-Bejaia M1 Automtismes Industiels
Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

vides peuvent être insérées entre des instructions. Un commentaire peut être posé sur une
ligne sans instruction.
Exemple : programme avec le langage IL
Étiquette Opérateur Opérande Commentaire
Début: LD IX1 (* bouton poussoir *)
ANDN MX5 (* commande valide *)
ST QX2 (* lance moteur *)
B) Étiquette
Une étiquette suivie du caractère ’:’ peut précéder une instruction. Elle peut aussi être
sur une ligne sans instruction. Les étiquettes sont utilisées comme opérandes par certaines
instructions telles que les sauts. Leur nomenclature doit respecter les règles suivantes :
- la longueur du nom ne doit pas excéder 16 caractères ;
- le premier caractère doit être une lettre ;
- les caractères suivants doivent être des lettres, des chiffres ou ’_’.
Deux étiquettes d’un même programme IL ne peuvent pas avoir même nom, mais une
étiquette peut avoir le même nom qu’une variable.
C) Modificateurs d’instructions
Voici la liste des modificateurs autorisés pour les instructions langage IL. Le caractère
modificateur complète le nom de l’instruction, sans aucun caractère de séparation.
- N inversion booléenne de l’opérande ;
- ( opération différée ;
- C opération conditionnelle.
Le modificateur ’N’ indique que l’opérande doit être inversé avant d’être utilisé par
l’instruction. Par exemple, l’instruction ANDN IX12 est interprétée comme : résultat :=
résultat AND NOT ( IX12 )
Le modificateur parenthèse ouvrante ’(’ indique que l’évaluation de l’instruction doit
être différée jusqu’à la prochaine instruction parenthèse fermante ’)’ (voir § A.3).
Le modificateur ’C’ indique que l’instruction ne doit être exécutée que si le résultat
courant a la valeur booléenne TRUE (ou différent de 0 pour une valeur non booléenne). Le
modificateur ’C’ peut être combiné avec l’opérateur ’N’ pour indiquer que l’instruction ne
doit être exécutée que si le résultat courant vaut FALSE (ou 0 pour une instruction non
booléenne).
D) Opérations différées
Parce que le langage IL ne traite qu’un seul registre (résultat courant), certaines
opérations doivent être différées, pour changer l’ordre naturel d’exécution des instructions.
Les parenthèses sont utilisées pour représenter les opérations différées.
- ‘(’ est un modificateur ; il indique que l’opération doit être différée ;
- ‘)’ est une instruction ; elle exécute l’opération différée.
Exemple : séquence avec IL
AND( IX12
OR IX35
)

9
Université A. Mira-Bejaia M1 Automtismes Industiels
Faculté de Technologie Module: Processus industriels
Département de Génie électrique Code : UEF1221

est interprétée :
résultat := résultat AND (IX12 OR IX35);
E) Opérateur
Le tableau 1 résume l’ensemble des opérateurs du langage IL.

Opérateur Modificateurs Opérande Description


LD N variable, constante charge l’opérande
ST variable BOOL stocke le résultat courant
S variable BOOL forçage à TRUE
R variable BOOL forçage à FALSE
AND N( variable BOOL ET logique
& N( variable BOOL ET logique
OR N( variable BOOL OU logique
XOR N( variable BOOL OU exclusif
ADD ( variable, constante Addition
SUB ( variable, constante Soustraction
MUL ( variable, constante Multiplication
DIV ( variable, constante division
GT ( variable, constante Test >
GE ( variable, constante Test >=
EQ ( variable, constante Test >=
LE ( variable, constante Test <=
LT ( variable, constante Test <
NE ( variable, constante Test < >
CAL CN instance de bloc fonctionnel Appel d’un bloc fonctionnel
JMP CN étiquette Saut à une étiquette
RET CN Retour de fonction
) Exécute l’instruction différée

Dans les sections qui suivent, seuls les opérateurs spécifiques langage IL sont décrits.

10