Contenu du cours
Chapitre I: Rappel sur le jeu d’instructions des API S7-300 Opérations sur les bits d’états Opérations sur les nombres réelles Opérations sur les accumulateurs
Systèmes Avancés en Automatisation
• Chap Chapititre re II: II:Blocs de programmes et de données S7 (OB, FC, DB, FB (bloc fonctionnel))
Industrielle
• Chap Chapititre re III III:: Les réseau réseaux x Sima Simatic tic MPI ASI PROFIBUS DP
AROUI TAREK
[email protected] AROUI TAREK
• Chap Chapititre re IV: IV:Introduction à la supervision supervision (Winccflexible) (Winccflexible) 1
2010-2011
GAMME GAMME SIMATIC SIMATIC SIMATIC PG SIMATIC PC
SIMATIC HMI
AROUI TAREK
2010-2011
Composants d’un S7-300 et Adressages
L’organisation mémoire
Le jeux d’instructions d es automates SIEMENS
SIEMENS
Opérations combinatoires sur bits
SIMATICOP17
Opérations de temporisation
PG 740
K1
K2
K3
K4
K5
K 6
K 7
K 8
HELP SHIFT
K9
7 4 1
K1 0
8 D A
5 2
9 E B
6 3
K11
K12
K1 3
K1 4
K1 5
K 16
ESC
0 F
ACK
.
C SHIFT
INS DEL
HELP
ENTER
Opérations de comptage
SIMATIC NET SIMATIC NET
MPI Industrial Ethernet
Opérations
PROFIBUS
Opérations de comparaison
API SIMATIC SIEMENS
SF RUN STOP
I0.0 I0.1 I0.2 I0.3 I0.4 I0.5
Q0.0 Q0.1 Q0.2 Q0.3 Q0.4
CPU212
Q0.5
I0.6 I0.7
SIMA MATIC S S77-200
PROFIBUS-DP
SIMATIC DP
Opérations
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
Opérations arithmétiques
FM
SV
de chargement et de transfert
ASI
Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
2
Adressage des modules modules axé sur les emplacements emplacements (1/2)
Composants d‘un S7-300
Disposition des modules sur un seul châssis( Cas des modules TOR 16 I/O)
No d‘ d‘emp la ce ce me men t --> @ de début de module module --> PS
CPU
IM
SM:
(optionnel) DI
SM: DO
SM: AI
SM: AO
SM: Signal Module
FM:
PS 1
CPU 2
DI 16 4 0
DI 16 5 4
DO 16 6 8
DO 16 7 12
DI 16 8 16
DO 16 9 20
DO 16 10 24
DI16 11 28
CP:
- Positionn Positionnemen ementt - Point-to-P Point-to-Point oint - Régulation Régulation PID - PROFIBUS PROFIBUS - Industrial Industrial Ethernet Ethernet
dresse dresse 0.0 dresse dresse 0.7 Аdresse dresse 1.0 Аdresse dresse 1.7 А А
Configuration maximale sur un châssis
IM: Interface Module
8 modules
FM: Fonctionnel Module CP: Processeur de communication
AROUI TAREK
5
2010-2011
Adressage des modules modules axé sur les emplacements emplacements (2/2)
AROUI TAREK
6
2010-2011
Adressage des E/S des modules (1/3)
Disposition des modules sur un seul châssis( Cas des modules TOR 32 I/O)
Exemple : Adresse de l’octet
E 0.0 Adresse du bit
entrée No d‘ d‘e mp mp la ce ce me men t --> @ de début de module -->
PS 1
CPU 2
DI 32 4 0
DO 32 5 4
DI 32 6 8
DI 32 7 12
A 0.0 sortie
А А А А
dresse dresse 0.0 dresse dresse 0.7 dresse dresse 1.0 dresse dresse 1.7
dresse dresse 2.0 dresse dresse 2.7 Аdresse dresse 3.0 Аdresse dresse 3.7 А А
M10.0 Mémentos
E : Eingan Eingangg A : Ausgan Ausgangg
Adressage des E/S des modules (2/3)
Adressage des E/S des modules (3/3)
Exemple 1: Exemple 1:
Exemple 2: Exemple 2:
PS 1
CPU 2
DI 32
DI 32
DI 32
0 1 2 3
4 5 6 7
8 9 10 11
AROUI TAREK
2010-2011
Composants d’un S7-300 et Adressages
L’organisation mémoire
Le jeux d’instructions d es automates SIEMENS
PS 1
CPU 2
DI 32
0 1 2 3
9
AROUI TAREK
DI 1 6 DI 16/ DO 16
4 5
2010-2011
Organisation mémoire (bit, octet, mot, double mot): (1/3)
Bit :
Format : opérande n°d’octet ou de mot . n°de bit
Opérations combinatoires sur bits
Opérations de temporisation Opérations de comptage Opérations
Exemple :
de chargement et de transfert
Opérations de comparaison Opérations
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
Opérations arithmétiques Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
8 9 8 9
E 0.0
bit 0 de l’octet 0 (entrée)
A 1.0
bit 0 de l’octet 1 (sortie)
10
Organisation mémoire (bit, octet, mot, double mot): (2/3)
Byte (octet) : A10.7
Dword (mot double) :
Exemple pour l’octet de sortie d’adresse 10 A10.6
A10.5
A10.4
A10.3
A10.2
A10.1
Exemple pour le mot double d’adresse 10
AW 10
A10.0
Idem : EB 10, …
AB 10
Word (mot) :
Organisation mémoire (bit, octet, mot, double mot): (3/3)
AW 12
AD 10
Avec : AB 10
AB 11
AW 10
A10.6
A10.7
A10.1
A10.0
A11.7
AB 10 Développement mots : PAIRE toujours
AROUI TAREK
A11.6
A11.1
Composants d’un S7-300 et Adressages
L’organisation mémoire
A11.0
Attention :
AB 11 AW 10
Schneider :
AB 11
AB 12
Opérations combinatoires sur bits
Opérations de temporisation Opérations de comptage Opérations
de chargement et de transfert
Opérations de comparaison Opérations
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
AW 12
Inversion ou chevauchement des octets ou mots … AB1
AB0 AW0
13
AROUI TAREK
2010-2011
Le jeu d’instructions
Le jeux d’instructions d es automates SIEMENS
AB 13
AW 11 2010-2011
AB 12
Exemple pour le mot de sortie d’adresse 10
Opérations arithmétiques Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
Les fonctions suivantes sont disponibles : • logique binaire (y compris réponse aux fronts) • opérations sur mots • temporisations/compteurs • fonctions de comparaison • fonctions de transcodage • décalage/rotation • fonctions mathématiques (y compris trigonométrie, puissance, logarithme) • contrôle du programme (sauts, répartiteur de sauts, appels, masquage de sections de programme)
14
Composants d’un S7-300 et Adressages
L’organisation mémoire
Opérations combinatoires sur bits (1/3)
Le jeux d’instructions d es automates SIEMENS
Opérations combinatoires sur bits
LAD
Électrique
FBD
LIST
Opérations de temporisation Opérations de comptage Opérations
Contact à fermeture
U
E 0.2
Contact à ouverture
UN
E 0.3
Sortie
=
A 12.0
de chargement et de transfert
Opérations de comparaison Opérations
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
Opérations arithmétiques Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
AROUI TAREK
17
2010-2011
AROUI TAREK
Opérations combinatoires sur bits (2/3)
LAD
Électrique
FBD
Opérations combinatoires sur bits (3/3)
LIST Opération
ET Logique
18
2010-2011
LAD
FBD
LIST
S1 (E 2.0) E 2.0 S2 (E 2.1)
E 2.1
A 8.5 U E 2.0 UN E 2.1 = A 8.5
OU exclusif
U UN O UN U =
E 1.4 E 1.5 E 1.4 E 1.5 A 8.7
L1 (A 8.5)
OU Logique
OU exclusif
S3 (E 2.0) S4 (E 2.1)
L3 (A 8.6)
O O =
E 2.0 E 2.1 A 8.6
X X =
E 1.4 E 1.5 A 8.7
Opérations sur les bascules
Opération
LAD
opérations pour front
FBD
LAD
LIST
E1.0 E1.1 Mise à 1
U S
E A
0.0 10.0
Mise à 0
U R
E A
1.0 10.0
U S U R U =
E 0.1 M 10.2 E 0.2 M 10.2 M 10.2 A 10.2
M1.0
U E R M U E S M NOP 0
Bascule Marche prioritaire
M8.0
E1.0
P E1.0 E1.1
Bascule Arrêt prioritaire
FBD &
E1.1
M1.1
M8.1
E1.0
N
&
E1.1
LIST M1.0
M8.0
P
=
M1.1
M8.1
N
=
U U FP =
E1.0 E1.1 M1.0 M8.0
U U FN =
E 1.0 E 1.1 M1.1 M8.1
E1.0 E1.1 RLG
1.2 10.4 1.3 10.4
M1.0 M1.1 M8.0 M8.1
AROUI TAREK
2010-2011
Composants d’un S7-300 et Adressages
L’organisation mémoire
21
AROUI TAREK
Opérations de temporisation Ti
Le jeux d’instructions d es automates SIEMENS
Entrée de démarrage
Opérations combinatoires sur bits
Ti: Numéro d’identification de la temporisation
S Q
Valeur de présélection
état temporisation
TW
Opérations de temporisation
temps restant (format binaire); Type: WORD
DUAL
Entrée RAZ
Opérations de comptage Opérations
22
2010-2011
R
DEZ
temps restant (format DCB); Type: WORD
de chargement et de transfert LAD
Opérations de comparaison Opérations
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
Opérations arithmétiques Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
FBD
T4 E 0.7
T4
Type:SI,SV...
S S5T#35s E 0.5
TW R
LIST
Type: SI,SV...
A8.5
Q DUAL
MW0
DEZ
MW12
E 0.7 S5T#35s E 0.5
S
DUAL
TW
DEZ
R
Q
MW0 MW12 A8.5 =
U L SI
E 0.7 S5T#35s T4
//Validation //Démarrer T4 //sous forme SI, SV,..
U R L T LC T U
E 0.5 T4 T4 MW0 T4 MW12 T4
// remise à zéro //lecture nb entier //lecture nb BCD
Valeur de temps et base de temps
Temporisation sous forme d’impulsion « SI »
S5T #aH_bbM_ccS_dddMS
T4 SI
E 0.7
avec a = heure, bb = mn, cc = sec, ddd = ms
S S5T#35s E 0.5
W#16#wxyz
TW R
avec w = la base de temps (intervalle de temps ou résolution) et xyz = valeur de temps en format décimal codé binaire X
Centaines
0, 1, 2 ou 3
Exemple : S5T#3s équivalent W#16#1030
Dizaines
0
0,01 s
S
1
0,1 s
R
2
1s
3
10 s
Q=0 lorsque: Le temps programmé est écoulée
Écoulement du temps
Le signal de start passe de 1 à 0
la temporisation
25
2010-2011
avant que le temps n’ait expiré,
T4 SV S
S5T#35s E 0.5
TW R
« 1 » est appliqué à l’entrée de
« t =35s»
remise à zéro
AROUI TAREK
Temporisation sous forme de retard à la montée « SE »
MW10
DEZ
MW12
S S5T#35s E 0.5
S
TW R
A8.5
Q DUAL
MW10
DEZ
MW12
S
R
R
Écoulement du temps
Écoulement du temps
la temporisation
la temporisation
Q
T4 SE
E 0.7
A8.5
Q DUAL
26
2010-2011
Temporisation sous forme d’impulsion prolongée « SV »
E 0.7
AW12
Q=1: pour toute la durée de l’opération de temporisation.
La valeur de temps maximale que l’on peut indiquer est égale à 9 990 secondes ou 2H_46M_30S
AROUI TAREK
DEZ
U E 0.7 L S5T#35s SI T4 U E 0.5 R T4 NOP 0 LC T4 T AW12 U T4 = A8.5
A8.5
Unités
Q Remarque :
Q DUAL
« t =35s»
Q
« t =35s»
Le signal de sortie Q reste à 1 pendant la durée programmée, quelle que soit la durée pendant laquelle le signal d’entrée reste à 1. Q= 0 lorsque : Le temps programmé est écoulée « 1 » est appliqué à l’entrée de remise à zéro
Q=
1 uniquement lorsque le temps programmé s’est écoulé et que le signal d’entrée est toujours à 1 .
Q=
0 lorsque :
Le signal d’entrée est remis à zéro « 1 » est appliqué à l’entrée de remise à zéro
Temporisation sous forme de retard à la montée mémorisé« SS»
T4 SS
E 0.7 S S5T#35s E 0.5
TW
Temporisation sous forme de retard à la retombée « SA »
E 0.7
Q DUAL
A8.5 MW10
DEZ
MW12
S5T#35s E 0.5
R
T4 SA S TW R
A8.5
Q DUAL
MW10
DEZ
MW12
S S
R
R Écoulement du temps Écoulement du temps
la temporisation
la temporisation
Q Q Q= 1 uniquement lorsque le temps programmé s’est écoulé, quelle que soit la durée pendant laquelle le signal d’entrée reste à 1.
Q=1 lorsque le signal d’entrée est égal à 1 ou lorsque la temporisation s’exécute.
La temporisation est démarrée lorsque le signal d’entrée passe de 1 à 0 . Le temps programmé est écoulée 0 lorsque : « 1 » est appliqué à l’entrée de remise à zéro
Q= Q=
0 que si l’entrée de remise à zéro est égal à 1.
AROUI TAREK
2010-2011
Composants d’un S7-300 et Adressages
L’organisation mémoire
29
AROUI TAREK
30
2010-2011
Opérations de Comptage (1/3)
Le jeux d’instructions d es automates SIEMENS
Opérations combinatoires sur bits
composants d’un compteur incrémental/décrémental
Opérations de temporisation Opérations de comptage Opérations
Zi: Numéro d’identification du compteur
de chargement et de transfert
Opérations de comparaison Opérations
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
Opérations arithmétiques Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
Zi Entrée de comptage
ZV
Entrée de décomptage
ZR
Entrée de prépositionnement
S
Q
DUAL Valeur de prépositionnement en format DCB « C#
» comprise entre 0 et 999 Entrée de remise à 0
ZW DEZ R
Sortie logique Q=0 si Compteur = 0 Valeur de comptage en cours (binaire) Type: WORD Valeur de comptage en cours (DCB) Type: WORD
Opérations de Comptage (2/3)
LAD
Opérations de Comptage (3/3)
LIST ZV
MW 4
U ZV U ZR U L S
E0.4 Z5 E0.5 Z5 E0.3 C#5 Z5
AW 12
U R
E0.7 Z5
ZW
L
Z5
R
T MW4 LC Z5
Z5 E 0.4 ZV
QQ
ZR
DUAL
A 8.3
E 0.5 E 0.3 S C#5
DEZ
E 0.7
T U = AROUI TAREK
Composants d’un S7-300 et Adressages
L’organisation mémoire
ZR
//décrémenter le compteur 5
S
//Initialiser le compteur Z5 //avec la valeur 5
R
// Remettre à zéro le //compteur 5 // Lecture de la valeur courante de //Z5(en format binaire )
5 4
Count 3 2 1
// Lecture de la valeur courante de //Z5(en format DCB )
0
AW12 Z5 A8.3
2010-2011
//incrémenter le compteur 5
Q 33
AROUI TAREK
Opérations de chargement et de transfert (MOVE) (1/3)
Le jeux d’instructions d es automates SIEMENS
34
2010-2011
LAD
FBD
LIST
Opérations combinatoires sur bits MOVE
MOVE
Opérations de temporisation
EN
ENO
IN
OUT
EN
OUT
Opérations de comptage Opérations
de chargement et de transfert
5
MB5
5
IN
MB5
L
+5
T
MB5
ENO
Opérations de comparaison Opérations
de conversion
Opérations
combinatoires sur mots
Paramètre
Opérations
de décalage et de rotation
EN ENO IN OUT
Opérations arithmétiques Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
Description Entrée de validation(bool) Sortie de validation(bool) Valeur source (Tous les types de donnéesde 8, de 16 ou de 32 bits) Adresse de destination(Tous les types de donnéesde 8, de 16 ou de 32 bits)
Opérations de chargement et de transfert (MOVE) (2/3)
ACCU1
Opérations de chargement et de transfert (MOVE) (3/3)
Contenu de l’ ACCU1
ACCU2
Programme
Programme
X
X
X
X
X
X
X
X
Y
Y
Y
Y
Y
Y
Y
31
L MB 0
Y
23
31
chargement
: : L W#16#CAFE
L MW 0
23
0
0
0
C 0
A 0
F 0
E 0
X
X
X
X
X
X
X
X
0
0
0
0
A 0
F 0
F 0
E 0
0
0
0
0
C
A
F
E
7
15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31
0
15
0 00 00 00 00 00 00 00 00 00 00 00 0
L MD 0
23 MB0
7 MB0
15 MB1
0 MB0 0 MB1
7 MB2
0 MB3
T AD 4 L W#16#AFFE : : :
AD 4
T AW 4
Transfert
AW 4
T AB 4 AB 4
AROUI TAREK
2010-2011
Composants d’un S7-300 et Adressages
L’organisation mémoire
37
AROUI TAREK
Opérations de comparaison
CMP ==I
Le jeux d’instructions d es automates SIEMENS
38
2010-2011
Paramètre
Opérations combinatoires sur bits
IN1 IN2
IN1 IN2
Opérations de temporisation Opérations de comptage
Description
Premier terme de la comparaison Second terme de la comparaison
Vue d'ensemble des opérations de comparaison Opérations
de chargement et de transfert
Opérations de comparaison
Symbole
Opérations
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
== <> > < >= <=
Opérations arithmétiques Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
Type IN1 (ACCU2) égal à IN2 (ACCU1) IN1 différent de IN2 IN1 supérieur à IN2 IN1 inférieur à IN2 IN1 supérieur ou égal à IN2 IN1 inférieur ou égal à IN2
CMP ? I CMP ? D CMP ? R
Comparer entiers de 16 bits (16 Bit) Comparer entiers de 32 bits (32 Bit) Comparer réels
L’opération de comparaison est utiliser comme un contact normal
Composants d’un S7-300 et Adressages
L’organisation mémoire
Opérations combinatoires sur mots (1/2)
Le jeux d’instructions d es automates SIEMENS
Les opérations combinatoires sur mots combinent deux mots (16 bits) ou deux doubles mots (32 bits), bit par bit, s elon les combinaisons booléennes.
Opérations combinatoires sur bits
Opérations de temporisation
Pavé CONT/LOG
Opérations de comptage Opérations
LIST
Opération
Signification
WAND_W
UW
ET mot
Cette opération combine deux mots bit à bit selon la table de vérité ET.
WOR_W
OW
OU mot
Cette opération combine deux mots bit à bit selon la table de vérité OU.
WXOR_W
XOW
OU exclusif mot Cette opération combine deux mots bit à bit selon la table de vérité OU exclusif.
de chargement et de transfert
Opérations de comparaison Opérations
de conversion
Opérations
combinatoires sur mots
WAND_DW
UD
ET double mot Cette opération combine deux double mots bit à bit selon la table de vérité ET.
Opérations
de décalage et de rotation
WOR_DW
OD
OU double mot Cette opération combine deux double mots bit à bit selon la table de vérité OU.
WXOR_DW
XOD
OU exclusif double mot
Opérations arithmétiques Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
AROUI TAREK
45
2010-2011
Opérations combinatoires sur mots (2/2)
EN EW0 W#16#FF00
ENO
2010-2011
Composants d’un S7-300 et Adressages
L’organisation mémoire Le jeux d’instructions d es automates SIEMENS
Opérations combinatoires sur bits
Opérations de temporisation Opérations de comptage
IN1 IN2
AROUI TAREK
L EW 0 L W#16#FF00 AW / OW / XOW T MW10
WXOR_W WOR_W WAND_W
Cette opération combine deux double mots bit à bit selon la table de vérité OU exclusif.
OUT
MW10
15 EW0 = W#16#FF00 =
0
0 1 1 1 0 0 0 0 0 0 1 1
0 0 1
0
Opérations
de chargement et de transfert
Opérations de comparaison 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
AND
OR
XOR
MW10 Après “AW”
0 1 1 1 0 0 0 0 0 0 0 0
0 0 0
MW10 Après “OW”
1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0
MW10 Après “XOW”
1 0 0 0 1 1 1 1 0 0 1
1 0 0
0
1 0
Opérations
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
Opérations arithmétiques Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
46
Description des opérations de rotation
Composants d’un S7-300 et Adressages
L’organisation mémoire
Le jeux d’instructions d es automates SIEMENS
ROL_DW
MD2
IN
MW6 = +4
N
MD12
OUT
ou
L MW6 L MD2 RLD T MD12
ENO
EN
L MD2 RLD 4 T MD12
Opérations combinatoires sur bits
Opérations de temporisation Opérations de comptage Opérations
de chargement et de transfert
Opérations de comparaison 31 30 29 28
IN:
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
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 4 positions
OUT:
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
Opérations arithmétiques
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
AROUI TAREK
Opérations
53
2010-2011
Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état
AROUI TAREK
Opérations arithmétiques fondamentales (1/2)
LAD
Addition
MW4 MW10
EN IN1 IN2
ADD_I
ENO OUT
Opérations arithmétiques fondamentales (2/2)
FBD
ADD_I
MW6
MW4 MW10
EN OUT IN1 IN2 ENO
LIST MW6
L L +I
DIV_I
MW4 MW10
T
MW6
L L
MD0 MD4
MUL_I SUB_I ADD_I EN
SUB_DI Soustraction
MD0 MD4
EN ENO IN1 IN2 OUT
SUB_DI
MD20
MD0 MD4
EN OUT IN1 IN2 ENO
MD66
MD6 MD12
EN OUT IN1 IN2 ENO
MUL_R Multiplication
MD6 MD12
EN IN1 IN2
MUL_R
ENO
DIV_R
DIV_R Division
MD40 MD4
EN ENO IN1 IN2 OUT
OUT
MD32
MD40 MD4
EN IN1 IN2 ENO
MD20
-D
MD66
T
MD20
L L
MD6 MD12
*R
MD32
54
2010-2011
EN ENO IN1 IN2 OUT
ENO
IN1 IN2
Paramètre
OUT
MD66
type
Description
L L
MD40 MD4
Addition soustraction Multiplication Division
OUT (ACCU1) = IN1 + IN2 OUT(ACCU1) = IN1 - IN2 OUT(ACCU1) = IN1 * IN2 OUT(ACCU1) = IN1 / IN2
T
MD32
Entrée de validation(bool) Sortie de validation(bool) (ENO = EN) Première valeur pour l‘opération Deuxième valeur pour l‘opération Résultat de l‘opération
Vue d'ensemble des opérations arithmétiques
T
/R
Description
..._ I ..._ DI ..._ R
entiers de 16 bits (16 Bit) entiers de 32 bits (32 Bit) réels
Composants d’un S7-300 et Adressages
L’organisation mémoire
Vue d'ensemble des opérations arithmétiques sur nombres réels
Le jeux d’instructions d es automates SIEMENS
Opérations combinatoires sur bits
Opérations de temporisation Opérations de comptage Opérations
Fonctions mathématiques: SQR
L'o pération SQR calcule le carré d'u n nombre réel
// Accu1← (Accu1)2
SQRT
L'opération SQRT calcule la racine carrée d'un nombre réel
// Accu1←
EXP
L'opération EXP calcule la valeur exponentielle de base e (= 2,71828...) d'un nombre réel
LN
L'o pération LN calcule le logarithme népériend'un nombre réel. //Accu1← ln Accu1
//Accu1← e(Accu1)
de chargement et de transfert
Opérations de comparaison Opérations
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
Accu1
Exemple:
L
MD10
// charger un nombre réel // Calculer la racine carrée // transférer le résultat dans MD30
SQR
T
MD30
(List)
Opérations arithmétiques Vue Vue
EN
d'ensemble des opérations arithmétiques sur nombres réels MD10
d'ensemble des opérations sur bits d´état
AROUI TAREK
57
2010-2011
(LAD) MD30
Conversion d‘un nombre réel en nombre entier de 32 bits:
Cette opération arrondie au nombre entier supérieur le plus proche
FLOOR
Cette opération arrondie au nombre entier inférieur le plus proche
L'opération COS calcule le cosinus d'un nombre réel qui représente un angle en radians.
RND
Cette opération arrondie par excès ou par défaut un nombre réel
TAN
L'opération TAN calcule la tangente d'un nombre réel qui représente un angle en radians
TRUNC
Cette opération donne la partie entière d'un nombre réel
ASIN
L'o pération ASIN calcule l'a rc sinus d'u n nombre réel
ACOS
L'opération ACOS calcule l'arc cosinus d'u n nombre réel
ATAN
L'opération ATAN calcule l'arc tangente d'un nombre réel.
L'opération SIN calcule le sinus d'un nombre réel qui représente un angle en radians
COS
Exemple:
L
MD10
SIN
T
MD30
EN
MD22
IN
SIN
// charger un nombre réel // calcule du sinus // transférer le résultat dans MD30
Opérations de conversions réel-réel:
ABS
Cette opération forme la valeur absolue d'un nombre réel.
Example:
L (List)
MD10
CEIL
T
MD30
EN ENO OUT
MD30
(LAD)
58
2010-2011
CEIL
SIN
OUT
Vue d'ensemble des autres opérations sur nombres réels
Fonctions trigonométriques :
IN
ENO
AROUI TAREK
Vue d'ensemble des opérations arithmétiques sur nombres réels
SQR
MD22
IN
CEIL
// Charger un nombre réel // Arrondir au nombre entier supérieur le plus proche // transférer le résultat dans MD30
(List)
ENO OUT
MD30
(LAD)
Composants d’un S7-300 et Adressages
L’organisation mémoire
Registres et zones mémoires d‘une CPU S7-300/400 Accumulateurs
Le jeux d’instructions d es automates SIEMENS
ACCU4
32 Bits
ACCU3
32 Bits
Opérations de temporisation
ACCU2
32 Bits
Opérations de comptage
ACCU1
32 Bits
Opérations combinatoires sur bits
Opérations
Uniquement S7-400
La mémoire de chargement (RAM ou EPROM)
de conversion
Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
AR1
32 Bits
AR2
32 Bits
B lo cs d e c od e Blocs de données
Zones d‘E/S
T, S, =,...
•La mémoire système (RAM) Registre de bloc de données N°DB ouvert N°DI ouvert 16 Bits
Opérations arithmétiques
AROUI TAREK
-
Registre d‘adresses
Opérations de comparaison
B lo cs d e c od e Blocs de données
•La mémoire de travail (RAM) L, U, O,...
de chargement et de transfert
Opérations
-
Taille DB Taille DI 16 Bits
Mot d'état
Vue
d'ensemble des opérations arithmétiques sur nombres réels
Vue
d'ensemble des opérations sur bits d´état 2010-2011
Bits d‘état
-
MIE MIS M éme nt os Temporisations C om pt eu rs
-
pile de données locales (Pile L :données temporaires des blocs) Pile des interruptions (Pile I) Pile des blocs(Pile B)
16 Bits
Organisation des zones de mémoire de la CPU Registres de la cpu 61
AROUI TAREK
2010-2011
Exemples: blocs listés dans l'ordre dans lequel leur traitement avait commencé
Pile de données locales-La pile L; enregistre :
•les variables temporaires des données locales de blocs, •les informations de déclenchement des blocs d'organisation, •des informations pour la t ransmission de paramètres, •des résultats intermédiaires dans les programmes CONT
Pile des blocs
•Lorsque le traitement d'un bloc est interrompu par l'appel d'un autre bloc ou par une classe de priorité plus élevée (alarme/traitement d'erreur), la pile B enregistre les données suivantes : •numéro, type (OB, FB, FC, SFB, SFC) et adresse de retour du bloc interrompu, •numéro des blocs de données (des registres DB et DI) ouverts au moment de l'interruption. •Ces informations permettent de poursuivre l'exécution du programme utilisateur après l'interruption.
62
BI1, BI0
Vue d'ensemble des opérations sur bits d´état
Bits indicateurs (mot d'état, bits 6 et 7)
Les bits indicateurs BI1 et BI0 mettent à disposition les résultats des opérations suivantes :
test des bits d‘état
·
Opérations de comparaison
·
Opérations arithmétiques
·
Opérations de décalage et de rotation
·
Opérations combinatoires sur mots
RB
U OV U OS U BIE
Test du résultat d’une opération arithmétique (BI0, BI1)
Résultat binaire (mot d'état, bit 8)
Le bit de résultat binaire (RB) constitue un lien entre le traitement de bits et de mots.
Le bit RB est le bit 8 du mot d'état.
AROUI TAREK
69
2010-2011
U U U U
== 0 > 0 <> 0 =< 0
U UO
OV
FBD M 4.0 S
OV
Débordement mémorisé
M 4.1 S
Réseau 1
OV
Vue d'ensemble des opérations sur bits d´état LIST LAD
M 4.0 S
U S
MW4 Résultat égal à zéro
MW10
OV M4.0
OUT
MW6
MW4 MW10
EN OUT IN1 IN2 ENO
Réseau 2
M 4.0 S
==0
MW6
L MW 4 L MW 10 -I T MW 6 NOP 0
CLR Mettre RLG à 0
Réseau 2
M 4.0 S
E0.0
FBD A8.0
E 0.1 NOT
( )
E0.0 E0.1
&
LIST A8.0 =
U E 0.0 U E 0.1 NOT = A8.0
UN OS R M4.1 Réseau 1
SUB_I
ENO
Réseau 2
==0
M 4.1 R
Réseau 1
SUB_I
EN IN1 IN2
70
2010-2011
NOT Inverser RLG
OS
Résultat d´une opération arithmétique de nombres à virgule flottante est illicite
AROUI TAREK
Vue d'ensemble des opérations sur bits d´état LAD
Résultat d´une opération arithmétique est égal à 0 Résultat d´une opération arithmétique est supérieur à 0 Résultat d´une opération arithmétique est différent de 0 Résultat d´une opération arithmétique est inférieur ou égal à 0 == 0, <> 0, > 0, < 0, >= 0, <= 0
Ce bit permet à votre programme d'exploiter le résultat d'une opération combinatoire sur mots comme un résultat binaire et de l'intégrer à une séquence combinatoire sur bits. On l'utilise pour réaliser le mécanisme EN/ENO et ainsi la connexion de boîtes de représentation.
Débordement
test du bit DEB (OV≡ DEB) test du bit DM (OS≡ DM) test du bit RB (BIE≡ RB)
U ==0 S M4.0
SET Mettre RLG à 1
CLR = M 0.0
SET = M 0.1
Opérations de saut dépendant des bits du mot d’état
Vue d'ensemble des opérations sur bits d´état
SAVE
Sauvegarder RLG dans le bit RB
U BIE
E 1.0 ||
BIE ||
Test du bit RB
E 1.1 ||
E 1.2 ||
A 4.2 ||
L STW
Charger le contenu du mot d'état dans l'accumulateur 1
T STW
Transférer les bits 0 à 8 de l'accumulateur 1 dans le mot d'é tat
(SAVE )
A 5.0 ()
1)Un
L STW T MW14
AROUI TAREK
SPA Repère1)
Saut inconditionnel
SPB Repère1)
Saut si RLG =1
Repère1)
SPBN
SPBB Repère1) Repère1)
SPBNB
SPBI Repère1)
Saut si RB =1
SPBIN Repère1)
Saut si RB =0
Repère1)
SPO
SPS Repère1)
SPN Repère1)
SPP Repère1)
SPM Repère1)
SPPZ Repère 1)
SPMZ Repère1)
SPU Repère1)
Saut si RLG =0 et mémorise RLG dans RB
Saut si DEB =1 Saut si DM =1
l’opérande d’une opération de saut ou servir de marquage pour la destination d’une opération de
saut.
Il est composé de 4 lettres au maximum . Le premier caractère doit être une lettre, les suivants pouvant être des lettres ou des chiffres (Exp:SUI1) 73
AROUI TAREK
Saut si BI1=0 et BI0=0 (Résultat = 0) Saut si BI1≠BI0 (Résultat <> 0) Saut si BI1 =1 et BI0=0 (Résultat > 0) Saut si BI1=0 et BI0 =1 (Résultat < 0) Combinaison des sauts SPP et SPZ (Résultat >= 0) Combinaison des sauts SPM et SPZ (Résultat <= 0) Saut si : la valeur d’un nombre à virgule flottante n’est pas correct dans une opération arithmétique ou division par 0 (BI1=1 et BI0=1)
1) Un repère de saut est composé de 4 lettres au maximum . Le premier caractère doit être une lettre
74
2010-2011
Opérations de saut dépendant du résultat dans les bits indicateurs BI1 et BI0 du mot d’état
SPZ Repère 1)
Saut si RLG =1 et mémorise RLG dans RB
2010-2011
Saut si RLG =0
Repère de saut :
peut être
Exemple:
Exemple (1/2)
Début
E 1.0 = 1 et E 2.1 = 0 ? Non RLG = 0
SUI1
Oui RLG = 1
Effacer MW 15 U
Instruction
E 1.0
UN
E 2.1
SPBN
SUI1
L
0
T
MW 15
L
EB 2
// Si RLG = 0 on saute au repère //SUI1
Fin
SUI1:
// Partie commune du programme
Opérations de saut : Représentation LADDER
LAD
E 0.0
Saut si
E 0.1
RLG=1
Saut si
RLG=0
E 0.2
E 0.3
FBD
E 0.0
NEW1 (JMP)
&
E 0.1
NEW2
E 0.2
(JMPN)
E 0.3
&
Saut inconditionnel : Représentation LADDER
List
NEW1 JMP
NEW2 JMPN
LAD
U E 0.0 U E 0.1 SPB NEW1
réseau 1
2010-2011
NEW1 ( JMP )
réseau 2 : : : : réseau x
U E 0.2 U E 0.3 SPBN NEW2
77
réseau 1
STL
NEW1 JMP
.... réseau 2 : : : : réseau x
réseau 1
SPA NEW1 réseau 2 : : : : réseau x
NEW1
NEW1
M5.5
AROUI TAREK
FBD
E 4.7
M69.0
( )
AROUI TAREK
M5.5 E 4.7
&
M69.0
NEW1:
=
UN M5.5 UN E 4.7 = M69.0
2010-2011
78
Les instructions de fin de blocs
Opérations sur mots
Introduction aux types de données
Opérations
de chargement et de transfert
Opérations de comparaison
Instruction BE (Fin de bloc ):
BE met fin au traitement du programme de manière inconditionnelle dans le bloc de programme en cours,
Elle est générée automatiquement.
Instruction BEA (fin de bloc inconditionnelle) : Opérations de conversion Opérations
combinatoires sur mots
Opérations
de décalage et de rotation
Opérations arithmétiques
Opérations de saut
Opérations de gestion d’exécution de programme
Met fin au traitement du bloc en cours quelque soit le résultat logique,
L’opération se trouve toujours à l’intérieur du bloc .
Instruction BEB (fin de bloc conditionnelle) :
Met fin au traitement du bloc en cours uniquement si le résultat logique RLG égale 1,
Si le RLG = 0, l’opération BEB n’est pas exécutée.