Cours Api Part 5 2022

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 19

Plan du cours

Chapitre V: Langages de programmation des


Automates Programmables Industriels

1. Aspect programmation: fonctions des ateliers logiciels,


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
Fonctions des ateliers logiciels

La programmation englobe les fonctions suivantes:

La gestion des projets (planification, ordonnancement, pilotage,


estimation des coûts, maîtrise des risques, contrôle qualité, etc.)
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
2
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
4
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
6
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
8
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
10
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.
11

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
12
Norme IEC 61131-3
Logiciels multi langages

STEP7
(Siemens)

PL7
(Schneider)

13

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

15

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

17

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

19

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
20
Langage LADDER
Exemple bobine Set/Reset

2 conditions disjointes

21

Langage LADDER
Analogie avec une bascule RS

11
22
Langage LADDER
Exemple commande marche/arrêt

0
1
1
0 m a/ M

0
1 a m/

23

Langage LADDER
Saut

Si (I) est vraie, alors saut à la


section étiquetée "LBL« , sinon
exécuter les rungs suivants (2, 3,
…)

12
24
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.

25

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
26
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

27

Langage LIST
Instructions de test

14
28
Langage LIST
Instructions d’action

29

Langage LIST
Exemple d’écriture

15
30
Langage LIST
Analogie LIST – LADDER (1)

31

Langage LIST
Analogie LIST – LADDER (2)

16
32
Langage LIST
Exercice (1): traduire du LADDER au LIST

33

Langage LIST
Exercice (2): traduire du LIST au LADDER

(1) (2)

17
34
Exercice (2): exemple 1

35

Exercice (2): exemple 2

18
36
37

Langage LIST
Exercice (3): traduire LADDER au LIST

19
38

Vous aimerez peut-être aussi