Beruflich Dokumente
Kultur Dokumente
Thmes abords
Lautomate programmable industriel
Structure
Str ct re et fonctionnement
Ordinateur
Excute
E c te le programme q
quii pilote linstallation
linstallation.
Habituellement, ce programme
Lit ltat des capteurs pour connatre ltat de linstallation.
Dfinit ltat souhait des actuateurs daprs le procd raliser.
Ecrit les commandes des actuateurs.
Entres Sorties
Un systme de commande comporte de nombreuses entres et
sorties.
Selon le type de signaux exploiter, on trouve des entres sorties
tout-ou-rien ou analogiques.
Systmes de contrle
Contrleur de
Priphrique 2
Contrleur de
Priphrique 1
Mmoire RAM
M
Mmoire ROM
M
CPU
Adresses (16)
Contrle (2)
Donnes (8)
Elment
Adresse
0000-1FFF
RAM (donnes)
2000-7FFF
A000-A00F
A040-A07F
Systme de commande
Lautomate programmable
Systme lectronique P
Prvu
Pr pour
po r le milieu
milie ind
industriel.
striel
Structure modulaire.
Nombre dentres/sorties adaptable.
logique combinatoire
temporisations, comptages
squencement (machine dtats)
calcul numrique, rgulation
collection de donnes pour le contrle de qualit
surveillance et gestion des erreurs
Carte dentres 3
Carte dentres 2
Carte dentres 1
Carte de sortie 3
CPU
Carte de sortie 2
Limitations
Carte de sortie 1
Cble de
prolongation
Carte dentre
es 4
Carte de sortie 4
Carte dentres 3
Carte dentres 2
Carte dentres 1
Carte de sortie 3
Carte de sortie 2
Carte de sortie 1
CPU
Extension du
bus pour plus
dE/S
7
3. Excution
10
Excution cyclique
Un automate
a tomate programmable e
excute
c te priodiq
priodiquement
ement une
ne o
ou
plusieurs tches.
Pour chaque tche, on peut dfinir une priodicit diffrente.
Une mme tche peut excuter plusieurs programmes.
Tche 1
10 ms
Application
automate
programmable
Tche 2
50 ms
Programme
rgulation du four
Programme
jection des
mauvais biscuits
Programme
Conditionnement
11
Rsistance
chauffante
Chauffe
On/Off
Systme de commande :
Rgulation de la temprature
300 C
Four
pain
industriel
Tension
proportionnelle
la temprature
Capteur de
temprature
(thermocouple)
Mesure de
temprature
12
Architectures centralises
Exemple de programme pour automate (excution cyclique)
PROGRAM MAIN
VAR
CapteurTemperature AT %IW40 : INT;
InterrupteurChauffage AT %QX10.0 : BOOL;
Temperature : REAL;
END_VAR
VAR CONSTANT
GainCapteurTemperature = 0.1; // Degr par bit
END_VAR
(* Gestion de la resistance chauffante *)
Temperature = CapteurTemperature * GainCapteurTemperature;
IF Temperature > 310 THEN
InterrupteurChauffage := FALSE;
ELSIF Temperature < 300 THEN
InterrupteurChauffage := TRUE;
END_IF;
END_PROGRAM;
Bus de terrain - Systmes de commande industriels
13
14
Gigue
Si Tche 1 et Tche 2 sont prtes sim
simultanment
ltanment
Tche 2 sera excute aprs Tche 1.
La cadence dexcution est respecte.
Lchance prcise nest pas respecte.
Charge CPU
Si une tche effectue un traitement plus long que sa priode
100 % CPU consomme.
Lautomate ne peut plus respecter la cadence dexcution.
En gnral, il se met dans un tat derreur et sarrte.
15
16
17
Simplicit de la programmation
Pour des applications trs simples, il existe des langages ne
ncessitant quasiment aucune connaissance en programmation
Exemple : le langage CONTACT ..
18
19
10
Vue de dessus
Vue de ct
Colis trier
Vrin avec
capteurs de fin
de course intgrs
Barrire optique
Tapis roulant
Bus de terrain - Performance des systmes de commande industriels
20
21
11
Attente
BarriereOptique
Avancer le vrin
FinMouvement
Reculer le vrin
NOT BarriereOptique
(* attente du dpart du colis *)
PROGRAM TriColis
VAR
BarriereOptique AT %IX12.2 : INT;
FinMouvement AT %IX12.1 : INT;
CommandeVanne AT %QX10.0 : BOOL;
Etat: INT := 1;
END_VAR
IF Etat = 1 THEN
IF BarriereOptique THEN
CommandeVanne := TRUE;
Etat := 2;
END_IF
ELSIF Etat = 2 THEN
IF DetecteurFinMouvement THEN
CommandeVanne := FALSE;
Etat := 3;
END_IF
ELSE
IF NOT BarriereOptique THEN
Etat := 1;
END_IF
END_IF
END_PROGRAM;
22
Attente
E1
Mettre S1 1
Mettre S1 0
5s
5s
23
12
Utilisation de temporisateurs
Dmarrer un
n temporisate
temporisateurr lentre d
dun
n tat
tat.
Tester la fin de la temporisation sur une transition.
Attente
E1
Mettre S1 1
Dmarrer Timer1(5s)
Timer1.Ecoule
Mettre S1 0
5s
24
25
13
Programmation IEC1131
Prsentation de la norme
IEC
1131
Numro de la norme
IEC 1131-3
1131 3 ou IEC 61131
61131-3
3?
Pour des questions dharmonisation de numrotation, IEC-1131 a
t renomme IEC-61131 sans aucun autre changement.
Une norme qui dfinit 5 langages pour automates programmables.
26
Programmation IEC1131
Les 5 langages
IL : Instruction
Instr ction List
List, langage te
texte
te de trs bas ni
niveau.
ea
ST: Structured Text, langage texte volu.
LD: Ladder Diagram, schma de contact.
FBD: Function Block Diagram, enchanement graphique de
fonctions.
SFC: Structured Function Chart, encore appel Grafcet.
Reprsentation graphique de squences.
27
14
Programmation IEC1131
Constituants de base dune application
POU
Program Organization Unit.
Unit
1 POU = 1 module dans un projet IEC 1131.
3 types de POU : Fonction, Bloc fonctionnel, Program.
Fonctions
Mme concept quen Ada ou en C.
Program
POU de niveau principal, appel par une tche.
28
Programmation IEC1131
Constituants de base dune application structure dun projet
PROGRAM
Application
automate
programmable
Tches
FUNCTION
FUNCTION BLOCK
29
15
Programmation IEC1131
Elments communs les lments de base
(* Ceci est un commentaire *)
(* Dclaration de variables *)
VAR
Nom: TYPE;
END_VAR;
VAR_INPUT (* Paramtres dentre dune fonction *)
Nom: TYPE;
END_VAR;
(* On peut utiliser de mme :
VAR_OUTPUT : Paramtres de sortie dune fonction (rfrence)
VAR_INOUT : Paramtres dentre et sortie dune fonction (rfrence)
VAR_GLOBAL : Variables globales
*)
30
Programmation IEC1131
Elments communs les lments de base
(* Dclaration de variables persistantes *)
VAR RETAIN
Nom: TYPE;
END_VAR;
(* Ces variables conservent leur valeur mme
si on teint lautomate.
Utilisation
- Variables dtat.
- Compteurs de production
*)
31
16
Programmation IEC1131
Types de donnes pour les entiers
Type
Description
Bits
Valeurs
SINT
Short Integer
INT
Integer
16 -32768 +32767
DINT
Double Integer
32 -231 231-1
LINT
Long Integer
64 -263 263- 1
USINT
UINT
Unsigned Integer
16 0 65535
UDINT
32 0 232 1
ULINT
64 0 264 - 1
8 -128 +127
8 0 255
32
Programmation IEC1131
Autres types de donnes de base
Type
Description
Valeurs
BOOL
Boolen
TRUE, FALSE
TIME
Dure
REAL
Rel
1.23E4
LREAL
Rel tendu
1.23E4
STRING
Texte
"Erreur"
DATE
Date
D#2020-12-25 DATE#2020-12-25
TIME_OF_DAY
Horaire
TOD#10:50:23 TIME_OF_DAY#10:50:23
DT#2020-12-25-10:50:23.10
33
17
Programmation IEC1131
Crer de nouveaux types
34
Programmation IEC1131
Accs aux entres sorties
Principe
Les entres et les sorties sont dclares et utilises comme des
variables.
Une syntaxe spciale permet de prciser leur emplacement physique et
la taille mmoire correspondante.
CommandeVanne AT %QX8.5 : BOOL;
Entre
Sortie
%IX0.0
%QX0.0
%IB7
%QB4
16
%IW20
%QW12
32
%ID8
%QD16
64
%IL40
%QL32
35
18
Programmation IEC1131
Accs aux entres sorties
Syntaxe spciale
Il est possible de sparer la dclaration des variables
ariables dentre
sortie et leur adressage.
Possibilit trs intressante dans le cas des Function Blocks.
Mise en uvre
Dclaration sans adresse dans le programme (ex: Main)
CommandeVanne AT %Q* : BOOL;
36
Programmation IEC1131
Instruction List (IL) - Aperu
37
19
Programmation IEC1131
Structured Text (ST) - Prsentation
38
Programmation IEC1131
Structured Text (ST) Rsum des instructions les oprateurs
(
Parenthses
Function()
( )
Appel de fonction
**
NOT
Oppos
Ngation logique
*
/
MOD
Produit
Quotient
Modulo
+
-
Addition
Soustraction
Comparaison
=
<>
Egalite
Ingalit
AND, &
XOR
OR
20
Programmation IEC1131
Structured Text (ST) Rsum des instructions - Test
Affectation
Variable :=
: Valeur;
Test
D := B * B 4 * A * C;
IF D < 0.0 THEN
NSolution := 0;
ELSIF D = 0.0 THEN
NSolution := 1;
X1 := (-B) / (2.0 * A);
ELSE
NSolution := 2;
X1 := (-B + sqrt(D)) / (2.0 * A);
X2 := (-B - sqrt(D)) / (2.0 * A);
END_IF
Bus de terrain - Systmes de commande industriels
40
Programmation IEC1131
Structured Text (ST) Rsum des instructions - Slection
Slection
CASE Feu1 OF
ROUGE:
QRouge := TRUE; QVert := FALSE; QOrange := FALSE;
ORANGE:
QRouge := FALSE; QVert := FALSE; QOrange := TRUE;
VERT:
QRouge := FALSE; QVert := TRUE; QOrange := FALSE;
ELSE
QRouge := FALSE; QVert := FALSE; QOrange := FALSE;
END_CASE
41
21
Programmation IEC1131
Structured Text (ST) Rsum des instructions - Boucles
For
FOR I := 1 TO 100 DO
(* instructions de la boucle ici *)
END_FOR
FOR I := 100 TO 1 BY -2 DO
(* instructions de la boucle ici *)
END_FOR
While
Repeat Until
REPEAT
(* instructions de la boucle ici *)
UNTIL I > 100
END_REPEAT
42
Programmation IEC1131
Structured Function Chart (SFC) - Prsentation
Principe
Langage graphiq
graphique
e po
pourr faciliter la programmation de sq
squences.
ences
Gnre automatiquement le code de la machine dtat
correspondante.
Comporte principalement 2 lments :
Places ou tats
Transitions.
43
22
Programmation IEC1131
Structured Function Chart (SFC) - Exemple
QRouge := TRUE;
QVert := FALSE;
Q
QOrange := FALSE;
Init
T#20s
EtatRouge
QRouge := FALSE;
QVert := TRUE;
QOrange := FALSE;
TRUE
EtatVert
T#15s
QRouge := FALSE;
QVert := FALSE;
QOrange := TRUE;
TRUE
T#5s
EtatOrange
TRUE
44
Programmation IEC1131
Structured Function Chart (SFC) Rsum des principales formes
Init
Alternative
Etat1
Etat4
Etat2
Etat3
Etat5
Squences
parallles
45
23
Programmation IEC1131
Ladder (LD) - Exemple
46
Programmation IEC1131
Function Block Diagram (FBD) Exemple
47
24
Programmation IEC1131
Fonction
Une fonction
Mme principe que
q e dans les langages volus
ol s C++,
C
C#,
C# Basic
Basic,
Exemples de fonction
SIN, COS
Y := SIN(X);
48
Programmation IEC1131
Bloc fonctionnel
un bloc de code.
49
25
Programmation IEC1131
Bloc fonctionnel - exemple
TON
T#100ms
PT
ET
TRUE
IN
FALSE
TRUE
Q
FALSE
PT
ET
T#0
PT
PT
50
Programmation IEC1131
Bloc fonctionnel - Utilisation
En FBD
Le bloc est simplement pos sur
s r un
n diagramme
diagramme.
Ses entres et sorties sont relies vers dautres blocs fonctionnels.
En ST
VAR
Timer1, Timer2: TON;
Input AT %I*: BOOL;
Output1
p
AT %Q*: BOOL;
Output2 AT %Q*: BOOL;
END_VAR
Timer1(PT := T#100ms, IN := Input);
Output1 := Timer1.Q;
51
26
Programmation IEC1131
Quel langage choisir ?
Premier critre
Le choi
choix est parfois restreint par les langages ssupports
pports par lo
loutil
til
de dveloppement.
Recommandation
Prfrer ST pour toutes les oprations de base
Pour les squences : SFC
Attention la modularit pour les squences complexes.
Ldition graphique
g p q est p
parfois fastidieuse.
Un SFC ne simprime pas de faon satisfaisante.
52
53
27