Académique Documents
Professionnel Documents
Culture Documents
Le programme d’un API doit être écrit dans un langage compréhensible par le programmeur (ou
l’utilisateur) et l'automate à la fois. Il effectue des traitements diversifiés (gestion, mathématiques,
régulation, séquentiel, …). D’où la diversité des langages, dont chacun est adapté à tel ou tel type de
traitement.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 1
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
En outre, chaque fabricant propose son environnement de développement qui doit être
parfaitement conforme à la norme Internationale CEI 1131-3 pour les langages de programmation des
API. Grâce à ses environnements, les programmeurs ont le choix entre différents langages de
programmation. A titre d’exemple, le SIMATIC Step 7 de Siemens prend en charge, outre les langages
de programmation LD et FBD, le langage IL également.
Néanmoins, tous ces cinq langages ont des objets communs notamment en ce qui concerne le
type de variables à traiter. En effet, toute expression, constante ou variable, utilisée dans un
programme doit être caractérisée par un type variable ou de paramètre. Les types de base sont :
• Variable de type booléen ou ‘Bool’ : Elle peut prendre les valeurs ‘Vrai ou Faux’ qui sont
équivalentes à ‘1 ou 0’ respectivement.
• Variable de type entier ou ‘DINT’ : c’est un nombre signé entre -2147483647 et
+2147483647. Il est exprimé dans l’une des bases suivantes : décimale, hexadécimale, octale
ou binaire.
• Variable de type réel ou ‘Real’ : Elle prend 1 bit de signe +23 bits de mantisse +8 bits
d’exposant compris entre -37 et +37.
• Temporisation ou ‘Time’ : C’est une variable positive qui commence par T# ou TIME#.
• Chaîne ou ‘String’ : Elle doit être précédée et suivie par une apostrophe, et ne doit jamais
excéder 255 caractères.
En outre, l’adressage des entrées et des sorties des APIs se fait de différentes manières selon le
type et la technologie de ces dispositifs. Pour chaque entrée (sortie), on attribue une adresse bien
déterminée. Dans le cas d’un automate compact, l’adressage se fait généralement par un nombre
précédé par une lettre pour indiquer s’il s’agit d’une entrée ou d’une sortie. Par exemple, pour
l’automate Mitsubishi, nous avons :
• Des entrées avec des adresses telles que X400, X401, X402, … etc. ;
• Et des sorties avec des adresses telles que Y430, Y431, Y432, … etc.
Le symbole X indique une entrée et le symbole Y une sortie.
Pour les automates les plus grands composés de plusieurs racks, ceux-ci (racks) sont numérotés.
Considérons le PLC-5 de Allen-Bradley dans lequel le rack contenant le processeur reçoit le numéro 0
et les adresses des autres racks sont numérotées 1, 2, 3, … etc. Ainsi, chaque rack peut avoir un certain
nombre de cartes et chacune contient un certain nombre d’entrées et / ou de sorties. Ainsi, les adresses
peuvent être de la forme illustrée à la figure (IV.1).
Par exemple, une entrée avec l’adresse (I : 012/03) veut dire que l’entrée est celle du rack 01, du
module 2 et elle est placée dans la position 03.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 2
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Figure IV.1 Adressage des E/S d’un API modulaire : Cas du PLC-5 de Allen-Bradely
Pour le constructeur allemand Siemens SIMATIC S7, les entrées et les sorties sont réparties en
huit groupes. Chaque groupe est un octet et chaque entrée ou sortie de ce groupe est un bit. Les entrées
et les sorties ont donc leurs adresses en nombre d’octets et de bits, ce qui donne un numéro de module
suivi d’un numéro de terminal, et un point (.) séparant les deux numéros.
La figure IV.2 montre l’adressage d’une entrée/sortie dans un automate de marque Siemens. Par
exemple, I0.1 est une entrée au bit 1 de l’octet 0 et Q2.0 est une sortie au bit 0 de l’octet 2.
Figure IV.2 Adressage des E/S d’un API de marque Siemens (SIMATIC S7)
Dans ce chapitre, nous allons présenter ces langages d’une manière plus au moins détaillée avant
de passer au cinquième chapitre où nous allons nous intéresser au langage graphique GRAFCET. Nous
nous intéressons aux techniques de mises en œuvre et de développement de programmes à l’aide de
ces langages, de manière a représenter des fonctions logiques (AND, OR, NOT, … etc.), des blocs de
fonctions (de comptage, temporisation, bascules, … ) et quelques unes de leurs applications.
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 3
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
La même entrée peut apparaitre sur plusieurs lignes du schéma (un relais par exemple peut
commuter un ou plusieurs systèmes). De plus, les entrées et les sorties sont toutes identifiées par leur
adresse, dont le format dépend du fabricant de l’АР1 comme nous l’avons mentionné précédemment.
Dans un schéma à contacts, le nom de la variable (de préférence, il doit être descriptif) associée à
chaque élément et son adresse sont ajoutés au symbole.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 4
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 5
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
a) NOT
b) NAND
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 6
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
c) NOR
d) XOR
Figure IV.6 Schéma de quelques opérateurs logiques en langage LD
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 7
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 8
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Selon la norme CEI 61131-1, IN est l'entrée booléenne, Q est la sortie booléenne, ET est la sortie
de temps écoulé, PT est l'entrée qui précise le retard ou la durée de l'impulsion.
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 9
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 10
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Les APIs traitent les compteurs de manière légèrement différente. Certains comptent de manière
dégressive (CTD) ou incrémentale (CTU), se remettent à zéro et sont traités comme des bobines de
relais, c’est-a-dire une sortie sur une ligne. Dans ce cas, il est possible de considérer que les compteurs
sont constitués de deux éléments de base : une bobine pour compter les impulsions d’entrée et une
autre pour mettre à zéro le compteur, ses contacts étant utilisés sur d’autres lignes (voir figure IV.13.a).
D’autres APIs traitent le compteur comme un bloc intermédiaire dans une ligne, à partir duquel
des signaux émanent lorsque la valeur présélectionnée est atteinte (voir figure IV.13.b)
Par ailleurs, la figure IV.14 présente un circuit de comptage de base. Lors d’un front montant sur
l’entrée E1, le compteur est mis à zéro. Et lors d’un front montant sur l’entrée E2, le compteur se
déclenche. S’il est configuré pour dix impulsions par exemple, alors, après dix impulsions sur l’entrée
E2, c’est-a-dire dix transitions de 0 à 1, les contacts du compteur se ferment et la sortie S1 est activée.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 11
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Si, au cours du comptage, une entrée se présente sur El, le compteur est réinitialisé et le cycle
recommence pour dix impulsions.
En langage LD, la figure suivante illustre ce concept de saut de manière générale. Lorsqu’une
entrée El est active, alors ses contacts se ferment et le relais de saut est activé. Cela conduit le
programme à ‘sauter’ jusqu’à la ligne dans laquelle se trouve la ‘destination’ du saut. Les lignes
intermédiaires sont donc ignorées.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 12
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Figure IV.16 Appel d’un sous-programme (cas d’un API d’Allen Bradley)
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 13
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Certains relais internes sont sauvegardés par batterie et peuvent ainsi être utilisés dans les
circuits pour garantir un arrêt propre d’un équipement lors d’une coupure d’alimentation et lui
permettre de redémarrer de manière appropriée. Ces relais sauvegardés par batterie conservent leur état
d’activation même lorsque l’alimentation est coupée. Ces relais sont dits de rémanence.
b) Monostables : On peut programmer un relais interne afin que ses contacts soient activés
pendant un seul cycle, c’est-à-dire pendant une seule analyse du programme. Lorsqu’il est activé, il
fournit ainsi une impulsion de durée fixe sur ses contacts. Cette fonction est appelée monostable.
Certains API proposent cette fonction sous forme d’un bloc de fonction ou d’une ‘entité’ dans leurs
programmes, voir figure IV.19.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 14
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Notons que de la même manière, on peut programmer les différentes bascules en utilisant des
relais internes.
c) Registres de décalage : Un registre est un dispositif électronique dans lequel des données
sont mémorisées. Les relais internes sont de tels dispositifs. En effet, un registre à décalage est un
regroupement de (huit, seize ou trente-deux, …) relais internes qui permet aux bits mémorisés d’être
décalés d’un relais à l’autre. Chaque relais interne est dans l’état ouvert ou fermé (0 ou 1). Un registre
constitué de huit relais internes, nous permet de mémoriser huit états, comme l’illustre la figure
suivante :
Les registres à décalage ont besoin de trois entrées : une pour charger des données dans le
premier emplacement du registre, une pour déclencher le décalage des données d’un emplacement et
une pour mettre à zéro ou effacer le registre.
Le regroupement des relais internes pour former un registre à décalage est réalise
automatiquement par l’АР1 lorsqu’une fonction de registre à décalage est choisie (par exemple SFT de
Allen-Bradley).
Par exemple, la représentation LD d’un registre à décalage à quatre bits est illustrée par la figure
IV.21. L’entrée E3 est utilisée pour réinitialiser le registre à décalage, c’est-à-dire mettre toutes ses
valeurs à zéro. El constitue l’entrée du premier relais interne du registre. L’entrée E2 permet le
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 15
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
décalage de l’état des relais internes. Chaque relais interne du registre, c’est-à-dire RIl, RI2, RI3 et
RI4, est connecté à une sortie (SI, S2, S3 et S4 respectivement).
En activant l’entrée E3 momentanément, tous les relais internes sont alors mis à zéro et l’état des
quatre relais internes RIl, RI2, RI3 et RI4 est done 0, 0, 0, 0. Maintenant, lorsque El est activée, une
entrée 1 arrive sur le premier relais (l’état des relais internes RIl, RI2, RI3 et RI4 devient donc 1, 0, 0,
0). RIl activera la sortie sur S1. Si on applique une entrée momentanée sur E2, le 1 se décale du
premier relais vers le deuxième (Les relais internes deviennent alors 0, 1,0, 0). La sortie S1 est donc
désactivée, tandis que la sortie S2 est activée. Une deuxième activation de E2, provoquera un décalage
de l’état des relais internes (on obtient l’état 0, 0, 1, 0),. Les sorties S1 et S2 se trouvent alors
désactivées, tandis que la sortie S3 est activée, …etc.
Figure IV.21 Exemple d’un registre de décalage à base de quatre relais internes
Ces registres à décalage se trouvent sous forme de blocs de fonctions qui peuvent réaliser des :
a) Décalage d’un mot ou d’un bit à gauche ; b) Décalage d’un mot ou d’un bit à droite
Décalage
La figure suivante illustre quelques exemples d’application :
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 16
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Ces registres peuvent être utilisés pour la mise en œuvre de différentes séquences de
fonctionnement d’un les systèmes automatisés.
a) Réglage à hystérésis : Ce réglage est basé sur la comparaison entre deux grandeurs. Voici les blocs
de deux comparateurs (à deux entrées) permettant de délivrer une sortie active lorsque :
• L’entrée IN1<IN2
• L’entrée IN1>IN2
Les deux schémas de la figure suivante montrent comment peut-on utiliser deux comparateurs pour
assurer une régulation de température d’un four industriel autour de 500 °C :
• de type ON-OFF (dite également ‘bang-bang’), qui sollicite beaucoup l’organe de commande ;
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 17
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
• de type ON-OFF à hystérésis, qui est plus réaliste et allège considérablement le fonctionnement
l’organe de commande ;
b) Réglage PID : Les APIs sont appelés également à assurer une régulation à l’aide d’un algorithme
PID à travers l’utilisation des blocs fonctionnels basés sur les actions, dérivée intégrale et
proportionnelle (PID). L’utilisateur spécifie certains paramètres associés à cet algorithme pour
contrôler le processus correctement. La figure suivante représente un bloc de régulation de type PID et
son utilisation pour le réglage d’une grandeur d’un processus industriel.
Figure IV.25 Schéma d’un bloc de régulation de type PID et son utilisation dans un processus de réglage
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 18
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Les ordinateurs peuvent également être utilisés pour tracer les schémas à contacts en utilisant des
logiciels dédiés qu’il faut installer à l’avance. Par exemple, RSLogix pour les APIs d’Allen Bradley,
MELSOFT- GX Developer pour les API de Mitsubishi, STEP 7 pour les API de Siemsens et Zelio
Soft pour les API Zelio Logic de Schneider Electric. Ces logiciels fonctionnent sous Windows et
permettent de choisir les éléments à partir des menus déroulants.
La norme CEI 61113-3 définit la manière de représenter ces blocs fonctionnels qui sont de sous
forme d’une boite rectangulaire, avec des entrées placées à gauche et des sorties, à droite. Le type du
bloc est inscrit dans la boite (par exemple ‘ET ou AND’), tandis que son nom dans le système apparait
au-dessus. Les noms des entrées des blocs fonctionnels sont placés à l’intérieur de la boite aux points
d’entrées-sorties appropriés.
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éfinies par
l’utilisateur, tel que le bloc calculant la valeur moyenne des entrées.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 19
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Ainsi, on peut transcrire un schéma LD en schéma FBD en utilisant ces schémas, comme
l’illustre la figure suivante :
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 20
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
On donne également le schéma FBD et son équivalent LD, pilotant une pompe pour pomper le
contenu d’un réservoir lorsque le bouton de mise en marche est fermé, lorsque le niveau du liquide
dans le réservoir est en dessous du niveau requis et lorsque le réservoir contient le liquide.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 21
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
b) Cas d’une vanne à actionner pour soulever une charge lorsqu’une pompe est en marche et que
l’un des deux interrupteurs (de levage ou de charge non levée) sont activés ;
c) Cas d’une sortie qui se désactive en présence d’un signal issu de l’un des 4 capteurs.
Figure IV.32 Fonction de verrouillage (ou de maintien) en langages (LD & FBD)
En outre, la figure ci-après est un exemple d’un démarrage direct d’un moteur avec des lampes
de signalisation des états (Marche/Arrêt) du moteur.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 22
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Figure IV.33 Exemple d’utilisation de la fonction de verrouillage (ou de maintien) en langages (LD & FBD)
Figure IV.34 Schémas d’un temporisateur TON en langages (LD & FBD)
Figure IV.35 Schémas d’un temporisateur TOFF en langages (LD & FBD)
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 23
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Figure IV.37 Schémas d’un compteur CTU en langages (LD & FBD)
Figure IV.38 Schémas d’un compteur CTD en langages (LD & FBD)
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 24
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
a) Régulation bang-bang
c) Régulation PID
Figure IV.39 Différents schémas de régulation en langages (LD & FBD)
IV.4. Le langage IL
Le langage IL (Instruction List), est un langage textuel de bas niveau. C’est une méthode de
programmation équivalente à la saisie d’un schéma à contacts sous forme d’un texte. Un programme
de type (IL) est une suite d’instructions, chacune est placée sur une nouvelle ligne et constituée d’un
opérateur suivi d’un ou plusieurs opérandes (objets de l’opérateur). 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.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 25
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Différents codes mnémoniques sont utilisés pour réaliser diverses opérateurs. Chaque code
correspond à un operateur / élément d’un schéma à contacts. Ces codes diffèrent d’un fabricant à
l’autre, mais la norme internationale CEI 61131-3 a été établie et est à présent largement adoptée. Le
tableau suivant recense quelques codes utilisés par les fabricants et les instructions normalisées :
Les listes d’instructions sont un langage textuel de bas niveau simple à implémenter et utilisé par
plusieurs fabricants d’APIs, principalement pour les modèles de petite et moyenne taille. Ce langage
est particulièrement adapté aux programmes simples. Certains fabricants ne prennent pas en charge les
listes d’instructions, mais proposent le texte structure, un langage de plus haut niveau.
Voici un exemple d’illustration de l’utilisation des operateurs définis par la CEI 61131-3 :
LD A (*Charger A*)
AND В (*ET B*)
ST Q (*Stocker le résultat dans Q, c-a-d sortie sur Q*)
II est possible d’utiliser des libellés pour identifier différents points d’entrée dans un programme.
Ils sont utiles pour sauter à des endroits d’un programme. Un libellé se place avant l’instruction et en
est séparé par deux-points :
POMPE_OK: LD C (*Charger C*)
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 26
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
En effet, une instruction dans le programme peut sauter à la ligne ‘P0MPE_0K’ lorsqu’une
condition particulière est rencontrée.
Pour les opérateurs de la CEI 6113-1, l’ajout d’un N à la fin de leur mnémonique indique une
valeur inversée. Par exemple :
LD A (*Charger A*)
ANDN В (*ET NON B*)
Ainsi, l’operateur ANDN inverse la valeur des contacts et réalise un ET avec le résultat (A AND
NOT(B)).
En outre, dans la norme CEI 61131-3, les parenthèses servent le même objectif que dans les
expressions arithmétiques normales. Ceci permet de différer l’exécution des instructions entre les
parenthèses jusqu’à ce que la parenthèse soit fermée. Ainsi, la liste d’instructions CEI suivante :
LD X
ADD( В
MUL( C
ADD D
)
)
correspond à l’expression X + (B×(C + D)).
1) Table de vérité
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 27
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
b) Opérateur logique OR
1) Table de vérité
1) Table de vérité
1) Table de vérité
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 28
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
1) Table de vérité
1) Table de vérité
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 29
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Figure IV.46 Fonction de maintien en trois langages (LD, FBD & IL)
Cette fonction est utilisée dans plusieurs applications dont on cite le démarrage d’un moteur
(voir figure IV.47).
Figure IV.47 Démarrage d’un moteur muni d’une fonction de maintien en trois langages (LD, FBD & IL)
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 30
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Figure IV.48 Temporisateurs à enclenchement de deux technologies différentes d’APIs (a) Mitsubishi, b)
Siemens)
Figure IV.50 Temporisateur à impulsion d’un API de Siemens (Schémas LD & FBD et programme IL
correspondant)
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 31
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Figure IV.51 Compteur progressif d’un API de Mitsubishi (Schéma LD et programme IL correspondant)
On donne également les schémas LD & FBD et le sous-programme IL correspondant d’un API
de type Siemens, qui concernent un comptage dégressif de base.
Figure IV.52 Compteur dégressif d’un API de Siemens (Schémas LD & FBD et programme IL correspondant)
Figure IV.53 Régulation ON-OF à hystérésis d’un API de Siemens (Schémas LD & FBD et programme IL
correspondant)
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 32
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
IV.5 Le langage ST
Le langage ST (Structured Text) est un langage textuel de haut niveau (semblable au langage
évolué ‘Pascal’) dédié aux applications d’automatisation. Ce langage est principalement utilisé pour
décrire les procédures complexes, difficilement modélisables avec les langages graphiques. C’est le
langage par défaut pour la programmation des actions dans les étapes et des conditions associées aux
transitions du langage SFC.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 33
Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’
Un programme ST est une suite d’énoncés. Chaque énoncé est terminé par un point virgule (‘;’).
Les noms utilisés dans le code source (identificateurs de variables, constantes, mots clés du langage ...)
sont délimités par des séparateurs passifs ou des séparateurs actifs, qui ont un rôle d’opérateur. Des
commentaires peuvent être librement insérés dans la programmation.
Les types d’énoncés standard peuvent être décrits ainsi :
Assignation (variable := expression;) ;
Appel de fonction ;
Appel de bloc fonctionnel ;
Enoncés de sélection (IF, THEN, ELSE, CASE) ;
Enoncés d’itération (FOR, WHILE, REPEAT) ;
Enoncés de contrôle (RETURN, EXIT) ;
Opérateurs booléens (NOT, AND, OR, XOR) ;
Enoncés spéciaux pour le lien avec le langage SFC.
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 identifier les structures de contrôle ;
• insérer des commentaires.
IV.7 Conclusion
Dans ce chapitre, nous avons énuméré et défini (dans l’ensemble) les cinq langage de
programmation des APIs (à savoir les langages graphiques LD, FBD & SFC) et les deux langages
textuels (IL & ST).
Ensuite, nous nous sommes intéressés à détailler les trois langages suivants : le langage LD, le
langage FBD et le langage IL. Puis nous avons clôturé ce chapitre par une présentation brève des deux
langages (SFC & ST). Le chapitre suivant (le dernier) fera l’objet de ces deux langages.
Références bibliographiques
1- W. Boulton (Traduit par H. Soulard), ‘Automates Programmables Industriels’, Edition Dunod –
2015.
2- W. Boulton, ‘Programmable Logic Controllers’, Fifth Edition, Newness (Elsevier) – 2009.
3- Y. Lecourtier & B. Saint Jan, ‘Introduction aux automatismes Industriels’, Masson – Paris, 1985.
4- B. Hadj Aissa, ‘Automates Programmables Industriels : Description et Programmation’, Université
de Laghouat, 2019.
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………
Automates Programmables Industriels (Chapitre IV Les langages de programmation des APIs ) Prof. Lakhdar MOKRANI 34