Vous êtes sur la page 1sur 48

Automatisme Industriel II

SIMATIC
PCS 7

SIMATIC
Logiciel NET
SIMATIC

SIMATIC
HMI
SIMATIC
SIMATIC
PC
SIMATIC
WinCC

SIMATIC
DP
Automate
SIMATIC

Opérations binaires

E0.0 E0.1 A 8.0

A 8.1 (MCRA)

E 0.0
( MCR< )

E 1.0 E 1.1 A 8.0


( )

M0.0
E1.2 A 9.3
SR
S Q

E1.3
R

Page 1
Traitement cyclique du programme
Bloc de mise en route (OB 100)
Traitement unique, par exemple à la mise sous tension

Lancement du temps de Module


surveillance du cycle d ’entrée

Lecture de l‘état des signaux sur les modules et mémorisation


des données dans la mémoire image du processus (MIE)
Cycle de la CPU

Exécution du programme dans l'OB1 Bloc U E 0.1


(traitement cyclique) OB 1 U E0.2
Certains événements (alarme horaire, alarmes de = A8.0
processus, etc.) déclenchent d‘autres OB.

Ecriture de la mémoire image des sorties Module


(MIS) dans les modules de sortie de sortie

Mémoires image du processus

MIE MIS
Programme
octet 0 utilisateur octet 0
octet 1 octet 1
octet 2 1 octet 2
: : :
: : : 1
: U E 2.0 :
= A 4.3
:
:
:
:
Zone mémoire de la CPU Zone mémoire de la CPU

Page 2
Structure du programme

Programme
Programme linéaire Programme structuré
segmenté

Recette A
Pompe
OB 1 OB 1 Recette B OB 1

Mélangeur
Sortie

Sortie

Tous les opérations sont Les opérations des différentes Des fonctions réutilisables sont
contenues dans un bloc fonctions sont contenues dans chargées dans différents blocs.
(normalement dans le blocs isolés. L‘OB 1 appelle ces L‘OB 1 (ou d‘autres blocs) appelle
bloc d‘organisation OB1) blocs l‘un après l‘autre. ces blocs et délivre les données
correspondantes.

Blocs de programme

Système d'exploitation

Cycle

Temps OB
FB FC SFB
Blocs
Processus d‘organisation

FB FB SFC
Erreur

OB = Bloc d'organisation Légende :


FB = Bloc fonctionnel
FC = Fonction
SFB = Bloc fonctionnel système
SFC = Fonction système FB avec bloc de
données d‘instance

Page 3
Contacts NF et contacts NO.
Capteurs et symboles d'interrogation
Processus Evaluation du programme dans l‘automate

Le capteur Le capteur La tension Etat du Interrogation à “1” Interrogation à “0”


est un ... est ... à l‘entrée signal
est ... à l‘entrée
Symbole / Résult. Symbole / Résult.
opération logique opération logique

contact NO activé
1 CONT: “Oui CONT: “Non”
présente
” 0
“contact NO” 1 “contact NF”

inactivé absente 0 “Non” “Oui


0 ”
LOG: LOG: 1
& &
contact NF activé
absente 0 “Non” “Oui
0 ”
1

inactivé LIST: LIST:


présente 1 “Oui “Non”
U E x.y ” UN E x.y 0
1

Exercice
Tâche : La lampe doit s‘allumer dans les trois exemples lorsque S1 est activé et S2 inactivé.

Matériel

S1 S2 S1 S2 S1 S2
(E1.0) (E1.1) (E1.0) (E1.1) (E1.0) (E1.1)
E 1.0 E 1.1 E 1.0 E 1.1 E 1.0 E 1.1
Automate programmable Automate programmable Automate programmable
A 4.0 A 4.0 A 4.0

La La La

Logiciel
E 1.0 E 1.1 A 4.0 E 1.0 E 1.1 A 4.0 E 1.0 E 1.1 A 4.0
CONT

E 1.0 & E 1.0 & E 1.0 &

LOG
E 1.1 A 4.0 E 1.1 A 4.0 E 1.1 A 4.0

....... E 1.0 ....... E 1.0 ....... E 1.0


LIST ....... E 1.1 ....... E 1.1 ....... E 1.1
....... A 4.0 ....... A 4.0 ....... A 4.0

Page 4
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

Adresse 0.0
Adresse 0.7
Adresse 1.0
Adresse 1.7

Adressage ETOR/STOR en configuration multichâssis


Alim. IM 96.0 100.0 104.0 108.0 112.0 116.0 120.0 124.0
Châssis
3 (réception) à à à à à à à à
99.7 103.7 107.7 111.7 115.7 119.7 123.7 127.7

Alim. IM 64.0 68.0 72.0 76.0 80.0 84.0 88.0 92.0


Châssis (réception) à à à à à à à à
2 67.7 70.7 75.7 79.7 83.7 87.7 91.7 95.7

Alim.
IM 32.0 36.0 40.0 44.0 48.0 52.0 56.0 60.0
Châssis à à à à à à à à
1 (réception)
35.7 39.7 43.7 47.7 51.7 55.7 59.7 63.7

Alim. 0.0 4.0 8.0 12.0 16.0 20.0 24.0 28.0


CPU IM
Châssis (émis- à à à à à à à à
0 sion) 3.7 7.7 11.7 15.7 19.7 23.7 27.7 31.7

Emplacement 1 2 3 4 5 6 7 8 9 10 11

Page 5
Opérations combinatoires binaires : ET, OU

Schéma élec. CONT LOG LIST

S1 (E 0.0)
E0.0 E0.1 A 8.0 E 0.0 & A 8.0 U E0.0
= U E0.1
ET S2 (E 0.1) E 0.1
= A 8.0
A 8.1 A 8.1 = A 8.1
=

L1 L2
(A 8.0) (A 8.1)

S3
(E 0.2) E0.2 A 8.2
A 8.2 O E0.2
S4 E 0.2 >=1
OU = O E0.3
(E 0.3) E 0.3 = A 8.2
E0.3

L3 (A 8.2)

Opérations combinatoires binaires : OU exclusif (XOR)

CONT LOG LIST

E 0.4 & U E0.4


E0.4 E0.5 A 8.0 A 8.0 UN E0.5
E 0.5 >=1 O
=
UN E0.4
E 0.4 & U E0.5
E0.4 E0.5 E 0.5 = A8.0

E 0.4 A 8.0 X E0.4


XOR
= X E0.5
E 0.5 = A8.0

Page 6
Affectation, mise à 1, mise à 0

CONT LOG LIST

E 1.0 E 1.1 A 8.0 U E 1.0


E 1.0 U E 1.1
& A 8.0
Affectation ( ) = A 8.0
E 1.1 =

E 1.2 E 1.3 U E 1.2


A 8.1 E 1.2 & A 8.1
Mise à 1 (S) U E 1.3
E 1.3 S S A 8.1

E 1.4 A 8.1
(R) E 1.4 O E 1.4
>=1 A 8.1 O E 1.5
Mise à 0 E 1.5 R R A 8.1
E 1.5

Bascule mise à 1 / mise à 0

CONT LOG LIST

M0.0 M0.0
E1.2 A 9.3 U E 1.2
SR SR S M 0.0
Mise à 0 S Q E1.2 S
prioritaire U E 1.3
A9.3 R M 0.0
E1.3
R Q = U M 0.0
R E1.3 = A 9.3

M0.0 M0.0
E1.3 A 9.3 U E 1.3
Mise à 1 RS RS R M 0.0
R Q E1.3 R
prioritaire U E 1.2
A9.3 S M 0.0
E1.2
Q = U M 0.0
S E1.2 S = A 9.3

Page 7
Connecteur

CONT LIST

E 1.0 E 1.1 M0.0 E 2.0 E 2.1 M 1.1 A 4.0


( ) NOT ( ) ( ) U E 1.0
U E 1.1
= M 0.0
U M 0.0
LOG U E 2.0
U E 2.1
NOT
E 1.0 & = M 1.1
M0.0
U M 1.1
E 1.1 &
= A 4.0
E 2.0 M1.1 A 4.0

E 2.1 =

Opérations influant sur le RLG


CONT LOG LIST

U E0.0
E0.0 E0.1
A8.0 E0.0 & U E0.1
NOT A8.0
NOT ( ) E0.1 = NOT
= A8.0

CLR non disponible non disponible CLR

SET non disponible non disponible SET

E1.6 U E1.6
SAVE ( SAVE ) E1.6 & SAVE SAVE

BIE A8.1 A8.1 U BIE


BIE ( ) BIE = = A 8.1

15 8 1
Mot d'état
BIE RLG

Page 8
Fonction Relais de masquage
CONT LOG LIST

( MCRA ) MCRA MCRA //Activé

E0.0
U E0.0 //Validat. MCR
( MCR< ) E0.0 & MCR<
MCR( //Ouverture MCR

E0.7 A8.5 A8.5


( ) U E0.7 //Contact NO
E0.7 & =
= A8.5 //Bobine de sortie
M0.6 M0.6
= M0.6 //Bobine de sortie
( ) =

A16.0 A16.0 U E0.4 //Contact NO


E0.4
(S) E0.4 & S S A16.0 //Mise à 1 sortie

( MCR> ) MCR> )MCR //Fermeture MCR

M69.0 UN M5.5 //Contact Not


M5.5 E4.7 M5.5 M69.0
( ) & UN E4.7 //Contact Not
E4.7 =
= M69.0 //Bobine de sortie
( MCRD ) MCRD
MCRD //Désactiver

Saut inconditionnel (indépendant du RLG)

CONT LOG LIST

Réseau 1 Réseau 1 Réseau 1


NEW1 NEW1
( JMP ) .... JMP SPA NEW1

Réseau 2 Réseau 2 Réseau 2


: : :
: : :
: : :
: : :
Réseau x Réseau x Réseau x

NEW1 NEW1

M5.5 E4.7 M69.0 NEW1: UN M5.5


M5.5 & M69.0
( ) UN E4.7
E 4.7 = = M69.0

Page 9
Saut conditionnel (en fonction du RLG)

CONT LOG LIST

E 0.0 E 0.1 NEW1 E0.0 & U E0.0


Saut pour NEW1 U E0.1
RLG=1 (JMP) E0.1 JMP SPB NEW1

Saut pour E 0.2 E 0.3 E0.2 & U E0.2


NEW2 NEW2
RLG=0 U E0.3
(JMPN) E0.3 JMPN SPBN NEW2

Réponse aux fronts - RLG


CONT LOG LIST

U E1.0
E1.0 E1.1 M1.0 M8.0 E1.0 &
M1.0 M8.0 U E1.1
P FP M1.0
E1.1 P = = M8.0

E1.0 E1.1 M1.1 M8.1 E1.0 U E 1.0


& M8.1 U E 1.1
M1.1
N FN M1.1
E1.1 N = = M8.1

Cycle OB1
E1.0

E1.1

RLG
Exemple
M1.0

M1.1

M8.0
M8.1

Page 10
Réponse aux fronts - signal
CONT LOG LIST

E1.1 E1.0 & U E1.0


E1.0 M8.0 E1.1 U (
POS POS M8.0 U E1.1
Q
M1.0 M_BIT = FP
M1.0 M_BIT M1.0
)
E1.1 E1.0 =
E1.0 M8.1 &
E1.1 M8.0
NEG U E1.0
Q NEG M8.1
U (
M1.1 M_BIT M1.1 M_BIT = U E1.1
FN
M1.1
E1.0 )
=
E1.1 M8.1

Exemple M1.0

M1.1
Cycle OB1
M8.0

M8.1

Exercice : Programmation d'une installation de remplissage


(Partie Modes de fonctionnement)
Installation Marche/Arrêt: Mode de fonctionnement Manuel/Automatique :
E 0.0 = Start (bouton-poussoir, contact NO) E 0.2 = Manuel/Automatique (commutateur)
E 0.1 = Stop (bouton-poussoir, contact NF) E 0.3 = Validation mode de fonctionnement
(bouton-poussoir, contact NO)
E 0.4 = Marche par impulsions Avant
(bouton-poussoir, contact NO)
E 0.5 = Marche par impulsions Arrière
(bouton-poussoir, contact NO)

Détecteur 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 arrière

Page 11
Opérations numériques

M0.0 CMP ==I A 9.7

EW0 IN1
EW2 IN2

T4
E0.7 S_EVERZ A8.5
S Q
S5T#35s TW DUAL MW0
E0.5
R DEZ AW12

Formats de nombres (16 bits)


PG CPU

Signe (+) 2 9 6
BCD
W#16#296
0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0
Nombres
positifs 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0
ENTIER
(Integer) +296 28 25 23
= = =
256 32 + 8 = 296
+
Signe (-) 4 1 3
BCD W#16#F413
1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1
Nombres
négatifs 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

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

Page 12
Formats de nombres (32 bits)

BCD Signe (+) 0 0 0 0 2 9 6

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

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
DINT
+296 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
28 25 23
= = =
Entier (32 bits) = 256 32 + 8 = 296
+
REEL Format général d'un nombre entier = (signe) • (1.f) • (2e-127)
+0.75 signe du
ou nbre réel e = exposant (8 bits) f = mantisse (23 bits)
+7.5 E-1
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

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 réel = +1,5 * 2 126-127 = 0,75

Chargement et transfert de données (1)

CONT LOG LIST

MOVE MOVE
L +15
EN ENO EN OUT MB5
T MB5

15 IN OUT MB5 15 IN ENO

Exemples de L +5 // Constante 16 bits (Integer)


chargement L L#523123 // Constante 32 bits (Long Integer)
L B#16#EF // Octet hexadécimal
L 2#0010 0110 1110 0011 // Valeur binaire 16 bits
L 3.14 // Constante 32 bits (Real)

Page 13
Chargement et transfert de données (2)

Contenu Contenu
de Accu1 de Accu2
Programme

X X X X X X X X Y Y Y Y Y Y Y Y

:
:
L W#16#CAFE 0 0 0 0 C
0 A
0 F
0 E
0 X X X X X X X X

L W#16#AFFE 0 0 0 0 A
0 F
0 F
0 E
0 0 0 0 0 C A F E
:
:
:

Chargement et transfert de données (3)


Contenu de l'accumulateur 1
Programme
31 23 15 7 0

L MB 0 000000000000000000000000 MB0

31 23 15 7 0
Chargement 0000000000000000 MB0 MB1
L MW 0

31 23 15 7 0

L MD 0 MB0 MB1 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 montée (SE)
CONT LOG LIST

T4 T4
E0.7 S_EVERZ A8.5 S_EVERZ U E0.7
S Q E0.7 S DUAL MW0 L S5T#35s
S5T#35s TW DUAL MW0 S5T#35s AW12
SE T4
TW DEZ
E0.5 A8.5 U E0.5
R DEZ AW12 E0.5 R Q = R T4
L T4
T MW0
RLG à S
LC T4
RLG à R T AW12
U T4
Ecoulement = A8.5
temporisation
Exemple

Donnée type 0,01s <-- 0 0


“S5TIME” 0,1s <-- 0 1
1s <-- 1 0 Valeur de temps: 0
10s <-- 1 1 . . . 999

Temporisations : formats S5 dans STEP 7

102 101 100

Format d'une valeur de temps prédéfinie


X X

Base de temps Valeur de temps (format BCD)

Contenu accumulateur après “L T...” X X X X X X

Valeur de temps (nombre binaire)


102 101 100

Contenu accumulateur après “LC T...”X X

Base de temps Valeur de temps (format BCD)

Page 15
Temporisation sous forme de retard à la montée mémorisé (SS)
CONT LOG LIST

T4 T4 U E0.7
E0.7 S_SEVERZ A8.5 S_SEVERZ L S5T#35s
S Q E0.7 S DUAL MW0 SS T4
S5T#35s DUAL MW0 U E0.5
TW S5T#35s TW DEZ AW12
E0.5 A8.5 R T4
R DEZ AW12 E0.5 R Q = L T4
T MW0
LC T4
T AW12
U T4
= A8.5

RLG à S

RLG à R

Ecoulemen
t
Exemple temporisati
on
Q

Temporisation sous forme de retard à la retombée (SA)


CONT LOG LIST

T4 T4 U E0.7
E0.7 S_AVERZ A8.5 S_AVERZ L S5T#35s
S Q E0.7 S DUAL MW0 SA T4
S5T#35s DUAL MW0 U E0.5
TW S5T#35s TW DEZ AW12
E0.5 A8.5 R T4
R DEZ AW12 E0.5 R Q = L T4
T MW0
LC T4
T AW12
U T4
= A8.5

RLG à S

RLG à R

Ecoulemen
t
Exemple temporisati
on
Q

Page 16
Temporisation sous forme d'impulsion (SI)
CONT LOG LIST

T4 T4 U E0.7
E0.7 S_IMPULS A8.5 S_IMPULS L S5T#35s
S Q E0.7 S DUAL MW0 SI T4
S5T#35s DUAL MW0 U E0.5
TW S5T#35s TW DEZ AW12
E0.5 A8.5 R T4
R DEZ AW12 E0.5 R Q = L T4
T MW0
LC T4
T AW12
U T4
= A8.5

RLG à S

RLG à R

Ecoulemen
t
Exemple temporisati
on
Q

Temporisation sous forme d'impulsion prolongée (SV)


CONT LOG LIST

T4 T4 U E0.7
E0.7 S_VIMP A8.5 S_VIMP L S5T#35s
S Q MW0 SV T4
E0.7 S DUAL
S5T#35s TW DUAL MW0 U E0.5
S5T#35s TW DEZ AW12
E0.5 A8.5 R T4
R DEZ AW12 E0.5 R = L T4
Q
T MW0
LC T4
T AW12
U T4
= A8.5

RLG à S

RLG à R

Ecoulemen
t
Exemple temporisati
on
Q

Page 17
Temporisation sous forme d'opérations binaires
CONT LOG LIST

Réseau 1 :
T4
E0.0 T4 E0.0 & SE U E0.0
SE L S5T#5s
S5T#5s TW SE T4
S5T#5s

Réseau 2 :
T4 A 8.0 A 8.0
U T4
T4 & =
= A 8.0

Réseau 3 :
T4
E0.1 T4 U E0.1
R E0.1 & R R T4

T4
Exercice
S_IMPULS E0.7
E 0.7 S DUAL
S5T#5s TW DEZ E 0.5
E 0.5 R Q A 8.0
A8.0
5s
T4
S_VIMP E0.7
E 0.7 S DUAL E 0.5
S5T#5s TW DEZ
E 0.5 R Q A 8.0 A8.0
T4
S_EVERZ E0.7
E 0.7 S DUAL E 0.5
S5T#5s TW DEZ
E 0.5 R Q A 8.0 A8.0
T4
S_SEVERZ E0.7
E 0.7 S DUAL E 0.5
S5T#5s TW DEZ
E 0.5 R Q A 8.0 A8.0
T4
S_AVERZ E0.7
E 0.7 S DUAL E 0.5
S5T#5s TW DEZ
E 0.5 R Q A 8.0 A8.0

Page 18
Opérations de comptage dans STEP 7
CONT LOG LIST

U E0.4
Z5 Z5
ZV Z5
ZAEHLER ZAEHLER U E0.5
E 0.4 A 8.3
ZV Q E 0.4 ZV ZR Z5
U E0.3
E 0.5
L C#20
ZR E 0.5 ZR
S Z5
E 0.3 U E0.7
S E 0.3 S DUAL MW 4 R Z5
L Z5
C#20 ZW DUAL MW 4 C#20 ZW BCD AW 12 T MW4
A 8.3 LC Z5
E 0.7
R BCD AW 12 E 0.7 R Q = T AW12
U Z5
= A8.3

Comptage : opération binaires


CONT LOG LIST

Réseau 1 : Z5
E0.0 SZ
E0.0 Z5
U E0.0
SZ L C#20
C#20 ZW
C#20 S Z5
Réseau 2 :
Z5
E0.1 Z5
E0.1 ZV U E0.1
ZV
ZV Z5

Réseau 3 :
E0.2 Z5 Z5
U E0.2
ZR E0.2 ZR ZR Z5

Réseau 4 :
Z5 A 4.0 A 4.0
U Z5
Z5 = = A 4.0

Page 19
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/Arrêt:
E 0.0 = Start (contact NO, interrupteur)
E 0.1 = Stop (contact NF) Réservoir
principal
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 Arrière A 9.0 (A 5.0) Détecteur de bouteilles
Entonnoir de E 16.7 (E 8.7)
Détecteur de
bouteilles remplissage
Détecteur de
bouteilles E16.6 (E8.6)
E 16.5
(E 8.5)

M
A 20.5 (A 8.5) Bande transporteuse Marche avant
A 20.6 (A 8.6) Bande transporteuse Marche arrière

Page 20
Opérations de conversion BCD <-> Entier

Entrée d'un Conversion


nombre BCD 0 81 5 BCD->Entier
Programme utilisa-
Enoncé
teur contenant des
opérations
Sortie d'un Conversion
nombre BCD 0 2 4 8 BCD<-Entier
arithmétiques sur des
entiers

CONT LOG LIST

BCD_I BCD_I L EW4


EN ENO EN OUT MW20 BTI
T MW20
EW4 IN OUT MW20 EW4 IN ENO

I_BCD I_BCD L MW10


EN ENO EN OUT AW12 ITB
T AW12
MW10 IN OUT AW12 MW10 IN ENO

Opérations de conversion I -> DI -> REEL

Données de type entier


(nombre entier de 16 bits)

Conversion Conversion Programme


Enoncé entier de 16 bits entier de 32 bits de calcul
en en avec nbres
entier de 32 bits nombres réels réels

L I_DI
O MD14 LIST
EN OUT
G DI_R
ENO EN OUT MD26
MW12 IN

MD14 IN ENO L MW12


CONT ITD
DTR
T MD26
I_DI DI_R
EN ENO EN ENO

MW12 IN OUT MD14 MD14 IN OUT MD26

Page 21
Opérations de comparaison

CONT LOG LIST

CMP ==I A 9.7 CMP ==I

L EW0
EW0 IN1
L EW2
EW0 IN1 A9.7
=
==I
EW2 IN2 EW2 IN2 = A9.7

Opérations combinatoires

WXOR_W L EW 0
WOR_W
L W#16#5F2A
WAND_W
UW / OW / XOW
EN ENO
T MW10
EW0 IN1
OUT MW10 15 0
W#16#5F2A IN2
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 après "UW" 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0

MW10 après "OW" 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0

MW10 après "XOW" 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0

Page 22
Opérations arithmétiques de base
CONT LOG LIST

ADD_I ADD_I L MW4


Addition EN ENO EN OUT MW6
L MW10
MW4 IN1 MW4 IN1 +I
MW10 IN2 OUT MW6 MW10 IN2 ENO T MW6

SUB_I SUB_I L MW5


Soustrac- MW7
tion EN ENO EN OUT L MW11
MW5 IN1 MW5 IN1 -I
MW11 IN2 OUT MW7 MW11 IN2 ENO T MW7

MUL_R MUL_R L MD6


Multipli- MD66
EN ENO EN OUT L MD12
cation
MD6 IN1 MD6 IN1 *R
MD12 MD66 T MD66
IN2 MD12 IN2 ENO

DIV_R DIV_R L MD40


EN OUT MD32
Division EN ENO L MD4
MD40 IN1 MD40 IN1 /R
MD4 IN2 OUT MD32 MD4 IN2 ENO T MD32

Exercice : Programmation d'une installation de remplissage


(données de production)

Bouteilles vides MW 100

Bouteilles pleines MW 102

Bouteilles "cassées" MW 104

Page 23
Exercice : Programmation d'une installation de remplissage
(préparation du conditionnement)

(AW 6)

Programme entré en CONT

Programme converti en LIST

Programme entré en LIST

Opérations de décalage (mot / double mot)

SHL_W

L MW8 ou :
EN ENO
L MW4 L MW4
MW4 IN SLW SLW 2
OUT MW12 T MW12 T MW12
MW8 N
= +2

Décalage d'un mot vers la gauche : Décalage d'un mot vers la droite

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

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 =1 EN0 = 0

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
Décalage vers la droite d'entiers signés

SHR_I
L MW8 ou :
EN EN0 L MW4 L MW4
SSI SSI 3
MW4 IN
T MW12 T MW12
MW8 N OUT MW12
= +3

Décalage vers la droite d'un entier signé de 16 bits :


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

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 EN0 = 1

1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1
OUT OUT

Opérations de rotation sur un mot de 32 bits

ROL_DW

ENO L MW6 ou :
EN
L MD2 L MD2
MD2 IN RLD RLD 4
OUT MD12 T MD12 T MD12
MW6 N
= +4

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

IN: 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 / données globales


Variables / données locales
(valables dans tout le
(valables dans un seul bloc)
programme)
Variables statiques
Variables temporaires
• MIE / MIS • conservées après le
• effacées après le
• Périphérie d'E/S traitement du bloc
traitement du bloc
•M/T/Z • stockage permanent dans
• stockage temporaire dans la
des DB
• Zones de DB pile L
• utilisables uniquement
• utilisables dans des OB/FC/FB
dans des FB

absolu symbolique

Accès

Page 26
Variables temporaires

Taille de la pile des données locales


Taille totale ::
1,5 Ko
(CPU 313 à 316)

sur S7-300 :
Traitement
Classe de
priorité Taille pile L

Démarrage (traitement unique) 27


256 octets
Traitement cyclique 1

Traitement Alarme horaire 2 256 octets


déclenché
par horloge Alarme temporisée 3 256 octets

Alarme cyclique 12 256 octets

Traitement Alarme de processus 16 256 octets


déclenché
par un événement Tr. des erreurs au démarrage 28
256 octets
Tr. des erreurs dans le cycle 26

Page 27
Espace mémoire d'un bloc dans la pile des données locales

droit

Affectation totale de la pile des données locales


Syst.
d‘expl.
1

OB 1 FC 1 FC 2
3
2
avec var. avec var.
tempor. 4 tempor.

5 FC 3

7 avec var.
6
tempor.

Evénem. 1 2 3 4 5 6 7

Affectat.
de la pile L
256 octets

FC2 FC3
FC1 FC1 FC1 FC1 FC1
OB1 OB1 OB1 OB1 OB1 OB1 OB1

Page 28
Exercice : Utilisation de variables temporaires

Remplacé par la
variable temporaire
“Conditionnement"

Exemple de signalisation de défaut

Enoncé

Entree_defaut

Acquittement

Memorisation_sortie

Signalisation

Solution proposée Memorisation_sortie


RS
Memento_de_front Acquittement R
Entree_defaut P S Q & >=1
Rythme_clignotement

Memorisation_sortie &
Signalisation

Entrée défaut =

Page 29
Blocs paramétrables

Bloc Bloc paramétrable


non
paramétrable Programme Appel

FC 20
U E 1.2 U #Acquittement
E 1.3 Entree_defaut Memento M 40.1
R M 40.0 R #Memorisation_sortie
_de_front
U E 1.3 U #Entree_defaut
E 1.2 Acquittement Signalis A 8.3
FP M 40.1 FP #Memento_de_front ation
M 10.3 Rythme_clignotement
S M 40.0 S #Memorisation_sortie
U M 40.0 U #Memorisation_sortie M 40.0 Memorisation_sortie
U M 10.3 U #Rythme_clignoteme
O O
UNM 40.0 UN #Memorisation_sortie
U E 1.3 U #Entree_defaut
Paramètres formels
= A 8.3 = #Signalisation

Paramètres effectifs

Déclaration des paramètres formels

Paramètres formels

Type de paramètre Déclaration Utilisation Représentat. graphique

Paramètre d'entrée in Lecture seulement A gauche de la boîte


Paramètre de sortie out Ecriture seulement A droite de la boîte
Paramètre d‘E/S In_out Lecture / Ecriture A gauche de la boîte

Partie déclarative du bloc FC 20

Page 30
Edition d'un bloc paramétrable

Avec une FC non paramétrable, on a par exemple ici :


• en adressage absolu : E1.3
• en adressage symbolique : "Butée_gauche"

Appel d'un bloc paramétrable

Réseau 3 : Premier appel

FC20
.... EN

absolu "Butée gauche" Entree_defaut Memento_de_front M40.1


"Touche d'acquit." Acquittement
"Erreur de
Signalisation
M10.3 Rythme_clignotement position"

M40.0 Memorisation_sortie ENO


Adressage

Réseau 4 : Deuxième appel

FC20
A8.1 EN
symbolique
" Butée droite" Entree_defaut Memento_de_front M40.3
"Touche d'acquit." Acquittement
Signalisation A9.4
M10.3 Rythme_clignotement
ENO
M40.2 Memorisation_sortie
Table des
mnémoniq.

Mnémoniq. global Mnémon. Mnémoniq. local --> Paramètres formels

Page 31
Utilisation du paramètre EN/ENO lors d'appels de blocs
CONT/LOG LIST

FC 1
Appel inconditionnel ?? . ? EN ENO CALL FC 1
NOP 0

FC 1 A9.0
U E 0.1
Appel conditionnel E0.1 EN ENO = SPBNB _001
CALL FC 1
_001: U BIE
= A 9.0

Exemple
FC 1 FC 2 FC 3

?? . ? EN ENO EN ENO EN ENO =

Exercice : Edition du bloc FC paramétrable


1. Partie déclarative du bloc FC 20

Bloc non U E 1.2 Bloc FC 20 U #Acquittement


paramétrable R M 40.0 paramétrable R #Mém. sortie
U E 1.3 U #défaut..
FP M 40.1 2. :
S M 40.0 :
U M 40.0 :
U M 10.3 :
O :
UN M 40.0 :
U E 1.3 :
= A 9.3 (A5.3) :

Page 32
Exercice : Appel du bloc FC paramétrable

FC 20

E 0.0 Entree_defaut Signalisation A 0.0


E 0.2 Acquittement
Paramétrage de la
FC20 lors du 1er appel M 10.3 Rythme_clignotement
M 40.0 Memorisation_sortie
M 40.1 Memento_de_front

E 0.1 Entree_defaut Signalisation A 0.1


E 0.2 Acquittement
Paramétrage de la
FC20 lors du 2e appel M 10.3 Rythme_clignotement
M 40.2 Memorisation_sortie
M 40.3 Memento_de_front

Blocs fonctionnels (FB)


OB 1

DB 2

FB 2
EN
Entrée défaut
Acquittement Signal.
Fréq. clignot. ENO

Partie déclarative du bloc fonctionnel

Page 33
Bloc fonctionnel pour la signalisation de défaut

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

Page 34
Le modèle de multi-instances

Le modèle d'instance Le modèle de multi-instances

OB 1 DB10 OB 1
Call FB20, DB10 Call FB100, DB100
Entree_defaut:= FB20
Acquittement:= FB 100
Rythme_clignot:=
Signalisation:= stat Defaut_1 FB20

DB11 stat Defaut_2 FB20


Call FB20, DB11 DB100
Entree_defaut:=
Acquittement:= FB20 Call Defaut_1
Rythme_clignot:= Paramètres et
Entree_defaut:= variables statiques
Signalisation:= Acquittement:= du 1er appel
Rythme_clignot:= du FB20
Signalisation:=
Call FB20, DB12 DB12
Call Defaut_2 Paramètres et
Entree_defaut:= Entree_defaut:=
FB20 variables statiques
Acquittement:= Acquittement:= du 2ème appel
Rythme_clignot:= Rythme_clignot:= du FB20
Signalisation:= Signalisation:=

Insertion/effacement ultérieurs de paramètres de blocs

Page 35
Corrections lors de l'appel de blocs modifiés
Lors de l'ouverture du bloc appelant :

1 x bouton droit

Exercice : Edition du bloc fonctionnel


1. Partie déclarative du bloc FB 20

U #Acquittement
2. Séquence de programme R #Mém. sortie
du FB 20
U #défaut..
:
:

Page 36
Exercice : Appel et test d'un bloc fonctionnel

(A 5.3)

(A 5.4)

Exercice : Reconnaissance des types de variables

Opération
Global Local Absolu Symbolique Tempor. Statique Paramètre
L #Nombre_1
L #Nombre_2
T #Valeur_max
L #Resultat_interméd.
L “Nombre_1"
T MW 40
T #Nombre_2

Page 37
Résumé : Appel de blocs
FC FB
Mode de
représent. sans paramètre avec paramètres sans par., sans DB d‘inst. avec par., avec DB d‘inst.

• CALL FC1 • CALL FC2 • CALL FB2, DB3


LIST • UC FC1 Par1: ... • UC FB1 Par1: ...
Par2: ... Par2: ...
• CC FC1 Par3: ... • CC FB1 Par3: ...
FC1
( CALL ) DB3
FC2 FB2
FC1
CONT EN ENO EN ENO
EN ENO
Par1 Par1
Par2 Par3 Par2 Par3

FC1
CALL DB3
FC2 FB2
FC1 EN Par3 EN Par3
LOG EN Par1 Par1
ENO
Par2 ENO Par2
ENO

Blocs d'organisation

FC FB
OB1
Système
d‘exploi-
tation FB FC

SFC

SFB

Autres
OB

Page 38
Présentation des blocs d'organisation

Mise en route

OB 100

OB 101
OB 102

Traitement Traitement Traitement du


cyclique du périodique du programme déclenché
programme programme par des événements

OB 1 OB 10...17 OB 20...23 OB 80...87


(Alarmes horaires) (Alarmes temporisées) (Erreurs asynchrones)

OB 30...38 OB 40...47 OB 121, 122


(Alarmes cycliques) (Alarmes de processus) (Erreurs synchrones)

OB d'alarme OB d'erreur

OB de mise en route
Redémarrage (manuel)
• uniquement pour S7-400
Démarrage (Param. correspondant dans Conf. mat.) :
STOP -> RUN + WRST
automatique manuel

S7-300 / 400 S7-300 S7-400 Exécution de l'OB 101


STOP->RUN
Alim. EN STOP->RUN
+ CRST Traitement du cycle restant

Effacement des mémoires image du


Effacement de la MIS (paramétrable)
processus, M, T, Z non rémanents

Exécution de l'OB 100 Temps surveillance


redém. dépassé ? STOP
oui
non
Validation des sorties
Validation des sorties

Enregistrement de la MIE
C Enregistrement de la MIE
Y C
C Traitement de l‘OB1 Y
L C Traitement de l‘OB1
E L
Copie MIS dans modules de sortie E Copie MIS dans modules de sortie

Page 39
Interruption du programme cyclique

Exp. OB82 (Prio.26) =


Traitement des erreurs. Exp. OB10 (Prio.2) =
Traitement en cas de Alarme horaire.
rupture de fil à l‘entrée Traitement chaque
analogique PEW 352 minute à partir 9h30
L‘OB1
est
exécuté
en
continu ...... Jusqu‘à une unterruption
Exp. OB20 (Prio.3) = par un autre OB
.....
Alarme temporisée. Le
traitement est lancé
3,25 s après la recon- N°OB Type d‘OB Priorité
naissance de la pièce. OB 1 Programme cyclique 1
OB 10 Alarme horaire 2
OB 20 Alarme temporisée 3
OB 35 Alarme cyclique 12
OB 40 Alarme de processus 16
OB 82 Alarme de diagnostic 26 / 28

Traitement des valeurs analogiques

Niveau supérieur

Indicateur de
niveau
Niveau inférieur

Page 40
Utilisation de modules analogiques
Processus Module d‘entrée analogique CPU

Grandeur Signal analogique :


normé
physique Mémorisation :
du résultat :
:
PEW ... :
Adaptateur PEW ... :
de plage CAN ::: L PEW 352
de mesure
CM TM PEW ... ..
..
..
..
• Pression ± 500mV ..
• Température ± 1V ..
• Débit ± 5V ..
• Vitesse ± 10V ..
• Valeur pH ± 20mA ..
• Viscosité 4...20mA ..
• etc. etc. Module de sortie analogique ..
..
..
..
..
..
..
..
PAW ... ..
Grandeur Actionneur PAW ...
analogique CNA ::: T PAW 368
physique :
PAW ...

Adaptateurs de la plage de mesure

Page 41
Adressage des modules analogiques sur le S7-300

Châssis 3 Alimen- IM 640 656 672 688 704 720 736 752
tation
(récept.) à à à à à à à à
654 670 686 702 718 734 750 766

Alimen- IM 512 528 544 560 576 592 608 624


Châssis 2
tation
(récept.) à à à à à à à à
526 542 558 574 590 606 622 638

Châssis 1 Alimen- IM 384 400 416 432 448 464 480 496
tation
(récept.) à à à à à à à à
398 414 430 446 462 478 494 510

C Alimen- IM 256 272 288 304 320 336 352 368


0
tation CPU (émetteur) à à à à à à à à
270 286 302 318 334 350 366 382

Emplacement 2 3 4 5 6 7 8 9 10 11

Module analogique SM335 (entrées)

Page 42
Module analogique SM335 (sorties)

Module d‘entrée analogique SM331

Page 43
Représentation des valeurs analogiques et
résolution des valeurs de mesure

N°de bit Unités 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Poids du bit Déc. Hex. VZ 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20

8 128 80 * * * * * * * * 1 0 0 0 0 0 0 0

9 64 40 * * * * * * * * * 1 0 0 0 0 0 0

10 32 20 * * * * * * * * * * 1 0 0 0 0 0
Résolu-
tion
11 16 10 * * * * * * * * * * * 1 0 0 0 0
en bit
+ signe
12 8 8 * * * * * * * * * * * * 1 0 0 0

13 4 4 * * * * * * * * * * * * * 1 0 0

14 2 2 * * * * * * * * * * * * * * 1 0

15 1 1 * * * * * * * * * * * * * * * 1

* = 0 ou 1

Représentation des valeurs analogiques


pour différentes plages de mesure

Tension Courant Résistance Température


par ex. : par ex. : par ex. : par ex. Pt100
Plage
Plage Unités Plage Unités Plage Unités Plage Unités
± 10V 4 à 20mA 0 à 300ohms -200 à +850ºC

Débordement >= 11,759 32767 >= 22,815 32767 >=352,778 32767 >= 1000,1 32767

Domaine 11,7589 32511 22,810 32511 352,767 32511 1000,0 10000


de : : : : : : : :
dépassement 10,0004 27649 20,0005 27649 300,011 27649 850,1 8501

10,00 27648 20,000 27648 300,000 27648 850,0 8500


7,50 20736 16,000 20736 225,000 20736 : :
Plage : : : : : : : :
nominale -7,5 -20736 : : : : : :
-10,00 -27648 4,000 0 0,000 0 -200,0 -2000

Domaine - 10,0004 - 27649 3,9995 -1 Valeurs -1 - 200,1 - 2001


de : : : : : : :
négatives
dépassement - 11,759 - 32512 1,1852 - 4864 - 4864 - 243,0 - 2430
impossibles
Débordement <= - 11,76 - 32768 <= 1,1845 - 32768 - 32768 <= - 243,1 - 32768

Page 44
Normalisation d‘une entrée analogique

500,0

0,0
0 27648

Normalisation d‘une sortie analogique

27648

0
0,0 100,0

Page 45
Représentation des valeurs analogiques
pour les sorties analogiques
Tension Courant

Plage Unités
Plages de sortie : Plages de sortie :
0 à 10V 1 à 5V ± 10V 0 à 20mA 4 à 20mA ± 20mA

Débordement >=32767 0 0 0 0 0 0

Domaine de 32511 11,7589 5,8794 11,7589 23,515 22,81 23,515


dépassement : : : : : : :
27649 10,0004 5,0002 10,0004 20,0007 20,005 20,0007

27648 10,0000 5,0000 10,0000 20,000 20,000 20,000


: : : : : : :
0 0 1,0000 0 0 4,000 0
: 0 : 0 :
Plage - 6912 0,9999 : 3,9995 :
nominale : :
- 6913 0 : 0 :
: : :
: 0 : 0 :
: : :
- 27648 -10,0000 -20,000

Domaine de - 27649 - 10,0004 - 20,007


dépassement : : :
- 32512 - 11,7589 - 23,515

Débordement <=- 32513 0 0

Exercice : Paramétrage du module analogique SM335

Page 46
Exercice : Paramétrage du module analogique SM331

Exercice : Surveillance du niveau de remplissage d‘un réservoir

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
inférieur, une signalisation doit
être émise à la sortie A9.2 (A 5.2).

Page 47
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.

Enoncé :
Tant qu‘une des valeurs codées reste
Débordement
dans la plage de débordement, la sortie
Dépassement
A 9.1 (A 5.1) continue à clignoter.

Plage nominale

Page 48

Vous aimerez peut-être aussi