Vous êtes sur la page 1sur 48

Automatisme Industriel II

SIMATIC
PCS 7
SIMATIC
NET

Logiciel
SIMATIC

SIMATIC
HMI

SIMATIC

SIMATIC
PC

SIMATIC
WinCC
SIMATIC
DP
Automate
SIMATIC

Oprations binaires
E0.0

E0.1

A 8.0
(MCRA)

A 8.1
E 0.0

( MCR< )
E 1.0

M0.0

E1.2
S

SR

A 9.3
Q

E1.3
R

Page 1

E 1.1

A 8.0
( )

Traitement cyclique du programme


Bloc de mise en route (OB 100)
Traitement unique, par exemple la mise sous tension

Cycle de la CPU

Lancement du temps de
surveillance du cycle

Module
d entre

Lecture de ltat des signaux sur les modules et mmorisation


des donnes dans la mmoire image du processus (MIE)

Excution du programme dans l'OB1


(traitement cyclique)
Certains vnements (alarme horaire, alarmes de
processus, etc.) dclenchent dautres OB.

U E 0.1
U E0.2
= A8.0

Bloc
OB 1

Ecriture de la mmoire image des sorties


(MIS) dans les modules de sortie

Module
de sortie

Mmoires image du processus

MIE
octet 0
octet 1
octet 2
:
:
:

MIS
Programme
utilisateur
1

U
=

:
:
E
A
:
:
:
:

2.0
4.3

Zone mmoire de la CPU

octet 0
octet 1
octet 2
:
:
:

Zone mmoire de la CPU

Page 2

Structure du programme

Programme
segment

Programme linaire

Programme structur

Recette A

OB 1

OB 1

OB 1

Recette B
Mlangeur

Pompe

Sortie

Sortie

Tous les oprations sont


contenues dans un bloc
(normalement dans le
bloc dorganisation OB1)

Les oprations des diffrentes


fonctions sont contenues dans
blocs isols. LOB 1 appelle ces
blocs lun aprs lautre.

Des fonctions rutilisables sont


charges dans diffrents blocs.
LOB 1 (ou dautres blocs) appelle
ces blocs et dlivre les donnes
correspondantes.

Blocs de programme

Systme d'exploitation
Cycle
Temps
Processus

OB

Erreur

OB
FB
FC
SFB
SFC

FB

FC

SFB

FB

FB

SFC

Blocs
dorganisation

= Bloc d'organisation
= Bloc fonctionnel
= Fonction
= Bloc fonctionnel systme
= Fonction systme

Lgende :

FB avec bloc de
donnes dinstance

Page 3

Contacts NF et contacts NO.


Capteurs et symboles d'interrogation
Processus

Le capteur
est un ...

Evaluation du programme dans lautomate

Le capteur
est ...

La tension
lentre
est ...

Etat du
signal
lentre

contact NO activ

Interrogation 0

Symbole /
opration

Symbole /
opration

Rsult.
logique

CONT:

prsente

Interrogation 1

contact NO
inactiv

absente

Oui

CONT:

inactiv

absente

prsente

Oui

LOG:

&

contact NF activ

Non
0

contact NF

Non
0

LOG:

Rsult.
logique

&
Non
0

LIST:

Oui

U E x.y

Oui

1
LIST:

Non
0

UN E x.y

Exercice
Tche : La lampe doit sallumer dans les trois exemples lorsque S1 est activ et S2 inactiv.
Matriel
S1
(E1.0)
E 1.0

S2
(E1.1)
E 1.1

Automate programmable

S1
(E1.0)
E 1.0

E 1.1

A 4.0

E 1.0

E 1.1

E 1.1

Automate programmable

A 4.0

La

Logiciel

S2
(E1.1)

E 1.0

A 4.0
La

E 1.0

E 1.1

Automate programmable

A 4.0

S1
(E1.0)

S2
(E1.1)

La

A 4.0

E 1.0

E 1.1

A 4.0

CONT

E 1.0

&

LOG
E 1.1

LIST

....... E 1.0
....... E 1.1
....... A 4.0

&

E 1.0
A 4.0

E 1.0
A 4.0

E 1.1
....... E 1.0
....... E 1.1
....... A 4.0

Page 4

&
A 4.0

E 1.1
....... E 1.0
....... E 1.1
....... A 4.0

Adressage des modules S7-300


Ndemplac.

Modules

Alim.

CPU

SM

SM

SM

10

SM

SM

SM

SM

Adresse 0.0
Adresse 0.7
Adresse 1.0
Adresse 1.7

Adressage ETOR/STOR en configuration multichssis


Chssis
3

Alim.

Alim.
Chssis
2

Alim.

Alim.

Emplacement 1

IM
(rception)

Chssis
1

Chssis
0

IM
(rception)

IM
(rception)

CPU

IM
(mission)

96.0

99.7

100.0

103.7

104.0

107.7

108.0

111.7

112.0

115.7

116.0

119.7

120.0

123.7

124.0

127.7

64.0

67.7

68.0

70.7

72.0

75.7

76.0

79.7

80.0

83.7

84.0

87.7

88.0

91.7

92.0

95.7

52.0

55.7

56.0

59.7

60.0

63.7

32.0

35.7

36.0

39.7

40.0

43.7

44.0

47.7

48.0

51.7

0.0

3.7

4.0

7.7

8.0

11.7

12.0

15.7

16.0

19.7

Page 5

20.0

23.7
9

24.0

27.7
10

28.0

31.7
11

Oprations combinatoires binaires : ET, OU


CONT

Schma lec.

LOG

LIST

S1 (E 0.0)
E0.0

E0.1

A 8.0

&

E 0.1

S2 (E 0.1)

ET

E 0.0

A 8.1
=

A 8.1

L1
(A 8.0)

U
U
=
=

E0.0
E0.1
A 8.0
A 8.1

O
O
=

E0.2
E0.3
A 8.2

L2
(A 8.1)

S3
(E 0.2)

E0.2
S4
(E 0.3)

OU

A 8.0
=

A 8.2
E 0.2

>=1

E 0.3

E0.3

A 8.2
=

L3 (A 8.2)

Oprations combinatoires binaires : OU exclusif (XOR)

CONT

LOG

E 0.4
E0.4

E0.5

A 8.0

E0.4

E0.5

&

E 0.5
E 0.4

LIST

>=1

A 8.0
=

&

E 0.5

E 0.4
E 0.5

Page 6

XOR

A 8.0
=

U
UN
O
UN
U
=

E0.4
E0.5

X
X
=

E0.4
E0.5
A8.0

E0.4
E0.5
A8.0

Affectation, mise 1, mise 0


CONT

E 1.0

E 1.1

LOG

A 8.0

( )

Affectation

E 1.0

&

E 1.2

E 1.3

A 8.1

(S)

E 1.2

&

A 8.1

(R)
Mise 0

U E 1.2
U E 1.3
S A 8.1

A 8.1

E 1.3

E 1.4

U E 1.0
U E 1.1
= A 8.0

A 8.0

E 1.1

Mise 1

LIST

E 1.5

E 1.4

>=1

O E 1.4
O E 1.5
R A 8.1

A 8.1
R

E 1.5

Bascule mise 1 / mise 0

CONT

M0.0

E1.2
Mise 0
prioritaire

LOG

SR

LIST

M0.0
A 9.3
Q

E1.2

SR
A9.3

E1.3
E1.3

M0.0

E1.3
Mise 1
prioritaire

RS

M0.0
A 9.3
Q

E1.3

RS
A9.3

E1.2
S

E1.2

Page 7

U
S
U
R
U
=

E 1.2
M 0.0
E 1.3
M 0.0
M 0.0
A 9.3

U
R
U
S
U
=

E 1.3
M 0.0
E 1.2
M 0.0
M 0.0
A 9.3

Connecteur

CONT

E 1.0

E 1.1

LIST

M0.0

E 2.0

E 2.1

( )

NOT

M 1.1

A 4.0

( )

( )

U
E
U
E
=
M
U
M
U
E
U
E
NOT
=
M
U
M
=
A

LOG

E 1.0

&
M0.0

E 1.1

&
E 2.0

M1.1

1.0
1.1
0.0
0.0
2.0
2.1
1.1
1.1
4.0

A 4.0

E 2.1

Oprations influant sur le RLG


CONT

E0.0

NOT

E0.1
NOT

LOG

A8.0

E0.0

( )

E0.1

&

LIST

A8.0
=

U E0.0
U E0.1
NOT
= A8.0

CLR

non disponible

non disponible

CLR

SET

non disponible

non disponible

SET

E1.6

SAVE

( SAVE )

BIE

BIE

&

E1.6

A8.1

( )
15

BIE

SAVE

A8.1
=

U E1.6
SAVE

U BIE
= A 8.1

Mot d'tat

BIE

Page 8

RLG

Fonction Relais de masquage


CONT

LOG

LIST

( MCRA )

MCRA

MCRA

//Activ

U E0.0
MCR(

//Validat. MCR
//Ouverture MCR

U E0.7
= A8.5
= M0.6

//Contact NO
//Bobine de sortie
//Bobine de sortie

A16.0
S

U E0.4
S A16.0

//Contact NO
//Mise 1 sortie

MCR>

)MCR

//Fermeture MCR

M69.0
=

UN M5.5 //Contact Not


UN E4.7 //Contact Not
= M69.0 //Bobine de sortie

E0.0

( MCR< )

E0.0

&

MCR<

E0.7

&

A8.5
=

A8.5

E0.7

( )

M0.6
=

M0.6

( )
A16.0

E0.4

(S)

&

E0.4

( MCR> )
E4.7

M5.5

M69.0

( )

M5.5
E4.7

&

( MCRD )

MCRD

MCRD

//Dsactiver

Saut inconditionnel (indpendant du RLG)

CONT

Rseau 1

LOG

NEW1

( JMP )
Rseau 2
:
:
:
:
Rseau x

NEW1
JMP

....
Rseau 2
:
:
:
:
Rseau x

Rseau 1

SPA NEW1
Rseau 2
:
:
:
:
Rseau x

NEW1

NEW1

M5.5

Rseau 1

LIST

E4.7

M69.0

( )

M5.5
E 4.7

&

Page 9

M69.0
=

NEW1:

UN M5.5
UN E4.7
=
M69.0

Saut conditionnel (en fonction du RLG)

CONT

E 0.0

Saut pour
RLG=1

Saut pour
RLG=0

E 0.1

E 0.2

E 0.3

LOG

NEW1

E0.0

(JMP)

E0.1

NEW2

(JMPN)

E0.2

LIST

&

&

E0.3

NEW1
JMP

U E0.0
U E0.1
SPB NEW1

NEW2
JMPN

U E0.2
U E0.3
SPBN NEW2

Rponse aux fronts - RLG


CONT
E1.0 E1.1

M1.0

LOG
M8.0

P
E1.0 E1.1

M1.1

E1.0

&

E1.1
M8.1

E1.0
E1.1

&

LIST

M1.0

M8.0

M1.1

M8.1

U
U
FP
=

E1.0
E1.1
M1.0
M8.0

U
U
FN
=

E 1.0
E 1.1
M1.1
M8.1

Cycle OB1

E1.0
E1.1
RLG
Exemple

M1.0
M1.1
M8.0
M8.1

Page 10

Rponse aux fronts - signal


CONT

E1.0

E1.1

M1.0

M_BIT

POS

NEG

M1.1

E1.1
NEG
M_BIT

M8.1
Q

M_BIT

M1.1

M1.0

E1.1
POS
M_BIT

M8.0

E1.1

E1.0

LOG

E1.0
E1.1
Exemple

E1.0

LIST

&
M8.0

=
E1.0

&
M8.1

U
E1.0
U
(
U
E1.1
FP
M1.0
)
=
M8.0
U
E1.0
U
(
U
E1.1
FN
M1.1
)
=
M8.1

M1.0
M1.1
Cycle OB1

M8.0
M8.1

Exercice : Programmation d'une installation de remplissage


(Partie Modes de fonctionnement)
Installation Marche/Arrt:

Mode de fonctionnement Manuel/Automatique :

E 0.0 = Start (bouton-poussoir, contact NO)

E 0.2 = Manuel/Automatique (commutateur)


E 0.3 = Validation mode de fonctionnement
(bouton-poussoir, contact NO)
E 0.4 = Marche par impulsions Avant
(bouton-poussoir, contact NO)

E 0.1 = Stop (bouton-poussoir, contact NF)

E 0.5 = Marche par impulsions Arrire


(bouton-poussoir, contact NO)
Dtecteur de
bouteilles
E 16.6 (E 8.6)

M
A 20.5 (A 8.5) Bande transporteuse Marche avant
A 20.6 (A 8.6) Bande transporteuse Marche arrire

Page 11

Oprations numriques

M0.0

EW0
EW2

CMP ==I

A 9.7

IN1
IN2

E0.7
S5T#35s
E0.5

T4
S_EVERZ
A8.5
Q
S
TW DUAL MW0
R

DEZ

AW12

Formats de nombres (16 bits)


PG

CPU
Signe (+)

BCD

W#16#296

Nombres
positifs

0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0
15

14

13

12

11 10

0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0

ENTIER
(Integer)

+296

BCD

W#16#F413

28
=
256
+
Signe (-)

25
23
=
=
32 + 8 = 296

1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1
Nombres
ngatifs

15

14

13

12

11 10

1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1
ENTIER
(Integer)

-413

28 27
24 23 22
= =
= = =
256+128 + 16+8+ 4 = 412
- (412 + 1) = - 413

Page 12

Formats de nombres (32 bits)


Signe (+)

BCD

DW#16#296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0
DINT

31

30

29

28

27 26

25

24

23

22

21

20 19

18

17

16 15

14

13

12

11 10

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0

+296

28
=
256
+

Entier (32 bits) =


REEL
+0.75
ou
+7.5 E-1

Format gnral d'un nombre entier = (signe) (1.f) (2e-127)


signe du
nbre rel e = exposant (8 bits)
31

30

29

28

27 26

25

24

23

22

25
23
=
=
32 + 8 = 296

f = mantisse (23 bits)


21

20 19

18

17

16 15

14

13

12

11 10

0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 .....

2-23

Nbre rel = +1,5 * 2 126-127 = 0,75

Chargement et transfert de donnes (1)


CONT

LOG

MOVE

15

MOVE

EN

ENO

IN

OUT

Exemples de
chargement

LIST

EN

MB5

15

IN

OUT

MB5

+15

MB5

ENO

L +5

// Constante 16 bits (Integer)

L L#523123

// Constante 32 bits (Long Integer)

L B#16#EF

// Octet hexadcimal

L 2#0010 0110 1110 0011

// Valeur binaire 16 bits

L 3.14

// Constante 32 bits (Real)

Page 13

Chargement et transfert de donnes (2)


Contenu
de Accu1

Programme

:
:
L W#16#CAFE

L W#16#AFFE
:
:
:

Contenu
de Accu2

C
0

A
0

F
0

E
0

A
0

F
0

F
0

E
0

Chargement et transfert de donnes (3)


Contenu de l'accumulateur 1
Programme

L MB 0

31

23

31

Chargement

L MW 0

23

15

0000000000000000
31

L MD 0

15

000000000000000000000000

23

MB0

MB0
15

MB1

MB0
0

MB1
7

MB2

MB3

T AD 4
AD 4
Transfert

T AW 4
AW 4

T AB 4
AB 4

Page 14

Temporisation sous forme de retard la monte (SE)


CONT
T4
S_EVERZ
Q
S

E0.7
S5T#35s
E0.5

TW

LOG

MW0

DEZ

AW12

T4
S_EVERZ

A8.5

DUAL

LIST

E0.7
S5T#35s
E0.5

DUAL
DEZ

TW
R

MW0
AW12
A8.5
=

RLG S
RLG R

Exemple

Ecoulement
temporisation

U
L
SE
U
R
L
T
LC
T
U
=

E0.7
S5T#35s
T4
E0.5
T4
T4
MW0
T4
AW12
T4
A8.5

Donne type
S5TIME

0,01s <-0,1s <-1s <-10s <--

0
0
1
1

0
1
0
1

Valeur de temps: 0
. . . 999

Temporisations : formats S5 dans STEP 7

102

101

100

Format d'une valeur de temps prdfinie


X X
Base de temps

Contenu accumulateur aprs L T... X

Valeur de temps (format BCD)

X
Valeur de temps (nombre binaire)
102

Contenu accumulateur aprs LC T...X

101

100

X
Base de temps

Page 15

Valeur de temps (format BCD)

Temporisation sous forme de retard la monte mmoris (SS)


CONT

E0.7
S5T#35s
E0.5

T4
S_SEVERZ
Q
S
TW
R

LOG
T4
S_SEVERZ

A8.5

DUAL

MW0

DEZ

AW12

LIST

E0.7
S5T#35s
E0.5

DUAL

TW

DEZ

MW0
AW12
A8.5
=

U
L
SS
U
R
L
T
LC
T
U
=

E0.7
S5T#35s
T4
E0.5
T4
T4
MW0
T4
AW12
T4
A8.5

RLG S
RLG R

Exemple

Ecoulemen
t
temporisati
on
Q

Temporisation sous forme de retard la retombe (SA)


CONT

E0.7
S5T#35s
E0.5

T4
S_AVERZ
Q
S
TW
R

LOG
T4
S_AVERZ

A8.5

DUAL

MW0

DEZ

AW12

E0.7
S5T#35s

S
TW

E0.5

RLG S
RLG R

Exemple

LIST

Ecoulemen
t
temporisati
on
Q

Page 16

DUAL
DEZ
Q

MW0
AW12
A8.5
=

U
L
SA
U
R
L
T
LC
T
U
=

E0.7
S5T#35s
T4
E0.5
T4
T4
MW0
T4
AW12
T4
A8.5

Temporisation sous forme d'impulsion (SI)


CONT

E0.7
S5T#35s
E0.5

LOG

T4
S_IMPULS
Q
S
TW
R

T4
S_IMPULS

A8.5

DUAL

MW0

DEZ

AW12

LIST

E0.7
S5T#35s
E0.5

DUAL

TW

DEZ

MW0
AW12
A8.5
=

U
L
SI
U
R
L
T
LC
T
U
=

E0.7
S5T#35s
T4
E0.5
T4
T4
MW0
T4
AW12
T4
A8.5

RLG S
RLG R

Exemple

Ecoulemen
t
temporisati
on
Q

Temporisation sous forme d'impulsion prolonge (SV)


CONT
T4
S_VIMP

E0.7

TW
R

DUAL

MW0

DEZ

AW12

E0.7
S5T#35s
E0.5

S
TW
R

RLG S
RLG R

Exemple

LIST

T4
S_VIMP

A8.5
Q

S
S5T#35s
E0.5

LOG

Ecoulemen
t
temporisati
on
Q

Page 17

DUAL
DEZ
Q

MW0
AW12
A8.5
=

U
L
SV
U
R
L
T
LC
T
U
=

E0.7
S5T#35s
T4
E0.5
T4
T4
MW0
T4
AW12
T4
A8.5

Temporisation sous forme d'oprations binaires


CONT

LOG

Rseau 1 :

LIST

T4

E0.0

T4

&

E0.0

SE

SE
S5T#5s

S5T#5s

TW

U E0.0
L S5T#5s
SE T4

Rseau 2 :
T4

A 8.0

A 8.0
T4

&

E0.1

&

U
=

T4
A 8.0

U
R

E0.1
T4

Rseau 3 :
E0.1

T4

T4
R

Exercice

T4
S_IMPULS

E 0.7
S5T#5s
E 0.5

S
TW
R

DUAL
DEZ
Q

E0.7
E 0.5
A 8.0

S
TW
R

DUAL
DEZ
Q

E0.7
E 0.5
A 8.0

T4
S_EVERZ

E 0.7
S5T#5s
E 0.5

S
TW
R

DUAL
DEZ
Q

S
TW
R

DUAL
DEZ
Q

E 0.5
A 8.0

E 0.7
S5T#5s
E 0.5

DUAL
DEZ
Q

A8.0
E0.7
E 0.5

A 8.0

T4
S_AVERZ
S
TW
R

A8.0
E0.7

T4
S_SEVERZ

E 0.7
S5T#5s
E 0.5

A8.0
5s

T4
S_VIMP

E 0.7
S5T#5s
E 0.5

A8.0
E0.7
E 0.5

A 8.0

A8.0

Page 18

Oprations de comptage dans STEP 7


CONT

LOG

Z5

ZV

U
ZV
U
ZR
U
L
S
U
R
L
T
LC
T
U
=

Z5

ZAEHLER

E 0.4

LIST

ZAEHLER

A 8.3
Q

E 0.4

ZV

ZR

E 0.5

ZR

E 0.3

E 0.5
E 0.3

C#20

ZW

DUAL

MW 4

C#20

ZW

BCD

AW 12

E 0.7

DUAL

MW 4

BCD

AW 12
A 8.3

E 0.7
R

E0.4
Z5
E0.5
Z5
E0.3
C#20
Z5
E0.7
Z5
Z5
MW4
Z5
AW12
Z5
A8.3

Comptage : opration binaires


CONT

LOG

Rseau 1 :
E0.0

LIST

Z5
Z5
SZ
C#20

E0.0
C#20

SZ
ZW

U
L
S

E0.0
C#20
Z5

Rseau 2 :
E0.1

Rseau 3 :
E0.2

E0.1

ZV

E0.2

ZR

Z5
ZR

Rseau 4 :
Z5

Z5

Z5
ZV

Z5

A 4.0

A 4.0
Z5

Page 19

U E0.1
ZV Z5

U E0.2
ZR Z5

U
=

Z5
A 4.0

Comptage : Diagramme fonctionnel


ZV

ZR

5
4
3

Etat du
compteur2
1
0

Exercice : Programmation d'une installation de remplissage


(cycle de remplissage et comptage des bouteilles)
Installation Marche/Arrt:
E 0.0 = Start (contact NO, interrupteur)
Rservoir
principal

E 0.1 = Stop (contact NF)


Mode Manuel/Automatique :
E 0.2 = Manuel/Automatique
E 0.3 = Validation du mode
E 0.4 = Marche par impulsions Avant
E 0.5 = Marche par impulsions Arrire
Dtecteur de
bouteilles
E16.6 (E8.6)

Dtecteur de
bouteilles
E 16.5
(E 8.5)

A 9.0 (A 5.0)
Entonnoir de
remplissage

M
A 20.5 (A 8.5) Bande transporteuse Marche avant
A 20.6 (A 8.6) Bande transporteuse Marche arrire

Page 20

Dtecteur de bouteilles
E 16.7 (E 8.7)

Oprations de conversion BCD <-> Entier


Entre d'un
nombre BCD

Conversion
BCD->Entier

0 81 5

Programme utilisateur contenant des


oprations
arithmtiques sur des
entiers

Enonc
Sortie d'un
nombre BCD

Conversion
BCD<-Entier

0 2 4 8

CONT

LOG

BCD_I

EW4

MW10

MW20

L
EW4
BTI
T
MW20

AW12

L
MW10
ITB
T
AW12

BCD_I

EN

ENO

IN

OUT

EN

I_BCD
ENO

MW20

EW4

EN

OUT

IN

ENO
I_BCD

OUT

IN

LIST

AW12

MW10

EN

OUT

IN

ENO

Oprations de conversion I -> DI -> REEL


Donnes de type entier
(nombre entier de 16 bits)
Conversion
entier de 16 bits
en
entier de 32 bits

Enonc

L
O
G

Programme
de calcul
avec nbres
rels

Conversion
entier de 32 bits
en
nombres rels

I_DI

MW12

EN

OUT

IN

ENO

LIST

MD14

MD14

DI_R
EN

OUT

IN

ENO

MD26

L
MW12
ITD
DTR
T
MD26

CONT

EN
MW12

IN

I_DI
ENO
OUT

EN
MD14

MD14

IN

Page 21

DI_R
ENO
OUT

MD26

Oprations de comparaison
CONT

CMP ==I

EW0
EW2

LOG

LIST

CMP ==I

A 9.7

EW0

IN1

EW2

IN2

L EW0
L EW2
==I
= A9.7

A9.7

IN1
IN2

Oprations combinatoires
WXOR_W
WOR_W
WAND_W
EN
EW0
W#16#5F2A

EW 0

W#16#5F2A

UW / OW / XOW

ENO

MW10

IN1
IN2

OUT

15

MW10

EW0 =

0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0

W#16#5F2A =

0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0
AND

OR

XOR

MW10 aprs "UW"

0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0

MW10 aprs "OW"

0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0

MW10 aprs "XOW"

0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0

Page 22

Oprations arithmtiques de base


CONT

Addition
MW4
MW10

Soustraction

MW5
MW11

Multiplication

MD6
MD12

Division
MD40
MD4

ADD_I
EN ENO
IN1
IN2 OUT
SUB_I
EN ENO
IN1
IN2 OUT
MUL_R
EN ENO
IN1
IN2
DIV_R
EN ENO
IN1
IN2 OUT

LOG

MW4
MW6

MW10

MW5
MW7

MW11

MD6
MD66

MD12

MD40
MD32

MD4

ADD_I
OUT
EN
IN1
IN2 ENO

SUB_I
OUT
EN
IN1
IN2 ENO
MUL_R
EN OUT
IN1
IN2 ENO
DIV_R
EN OUT
IN1
IN2 ENO

LIST

MW6

MW7

MD66

MD32

L
L
+I
T

MW4
MW10

L
L
-I
T

MW5
MW11

L
L
*R
T

MD6
MD12

L
L
/R
T

Exercice : Programmation d'une installation de remplissage


(donnes de production)

Bouteilles vides

MW 100

Bouteilles pleines

MW 102

Bouteilles "casses"

MW 104

Page 23

MW6

MW7

MD66

MD40
MD4
MD32

Exercice : Programmation d'une installation de remplissage


(prparation du conditionnement)

(AW 6)

Programme entr en CONT


Programme converti en LIST
Programme entr en LIST

Oprations de dcalage (mot / double mot)

SHL_W
EN
MW4

IN

MW8
= +2

OUT

MW12

Dcalage d'un mot vers la gauche :


15

14

13

12

11 10

ou :

L
MW8
L
MW4
SLW
T
MW12

ENO

15

L
MW4
SLW 2
T
MW12

Dcalage d'un mot vers la droite


14

13

12

11 10

1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1

1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1

IN

IN
EN0 = 0

EN0 =1

1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0

0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0

OUT

OUT

Page 24

Dcalage vers la droite d'entiers signs

SHR_I
EN
MW4

IN

MW8
= +3

L
L
SSI
T

EN0

OUT

ou :

MW8
MW4

L
MW4
SSI 3
T
MW12

MW12

MW12

Dcalage vers la droite d'un entier sign de 16 bits :


15

14

13

12

11 10

15

14

13

12

11 10

1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1

0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1

IN

IN
EN0 = 0

1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1

EN0 = 1

0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1

OUT

OUT

Oprations de rotation sur un mot de 32 bits

ROL_DW

MD2

IN

MW6
= +4

31

IN:

30

MD12

OUT

29

L
MW6
L
MD2
RLD
T
MD12

ENO

EN

28

27 26

25

24

23

22

21

20 19

18

17

16 15

14

13

12

11 10

ou :

L
MD2
RLD 4
T
MD12

1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

Rotation de
4 positions
vers la gauche :
OUT:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1

OUT

Page 25

Fonctions et blocs fonctionnels

Introduction

Variables / donnes globales


(valables dans tout le
programme)
MIE / MIS

Variables / donnes locales


(valables dans un seul bloc)
Variables temporaires
effaces aprs le
traitement du bloc

Priphrie d'E/S
M/T/Z
Zones de DB

stockage temporaire dans la


pile L
utilisables dans des OB/FC/FB

absolu

symbolique
Accs

Page 26

Variables statiques
conserves aprs le
traitement du bloc
stockage permanent dans
des DB
utilisables uniquement
dans des FB

Variables temporaires

Taille de la pile des donnes locales


Taille totale ::

1,5 Ko
(CPU 313 316)

sur S7-300 :
Classe de
Taille pile L
priorit

Traitement

Dmarrage (traitement unique)

27

Traitement cyclique

Traitement
dclench
par horloge

Traitement
dclench
par un vnement

Alarme horaire

256 octets

256 octets

Alarme temporise

256 octets

Alarme cyclique

12

256 octets

Alarme de processus

16

256 octets

Tr. des erreurs au dmarrage

28

Tr. des erreurs dans le cycle

26

Page 27

256 octets

Espace mmoire d'un bloc dans la pile des donnes locales

droit

Affectation totale de la pile des donnes locales


Syst.
dexpl.
1

FC 1

OB 1
2

avec var.
tempor.

Evnem.

FC 2

avec var.
tempor.

FC 3

avec var.
tempor.

FC2
OB1

256 octets

Affectat.
de la pile L
FC3

FC1

FC1

FC1

FC1

FC1

OB1

OB1

OB1

OB1

OB1

Page 28

OB1

Exercice : Utilisation de variables temporaires

Remplac par la
variable temporaire
Conditionnement"

Exemple de signalisation de dfaut


Enonc
Entree_defaut
Acquittement
Memorisation_sortie

Signalisation

Solution propose

Memorisation_sortie
Memento_de_front

Entree_defaut

RS
Acquittement

R
S

&

>=1

Rythme_clignotement
Memorisation_sortie
Entre dfaut

Page 29

&

Signalisation

Blocs paramtrables
Bloc
non
paramtrable

Bloc paramtrable
Programme

Appel
FC 20

1.2

40.0

1.3

#Acquittement

E 1.3

M 10.3

Entree_defaut Memento
_de_front
Acquittement Signalis
ation
Rythme_clignotement

M 40.0

Memorisation_sortie

R #Memorisation_sortie
U

#Entree_defaut

E 1.2

FP M

40.1

FP #Memento_de_front

40.0

#Memorisation_sortie

40.0

#Memorisation_sortie

10.3

#Rythme_clignoteme

UNM

40.0

UN #Memorisation_sortie

1.3

#Entree_defaut

8.3

#Signalisation

M 40.1
A 8.3

Paramtres formels
Paramtres effectifs

Dclaration des paramtres formels

Paramtres formels
Type de paramtre

Dclaration

Utilisation

Reprsentat. graphique

Paramtre d'entre

in

Lecture seulement

A gauche de la bote

Paramtre de sortie
Paramtre dE/S

out
In_out

Ecriture seulement
Lecture / Ecriture

A droite de la bote
A gauche de la bote

Partie dclarative du bloc FC 20

Page 30

Edition d'un bloc paramtrable

Avec une FC non paramtrable, on a par exemple ici :


en adressage absolu :
E1.3
en adressage symbolique :
"Bute_gauche"

Appel d'un bloc paramtrable


Rseau 3 : Premier appel
....

absolu

"Bute gauche"
"Touche d'acquit."

Adressage

FC20

EN
Entree_defaut

Memento_de_front

Acquittement

M10.3

Rythme_clignotement

M40.0

Memorisation_sortie

Signalisation

M40.1
"Erreur de
position"

ENO

Rseau 4 : Deuxime appel


A8.1

symbolique

" Bute droite"


"Touche d'acquit."

FC20

EN
Entree_defaut

Memento_de_front

Acquittement

M10.3

Rythme_clignotement

M40.2

Memorisation_sortie

Table des
mnmoniq.

Mnmoniq. global

Mnmon.

Mnmoniq. local --> Paramtres formels

Page 31

Signalisation
ENO

M40.3
A9.4

Utilisation du paramtre EN/ENO lors d'appels de blocs


CONT/LOG

LIST

FC 1
Appel inconditionnel

?? . ?

Appel conditionnel

E0.1

Exemple

EN

EN

CALL

A9.0

FC 1
EN
ENO

FC 1
?? . ?

ENO

FC 2

ENO

EN

FC
NOP 0

U
E
0.1
SPBNB _001
CALL
FC
1
_001:
U
BIE
=
A
9.0

FC 3

ENO

EN

ENO

Exercice : Edition du bloc FC paramtrable


1.

Partie dclarative du bloc FC 20

Bloc non
paramtrable

U
R
U
FP
S
U
U

E
M
E
M
M
M
M

1.2
40.0
1.3
40.1
40.0
40.0
10.3

Bloc FC 20
paramtrable
2.

O
UN M
40.0
U E
1.3
= A
9.3 (A5.3)

Page 32

U #Acquittement
R #Mm. sortie
U #dfaut..
:
:
:
:
:
:
:
:

Exercice : Appel du bloc FC paramtrable


FC 20

Paramtrage de la
FC20 lors du 1er appel

Paramtrage de la
FC20 lors du 2e appel

E 0.0

Entree_defaut

E 0.2

Acquittement

M 10.3

Rythme_clignotement

M 40.0

Memorisation_sortie

M 40.1

Memento_de_front

Signalisation

E 0.1

Entree_defaut

E 0.2

Acquittement

M 10.3

Rythme_clignotement

M 40.2

Memorisation_sortie

M 40.3

Memento_de_front

Signalisation

A 0.0

A 0.1

Blocs fonctionnels (FB)


OB 1
DB 2
FB 2
EN
Entre dfaut
Acquittement

Signal.

Frq. clignot.

ENO
Partie dclarative du bloc fonctionnel

Page 33

Bloc fonctionnel pour la signalisation de dfaut

Partie dclarative
du bloc
fonctionnel

Bloc de donnes
dinstance

Cration de blocs de donnes d'instance


1. Cration du DB d'instance lors de lappel du FB

2. Cration dun nouveau DB d'instance

Page 34

Le modle de multi-instances
Le modle d'instance
OB 1

Le modle de multi-instances
DB10

Call FB20, DB10


Entree_defaut:=
Acquittement:=
Rythme_clignot:=
Signalisation:=
Call FB20, DB11
Entree_defaut:=
Acquittement:=
Rythme_clignot:=
Signalisation:=

Call FB20, DB12


Entree_defaut:=
Acquittement:=
Rythme_clignot:=
Signalisation:=

FB20

OB 1
Call FB100, DB100
FB 100
stat Defaut_1 FB20
stat Defaut_2 FB20

DB11

DB100

FB20

Call Defaut_1
Entree_defaut:=
Acquittement:=
Rythme_clignot:=
Signalisation:=

DB12

Call Defaut_2
Entree_defaut:=
Acquittement:=
Rythme_clignot:=
Signalisation:=

FB20

Paramtres et
variables statiques
du 1er appel
du FB20

Paramtres et
variables statiques
du 2me appel
du FB20

Insertion/effacement ultrieurs de paramtres de blocs

Page 35

Corrections lors de l'appel de blocs modifis


Lors de l'ouverture du bloc appelant :

1 x bouton droit

Exercice : Edition du bloc fonctionnel


1.

2.

Partie dclarative du bloc FB 20

Squence de programme
du FB 20

U #Acquittement
R #Mm. sortie
U #dfaut..
:
:

Page 36

Exercice : Appel et test d'un bloc fonctionnel

(A 5.3)

(A 5.4)

Exercice : Reconnaissance des types de variables

Opration

Global Local

Absolu Symbolique

L #Nombre_1
L #Nombre_2
T #Valeur_max
L #Resultat_intermd.
L Nombre_1"
T MW 40
T #Nombre_2

Page 37

Tempor.

Statique Paramtre

Rsum : Appel de blocs


FC
Mode de
reprsent.

LIST

FB

sans paramtre

avec paramtres

CALL FC1
UC FC1
CC FC1

CALL FC2
Par1: ...
Par2: ...
Par3: ...

sans par., sans DB dinst.

UC FB1
CC FB1

avec par., avec DB dinst.

CALL FB2, DB3


Par1: ...
Par2: ...
Par3: ...

FC1

( CALL )
CONT

ENO

EN

DB3
FB2

FC2

FC1

ENO

EN

Par2

Par1
Par3

Par2

FC1
CALL
FC1

EN

EN

Par3

DB3
FC2

LOG

ENO

EN

Par1

FB2
Par3

EN

Par1
Par2

Par1
Par2

ENO

ENO

Blocs d'organisation

FC

FB

OB1
Systme
dexploitation

FB

SFC

SFB

Autres

OB

Page 38

FC

Par3
ENO

Prsentation des blocs d'organisation


Mise en route

OB 100
OB 101
OB 102
Traitement
cyclique du
programme

Traitement
priodique du
programme

Traitement du
programme dclench
par des vnements

OB 10...17

OB 1

OB 20...23

OB 80...87

(Alarmes temporises)

(Erreurs asynchrones)

OB 30...38

OB 40...47

OB 121, 122

(Alarmes cycliques)

(Alarmes de processus)

(Alarmes horaires)

(Erreurs synchrones)

OB d'alarme

OB d'erreur

OB de mise en route
Redmarrage (manuel)
uniquement pour S7-400
(Param. correspondant dans Conf. mat.) :
STOP -> RUN + WRST

Dmarrage
automatique

manuel

S7-300 / 400

S7-300

S7-400

Excution de l'OB 101

Alim. EN

STOP->RUN

STOP->RUN
+ CRST

Traitement du cycle restant

Effacement des mmoires image du


processus, M, T, Z non rmanents

Effacement de la MIS (paramtrable)

Excution de l'OB 100

Temps surveillance
redm. dpass ?

oui

non

Validation des sorties

Validation des sorties

C
Y
C
L
E

Enregistrement de la MIE

C
Y
C
L
E

Traitement de lOB1

Copie MIS dans modules de sortie

Page 39

Enregistrement de la MIE
Traitement de lOB1
Copie MIS dans modules de sortie

STOP

Interruption du programme cyclique

Exp. OB82 (Prio.26) =


Traitement des erreurs.
Traitement en cas de
rupture de fil lentre
analogique PEW 352

Exp. OB20 (Prio.3) =


Alarme temporise. Le
traitement est lanc
3,25 s aprs la reconnaissance de la pice.

Exp. OB10 (Prio.2) =


Alarme horaire.
Traitement chaque
minute partir 9h30

LOB1
est
excut
en
continu
.....

...... Jusqu une unterruption


par un autre OB
NOB
OB 1
OB 10
OB 20
OB 35
OB 40
OB 82

Type dOB
Programme cyclique
Alarme horaire
Alarme temporise
Alarme cyclique
Alarme de processus
Alarme de diagnostic

Priorit
1
2
3
12
16
26 / 28

Traitement des valeurs analogiques

Niveau suprieur

Indicateur de
niveau

Niveau infrieur

Page 40

Utilisation de modules analogiques


Processus
Signal analogique
norm

Grandeur
physique

CM

Mmorisation
du rsultat
Adaptateur
de plage
de mesure

CAN

TM

Pression
Temprature
Dbit
Vitesse
Valeur pH
Viscosit
etc.

Grandeur
physique

Module dentre analogique

500mV
1V
5V
10V
20mA
4...20mA
etc.

PEW ...
PEW ...
:::
PEW ...

Module de sortie analogique

Actionneur
analogique

CNA

PAW ...
PAW ...
:::
PAW ...

Adaptateurs de la plage de mesure

Page 41

CPU
:
:
:
:
:
:
L PEW 352

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
T PAW 368
:

Adressage des modules analogiques sur le S7-300

Chssis 3

Alimentation

IM
(rcept.)

Chssis 2

Chssis 1

C
0

Alimentation

Alimentation

Alimentation

IM
(rcept.)

IM
(rcept.)

IM
CPU

Emplacement 2

(metteur)

640

654

656

670

672

686

688

702

704

718

720

734

736

750

752

766

512

526

528

542

544

558

560

574

576

590

592

606

608

622

624

638

384

398

400

414

416

430

432

446

448

462

464

478

480

494

496

510

256

270

272

286

288

302

304

318

320

334

336

350

352

366

368

382

Module analogique SM335 (entres)

Page 42

10

11

Module analogique SM335 (sorties)

Module dentre analogique SM331

Page 43

Reprsentation des valeurs analogiques et


rsolution des valeurs de mesure

Nde bit

Units

Poids du bit Dc. Hex.

15

14

13

12

11

10

VZ

214

213

212

211

210

29

28

27

26

25

24

23

22

21

20

128

80

64

40

10

32

20

16

10

13

14

15

Rsolu11
tion
en bit
12
+ signe

= 0 ou 1

Reprsentation des valeurs analogiques


pour diffrentes plages de mesure
Tension
par ex. :

Courant
par ex. :

Rsistance
par ex. :

Temprature
par ex. Pt100

Plage
Plage
10V

Units

Plage
4 20mA

Units

Plage
0 300ohms

Units

Plage
-200 +850C

Units

Dbordement

>= 11,759

32767

>= 22,815

32767

>=352,778

32767

>= 1000,1

32767

Domaine
de
dpassement

11,7589
:
10,0004

32511
:
27649

22,810
:
20,0005

32511
:
27649

352,767
:
300,011

32511
:
27649

1000,0
:
850,1

10000
:
8501

Plage
nominale

10,00
7,50
:
-7,5
-10,00

27648
20736
:
-20736
-27648

20,000
16,000
:
:
4,000

27648
20736
:
:
0

300,000
225,000
:
:
0,000

27648
20736
:
:
0

850,0
:
:
:
-200,0

8500
:
:
:
-2000

Domaine
de
dpassement

- 10,0004
:
- 11,759

- 27649
:
- 32512

3,9995
:
1,1852

-1
:
- 4864

- 200,1
:
- 243,0

- 2001
:
- 2430

Dbordement

<= - 11,76

- 32768

<= 1,1845

- 32768

-1
Valeurs
:
ngatives
- 4864
impossibles
- 32768

<= - 243,1

- 32768

Page 44

Normalisation dune entre analogique

500,0

0,0
0

27648

Normalisation dune sortie analogique

27648

0
0,0

Page 45

100,0

Reprsentation des valeurs analogiques


pour les sorties analogiques
Tension

Courant

Units

Plage

Plages de sortie :
0 10V
1 5V

Dbordement >=32767
Domaine de
dpassement

Plage
nominale

Domaine de
dpassement

10V

Plages de sortie :
0 20mA
4 20mA

20mA

32511
:
27649

11,7589
:
10,0004

5,8794
:
5,0002

11,7589
:
10,0004

23,515
:
20,0007

22,81
:
20,005

23,515
:
20,0007

27648
:
0
:
- 6912

10,0000
:
0
0

5,0000
:
1,0000

10,0000
:
0
:
:
:
:
:
:
:
-10,0000

20,000
:
0
0

20,000
:
4,000

20,000
:
0
:
:
:
:
:
:
:
-20,000

- 6913
:
:
:
- 27648
- 27649
:
- 32512

Dbordement <=- 32513

0,9999
0
0

- 10,0004
:
- 11,7589
0

3,9995
0
0

- 20,007
:
- 23,515
0

Exercice : Paramtrage du module analogique SM335

Page 46

Exercice : Paramtrage du module analogique SM331

Exercice : Surveillance du niveau de remplissage dun rservoir

Niveau de remplissage maxi. 600 l,


soit 10 V sur la voie analogique 0

Indicateur
de niveau
Niveau de remplissage mini. 50 l.
En cas de franchissement du seuil
infrieur, une signalisation doit
tre mise la sortie A9.2 (A 5.2).

Page 47

Exercice : Alarme de diagnostic dun module analogique

Module dentre analogique


LOB82 est appel lorsque la valeur
mesure par une voie analogique du
module atteint la plage de dbordement,
mais aussi lorsquelle sort de cette
plage en dpassant le seuil infrieur.

Dbordement
Dpassement

Enonc :
Tant quune des valeurs codes reste
dans la plage de dbordement, la sortie
A 9.1 (A 5.1) continue clignoter.

Plage nominale

Page 48

Vous aimerez peut-être aussi