Vous êtes sur la page 1sur 27

Bus de terrain

Les automates programmables industriels

Thmes abords
Lautomate programmable industriel
Structure
Str ct re et fonctionnement

Aperu de la programmation avec les langages IEC 1131.

Bus de terrain - Systmes de commande industriels

Systme de commande industriel


Structure lectronique dune commande industrielle

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.

Bus de terrain - Systmes de commande industriels

Systmes de contrle

Contrleur de
Priphrique 2

Contrleur de
Priphrique 1

Mmoire RAM
M

Mmoire ROM
M

CPU

Rappel de la structure et du fonctionnement dun ordinateur

Adresses (16)
Contrle (2)
Donnes (8)

Elment

Adresse

ROM (programme de dmarrage)

0000-1FFF

RAM (donnes)

2000-7FFF

Contrleur Priphrique 1 (Entres)

A000-A00F

Contrleur Priphrique 2 (Sorties)

A040-A07F

Bus de terrain - Systmes de commande industriels

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.

Remplit des fonctions dautomatisation, programmer

logique combinatoire
temporisations, comptages
squencement (machine dtats)
calcul numrique, rgulation
collection de donnes pour le contrle de qualit
surveillance et gestion des erreurs

Bus de terrain - Systmes de commande industriels

Lautomate programmable industriel


Structure matrielle - la CPU et le bus interne

Les automates actuels ont une structure modulaire


Permet dadapter le nombre dentres sorties aux
a besoins de
lapplication.

Un automate est gnralement constitu


Dune carte CPU.
De cartes dentres sorties.
Dun bus interne pour relier la CPU aux cartes dentre sortie.

Bus de terrain - Systmes de commande industriels

Lautomate programmable industriel


Structure matrielle les entres sorties sur bus parallle interne

Sur certains automates programmables


le bus
b s CPU passe directement dans le fond de panier et
communique avec les cartes dentre sortie.

Les temps de rponse pour lire une entre ou crire une


sortie sont alors minimaux.

Carte dentres 3

Carte dentres 2

Carte dentres 1

Carte de sortie 3

CPU

Ces bus ont des limites en taille.


Frein la modularit.

Carte de sortie 2

Limitations

Carte de sortie 1

Quelques centaines de nanosecondes.


Ngligeables.

Bus de terrain - Systmes de commande industriels

Lautomate programmable industriel


Structure matrielle les entres sorties sur bus srie interne

Certains automates utilisent un bus srie interne :


Simplifie la connectique des modules.
modules
Permet dutiliser un bus plus long.
Offrent donc une plus grande extensibilit.

Les temps de latence pour lire ou crire une sortie

Bus de terrain - Systmes de commande industriels

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

Sont alors nettement plus longs.


restent acceptables pour de nombreuses applications.

Extension du
bus pour plus
dE/S
7

Lautomate programmable industriel


Illustration Beckhoff CX1000

Bus de terrain - Systmes de commande industriels

Lautomate programmable industriel


Illustration Beckhoff CX1000

Bus de terrain - Systmes de commande industriels

Lautomate programmable industriel


Environnement de dveloppement logiciel
1. Dveloppement
et compilation
2. Transfert

3. Excution

Bus de terrain - Systmes de commande industriels

10

Lautomate programmable industriel


Principe de fonctionnement cyclique

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

Bus de terrain - Systmes de commande industriels

11

Les solutions automatises


Exemple pratique

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

Bus de terrain - Systmes de commande industriels

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

Lautomate programmable industriel


Comment piloter un processus cyclique

Exemple de la rgulation du four


PROGRAM RegulationFour
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
I t
InterrupteurChauffage
t
Ch ff
:= FALSE
FALSE;
ELSIF Temperature < 300 THEN
InterrupteurChauffage := TRUE;
END_IF;
END_PROGRAM;

Il excute rapidement quelques oprations et se termine.


Il est appel priodiquement par la tche 1.
Bus de terrain - Systmes de commande industriels

14

Lautomate programmable industriel


Consquences du fonctionnement cyclique sur les performances

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.

Si on diminue la priode dune tche (on augmente la cadence)


La charge CPU augmente.

Bus de terrain - Performance des systmes de commande industriels

15

Lautomate programmable industriel


Fonctionnement interne du logiciel de lautomate
Le logiciel automate tourne dans une boucle infinie.
Il excute le pseudo code suivant en permanence
BOUCLE_INFINIE
SI temps coul pour Tache1 >= 10 ms ALORS
Copier entres dans variables associes.
Appeler les programmes de Tache1.
Copier variables vers sorties associes.
FIN SI
SI temps coul pour Tache2 >= 50 ms ALORS
C i
Copier
entres
t
d
dans variables
i bl
associes.
i
Appeler les programmes de Tache2.
Copier variables vers sorties associes.
FIN SI
FIN BOUCLE_INFINIE

Bus de terrain - Systmes de commande industriels

16

Lautomate programmable industriel


Avantages
Les valeurs des variables dentre sont figes pendant tout le cycle.

Effet bnfique : Elimination des alas.


Q pourrait-il
Que
i il arriver
i
sii lla valeur
l
d
de Mesure
M
ntait
i pas fi
fige
pendant
d
lexcution du programme ci-dessous ?
PROGRAM MAIN
VAR
Mesure AT %IW2 : INT;
Commande AT %QW5 : INT;
END_VAR
VAR CONSTANT
Gain := 12.5;
END_VAR
(* La valeur de la sortie Commande est non signe
(
signe.
Elle ne doit jamais tre affecte dune valeur ngative.
*)
IF Mesure > 0 THEN
Commande := Gain * Mesure;
ELSE
Commande := 0;
END_PROGRAM;

Bus de terrain - Systmes de commande industriels

17

Lautomate programmable industriel


Avantages

Simplicit du matriel et du noyau dexcution


Possibilit de grer des tches parallles.
parallles
Sans systme dexploitation multitche.
Ralisable sur des microprocesseurs peu puissants.

Simplicit de la programmation
Pour des applications trs simples, il existe des langages ne
ncessitant quasiment aucune connaissance en programmation
Exemple : le langage CONTACT ..

Bus de terrain - Systmes de commande industriels

18

Lautomate programmable industriel


Inconvnients

Modle de programmation cyclique


Mal adapt aux
a applications sq
squentielles
entielles comple
complexes.
es

Bus de terrain - Systmes de commande industriels

19

10

Lautomate programmable industriel


Comment piloter une squence : exemple simple tri de colis par taille

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

Lautomate programmable industriel


Comment piloter une squence : lapproche habituelle prise en dfaut
PROGRAM TriColis
VAR
BarriereOptique AT %IX12.2 : INT;
DetecteurFinMouvement AT %IX12.1 : INT;
CommandeVanne AT %QX10.0 : BOOL;
END_VAR
IF BarriereOptique THEN
CommandeVanne := TRUE;
WHILE NOT DetecteurFinMouvement DO
END_WHILE
CommandeVanne := FALSE;
END_IF
END_PROGRAM;

Cette approche ne fonctionne pas avec un automate


Le programme automate boucle pendant toute la dure du mouvement.
La variable DetecteurFinMouvement est fige.
Incompatible avec le principe de fonctionnement cyclique.
Bus de terrain - Performance des systmes de commande industriels

21

11

Lautomate programmable industriel


Comment piloter une squence : les machines dtat.
1

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;

Bus de terrain - Performance des systmes de commande industriels

22

Lautomate programmable industriel


Gestion du temps dans les machines dtat.

Temporisation des tats


Noter simplement ct d
dun
n tat le temps pendant leq
lequel
el il doit
tre occup avant de pouvoir tre quitt.

Attente
E1

Mettre S1 1

Mettre S1 0

Bus de terrain - Systmes de commande industriels

5s

5s

23

12

Lautomate programmable industriel


Gestion du temps dans les machines dtat.

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

Bus de terrain - Systmes de commande industriels

24

Bus de terrain - Systmes de commande industriels

25

13

Programmation IEC1131
Prsentation de la norme

IEC

International Electrotechnical Commission


Fonde en 1906, base Londres
Sige dplac Genve en 1948
www.iec.ch

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.

Bus de terrain - Systmes de commande industriels

26

Programmation IEC1131
Les 5 langages

IEC 1131 dfinit les langages suivants :

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.

IEC 1131 supporte les mlanges


Il est possible de programmer diffrentes parties dune
application avec chacun de ces langages.

Bus de terrain - Systmes de commande industriels

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.

Bloc fonctionnel (Function Block)


Correspond la cration dun nouveau type.
On cre autant dinstances que ncessaire.
Exemple : Timer TON.

Program
POU de niveau principal, appel par une tche.

Bus de terrain - Systmes de commande industriels

28

Programmation IEC1131
Constituants de base dune application structure dun projet

PROGRAM

Application
automate
programmable

Tches

FUNCTION

FUNCTION BLOCK

Bus de terrain - Systmes de commande industriels

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

Bus de terrain - Systmes de commande industriels

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

Bus de terrain - Systmes de commande industriels

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

Unsigned Short Integer

UINT

Unsigned Integer

16 0 65535

UDINT

Unsigned Double Integer

32 0 232 1

ULINT

Unsigned Long Integer

64 0 264 - 1

8 -128 +127

8 0 255

Bus de terrain - Systmes de commande industriels

32

Programmation IEC1131
Autres types de donnes de base
Type

Description

Valeurs

BOOL

Boolen

TRUE, FALSE

TIME

Dure

T#50ms T#2d3h7m4s10ms TIME#50ms

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

DATE_AND_TIME Date + Horaire


Bus de terrain - Systmes de commande industriels

DT#2020-12-25-10:50:23.10
33

17

Programmation IEC1131
Crer de nouveaux types

Les types numrs - exemple


TYPE
SIGNAL_FEU:(Rouge, Orange, Vert, OrangeClignotant);
END_TYPE
VAR
Feu1, Feu2 : SIGNAL_FEU;
END_VAR
Feu1 := Rouge;

Bus de terrain - Systmes de commande industriels

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;

Ladressage est dpendant du constructeur.

Taille (en bits)

Entre

Sortie

%IX0.0

%QX0.0

%IB7

%QB4

16

%IW20

%QW12

32

%ID8

%QD16

64

%IL40

%QL32

Bus de terrain - Systmes de commande industriels

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;

Adressage dfini dans une section spare


VAR_CONFIG
Main.CommandeVanne AT %QX4.0: BOOL;
END_VAR

Bus de terrain - Systmes de commande industriels

36

Programmation IEC1131
Instruction List (IL) - Aperu

Langage textuel de trs bas niveau.


G
Genre
dassembleur
d
bl
de
d l
lautomate
t
t programmable.
bl
Approche peu sduisante aujourdhui.
Mais encore largement utilise !
(* Load IN1 into the calculation register *)
LD IN1
(* Subtract IN2 from that register, storing the result into that register *)
SUB IN2
(* Perform the Absolute Value function on that register *)
ABS
(* Store the value in the register into the variable called Error_Calc *)
ST Error_Calc

Bus de terrain - Systmes de commande industriels

37

19

Programmation IEC1131
Structured Text (ST) - Prsentation

Langage textuel volu.


Propose les str
structures
ct res de contrle habit
habituelles.
elles
Permet ainsi une programmation structure

Permet donc une programmation beaucoup plus lisible.


Utilis pour
Ecrire des programmes, fonction, function block.
Ecrire les actions dans les diagrammes SFC.

Bus de terrain - Systmes de commande industriels

38

Programmation IEC1131
Structured Text (ST) Rsum des instructions les oprateurs
(

Parenthses

Function()
( )

Appel de fonction

**

Elvation une puissance

NOT

Oppos
Ngation logique

*
/
MOD

Produit
Quotient
Modulo

+
-

Addition
Soustraction

<, >, <=, >=

Comparaison

=
<>

Egalite
Ingalit

AND, &

Et logique entre boolens

XOR

Ou exclusif logique entre boolens

OR

Ou logique entre boolens

Bus de terrain - Systmes de commande industriels

Priorit la plus haute

Priorit la plus basse


39

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

Retour de valeur de fonction


RETURN 10; // sort de la fonction
Bus de terrain - Systmes de commande industriels

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

WHILE I <= 100 DO


(* instructions de la boucle ici *)
END WHILE
END_WHILE

Repeat Until

REPEAT
(* instructions de la boucle ici *)
UNTIL I > 100
END_REPEAT

Bus de terrain - Systmes de commande industriels

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.

Les actions des diffrents tats


Elles sont crites en ST ou en IL.
On peut dfinir une action dentre, dtat, et de sortie.

Les conditions des transitions


Elles sont crites galement en ST ou en IL
Bus de terrain - Systmes de commande industriels

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

Bus de terrain - Systmes de commande industriels

44

Programmation IEC1131
Structured Function Chart (SFC) Rsum des principales formes
Init
Alternative
Etat1

Etat4

Etat2

Etat3

Bus de terrain - Systmes de commande industriels

Etat5

Squences
parallles

45

23

Programmation IEC1131
Ladder (LD) - Exemple

Bus de terrain - Systmes de commande industriels

46

Programmation IEC1131
Function Block Diagram (FBD) Exemple

Bus de terrain - Systmes de commande industriels

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

Le rsultat ne dpend que des paramtres dentre.


Les variables sont locales.
Reprsentation graphique
Fonction

Bus de terrain - Systmes de commande industriels

48

Programmation IEC1131
Bloc fonctionnel

Un bloc fonctionnel est constitu


De variables
ariables
dentre et de sortie.
internes.
Ces variables conservent leur valeur entre 2 appels conscutifs.
Utilises comme variable dtat.

un bloc de code.

Le rsultat ne dpend pas seulement des valeurs dentre


Tient aussi compte des variables dtat internes.
Les variables de sortie peuvent donc prendre des valeurs
diffrentes pour un mme ensemble de valeur appliques en
entre.

Bus de terrain - Systmes de commande industriels

49

25

Programmation IEC1131
Bloc fonctionnel - exemple

Le bloc TON (Timer ON)


IN

TON
T#100ms

PT

ET

TRUE

IN
FALSE
TRUE

Q
FALSE
PT

ET
T#0

PT

PT

Bus de terrain - Systmes de commande industriels

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;

Bus de terrain - Systmes de commande industriels

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.

Pour les applications complexes, prfrer ST mme pour les


squences.
Impose un travail danalyse supplmentaire (traduction des machines
dtat)
Bus de terrain - Systmes de commande industriels

52

Bus de terrain - Systmes de commande industriels

53

27