Vous êtes sur la page 1sur 34

Cours, 4ème Ingénieur d’Etat en Informatique Industrielle Spécialité ‘Ingénierie des Réseaux industriels et d’Intelligence Artificielle’

Chapitre 4 Les Langages de Programmation


des APIs
IV.1. Introduction
En 1979, la Commission Electrotechnique Internationale (International Electrotechnical
Commission (IEC) en anglais) désigne le Comité d'Etude 65A pour la définition d'une norme
spécifique aux automates programmables industriels (qui a été notée IEC 1131). L’objectif c’est de
répondre à la complexité croissante des systèmes de contrôle commande et à la diversité des automates
incompatibles entre eux. Le contenu de cette norme est le suivant :
IEC 1131-1- Informations générales (1992)
IEC 1131-2- Spécifications et essais des équipements (1992)
IEC 1131-3- Langages de programmation (1993)
IEC 1131-4- Recommandations à l'utilisateur
IEC 1131-5- Spécification des services de messagerie
La norme IEC 1131-3 définit cinq langages qui peuvent être utilisés pour la programmation des
APIs. On distingue parmi ceux-ci deux langages textuels et trois langages graphiques. Brièvement, ces
langages sont :
• LD ‘Ladder Diagram’ ou schéma à relais : Ce langage graphique est essentiellement dédié à
la programmation d’équations booléennes (vrai/faux).
• IL ‘Instruction List’ ou liste d’instructions : Ce langage textuel de bas niveau est un langage
à une instruction par ligne. Il est semblable au langage assembleur.
• FBD ‘Function Block Diagram’ ou schéma par blocs : Ce langage permet de programmer
graphiquement à l’aide de blocs, représentant des variables, des opérateurs ou des fonctions. Il
permet de manipuler tous les types de variables.
• SFC ‘Sequential Function Char’ : Ce langage est issu du langage GRAFCET, il est de haut
niveau et permet une programmation aisée de tous les procédés séquentiels.
• ST ‘Structured Text’ ou texte structuré : C’est un langage textuel de haut niveau. Il permet la
programmation de tout type d’algorithme plus ou moins complexe.

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.

IV.2. Le langage LADDER


Le langage LD (LADDER Diagram) est une représentation graphique d’équations booléennes
combinant des contacts (en entrée) et des relais (en sortie). Il permet la manipulation de données
booléennes en particulier, à l’aide de symboles graphiques organisés dans un diagramme comme les
éléments d’un schéma électrique à contacts. Les diagrammes LD sont limités à gauche et à droite par
des barres d’alimentation. Un programme écrit en langage LD est appelé diagramme LADDER (en
anglais, Ladder Diagram = LD), se lit de la gauche vers la droite et du haut vers le bas.
Chaque ligne horizontale définit une opération du processus de commande. Elle doit commencer
par une ou plusieurs entrées et doit se terminer par au moins une sortie. La figure suivante montre la
manière d’analyser un schéma à contacts (LD).
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

Figure IV.3 Méthode d’analyse d’un schéma à contacts (LD)

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.

IV.2.1 Eléments du langage LD


Voici quelques composants graphiques élémentaires d’un diagramme LD :

IV.2.1.1 Les contacts


Ils représentent l'état des bits d'entrées/sorties de l'automate et des variables internes au
programme. Le tableau suivant résume quelques types de contacts :

Tableau IV.1 Quelques types de contacts du langage LD d’un API

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

IV.2.1.2 Les bobines


Les bobines sont associées à des objets bits, elles commandent les sorties de l'automate
raccordées aux organes de commande ou de visualisation (relais, voyants, ...) et les variables
internes. Le tableau suivant résume quelques types de bobines :

Tableau IV.2 Quelques types de bobines du langage LD d’un API

IV.2.2 Association contacts/bobines et opérateurs logiques


L’association de contacts/bobines permet de réaliser les différents opérateurs logiques (AND,
OR, NOT, NAND, NOR, XOR, …etc.). Dans ce qui suit nous allons montrer comment réaliser quelques
uns de ces opérateurs logiques en langage LD en associant des contacts et des bobines en
série/parallèle.
Notons que l’association de bobines en parallèle permet de les commander par la même équation
logique. Par contre, l’association de bobines en série n’est pas possible.

IV.2.2.1 Association contacts/bobine en série ‘Opérateur AND’


L’association de deux contacts (A et B) en série avec une bobine (S) permet de réaliser la
fonction logique ET ou ‘AND’ comme l’illustre la figure suivante. On écrit alors S=A AND B.

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

Figure IV.4 Schéma d’un opérateur ‘ET’ logique en langage LD

IV.2.2.2 Association contacts/bobine en parallèle ‘Opérateur OR’


L’association de deux contacts (A et B) en parallèle avec une bobine (C) permet de réaliser la
fonction logique OU ou ‘OR’ comme l’illustre la figure suivante. On écrit alors S=A OR B.

Figure IV.5 Schéma d’un opérateur ‘OU’ logique en langage LD

IV.2.2.3 Autres opérateurs logiques en langage LD


La figure suivante illustre le schéma de quelques opérateurs logiques usuels réalisés en langage à
contacts (LD) :

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

IV.2.2.4 Schéma d’une auto-alimentation


Dans plusieurs applications, nous avons besoin de maintenir la sortie alimentée même lorsque
l’entrée disparait. C’est par exemple le cas d’un moteur qu’on démarre par un simple appui sur un
bouton-poussoir. Bien que les contacts de l’interrupteur ne restent pas fermés, le moteur continue à
tourner jusqu’à l’appui sur un bouton-poussoir d’arrêt. C’est ce qu’on appelle un maintien ou auto-
alimentation (‘latching’). Cette même figure illustre un exemple de circuit a verrouillage. En effet,
lorsque le contact de l’entrée ‘A’ est fermé, la sortie est activée. De plus, lorsque celle-ci est activée, le
contact associé à cette même sortie se ferme. Par conséquent, même si on ouvre le contact de l’entrée
‘A’, le circuit maintient la sortie activée, figure IV.7. La seule manière de désexciter la sortie consiste à
actionner le contact ‘В’ normalement fermé.

Figure IV.7 Schéma à contacts constitué d’une auto-alimentation et d’un verrouillage

IV.2.2.5 Cas de sorties multiples


Dans un schéma à contacts (LD), plusieurs sorties peuvent être connectées à un contact. La
figure suivante illustre un tel schéma avec deux et trois bobines de sortie.

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

1) Schéma LD avec deux bobines de sorties

a) En notations Mitsubishi, b) En notation Siemens


2) Schéma LD avec trois bobines de sorties ordonnées
Figure IV.8 Schéma à contacts à bobines multiples

IV.2.3 Les blocs ‘fonctions’ en langage LD


Le langage LADDER permet la programmation ou l’utilisation de nombreuses fonctions
logiques, telles que les bascules RS, les temporisations, l’opérateur monostable, le compteur et le
décompteur, les comparateurs, … etc. Les fonctions logiques complexes préprogrammées dans l’API
sont appelées ‘blocs fonctions’. Chaque bloc possède :
• une représentation graphique,
• un numéro,
• des entrées pour le commander,
• des paramètres internes pour l’adapter à l’application,
• et des sorties qui indiquent son état.
Nous présenterons quelques-uns dans ce qui suit.

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

IV.2.3.1 Temporisation en langage LD


Dans les API, les temporisateurs diffèrent d’un fabricant à l’autre. En général, ils sont conçus
comme des relais avec des bobines dont l’excitation provoque la fermeture ou l’ouverture des contacts
après une durée bien déterminée. Ainsi, un temporisateur est vu :
• soit comme une sortie d’une ligne (voir figure IV.9.a),
• soit comme un bloc de retard qui retarde les signaux d’entrée avant qu’ils n’atteignent la
sortie (voir figure IV.9.b).

Figure IV.9 Méthode de traitement des temporisateurs

Dans les APIs, il existe plusieurs variantes de temporisateurs : à enclenchement, au


déclenchement et à impulsion, voir figure IV.10. Les petits API ne proposent que des temporisateurs à
l’enclenchement. La figure suivante illustre les symboles normalisés des temporisateurs. TON
correspond aux temporisateurs à enclenchement, TOF aux temporisateurs au déclenchement et TP aux
temporisateurs à impulsion.

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.

Figure IV.10 Différents types de temporisateurs selon la norme CEI 61131-1

En ce qui concerne le principe de fonctionnement, les temporisateurs à l’enclenchement (TON)


s’activent après un certain retard (voir figure IV.11. a). Ainsi, lorsque l’entrée passe de 0 a 1, le temps
écoulé ET commence à augmenter et, lorsqu’il atteint la durée fixée par l’entrée PT, la sortie passe a 1.
Les temporisateurs au déclenchement (TOF) sont actifs pendant une durée fixée, avant de se désactiver
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

(voir figure IV.11.b). La temporisation débute lorsque le signal d’entrée passe de 1 à 0. Le


temporisateur à impulsion (TP) représente un autre type de temporisateurs, qui produit une sortie égale
à 1 pendant une durée fixée (voir Figure IV.11.c). Elle débute lorsque l’entrée passe de 0 à 1, puis la
sortie revient à 0 lorsque le temps indiqué par PT est écoulé.

Figure IV.11 Fonctionnement des temporisateurs a) à l’enclenchement, b) au déclenchement et c) à impulsion

Généralement, la temporisation définie est appelée présélection et correspond à un multiple de la


base de temps. Les bases de temps les plus fréquentes sont 10 ms, 100 ms, 1 s, 10 s et 100 s, … etc.
Ainsi, avec une présélection de 5 et une base de temps de 100 ms, la temporisation est de 500 ms. Pour
des raisons pratiques, nous utiliserons une base de temps de 1 s.

IV.2.3.2 Compteurs en langage LD


Dans les API, les compteurs sont disponibles sous forme d’éléments intégrés et permettent de
compter le nombre d’impulsions (occurrences) des signaux d’entrée. Cela peut servir à compter, par
exemple, des articles lorsqu’ils passent sur une bande transporteuse (tapis roulant), le nombre de
révolutions d’un axe ou le nombre de personnes ou de véhicules qui passent par une porte ou un
passage. Dans cette section, nous allons nous intéresser aux méthodes de programmation de ces
compteurs en langage LD.
Un compteur est initialisé à une valeur de présélection et, lorsque ce nombre d’impulsions est
reçu sur l’entrée, ses contacts sont activés de telle sorte que les contacts normalement ouverts sont
fermés et les contacts normalement fermés sont ouverts.
II existe deux types de compteurs :
• le compteur dégressifs ou compteur à décrémentation, décompte à partir de la valeur
présélectionnée jusqu’à zéro ;
• le compteur progressif ou compteur incrémental, compte à partir de zéro jusqu’à la valeur
présélectionnée.
Certains APIs offrent dans une même fonction une possibilité de comptage progressif et
dégressif. La figure IV.12 présente les symboles des compteurs selon la norme de la CEI.

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

a) Compteur dégressif, (b) Compteur progressif et c) compteur progressif-dégressif


Figure IV.12 Différents types de compteurs selon la norme CEI 61131-1

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)

Figure IV.13 Différentes représentations d'un compteur :


a) Compteur sous forme de bobine avec des contacts dans une autre ligne, RST est la mise à zéro,
b) Représentation en tant qu'élément dans une ligne.

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.

Figure IV.14 Programme de comptage de base

IV.2.3.3 La fonction ‘saut ou jump’ en langage LD


En général, les APIs possèdent une fonction de saut conditionnel décrite par la procédure
suivante :
SI (une telle ou telle condition se produit) ALORS
exécuter telles instructions
SINON
exécuter d’autres instructions.
Grâce à cette fonction, certains évènements se produisent ou ne sont pas remplies, certains
évènements se produisent ou non.

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.

Figure IV.15 Programme de ‘saut’ de base

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

IV.2.3.4 La fonction ‘sous-programme’ en langage LD


Les sous-programmes sont de petits programmes qui réalisent des tâches particulières et qui
peuvent être appelés depuis des programmes plus importants (principaux).
Dans certains APIs (Allen-Bradley), les sous-programmes sont appelés à l’aide de l’instruction
‘JSR’. Le début du sous-programme est indiqué par ‘SBR’, tandis que sa fin et le retour au programme
principal sont précisés par ‘RET’.

Figure IV.16 Appel d’un sous-programme (cas d’un API d’Allen Bradley)

IV.2.3.5 Relais internes, monostable et registres de décalage en langage LD


a) Relais internes : Dans les APIs, certains éléments sont utilisés pour conserver des données,
c’est-à-dire des bits, et se comportent comme des relais, capables d’être activés ou désactivés et
d’exciter ou désexciter d’autres dispositifs. C’est ce qu’on appelle ‘relais interne’. Celui-ci se
programme ainsi :
Sur une ligne du programme :
Les entrées externes activent la sortie du relais interne.
Sur une autre ligne du programme :
Suite à l’activation de la sortie du relais interne, les contacts du relais interne se ferment
et commandent une autre sortie.
En langage LD, voici le schéma d’un relais interne (voir figure IV. 17).

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

Figure IV.17 Schéma d’un relais interne

La figure suivante illustre un schéma LD qui montre le principe de fonctionnement et


d’utilisation d’un relais interne.

Figure IV.18 Principe d’utilisation d’un relais interne

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’

Figure IV.19 a) Monostable programmé, b) Monostable sous forme de bloc

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 :

Figure IV.20 Numéros et valeurs de bits d’un registre de décalage

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’

Figure IV.22 Quelques types de registres de décalage

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.

IV.2.3.6 Fonctions de régulation en langage LD


L’action de régulation est très importante dans les systèmes automatisés notamment ceux à base
d’APIs. Nous distinguons en particulier ce qu’on appelle le réglage TOR (ou à hystérésis) et le réglage
PID.

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

Figure IV.23 Types de comparateurs

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 ;

Figure IV.24 Réglage ON-OFF et ON-OFF avec hystérésis de la température

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

IV.2.4 Programmation en langage LD


La programmation en langage LD peut se faire à l’aide d’un pupitre de programmation, à travers
un clavier dont les touches sont marquées par des symboles qui correspondent aux différents éléments
du schéma à contacts. En appuyant sur les touches appropriées, le schéma à contacts apparait sur
l’écran du pupitre de programmation. Le terminal traduit ensuite le programme tracé à l’écran en
langage machine.

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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.

IV.3 Le langage FBD


Le langage FBD (Function Block Diagram) ou encore diagramme de schéma fonctionnel est un
langage graphique des APIs. Il permet la construction d'équations complexes à partir des opérateurs
logiques standards, de fonctions ou de blocs fonctionnels.
Il est utilisé pour les programmes d’API décrits sous forme de blocs graphiques. II s’agit d’un
langage graphique dans lequel un bloc fonctionnel est une instruction du programme. En recevant
deux ou plusieurs entrées, et lorsque cette instruction est exécutée, elle nous donne une ou plusieurs
valeurs à la sortie comme l’illustre la figure suivante :

Figure IV.26 Schéma d’un bloc fonctionnel

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.

IV.3.1 Portes logiques en langage FBD


II existe deux formes de symbolisation des portes logiques, comme l’illustre la figure IV.27. Une
entrée (ou une sortie) inversée est représentée par un petit cercle sur l’entrée ou la sortie).

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

Figure IV.27 Symboles des différentes portes logiques

Ainsi, on peut transcrire un schéma LD en schéma FBD en utilisant ces schémas, comme
l’illustre la figure suivante :

Figure IV.28 Quelques schémas LD de base et leurs schémas FBD équivalents

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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.

Figure IV.29 Schémas FBD & LD de mise en œuvre d’une pompe

On donne, en outre, l’expression logique suivante :

Etablissons les schémas LD & FBD de cette équation logique :

Figure IV.30 Schémas FBD & LD d’une expression logique

On donne également quelques exemples illustrant la programmation de tâches simples en


utilisant les deux langages de programmation graphiques des APIs (LD & FBD), voir figure IV.31 :
a) Témoin d’une pompe qui s’allume lorsque celle-ci est en marche et que la pression est
satisfaisante ou encore lorsque le bouton de test est appuyé ;

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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.31 Exemples de schémas FBD & LD

IV.3.2 Fonction de maintien en langage FBD


La figure ci-après illustre les deux schémas (LD & FBD) permettant d’assurer le maintien de la
bobine de sortie Q1.0.

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)

IV.3.3 Temporisateurs en langage FBD


Les différentes variantes de temporisateurs (à enclenchement, au déclenchement et à impulsion)
peuvent être intégrées dans un schéma FBD en tant que bloc fonctionnel.

a) Temporisateur à enclenchement ‘TON’ : La figure suivante illustre l’utilisation d’une


temporisation ‘TON’ dans un schéma LD et un diagramme FBD.

Figure IV.34 Schémas d’un temporisateur TON en langages (LD & FBD)

b) Temporisateur à déclenchement ‘TOF’ : De même, la figure ci-après montre l’utilisation d’une


temporisation ‘TOF’ dans un schéma LD et un diagramme 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’

c) Temporisateur à impulsion ‘TP’ : On représente également une temporisation ‘dite à impulsion’


dans un schéma LD et un diagramme FBD (voir figure ci-après).

Figure IV.36 Schémas d’un temporisateur TP en langages (LD & FBD)

IV.3.4 Compteurs en langage FBD


Les mêmes compteurs disponibles en langage LD peuvent être utilisés dans un schéma FBD. En
effet, le compteur dégressif (ou compteur à décrémentation) et le compteur progressif (ou compteur
incrémental) peuvent être utilisés dans un schéma FBD.

a) Compteur incrémental ‘CTU’ : Le schéma ci-après représente un comptage incrémental dans un


schéma LD et un diagramme FBD.

Figure IV.37 Schémas d’un compteur CTU en langages (LD & FBD)

b) Compteur dégressif ‘CTD’ : La figure ci-après représente un décomptage (décrémentation) via un


schéma LD et un diagramme 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’

IV.3.5 Fonctions de régulation en langage FBD


Les deux fonctions de régulation (ON-OFF) et PID peuvent être réalisées sous forme de
diagrammes FBD également comme le montre la figure suivante qui rappelle également les schémas
LD de ces mêmes procédures de régulation.

a) Régulation bang-bang

a) Régulation ON-OFF à hystérésis

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 :

Tableau IV.3 Quelques codes mnémoniques des instructions

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

IV.4.1 Opérateurs logiques en langage IL


Dans cette section, nous allons comment réaliser les opérateurs logiques de base en trois
langages (LD, FBD & IL). Pour le langage IL, nous avons considéré (à titre d’exemple) le cas de l’API
de SIEMENS.

a) Opérateur logique AND

1) Table de vérité

2) Opérateur logique en trois langages (LD, FBD & IL)


Figure IV.40 Cas de l’opérateur AND
………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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é

2) Opérateur logique en trois langages (LD, FBD & IL)


Figure IV.41 Cas de l’opérateur OR

c) Opérateur logique NOT

1) Table de vérité

2) Opérateur logique en trois langages (LD, FBD & IL)


Figure IV.42 Cas de l’opérateur NOT

d) Opérateur logique NAND

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’

2) Opérateur logique en trois langages (LD, FBD & IL)


Figure IV.43 Cas de l’opérateur NAND

e) Opérateur logique NOR

1) Table de vérité

2) Opérateur logique en trois langages (LD, FBD & IL)


Figure IV.44 Cas de l’opérateur NOR

f) Opérateur logique XOR

1) Table de vérité

2) Opérateur logique en trois langages (LD, FBD & IL)


Figure IV.45 Cas de l’opérateur XOR

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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’

IV.4.2 Fonction de maintien en langage IL


La figure suivante illustre la programmation de la fonction de maintien (latching ou verrouillage)
en trois langage (LD, FBD et IL).

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)

IV.4.3 Fonctions de temporisation en langage IL


Tout comme dans les autres langages, la programmation en ‘IL’ permet de réaliser des
temporisations à enclenchement (TON), à déclenchement (TOF) et à impulsion (TP).
Voici les schémas LD et le sous-programme IL correspondant, qui concernent la programmation
d’une temporisation TON et son utilisation pour activer une sortie booléenne :

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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)

On donne également, le schéma LD et le sous-programme IL correspondant, qui concernent la


programmation d’une temporisation TOF et son utilisation pour activer une sortie booléenne :

Figure IV.49 Temporisateur à déclenchement d’un APIs de Siemens

Et enfin, voici les schémas LD et son sous-programme IL correspondant, qui concernent la


programmation d’une temporisation à impulsion ‘TP’.

Figure IV.50 Temporisateur à impulsion d’un API de Siemens (Schémas LD & FBD et programme IL
correspondant)

IV.4.4 Fonctions de comptage en langage IL


La programmation en langage ‘IL’ permet aussi de réaliser les différents types de compteurs
(progressif ou incrémental et dégressif).
Le schéma LD et le sous-programme IL correspondant d’un API de type Mitsubishi, qui
concernent un comptage progressif de base, sont illustrés par la figure suivante :

………………………………………………………………………………………………………………………….….………………………………………………………………………………………………………………………………………………………………………………………………

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)

IV.4.5 Fonctions de régulation en langage IL


Nous nous limitons dans cette section au cas d’une régulation bang-bang à hystérésis de la
température d’un four industriel. Les schémas LD & FBD et le sous-programme IL correspondant à
cette régulation (cas d’un API de type Siemens), sont illustrés par la figure suivante :

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 SFC


Le langage SFC (Sequential Function Chart), ou GRAFCET, est un langage graphique utilisé
pour décrire les opérations séquentielles. Le procédé est représenté comme une suite connue d’étapes
(états stables), reliées entre elles par des transitions, une condition booléenne est attachée à chaque
transition. Les actions dans les étapes sont décrites avec les langages ST, IL, LD ou FBD.
Les principales règles graphiques sont :
• un programme SFC doit contenir au moins une étape initiale,
• une étape ne peut pas être suivie d’une autre étape,
• une transition ne peut pas être suivie d’une autre transition.
Les composants de base (symboles graphiques) du graphique SFC concernent :
• les étapes et étapes initiales,
• les transitions,
• les liaisons orientées,
• et le renvoi à une étape.
Les différents types d’action sont :
• l’action booléenne (elle est forcée à chaque fois que le signal d’activité de l’étape change
d’état),
• l’action impulsionnelle programmée en ST, LD ou IL (c’est un ensemble d’instructions
ST, IL ou LD, exécuté à chaque cycle pendant toute la durée d’activité de l’étape),
• une action normale programmée en ST, LD ou IL,
• une action SFC (celle-ci est une séquence fille SFC, lancée ou non selon les évolutions
du signal d’activité de l’étape. Elle peut être décrite avec les qualificatifs d’action N (non
mémorisée), S (set), ou R (reset).
Plusieurs actions (de même type ou de types différents) peuvent être décrites dans la même
étape. Un appel de fonctions ou de blocs fonctionnels permet d’intégrer des traitements décrits dans
d’autres langages (FBD, LD, ST ou IL).
On reviendra sur ce langage avec plus de détails au chapitre suivant.

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

Vous aimerez peut-être aussi