Plan du cours
Chapitre V: Langages de programmation des
Automates Programmables Industriels
1. Aspect programmation: fonctions de programmation,
terminaux de programmation.
2. Norme IEC 61131-3: objectifs et utilités, éléments définis
par la norme, langages de programmation: exemples,
comparaison, logiciels multi langages.
3. Langage Ladder (LD): symboles, exemples.
4. Langage Instruction List (IL): jeu d’instructions, exemples.
Aspect programmation
La programmation englobe les fonctions suivantes:
La configuration (matérielle et logicielle) des
automates,
L’édition et la compilation des programmes,
Les transferts (automates <> PC/console),
Mise au point et réglages dynamiques.
1
Aspect programmation
Terminaux de programmation (1)
Pupitre opérateur
Généralement, utilisé pour des
opérations de maintenance.
Contient un ensemble de menus,
offrant plusieurs fonctionnalités.
Permet d’effectuer un certain
nombre d’opérations: forçage d’une
sortie, visualisation, paramétrage, test,
etc.
Aspect programmation
Terminaux de programmation (2)
Console de programmation
Permet d’écrire et de mettre en œuvre des
programmes relativement simples.
Contient un clavier alphanumérique, avec les
principales instructions de programmation et un
petit écran de visualisation.
Le menu permet d’accéder à diverses
fonctionnalités: transfert du programme,
initialisation des variables internes, RUN/STOP,
configuration des blocs prédéfinis, etc.
Connexion par câble ou sans fil.
Présente l’avantage de la portabilité.
2
Aspect programmation
Terminaux de programmation (3)
Interface graphique
Peut être un écran tactile ou un PC.
L’écran tactile contient une représentation
graphique de la partie opérative, permettant
un suivi et une commande du système en
temps réel.
Le PC permet une programmation
conviviale, hors site (mode déconnecté).
Communication par liaisons série
(RS232/485/USB) ou par bus de terrain.
Norme IEC 61131-3
Objectifs et utilités
Dans le monde industriel, il est fréquent d’utiliser simultanément des
automates de différents fabricants, conséquences:
Coûts et temps de formation élevés,
Temps et efforts de programmation importants,
Documentation difficile du projet.
Nécessité d’une norme uniformisant la structure logicielle et les
langages de programmation pour tous les constructeurs.
3
Norme IEC 61131-3
Éléments définis par la norme (1)
Types de données standard:
– BOOL: 1 bit.
– BYTE: 8 bits (0 255).
– WORD: 16 bits (0 65535).
– DWORD: 32 bits (0 4294967295).
– SINT: 8 bits (-128 127).
.
.
.
Norme IEC 61131-3
Éléments définis par la norme (2)
Adressage:
– Pourcent: %
– Préfixe:
I: entrée, Q: sortie,
M: variable interne, K: constante
– Taille:
X, aucun: 1 bit (booléen),
B: byte (8 bits), W: word ou mot (16 bits), D: double word ou double mot (32
bits).
F: flottant
S: chaîne de caractères.
4
Norme IEC 61131-3
Éléments définis par la norme (3)
Langages de programmation:
2 langages textuels:
- Liste d’instructions (IL),
- Texte structuré (ST).
3 langages graphiques:
- Plan contact/Diagramme ladder (LD),
- Blocks fonctionnels (FBD),
- GRAFCET (SFC).
Norme IEC 61131-3
Langages de programmation: exemples
IL LD
C a.b
FBD ST
5
Norme IEC 61131-3
Langages de programmation: comparaison (1)
LD: langage de base de tous les API, facile à lire et à comprendre,
inspiré de la schématique électrique, ne nécessite pas d’apprendre
un langage de programmation.
FBD: visuel et facile à lire. Les blocs fonctionnels sont fournis par
une bibliothèque ou personnalisés par l’utilisateur. L’utilisation de
blocs validés permet la réduction du nombre d’erreurs. Il Peut
devenir lourd si les équations sont complexes.
ST: langage haut niveau, nécessite une formation en programmation
Pascal. Ce langage facilite la mise en œuvre d’algorithmes complexes. Pas
toujours disponible.
Norme IEC 61131-3
Langages de programmation: comparaison (2)
IL: langage de type assembleur. Convenable pour des
programmes simples, mais s’avère lourd et difficile à
développer, si le programme est complexe.
SFC: langage haut niveau. Il permet la programmation
aisée de tous les procédés séquentiels. Il ne peut pas
être mis en œuvre et interprété par tout le monde
(nécessite des pré requis théoriques sur le GRAFCET).
6
Norme IEC 61131-3
Logiciels multi langages
STEP7
(Siemens)
PL7
(Schneider)
Langage LADDER
Présentation générale
Ladder = échelle en anglais.
Schéma électrique d’une
alimentation en tension,
représentée par deux barres
verticales, reliées horizontalement
par des " rungs" (réseaux)
parcourus par courant.
7
Langage LADDER
Règles d’écriture
Le programme se lit de haut en bas:
chaque "rung" représente une instruction
du programme.
Sur chaque "rung", l'évaluation des
valeurs se fait de gauche à droite (il est
interdit d’inverser le sens de l’écriture).
Langage LADDER
Éléments fondamentaux
Contacts (ou interrupteurs): représentent les
données d’entrée de l’instruction. Positionnés dans la
partie gauche du rung.
Bobines (ou relais): représentent les données de
sortie de l’instruction, c.-à-d., le résultats de l’opération.
Positionnées à l’extrémité droite du rung (une seule par
rung).
Blocs fonctionnels: permettent de réaliser des
fonctions avancées (temporisation, comptage, etc.).
Positionnés à l’extrémité droite du rung (un seul par
rung).
8
Langage LADDER
Contacts NO/NF
Contact normalement ouvert (NO): Il est
ouvert au repos, mais il se ferme (passage de
courant) lorsque la variable booléenne (I) est vraie
(I = 1).
Contact normalement fermé (NF/NC): Il est
fermé au repos, mais il s’ouvre (aucun passage
de courant) lorsque la variable booléenne (I) est
vraie (I = 1).
Langage LADDER
Contacts actifs sur front
Contact actif sur front montant: Il est ouvert I
au repos, mais se ferme (passage de courant) sur
un front montant de la variable booléenne (I).
Contact actif sur front descendant: Il est
I
fermé au repos, mais il s’ouvre (aucun passage
de courant) sur un front descendant de la variable
booléenne (I).
9
Langage LADDER
Bobines
Bobine directe: la variable booléenne
associée est vraie (X =1), si la bobine est
alimentée.
Bobine inversée: la variable booléenne
associée est fausse (X = 0), si la bobine
est alimentée.
Langage LADDER
Bobines à actions Set/Reset
Bobine à action Set (Latch): si elle est
alimentée, elle assigne la valeur X =1.
Bobine à action Reset (Unlatch): si
elle est alimentée, elle assigne la valeur
X = 0.
10
Langage LADDER
Exemple bobine Set/Reset
2 conditions disjointes
Langage LADDER
Analogie avec une bascule RS
11
Langage LADDER
Exemple commande marche/arrêt
0
1
1
0 m a/ M
1
0 a m/
Langage LADDER
Saut
Si (I) est vraie, alors saut à la
section étiquetée "LBL« , sinon
exécuter les rungs suivants (2, 3,
…)
12
Langage LADDER
Sous-programme (sub-routine)
Si (I) est vraie, alors
Quand le sous on exécute
programme est le sous-programme.
terminé, retour
à l’instruction
suivante.
Langage LADDER
Autres opérations
La fonction "Instruction" permet de réaliser des fonctions logiques,
mathématiques, gestion de la mémoire, communication entre API sur
réseaux…
Opérandes
13
Langage LIST
Présentation générale
Chaque instruction commence dans une nouvelle ligne. Elle est
constituée par:
– Un opérateur,
– Si nécessaire, un modificateur (complément, parenthèse,…),
– Une opérande.
Label ou N° de ligne Opérateur Opérande
Modificateur Commentaire
Langage LIST
Instructions de test
14
Langage LIST
Instructions d’action
Langage LIST
Exemple d’écriture
15
Langage LIST
Analogie LIST – LADDER (1)
Langage LIST
Analogie LIST – LADDER (2)
16
Langage LIST
Exercice (1): traduire du LADDER au LIST
Langage LIST
Exercice (2): traduire du LIST au LADDER
(1) (2)
17
Exercice (2): exemple 1
Exercice (2): exemple 2
18
Langage LIST
Exercice (3): traduire LADDER au LIST
19
39
20