mémoire genie civil presenté lors de la soutenance de mémoire
Automatisme industriel (1)
1. Automatisme Industriel II
Page 1
SIMATIC
PCS 7
SIMATIC
PC
SIMATIC
HMI
SIMATIC
NET
Logiciel
SIMATIC
SIMATIC
SIMATIC
WinCC
SIMATIC
DP
Automate
SIMATIC
Opérations binaires
E0.0 E0.1 A 8.0
A 8.1 (MCRA)
E1.2
M0.0
A 9.3
E 1.0
( MCR< )
A 8.0
E 0.0
E 1.1
( )
SR
S Q
R
E1.3
2. Traitement cyclique du programme
Lecture de l‘état des signaux sur les modules et mémorisation
des données dans la mémoire image du processus (MIE)
= A 4.3
:
:
:
:
Page 2
Module
d ’entrée
Bloc de mise en route (OB 100)
Traitement unique, par exemple à la mise sous tension
Lancement du temps de
surveillance du cycle
Exécution du programme dans l'OB1
(traitement cyclique)
Certains événements (alarme horaire, alarmes de
processus, etc.) déclenchent d‘autres OB.
Cycle de la CPU
Bloc
OB 1
U E 0.1
U E0.2
= A8.0
Module
de sortie
Ecriture de la mémoire image des sorties
(MIS) dans les modules de sortie
Mémoires image du processus
octet 0
octet 1
octet 2
:
:
:
octet 0
octet 1
octet 2
:
:
:
MIE MIS
Programme
utilisateur
:
:
U E 2.0
1
1
Zone mémoire de la CPU
Zone mémoire de la CPU
3. FB
Page 3
Programme structuré
Programme
segmenté
Programme linéaire
Structure du programme
OB 1 OB 1
Recette A
Recette B
Mélangeur
Sortie
OB 1
Pompe
Sortie
Tous les opérations sont
contenues dans un bloc
(normalement dans le
bloc d‘organisation OB1)
Les opérations des différentes
fonctions sont contenues dans
blocs isolés. L‘OB 1 appelle ces
blocs l‘un après l‘autre.
Des fonctions réutilisables sont
chargées dans différents blocs.
L‘OB 1 (ou d‘autres blocs) appelle
ces blocs et délivre les données
correspondantes.
Cycle
Blocs de programme
Système d'exploitation
Erreur FB
FC
FB
SFB
SFC
OB
Blocs
d‘organisation
Temps
Processus
FB avec bloc de
données d‘instance
OB = Bloc d'organisation Légende :
FB = Bloc fonctionnel
FC = Fonction
SFB = Bloc fonctionnel système
SFC = Fonction système
4. Contacts NF et contacts NO.
Capteurs et symboles d'interrogation
Processus Evaluation du programme dans l‘automate
La tension Etat du
Interrogation à “1” Interrogation à “0”
à l‘entrée
signal
est ...
à l‘entrée
absente 0
S1
(E1.0)
A 4.0
A 4.0
Page 4
Le capteur
est un ...
Le capteur
est ...
Symbole /
opération
Résult.
logique
Symbole /
opération
Résult.
logique
présente
absente
1
0
“Oui
”
1
CONT:
“contact NO”
CONT:
“contact NF”
LOG: LOG:
“Non”
0
“Non”
0
“Oui
”
1
activé
inactivé
contact NO
présente
1
&
LIST:
U E x.y
&
LIST:
UN E x.y
“Non”
0
“Oui
”
1
“Oui
”
1
“Non”
0
activé
inactivé
contact NF
Exercice
Tâche : La lampe doit s‘allumer dans les trois exemples lorsque S1 est activé et S2 inactivé.
S1
(E1.0)
E 1.0
S2
(E1.1)
E 1.1
E 1.0
E 1.1
S2
(E1.1)
E 1.0
S1
(E1.0)
E 1.1
S2
(E1.1)
Automate programmable
Automate programmable
Automate programmable
Matériel
E 1.0 E 1.1 A 4.0 E 1.0 E 1.1 A 4.0
E 1.0
&
E 1.0
&
E 1.0
&
Logiciel
A 4.0
La La La
CONT
E 1.0 E 1.1 A 4.0
....... E 1.0
....... E 1.1
....... A 4.0
A 4.0
E 1.1
A 4.0
E 1.1
A 4.0
E 1.1
....... E 1.0
....... E 1.1
....... A 4.0
....... E 1.0
....... E 1.1
....... A 4.0
LOG
LIST
5. Adressage des modules S7-300
N°d‘emplac. 1 2 4 5 6 7 8 9 10
Modules Alim. CPU SM SM SM SM SM SM SM
4.0
à
7.7
8.0
à
11.7
Page 5
Adresse 0.0
Adresse 0.7
Adresse 1.0
Adresse 1.7
Adressage ETOR/STOR en configuration multichâssis
Châssis
3
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
IM
(réception)
Alim.
Alim.
Châssis
2
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
IM
(réception)
Châssis
1
IM
(réception)
32.0
à
35.7
36.0
à
39.7
44.0
à
47.7
48.0
à
51.7
52.0
à
55.7
56.0
à
59.7
60.0
à
63.7
40.0
à
43.7
Alim.
Châssis
0
0.0
à
3.7
20.0
à
23.7
24.0
à
27.7
28.0
à
31.7
12.0
à
15.7
16.0
à
19.7
IM
(émis-sion)
CPU
Alim.
Emplacement 1 2 3 4 5 6 7 8 9 10 11
6. Opérations combinatoires binaires : ET, OU
CONT
Schéma élec. LIST
E0.0 E0.1 A 8.0
Page 6
A 8.0
LOG
E 0.0 &
U E0.0
S1 (E 0.0)
A 8.1
=
E 0.1
A 8.1
=
U E0.1
= A 8.0
= A 8.1
E0.2
S2 (E 0.1)
L1
(A 8.0)
S3
L2
(A 8.1)
ET
E 0.2
E 0.3
>=1
A 8.2 O E0.2
=
O E0.3
= A 8.2
E0.3
A 8.2
(E 0.2)
S4
(E 0.3)
L3 (A 8.2)
OU
Opérations combinatoires binaires : OU exclusif (XOR)
CONT LOG LIST
E0.4 E0.5
E0.4 E0.5
A 8.0 >=1
A 8.0
=
E 0.4 &
E 0.5
E 0.4 &
E 0.5
U E0.4
UN E0.5
O
UN E0.4
U E0.5
= A8.0
E 0.4
E 0.5
XOR
A 8.0 X E0.4
=
X E0.5
= A8.0
7. Affectation, mise à 1, mise à 0
CONT LOG LIST
E 1.0
A 8.0
A 8.1
E 1.4 A 8.1
(R)
CONT LOG LIST
E1.2 S
E1.3 R
E1.2 =
Page 7
&
A 8.0
U E 1.0
U E 1.1
E 1.0 E 1.1
Affectation ( )
= A 8.0
(S)
E 1.2 E 1.3
E 1.2
&
A 8.1
S
E 1.3
U E 1.2
U E 1.3
S A 8.1
=
E 1.1
Mise à 1
E 1.4
>=1
A 8.1
R
E 1.5
O E 1.4
O E 1.5
Mise à 0 E 1.5
R A 8.1
Bascule mise à 1 / mise à 0
M0.0
M0.0
SR
R Q
E1.3
A9.3
=
Mise à 0
prioritaire
SR
S Q
R
E1.2
E1.3
A 9.3 U E 1.2
S M 0.0
U E 1.3
R M 0.0
U M 0.0
= A 9.3
M0.0
E1.3
M0.0
A 9.3 U E 1.3
RS
S Q
A9.3
Mise à 1
prioritaire
RS
R Q
S
E1.2
R M 0.0
U E 1.2
S M 0.0
U M 0.0
= A 9.3
8. Connecteur
CONT LOG LIST
A8.0
A8.1
Page 8
CONT
E 1.0 E 1.1
M0.0 E 2.0 E 2.1
M 1.1
A 4.0
LIST
( )
( )
NOT ( )
U E 1.0
U E 1.1
= M 0.0
U M 0.0
U E 2.0
U E 2.1
NOT
LOG
E 1.0
&
= M 1.1
U M 1.1
= A 4.0
M0.0
E 1.1
&
E 2.0
E 2.1
M1.1 A 4.0
=
Opérations influant sur le RLG
A8.0
=
E0.0 &
E0.1
U E0.0
U E0.1
NOT
= A8.0
( )
NOT
E0.0 E0.1
NOT
CLR
SET
E1.6
( SAVE ) E1.6 & SAVE
non disponible
non disponible
non disponible
non disponible
CLR
SET
SAVE
U E1.6
SAVE
A8.1
=
BIE
BIE
( )
BIE
Mot d'état
U BIE
= A 8.1
15 8 1
BIE RLG
9. Fonction Relais de masquage
CONT LIST
E0.0 &
MCR<
A8.5
E0.7 & =
M5.5 M69.0
E4.7
Réseau 1
Page 9
MCRA
LOG
MCRA //Activé
U E0.0 //Validat. MCR
MCR( //Ouverture MCR
( MCRA )
( MCR< )
E0.0
M0.6
=
A16.0
E0.4 & S
MCR>
U E0.7 //Contact NO
= A8.5 //Bobine de sortie
= M0.6 //Bobine de sortie
U E0.4 //Contact NO
S A16.0 //Mise à 1 sortie
)MCR //Fermeture MCR
E0.7
A8.5
( )
M0.6
( )
E0.4
A16.0
( S )
( MCR> )
&
=
MCRD
UN M5.5 //Contact Not
UN E4.7 //Contact Not
= M69.0 //Bobine de sortie
MCRD //Désactiver
M5.5 E4.7 M69.0
( )
( MCRD )
Saut inconditionnel (indépendant du RLG)
CONT LOG LIST
NEW1
( JMP )
Réseau 1
Réseau 2
:
:
:
:
Réseau x
NEW1
.... JMP
Réseau 2
:
:
:
:
Réseau x
Réseau 1
SPA NEW1
Réseau 2
:
:
:
:
Réseau x
NEW1
M5.5 E4.7 M69.0
( )
NEW1
M5.5 &
E 4.7 =
M69.0
NEW1: UN M5.5
UN E4.7
= M69.0
10. Saut conditionnel (en fonction du RLG)
CONT LOG LIST
E 0.0 E 0.1 NEW1
(JMP)
CONT LOG LIST
E1.0 E1.1 M1.0 M8.0 E1.0
E1.0 E1.1 M1.1 M8.1 E1.0
Page 10
U E0.0
U E0.1
SPB NEW1
U E0.2
U E0.3
Saut pour
RLG=1
Saut pour
RLG=0
E 0.2 E 0.3 NEW2
E0.0 &
NEW1
E0.1 JMP
E0.2
NEW2
&
SPBN NEW2
(JMPN) E0.3 JMPN
Réponse aux fronts - RLG
U E1.0
U E1.1
FP M1.0
= M8.0
P
&
M1.0 M8.0
E1.1 P =
U E 1.0
U E 1.1
FN M1.1
= M8.1
N
&
M1.1 M8.1
E1.1 N =
E1.0
E1.1
RLG
Cycle OB1
M1.0
M1.1
M8.0
M8.1
Exemple
11. Réponse aux fronts - signal
CONT LOG
POS M8.0
NEG M8.1
Page 11
LIST
U E1.0
U (
U E1.1
FP
M1.0
E1.1
=
M1.0 M_BIT
E1.0 &
E1.1
M8.0
POS
M1.0 M_BIT
Q
E1.0
E1.0
E1.1
)
=
M8.0
U E1.0
U (
U E1.1
FN
M1.1
)
=
M8.1
E1.1
=
M1.1 M_BIT
E1.0 &
E1.1
M8.1
NEG
M1.1 M_BIT
Q
E1.0
Exemple M1.0
M1.1
M8.0
M8.1
Cycle OB1
Exercice : Programmation d'une installation de remplissage
(Partie Modes de fonctionnement)
Installation Marche/Arrêt:
E 0.0 =
E 0.1 =
Start (bouton-poussoir, contact NO)
Stop (bouton-poussoir, contact NF)
Mode de fonctionnement Manuel/Automatique :
E 0.2 = Manuel/Automatique (commutateur)
Validation mode de fonctionnement
(bouton-poussoir, contact NO)
E 0.3 =
E 0.4 = Marche par impulsions Avant
(bouton-poussoir, contact NO)
Détecteur de
bouteilles
E 16.6 (E 8.6)
Marche par impulsions Arrière
(bouton-poussoir, contact NO)
E 0.5 =
M
A 20.5 (A 8.5) Bande transporteuse Marche avant
A 20.6 (A 8.6) Bande transporteuse Marche arrière
14. Chargement et transfert de données (2)
:
:
L W#16#CAFE C A F E X X X X X X X X
Page 14
Contenu
de Accu2
Contenu
de Accu1
Programme
X X X X X X X X Y Y Y Y Y Y Y Y
0 0 0 0 0 0 0 0
L W#16#AFFE 0 0 0 0 0 0 0 0
:
:
:
A F F E 0 0 0 0 C A F E
Chargement et transfert de données (3)
31 23 15 7 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 MB0
31 23 15 7 0
Programme
L MB 0
Contenu de l'accumulateur 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 MB0 MB1
31 23 15 7 0
MB0 MB1 MB2 MB3
Chargement
T AD 4
AD 4
L MW 0
L MD 0
AW 4
AB 4
Transfert T AW 4
T AB 4
15. Temporisation sous forme de retard à la montée (SE)
Page 15
LIST
U E0.7
L S5T#35s
SE T4
CONT
T4
S_EVERZ
S Q
TW
DUAL
E0.7
S5T#35s
A8.5
MW0
LOG
S_EVERZ
E0.7 DUAL
S5T#35s
MW0
AW12
T4
S
U E0.5
R T4
L T4
T MW0
LC T4
T AW12
U T4
= A8.5
DEZ
R
E0.5
AW12
TW
DEZ E0.5 R Q
A8.5
=
Exemple
RLG à S
RLG à R
Ecoulement
temporisation
Valeur de temps: 0
. . . 999
0,01s <--
0,1s <--
1s <--
10s <--
0 0
0 1
1 0
1 1
Donnée type
“S5TIME”
Q
Temporisations : formats S5 dans STEP 7
Format d'une valeur de temps prédéfinie
102 101 100
X X
Contenu accumulateur après “L T...”
Base de temps Valeur de temps (format BCD)
Valeur de temps (nombre binaire)
102 101 100
X X X X X X
Contenu accumulateur après “LC T...”
Base de temps Valeur de temps (format BCD)
X X
16. Temporisation sous forme de retard à la montée mémorisé (SS)
S5T#35s DEZ AW12
S5T#35s DEZ AW12
Page 16
LIST
U E0.7
L S5T#35s
SS T4
U E0.5
CONT
T4
S_SEVERZ
S Q
DUAL
E0.7
S5T#35s
A8.5
LOG
T4
S_SEVERZ
E0.7 S
DUAL MW0
R T4
L T4
T MW0
LC T4
T AW12
U T4
= A8.5
TW
DEZ
R
E0.5
MW0
AW12
TW
E0.5 R Q
A8.5
=
RLG à S
RLG à R
Ecoulemen
t
temporisati
on
Q
Exemple
Temporisation sous forme de retard à la retombée (SA)
LIST
U E0.7
L S5T#35s
SA T4
U E0.5
CONT
T4
S_AVERZ
S Q
DUAL
E0.7
S5T#35s
A8.5
LOG
T4
S_AVERZ
E0.7 S
DUAL MW0
RLG à S
R T4
L T4
T MW0
LC T4
T AW12
U T4
= A8.5
TW
DEZ
R
E0.5
MW0
AW12
TW
E0.5 R Q
A8.5
=
RLG à R
Ecoulemen
t
temporisati
on
Q
Exemple
17. Temporisation sous forme d'impulsion (SI)
S5T#35s DEZ AW12
S5T#35s DEZ AW12
Page 17
LOG
T4
S_IMPULS
E0.7 S
DUAL MW0
LIST
U E0.7
L S5T#35s
SI T4
U E0.5
CONT
T4
E0.7 A8.5
S_IMPULS
S Q
DUAL
TW
E0.5 R Q
A8.5
=
RLG à S
R T4
L T4
T MW0
LC T4
T AW12
U T4
= A8.5
TW MW0
DEZ
R
S5T#35s
E0.5
AW12
RLG à R
Ecoulemen
t
temporisati
on
Q
Exemple
Temporisation sous forme d'impulsion prolongée (SV)
CONT
T4
S_VIMP
S Q
E0.7 A8.5
LIST
U E0.7
L S5T#35s
SV T4
LOG
T4
S_VIMP
E0.7
S
DUAL
MW0
S5T#35s MW0
TW
DUAL
DEZ
R
E0.5
AW12
U E0.5
R T4
L T4
T MW0
LC T4
T AW12
U T4
= A8.5
TW
Q
R
E0.5
A8.5
=
RLG à S
RLG à R
Ecoulemen
t
temporisati
on
Q
Exemple
18. Temporisation sous forme d'opérations binaires
Page 18
Réseau 1 :
CONT
E0.0 T4
T4
& SE
E0.0
LOG
LIST
U E0.0
SE
S5T#5s
Réseau 2 :
T4 A 8.0
S5T#5s
A 8.0
& =
T4
TW
L S5T#5s
SE T4
U T4
= A 8.0
E0.1 T4
R
Réseau 3 :
T4 U E0.1
E0.1 & R
R T4
Exercice
T4
S_IMPULS
DUAL
DEZ
T4
S
TW
R
Q
S_VIMP E0.7
E 0.7
S5T#5s
E 0.5 A 8.0
E0.7
E 0.5
A8.0
5s
S
TW
R
DUAL
DEZ
Q
E 0.7
S5T#5s
E 0.5 A 8.0
E 0.5
A8.0
E0.7
E 0.5
A8.0
T4
S_EVERZ
S
TW
R
DUAL
DEZ
Q
E 0.7
S5T#5s
E 0.5 A 8.0
E0.7
T4
S_SEVERZ
E 0.5
A8.0
S
TW
R
DUAL
DEZ
Q
E 0.7
S5T#5s
E 0.5 A 8.0
T4
S_AVERZ
S
TW
R
DUAL
DEZ
Q
E 0.7
S5T#5s
E 0.5 A 8.0
E0.7
E 0.5
A8.0
19. Opérations de comptage dans STEP 7
Page 19
LIST
U E0.4
ZV Z5
CONT
Z5
ZAEHLER
LOG
Z5
ZAEHLER
U E0.5
ZR Z5
U E0.3
L C#20
S Z5
U E0.7
R Z5
L Z5
T MW4
Q
E 0.4
E 0.5
ZV
C#20
ZR
S
E 0.3
ZW
A 8.3
DUAL MW 4
E 0.4
E 0.5
ZV
C#20
ZR
E 0.3 S
ZW
DUAL
BCD
MW 4
AW 12
LC Z5
T AW12
U Z5
= A8.3
E 0.7
R BCD AW 12 E 0.7 R Q
A 8.3
=
Comptage : opération binaires
LIST
U E0.0
CONT
E0.0 Z5
SZ
Réseau 1 :
LOG
Z5
SZ
E0.0
L C#20
S Z5
U E0.1
ZV Z5
U E0.2
C#20
Z5
Réseau 2 :
E0.1
ZV
Réseau 3 :
E0.2 Z5
C#20 ZW
Z5
ZV
E0.1
Z5
ZR Z5
U Z5
= A 4.0
ZR
Réseau 4 :
Z5 A 4.0
ZR
E0.2
A 4.0
=
Z5
20. Comptage : Diagramme fonctionnel
Exercice : Programmation d'une installation de remplissage
(cycle de remplissage et comptage des bouteilles)
Page 20
ZV
ZR
S
R
Etat du
5
4
3
compteur
Q
2
1
0
Réservoir
principal
Installation Marche/Arrêt:
E 0.0 = Start (contact NO, interrupteur)
E 0.1 = Stop (contact NF)
Mode Manuel/Automatique :
E 0.2 = Manuel/Automatique
A 9.0 (A 5.0)
Entonnoir de
remplissage
Détecteur de
bouteilles
E16.6 (E8.6)
Détecteur de
bouteilles
E 16.5
(E 8.5)
Détecteur de bouteilles
E 16.7 (E 8.7)
E 0.3 = Validation du mode
E 0.4 = Marche par impulsions Avant
E 0.5 = Marche par impulsions Arrière
M
A 20.5 (A 8.5) Bande transporteuse Marche avant
A 20.6 (A 8.6) Bande transporteuse Marche arrière
21. Opérations de conversion BCD <-> Entier
0 8 1 5 Entrée d'un
nombre BCD
Page 21
Sortie d'un
Conversion
BCD->Entier
Enoncé
Conversion
Programme utilisa-teur
contenant des
opérations
arithmétiques 0 2 4 8
sur des
nombre BCD
BCD<-Entier
entiers
LOG
BCD_I
EN OUT MW20
LIST
L EW4
BTI
T MW20
CONT
BCD_I
EN ENO
EW4 IIN ENO
IN
I_BCD
EN
OUT
ENO
MW10 AW12
L MW10
ITB
T AW12
EW4 IIN OUT MW20
I_BCD
EN ENO
MW10 OUT AW12
IN
Opérations de conversion I -> DI -> REEL
Programme
de calcul
avec nbres
Conversion
entier de 32 bits
en
Conversion
entier de 16 bits
en
Enoncé
Données de type entier
(nombre entier de 16 bits)
réels
LIST
L MW12
ITD
nombres réels
entier de 32 bits
IN
I_DI
EN
OUT
ENO
MW12 MD14
IN
DI_R
EN
OUT
ENO
MD14 MD26
L
O
G
CONT
DTR
T MD26
DI_R
EN ENO
MD14 IN
OUT MD26
I_DI
EN ENO
MW12 IN OUT MD14
22. Opérations de comparaison
CONT LOG LIST
15 0
MW10 après "UW" MW10 après "OW" 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0
Page 22
L EW0
L EW2
==I
= A9.7
CMP ==I
IN1
IN2
EW0
EW2
A 9.7
IN1
IN2
EW0
EW2
A9.7
=
CMP ==I
Opérations combinatoires
L EW 0
L W#16#5F2A
UW / OW / XOW
T MW10
WXOR_W
WOR_W
WAND_W
EN ENO
OR XOR
EW0 =
W#16#5F2A IN2 OUT MW10
W#16#5F2A =
EW0 IN1
0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0
0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0
AND
0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0
MW10 après "XOW" 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0
23. Opérations arithmétiques de base
CONT LOG LIST
Page 23
Addition
L MW4
L MW10
+ I
ADD_I
EN
OUT
MW10 IN2
ENO
T MW6
MW4 IN1
MW6
MW10
ADD_I
EN ENO
IN2
OUT
MW4 IN1
MW6 Soustrac-tion
MW11
SUB_I
EN
IN2
OUT
ENO
MW5 IN1
MW7
L MW5
L MW11
- I
T MW7
SUB_I
EN ENO
MW5 IN1
MW11 OUT MW7
IN2
Multipli-cation
MUL_R
EN OUT
MD6 IN1
MD66
L MD6
L MD12
* R
T MD66
MD6
MUL_R
EN ENO
IN1
MD12 IN2 ENO
MD12 MD66 IN2
Division
MD4
DIV_R
EN
IN2
OUT
ENO
MD40 IN1
MD32
L MD40
L MD4
/ R
T MD32
MD40
MD4
DIV_R
EN ENO
IN1
IN2 OUT MD32
Exercice : Programmation d'une installation de remplissage
(données de production)
Bouteilles vides
Bouteilles pleines
Bouteilles "cassées"
MW 100
MW 102
MW 104
24. Exercice : Programmation d'une installation de remplissage
(préparation du conditionnement)
Programme converti en LIST
Décalage d'un mot vers la gauche :
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Décalage d'un mot vers la droite
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EN0 =1 EN0 = 0
Page 24
(AW 6)
Programme entré en CONT
Programme entré en LIST
Opérations de décalage (mot / double mot)
L MW8
L MW4
SHL_W
EN ENO
L MW4
ou :
SLW
T MW12
MW4 IN
N OUT MW12
MW8
= +2
SLW 2
T MW12
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
0 0
IN
1 0 0 0 0 0 0 0 0 0 0 0 0 1
OUT
0 0
IN
1 1 1 0 0 0 0 0 0 0 0 0 0 0
OUT
25. Décalage vers la droite d'entiers signés
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Page 25
SHR_I
EN EN0
L MW8
L MW4
SSI
L MW4
SSI 3
ou :
MW4 IN
N OUT MW12
MW8
= +3
Décalage vers la droite d'un entier signé de 16 bits :
T MW12
T MW12
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
1 1 1
IN
1 0 1 0 0 0 0 0 0 0 0 0 1
OUT
EN0 = 0
0 0 0
IN
0 1 1 0 0 0 0 0 0 0 0 0 1
OUT
EN0 = 1
Opérations de rotation sur un mot de 32 bits
ROL_DW
EN ENO L MW6
ou :
L MD2
L MD2
MD2 IN
N OUT MD12
MW6
= +4
RLD
T MD12
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
IN:
OUT
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
26. Fonctions et blocs fonctionnels
Introduction
Variables / données locales
(valables dans un seul bloc)
Page 26
Variables / données globales
(valables dans tout le
programme)
Variables temporaires
• effacées après le
traitement du bloc
• stockage temporaire dans la
pile L
• utilisables dans des OB/FC/FB
Variables statiques
• conservées après le
traitement du bloc
• stockage permanent dans
des DB
• utilisables uniquement
dans des FB
• MIE / MIS
• Périphérie d'E/S
• M / T / Z
• Zones de DB
absolu symbolique
Accès
27. Variables temporaires
Taille de la pile des données locales
Démarrage (traitement unique) 27
Traitement 2
déclenché
par horloge
Page 27
Taille totale ::
sur S7-300 :
1,5 Ko
(CPU 313 à 316)
Traitement
Taille pile L
Classe de
priorité
256 octets
1
Traitement cyclique
256 octets
3
256 octets
Alarme horaire
Alarme temporisée 12 256 octets
Alarme cyclique
Tr. des erreurs dans le cycle
16 256 octets
28
26
256 octets
Traitement
déclenché
par un événement
Alarme de processus
Tr. des erreurs au démarrage
28. Espace mémoire d'un bloc dans la pile des données locales
FC1
FC3
FC1
Page 28
droit
Syst.
d‘expl.
1
OB 1
Affectation totale de la pile des données locales
3
FC 2
FC 1
Evénem.
1
avec var.
tempor.
4
3
4
6
6
FC 3
avec var.
tempor.
5
5
avec var.
tempor.
2
2
7
7
256 octets
Affectat.
de la pile L
FC2
FC1
FC1
OB1 OB1
FC1
OB1
OB1
OB1
OB1
OB1
29. Exercice : Utilisation de variables temporaires
Remplacé par la
variable temporaire
“Conditionnement"
Exemple de signalisation de défaut
Solution proposée Memorisation_sortie
Page 29
Enoncé
Entree_defaut
Acquittement
Memorisation_sortie
Signalisation
Memento_de_front Acquittement
RS
R
Entree_defaut
Rythme_clignotement
Entrée défaut
Signalisation
&
=
S Q & >=1
P
Memorisation_sortie
30. Blocs paramétrables
Bloc paramétrable
E 1.3 M 40.1
E 1.2 A 8.3
M 10.3
Page 30
FC 20
Appel
Programme
Bloc
non
paramétrable
Entree_defaut
Acquittement
Memento
_de_front
Signalis
ation
Rythme_clignotement
Memorisation_sortie
U #Acquittement
R #Memorisation_sortie
U #Entree_defaut
FP #Memento_de_front
S #Memorisation_sortie
U #Memorisation_sortie
U #Rythme_clignoteme
O
UN #Memorisation_sortie
U E 1.2
R M 40.0
U E 1.3
FP M 40.1
S M 40.0
U M 40.0
U M 10.3
O
UNM 40.0
M 40.0
U #Entree_defaut
= #Signalisation
U E 1.3
= A 8.3
Paramètres formels
Paramètres effectifs
Déclaration des paramètres formels
Utilisation Représentat. graphique
Lecture seulement A gauche de la boîte
Type de paramètre
Paramètre d'entrée
Déclaration
in
Paramètres formels
Ecriture seulement A droite de la boîte
Paramètre de sortie
Paramètre d‘E/S
out
In_out Lecture / Ecriture A gauche de la boîte
Partie déclarative du bloc FC 20
31. Edition d'un bloc paramétrable
Avec une FC non paramétrable, on a par exemple ici :
....
Rythme_clignotement
Memorisation_sortie
A8.1
Page 31
• en adressage absolu : E1.3
• en adressage symbolique : "Butée_gauche"
Appel d'un bloc paramétrable
Réseau 3 : Premier appel
Entree_defaut
Acquittement
Memento_de_front M40.1
EN
"Butée gauche"
"Touche d'acquit."
FC20
absolu
Réseau 4 : Deuxième appel
Signalisation
"Erreur de
position"
ENO
M10.3
M40.0
Entree_defaut
Acquittement
Memento_de_front
Signalisation
M40.3
A9.4
EN
" Butée droite"
"Touche d'acquit."
FC20
Adressage
symbolique
Rythme_clignotement
Memorisation_sortie
ENO
M10.3
M40.2
Mnémon. Mnémoniq. local --> Paramètres formels
Table des
mnémoniq.
Mnémoniq. global
32. Utilisation du paramètre EN/ENO lors d'appels de blocs
CONT/LOG LIST
A9.0
Exercice : Edition du bloc FC paramétrable
Page 32
CALL FC 1
NOP 0
FC 1
Appel inconditionnel ?? . ? EN ENO U E 0.1
SPBNB _001
CALL FC 1
_001: U BIE
= A 9.0
FC 1
E0.1 EN ENO =
Appel conditionnel
Exemple
?? . ?
FC 1
EN ENO
FC 2
EN ENO
FC 3
EN ENO =
Partie déclarative du bloc FC 20
1.
Bloc non
paramétrable
Bloc FC 20
paramétrable
U E 1.2
R M 40.0
U E 1.3
FP M 40.1
S M 40.0
U #Acquittement
R #Mém. sortie
U #défaut..
:
:
2.
U M 40.0
U M 10.3
O
UNM 40.0
U E 1.3
= A 9.3 (A5.3)
:
:
:
:
:
:
33. Exercice : Appel du bloc FC paramétrable
E 0.1 Signalisation
E 0.2
Rythme_clignotement
Page 33
Paramétrage de la
FC20 lors du 1er appel
Entree_defaut
Acquittement
Signalisation
Rythme_clignotement
E 0.0
E 0.2
A 0.0
M 10.3
FC 20
Memorisation_sortie
Memento_de_front
M 40.0
M 40.1
Paramétrage de la
Entree_defaut
Acquittement
A 0.1
M 10.3
FC20 lors du 2e appel
Memorisation_sortie
Memento_de_front
M 40.2
M 40.3
Blocs fonctionnels (FB)
FB 2
EN
DB 2
OB 1
Entrée défaut
Acquittement Signal.
Fréq. clignot. ENO
Partie déclarative du bloc fonctionnel
34. Bloc fonctionnel pour la signalisation de défaut
Page 34
Partie déclarative
du bloc
fonctionnel
Bloc de données
d‘instance
Création de blocs de données d'instance
1. Création du DB d'instance lors de l‘appel du FB 2. Création d‘un nouveau DB d'instance
35. Le modèle de multi-instances
Call FB100, DB100
Page 35
DB10
Le modèle d'instance
OB 1
Le modèle de multi-instances
OB 1
FB20
Call FB20, DB10
Entree_defaut:=
Acquittement:=
Rythme_clignot:=
Signalisation:=
DB11
FB20
Call FB20, DB11
Entree_defaut:=
Acquittement:=
Rythme_clignot:=
Signalisation:=
DB100
FB 100
stat Defaut_1 FB20
stat Defaut_2 FB20
Paramètres et
variables statiques
du 1er appel
Call Defaut_1
Entree_defaut:=
Acquittement:=
DB12
FB20
Call FB20, DB12
Entree_defaut:=
Acquittement:=
Rythme_clignot:=
Signalisation:=
Paramètres et
variables statiques
du 2ème appel
du FB20
Call Defaut_2
Entree_defaut:=
Acquittement:=
Rythme_clignot:=
Signalisation:=
du FB20
Rythme_clignot:=
Signalisation:=
Insertion/effacement ultérieurs de paramètres de blocs
36. Corrections lors de l'appel de blocs modifiés
Page 36
Lors de l'ouverture du bloc appelant :
1 x bouton droit
Exercice : Edition du bloc fonctionnel
Partie déclarative 1. du bloc FB 20
Séquence de programme
du FB 20
U #Acquittement
R #Mém. sortie
U #défaut..
:
:
2.
37. Exercice : Appel et test d'un bloc fonctionnel
Page 37
(A 5.3)
(A 5.4)
Exercice : Reconnaissance des types de variables
Absolu Symbolique Tempor. Statique Paramètre
Opération
L #Nombre_1
Global Local
L #Nombre_2
T #Valeur_max
L #Resultat_interméd.
L “Nombre_1"
T MW 40
T #Nombre_2
38. Résumé : Appel de blocs
Page 38
• CALL FC1
LIST • UC FC1
FB
sans par., sans DB d‘inst.
• UC FB1
avec paramètres
• CALL FC2
Par1: ...
Par2: ...
avec par., avec DB d‘inst.
• CALL FB2, DB3
Par1: ...
Par2: ...
sans paramètre
Mode de
représent.
FC
• CC FC1
CONT
( CALL )
FC1
EN ENO
FC1
• CC FB1
Par3: ...
FC2
EN ENO
Par3
Par1
Par2
Par3: ...
DB3
FB2
EN ENO
Par3
Par1
Par2
FC1
LOG
CALL
FC1
EN
ENO
FC2
EN
ENO
Par1
Par2
Par3
DB3
FB2
EN
Par3
ENO
Par1
Par2
Blocs d'organisation
Système
OB1
FC FB
d‘exploi-tation
FC
FB
SFC
SFB
Autres
OB
39. Présentation des blocs d'organisation
Page 39
Mise en route
OB 100
OB 101
OB 10...17
(Alarmes horaires)
OB 80...87
(Erreurs asynchrones)
OB 20...23
(Alarmes temporisées)
Traitement
périodique du
programme
OB 30...38
Traitement du
programme déclenché
par des événements
OB 40...47
OB 102
Traitement
cyclique du
programme
OB 1
OB 121, 122
(Alarmes cycliques)
(Alarmes de processus)
(Erreurs synchrones)
OB d'alarme OB d'erreur
Démarrage
automatique manuel
S7-300 / 400 S7-300 S7-400
STOP->RUN
Redémarrage (manuel)
• uniquement pour S7-400
(Param. correspondant dans Conf. mat.) :
STOP -> RUN + WRST
Exécution de l'OB 101
OB de mise en route
Alim. EN STOP->RUN
+ CRST
Effacement des mémoires image du
processus, M, T, Z non rémanents
Exécution de l'OB 100
Validation des sorties
Traitement du cycle restant
Effacement de la MIS (paramétrable)
Temps surveillance
redém. dépassé ?
Validation des sorties
STOP
oui
non
Enregistrement de la MIE
Traitement de l‘OB1
Copie MIS dans modules de sortie
Enregistrement de la MIE
Traitement de l‘OB1
Copie MIS dans modules de sortie
C
Y
C
L
E
C
Y
C
L
E
40. Page 40
Exp. OB82 (Prio.26) =
Traitement des erreurs.
Traitement en cas de
rupture de fil à l‘entrée
Exp. OB10 (Prio.2) =
Alarme horaire.
Traitement chaque
Interruption du programme cyclique
analogique PEW 352
minute à partir 9h30
L‘OB1
est
exécuté
en
continu
.....
N°OB Type d‘OB Priorité
Exp. OB20 (Prio.3) =
Alarme temporisée. Le
traitement est lancé
3,25 s après la recon-
...... Jusqu‘à une unterruption
par un autre OB
OB 1
3
Programme cyclique
Alarme horaire
Alarme temporisée
Alarme cyclique
1
16
Alarme de processus
Alarme de diagnostic
2
12
26 / 28
OB 10
OB 20
OB 35
OB 40
OB 82
naissance de la pièce.
Traitement des valeurs analogiques
Indicateur de
niveau
Niveau supérieur
Niveau inférieur
41. Utilisation de modules analogiques
Module d‘entrée analogique CPU
Adaptateur
de plage
de mesure
CAN
:::
PEW ...
Page 41
Processus
Grandeur
physique
Signal analogique
normé
Mémorisation
du résultat
PEW ...
PEW ...
:
:
:
:
:
:
CM TM
• Pression
• Température
• Débit
• Vitesse
• Valeur pH
• Viscosité
• etc.
± 500mV
± 1V
± 5V
± 10V
± 20mA
4...20mA
etc. Module de sortie analogique
L PEW 352
............................
CNA
PAW ...
PAW ...
:::
PAW ...
T PAW 368
:
Actionneur
analogique
Grandeur
physique
.............
Adaptateurs de la plage de mesure
42. Adressage des modules analogiques sur le S7-300
398
414
446
462
478
494
510
430
Page 42
Châssis 3 640
384
à
400
à
432
à
448
à
464
à
480
à
496
à
416
à
Châssis 1 Alimen-tation
IM
(récept.)
512
à
526
528
à
542
544
à
558
560
à
574
576
à
590
592
à
606
608
à
622
624
à
638
Châssis 2
IM
(récept.)
Alimen-tation
à
654
656
à
670
672
à
686
688
à
702
704
à
718
720
à
734
736
à
750
752
à
766
IM
(récept.)
Alimen-tation
IM 256
à
270
336
à
350
352
à
366
368
à
382
304
à
318
320
à
334
272
à
286
288
à
302
(émetteur)
C
0
Alimen-tation
CPU
Emplacement 2 3 4 5 6 7 8 9 10 11
Module analogique SM335 (entrées)
47. Exercice : Paramétrage du module analogique SM331
Exercice : Surveillance du niveau de remplissage d‘un réservoir
Page 47
Indicateur
de niveau
Niveau de remplissage maxi. 600 l,
soit 10 V sur la voie analogique 0
Niveau de remplissage mini. 50 l.
En cas de franchissement du seuil
inférieur, une signalisation doit
être émise à la sortie A9.2 (A 5.2).
48. Exercice : Alarme de diagnostic d‘un module analogique
Module d‘entrée analogique
L‘OB82 est appelé lorsque la valeur
mesurée par une voie analogique du
module atteint la plage de débordement,
mais aussi lorsqu‘elle sort de cette
plage en dépassant le seuil inférieur.
Page 48
Débordement
Enoncé :
Tant qu‘une des valeurs codées reste
dans la plage de débordement, la sortie
Dépassement
Plage nominale
A 9.1 (A 5.1) continue à clignoter.