Plan du cours - classes2010-2011.e-monsite.com
Transcript of Plan du cours - classes2010-2011.e-monsite.com
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.132
Aspect programmationFonctions 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.
133
Aspect programmationTerminaux de programmation (1)
�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.
Pupitre opérateur
134
Aspect programmationTerminaux de programmation (2)
� 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é.
Console de programmation
135
Aspect programmationTerminaux de programmation (3)
� 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.
Interface graphique
136
Norme IEC 61131-3Objectifs 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.
137
� 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 (1)
138
� Adressage:
– Pourcent: %
– Préfixe:
� I: entrée,
� Q: sortie,
� M: variable interne.
– Taille:
� X, aucun: 1 bit,
� B: byte (8 bits),
� W: word ou mot (16 bits),
� D: double word ou double mot (32 bits).
Norme IEC 61131-3Éléments définis par la norme (2)
139
� 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Éléments définis par la norme (3)
140
IL
FBD ST
LD
Norme IEC 61131-3Langages de programmation: exemples
baC .=
141
� LD: langage de base de tous les API, facile à lire et à
comprendre par les électromécaniciens, ayant une
connaissance de la schématique électrique, sans
forcément apprendre le langage de programmation.
� FBD: visuel et facile à lire. Peut devenir lourd si les
équations sont complexes.
� ST: langage haut niveau, formation en programmation
Pascal requise, pas toujours disponible.
Norme IEC 61131-3Langages de programmation: comparaison (1)
142
� 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: utilisé pour la description séquentielle du
fonctionnement des automatismes et pour la gestion des
modes de marches et d’arrêt (GEMMA). Il ne peut pas
être lu et interprété par tout le monde (nécessite des pré
requis théoriques sur le GRAFCET).
Norme IEC 61131-3Langages de programmation: comparaison (2)
143
Norme IEC 61131-3Logiciels multi langages
PL7
(Schneider)
STEP7
(Siemens)
144
Langage LADDERPré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.
145
� 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 LADDERRègles d’écriture
146
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).
147
Langage LADDERContacts 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).
148
Langage LADDERContacts actifs sur front
� Contact actif sur front montant: Il est ouvert
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
fermé au repos, mais il s’ouvre (aucun passage
de courant) sur un front descendant de la variable
booléenne (I).
I
I
149
Langage LADDERBobines
� 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.
150
Langage LADDERBobines à 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.
151
Langage LADDERExemple bobine Set/Reset
2 conditions disjointes
152
Langage LADDERAnalogie avec une bascule RS
153
Langage LADDERExemple commande marche/arrêt
ma/
a m/
1
1
0
0
M10
154
Langage LADDERSaut
Si (I) est vraie, alors saut à la
section étiquetée "LBL« , sinon
exécuter les rungs suivants (2, 3,
…)
155
Langage LADDERSous-programme (sub-routine)
Si (I) est vraie, alors
on exécute
le sous-programme.
Quand le sous
programme est
terminé, retour
à l’instruction
suivante.
156
Langage LADDERAutres opérations
Opérandes
� La fonction "Instruction" permet de réaliser des fonctions logiques,
mathématiques, gestion de la mémoire, communication entre API sur
réseaux…
157
� 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 LISTPrésentation générale
158
Langage LISTInstructions de test
159
Langage LISTInstructions d’action
160
Langage LISTExemple d’écriture
161
2
Langage LISTAnalogie LIST – LADDER (1)
162
Langage LISTAnalogie LIST – LADDER (2)
163
Langage LISTExercice (1): traduire du LADDER au LIST
164
Langage LISTExercice (2): traduire du LIST au LADDER
)
(1) (2)
(
165
Langage LISTExercice (3): traduire LADDER au LIST
166