Vous êtes sur la page 1sur 20

Contenu du cours

Systmes Avancs en Automatisation Industrielle


AROUI TAREK Aroui_tarek@yahoo.com
AROUI TAREK 2010-2011

Chapitre I: Rappel sur le jeu dinstructions des API S7-300 Oprations sur les bits dtats Oprations sur les nombres relles Oprations sur les accumulateurs Chapitre II:Blocs de programmes et de donnes S7 (OB, FC, DB, FB (bloc fonctionnel)) Chapitre III:Les rseaux Simatic MPI ASI PROFIBUS DP Chapitre IV:Introduction la supervision (Winccflexible)
1
AROUI TAREK 2010-2011

Composants dun S7-300 et Adressages

GAMME SIMATIC
SIMATIC HMI SIMATIC PG SIMATIC PC
SIEMENS

Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage

S IM A T I C O P 1 7

PG 740

K1

K2

K3

K4

K5

K6

K7

K 8

H E LP S H IF T

K9

K 10

K 11

K12

K 13

K 14

K15

K 16

E S C

7
D

8
E

9
F

0
A C K

4
A

5
B

6
C

.
S H IF T IN S D E L H E L P E N T E R

SIMATIC NET SIMATIC NET API SIMATIC


SIEM ENS
SF RUN STOP I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 Q0.0 Q0.1 Q0.2 Q0.3 Q0.4 Q0.5

MPI Industrial Ethernet PROFIBUS

Oprations de chargement et de transfert Oprations de comparaison Oprations de conversion

CPU 212

SIMATIC S7-200

Oprations combinatoires sur mots


PROFIBUS-DP

Oprations de dcalage et de rotation Oprations arithmtiques

SIMATIC DP
SV

FM

ASI

Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat

AROUI TAREK

2010-2011

AROUI TAREK

2010-2011

Composants dun S7-300

Adressage des modules ax sur les emplacements (1/2)


Disposition des modules sur un seul chssis( Cas des modules TOR 16 I/O)

No demplacement --> @ de dbut de module -->

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

PS

CPU

IM SM: (optionnel) DI

SM: DO

SM: AI

SM: AO

FM:

CP:

SM: Signal Module IM: Interface Module FM: Fonctionnel Module CP: Processeur de communication

- Positionnement - Point-to-Point - Rgulation PID - PROFIBUS - Industrial Ethernet

dresse 0.0 dresse 0.7

Configuration maximale sur un chssis 8 modules

dresse 1.0 dresse 1.7

AROUI TAREK

2010-2011

AROUI TAREK

2010-2011

Adressage des modules ax sur les emplacements (2/2)


Disposition des modules sur un seul chssis( Cas des modules TOR 32 I/O)

Adressage des E/S des modules (1/3)

Exemple :
Adresse de loctet

E 0.0
entre
No demplacement --> @ de dbut de module --> PS 1 CPU 2 DI 32 4 0 DO 32 5 4 DI 32 6 8 DI 32 7 12

Adresse du bit

A 0.0
sortie

dresse 0.0 dresse 0.7 dresse 1.0 dresse 1.7

dresse 2.0 dresse 2.7 dresse 3.0 dresse 3.7

M10.0
Mmentos
7

E : Eingang A : Ausgang

AROUI TAREK

2010-2011

AROUI TAREK

2010-2011

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

PS 1

CPU 2

DI 32

DI 16 DI 16/ DO 16

0 1 2 3

4 5 6 7

8 9 10 11

0 1 2 3

4 5

8 9 8 9

AROUI TAREK

2010-2011

AROUI TAREK

2010-2011

10

Composants dun S7-300 et Adressages

Organisation mmoire (bit, octet, mot, double mot): (1/3)


Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert Oprations de comparaison Oprations de conversion Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

Bit :

Format : oprande ndoctet ou de mot . nde bit

Exemple : E 0.0 A 1.0


bit 0 de loctet 0 (entre) bit 0 de loctet 1 (sortie)

11

AROUI TAREK

2010-2011

12

Organisation mmoire (bit, octet, mot, double mot): (2/3)

Organisation mmoire (bit, octet, mot, double mot): (3/3)

Byte (octet) :
A10.7

Exemple pour loctet de sortie dadresse 10


A10.6 A10.5 A10.4 A10.3 A10.2 A10.1 A10.0

Dword (mot double) :


AW 10

Exemple pour le mot double dadresse 10

AW 12

AB 10

Idem : EB 10,

AD 10

Avec : AB 10 AB 11 AB 12 AB 13

Word (mot) :
A10.7 A10.6

Exemple pour le mot de sortie dadresse 10


AW 10 A10.1 A10.0 A11.7 A11.6 A11.1 A11.0 AW 12

Attention :

Inversion ou chevauchement des octets ou mots Schneider :


AB1 AB0 AW0

AB 10
Dveloppement mots : PAIRE toujours
AROUI TAREK

AB 11 AW 10 AB 11 AB 12

AW 11
2010-2011

13

AROUI TAREK

2010-2011

14

Composants dun S7-300 et Adressages Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert Oprations de comparaison Oprations de conversion Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

Le jeu dinstructions

Les fonctions suivantes sont disponibles : logique binaire (y compris rponse aux fronts) oprations sur mots temporisations/compteurs fonctions de comparaison fonctions de transcodage dcalage/rotation fonctions mathmatiques (y compris trigonomtrie, puissance, logarithme) contrle du programme (sauts, rpartiteur de sauts, appels, masquage de sections de programme)

15

AROUI TAREK

2010-2011

16

Composants dun S7-300 et Adressages Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert Oprations de comparaison Oprations de conversion
Sortie Contact ouverture Contact fermeture

Oprations combinatoires sur bits (1/3)

lectrique

LAD

FBD

LIST

E 0.2

UN

E 0.3

A 12.0

Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

17

AROUI TAREK

2010-2011

18

Oprations combinatoires sur bits (2/3)

Oprations combinatoires sur bits (3/3)

lectrique

LAD

FBD

LIST Opration LAD FBD LIST

S1 (E 2.0) ET Logique S2 (E 2.1) E 2.0 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 exclusif X X = E 1.4 E 1.5 A 8.7

OU Logique

S3 (E 2.0) S4 (E 2.1) O O = E 2.0 E 2.1 A 8.6

L3 (A 8.6)
AROUI TAREK 2010-2011

19

AROUI TAREK

2010-2011

20

Oprations sur les bascules

oprations pour front

LAD Opration
Mise 1

FBD
M8.0 E1.0 E1.1 M8.1 E1.0 E1.1

LIST
U U FP = U U FN = E1.0 E1.1 M1.0 M8.0 E 1.0 E 1.1 M1.1 M8.1

LAD

FBD
U S

LIST
E1.0 E1.1
E A 0.0 10.0

M1.0

&

P
E1.0 E1.1 M1.1

M1.0

M8.0

P &
M1.1

=
M8.1

Mise 0

U R

E A

1.0 10.0

Bascule Arrt prioritaire

U S U R U =

E 0.1 M 10.2 E 0.2 M 10.2 M 10.2 A 10.2 1.2 10.4 1.3 10.4

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

Bascule Marche prioritaire

U E R M U E S M NOP 0

AROUI TAREK

2010-2011

21

AROUI TAREK

2010-2011

22

Composants dun S7-300 et Adressages Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits

Oprations de temporisation
Ti Entre de dmarrage Valeur de prslection
S Q TW DUAL

Ti: Numro didentification de la temporisation tat temporisation temps restant (format binaire); Type: WORD temps restant (format DCB); Type: WORD

Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert Oprations de comparaison Oprations de conversion Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

Entre RAZ

DEZ

LAD
T4 E 0.7 S5T#35s E 0.5
Type:SI,SV...

FBD
T4 A8.5 MW0 MW12 E 0.7 S5T#35s E 0.5
Type: SI,SV...

LIST
U L SI U R L T LC T U = E 0.7 S5T#35s T4 E 0.5 T4 T4 MW0 T4 MW12 T4 A8.5
//Validation //Dmarrer T4 //sous forme SI, SV,..

S TW R

Q DUAL DEZ

S TW R

DUAL DEZ Q

MW0 MW12 A8.5 =

//remise zro
//lecture nb entier //lecture nb BCD

23

AROUI TAREK

2010-2011

24

Valeur de temps et base de temps

Temporisation sous forme dimpulsion SI


T4 SI S S5T#35s E 0.5 TW R Q DUAL DEZ AW12 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

S5T #aH_bbM_ccS_dddMS avec a = heure, bb = mn, cc = sec, ddd = ms W#16#wxyz avec w = la base de temps (intervalle de temps ou rsolution) et xyz = valeur de temps en format dcimal cod binaire
X Centaines Dizaines Units

E 0.7

A8.5

0, 1, 2 ou 3

0 1

0,01 s 0,1 s 1s

S R
coulement du temps

Q=1: pour toute la dure de lopration de temporisation. Q=0 lorsque: Le temps programm est coule Le signal de start passe de 1 0 avant que le temps nait expir, t =35s 1 est appliqu lentre de remise zro

Exemple : S5T#3s quivalent W#16#1030

2 3

10 s

la temporisation

Remarque :
AROUI TAREK

La valeur de temps maximale que lon peut indiquer est gale 9 990 secondes ou 2H_46M_30S
2010-2011

25

AROUI TAREK

2010-2011

26

Temporisation sous forme dimpulsion prolonge SV


T4 SV S S5T#35s E 0.5 TW R Q DUAL DEZ MW10 MW12

Temporisation sous forme de retard la monte SE

E 0.7

A8.5

E 0.7 S S5T#35s E 0.5 TW R

T4 SE Q DUAL DEZ

A8.5 MW10 MW12

S R
coulement du temps la temporisation

S R
coulement du temps la temporisation

t =35s

t =35s

Le signal de sortie Q reste 1 pendant la dure programme, quelle que soit la dure pendant laquelle le signal dentre reste 1. Q= 0 lorsque : Le temps programm est coule 1 est appliqu lentre de remise zro Si ltat de signal de lentre S passe de 0 1 avant que le temps nait expir, la temporisation est redmarre.
AROUI TAREK 2010-2011

Q= 1 uniquement lorsque le temps programm sest coul et que le signal dentre est toujours 1. Q= 0 lorsque : Le signal dentre est remis zro 1 est appliqu lentre de remise zro
27
AROUI TAREK 2010-2011

28

Temporisation sous forme de retard la monte mmoris SS

Temporisation sous forme de retard la retombe SA

E 0.7 S S5T#35s E 0.5 TW R

T4 SS Q DUAL DEZ

A8.5 MW10 MW12

E 0.7 S S5T#35s E 0.5 TW R

T4 SA Q DUAL DEZ

A8.5 MW10 MW12

S S R R
coulement du temps coulement du temps la temporisation la temporisation

Q Q Q=1 lorsque le signal dentre est gal 1 ou lorsque la temporisation sexcute. Q= 1 uniquement lorsque le temps programm sest coul, quelle que soit la dure pendant laquelle le signal dentre reste 1. Q= 0 que si lentre de remise zro est gal 1.
AROUI TAREK 2010-2011

La temporisation est dmarre lorsque le signal dentre passe de 1 0. Q= 0 lorsque :


29

Le temps programm est coule 1 est appliqu lentre de remise zro


30

AROUI TAREK

2010-2011

Composants dun S7-300 et Adressages Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert

Oprations de Comptage (1/3)

composants dun compteur incrmental/dcrmental

Zi: Numro didentification du compteur Zi Entre de comptage ZV Q ZR S DUAL Valeur de prpositionnement en format DCB C#<valeur> comprise entre 0 et 999 Entre 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

Oprations de comparaison Entre de dcomptage Oprations de conversion Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

Entre de prpositionnement

31

AROUI TAREK

2010-2011

32

Oprations de Comptage (2/3)

Oprations de Comptage (3/3)

LAD
U ZV U ZR U L S U R L E0.4 Z5 E0.5 Z5 E0.3 C#5 Z5 E0.7 Z5 Z5

LIST
ZV

Z5 E 0.4 ZV E 0.5 ZR E 0.3 S C#5 E 0.7 R ZW DEZ AW 12 DUAL MW 4 Q Q A 8.3

//incrmenter le compteur 5 //dcrmenter le compteur 5

ZR

S //Initialiser le compteur Z5 //avec la valeur 5 // Remettre zro le //compteur 5 // Lecture de la valeur courante de //Z5(en format binaire ) // Lecture de la valeur courante de //Z5(en format DCB ) Q

5 4

Count

3 2 1 0

T MW4 LC Z5 T U = AW12 Z5 A8.3

AROUI TAREK

2010-2011

33

AROUI TAREK

2010-2011

34

Composants dun S7-300 et Adressages Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation

Oprations de chargement et de transfert (MOVE) (1/3)

LAD

FBD

LIST

MOVE EN ENO EN

MOVE OUT MB5

L T

+5 MB5

Oprations de comptage Oprations de chargement et de transfert


5 IN OUT MB5 5 IN ENO

Oprations de comparaison Oprations de conversion Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

Paramtre
EN ENO IN OUT

Description
Entre de validation(bool) Sortie de validation(bool) Valeur source (Tous les types de donnesde 8, de 16 ou de 32 bits) Adresse de destination(Tous les types de donnesde 8, de 16 ou de 32 bits)

35

AROUI TAREK

2010-2011

36

Oprations de chargement et de transfert (MOVE) (2/3)

Oprations de chargement et de transfert (MOVE) (3/3)

ACCU1
Programme

ACCU2
Programme
31 23

Contenu de l ACCU1
15 7 0

L MB 0
chargement

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31 23 15 7

MB0
0

L MW 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31 23 15

MB0
7

MB1
0

: : L W#16#CAFE

C 0

A 0

F 0

E 0

L MD 0

MB0

MB1

MB2

MB3

T AD 4
L W#16#AFFE : : :
0 0 0 0 A 0 F 0 F 0 E 0 0 0 0 0 C A F E AD 4

Transfert

T AW 4
AW 4

T AB 4
AB 4 37 38

AROUI TAREK

2010-2011

AROUI TAREK

2010-2011

Composants dun S7-300 et Adressages Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage IN1 IN2 CMP ==I

Oprations de comparaison
Paramtre
IN1 IN2

Description

Premier terme de la comparaison Second terme de la comparaison

Vue d'ensemble des oprations de comparaison Oprations de chargement et de transfert Oprations de comparaison Oprations de conversion Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

Symbole
== <> > < >= <=

Type
IN1 (ACCU2) gal IN2 (ACCU1) IN1 diffrent de IN2 IN1 suprieur IN2 IN1 infrieur IN2 IN1 suprieur ou gal IN2 IN1 infrieur ou gal IN2

CMP ? I CMP ? D CMP ? R

Comparer entiers de 16 bits (16 Bit) Comparer entiers de 32 bits (32 Bit) Comparer rels

Lopration de comparaison est utiliser comme un contact normal


39
AROUI TAREK 2010-2011

40

Composants dun S7-300 et Adressages

Oprations de conversion (1/3)


Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert
BCD_DI BTD

Les oprations suivantes permettent de convertir des nombres dcimaux cods binaires et des nombres entiers en dautres types de nombres.
Pav CONT/LOG
BCD_I

LIST
BTI

Opration

Signification

Convertir DCB en un entier de Cette opration convertit la valeur dcimale code binaire figurant dans le mot de poids faible de 16 bits laccumulateur 1 en un nombre entier de 16 bits. Convertir DCB en un entier de Cette opration convertit la valeur dcimale code binaire figurant dans laccumulateur 1 en un nombre 32 bits entier de 32 bits. Convertir un entier de 16 bits en DCB Cette opration convertit le nombre entier figurant dans le mot de poids faible de laccumulateur 1 en une valeur dcimale code binaire. Cette opration convertit le nombre entier figurant dans laccumulateur 1 en une valeur dcimale code binaire. Cette opration convertit le nombre entier figurant dans le mot de poids faible de laccumulateur 1 en un nombre entier de 32 bits. Cette opration convertit le nombre entier de 32 bits figurant dans laccumulateur 1 en un nombre virgule flottante (nombre rel ). 42

Oprations de comparaison Oprations de conversion Oprations combinatoires sur mots


DI_BCD DTB I_BCD ITB

Convertir un entier de 32 bits en DCB

Oprations de dcalage et de rotation


I_DI ITD

Convertir un entier de 16 bits en un entier de 32 bits

Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

DI_R

DTR

Convertir un entier de 32 bits en un nombre rel

41

AROUI TAREK

2010-2011

Oprations de conversion (2/3)


Paramtre
BCD_I EN IN ENO OUT

Oprations de conversion, I-> DI - > REAL (3/3)

Description
Entre de validation(bool) Sortie de validation(bool) (ENO = EN) Nombre en format DCB Valeur entire de 16 bits du nombre DCB

Entier (16 bits) Programme bas sur des oprations arithmtiques sur nombres rel

EN ENO IN1 OUT

Convertir entier de 16 bits en entier de 32 bits

Convertir entier de 32 bits en rel

LAD
BCD_I EN E W4 IN ENO OUT MW20 E W4 EN IN

FBD
BCD_I OUT ENO MW20

LIST L E W4 BTI T MW20

F B D
MW12 EN IN

I_DI OUT ENO MD14 MD14 DI_R EN IN OUT ENO MD26

LIST

LAD

L ITD

MW12

I_BCD EN ENO MW10 IN OUT AW12 MW10

I_BCD EN IN OUT ENO AW12

L MW10 ITB T AW12

EN MW12 IN

I_DI ENO OUT MD14 MD14

EN IN

DI_R ENO OUT MD26

DTR T MD26

AROUI TAREK

2010-2011

43

AROUI TAREK

2010-2011

44

Composants dun S7-300 et Adressages Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert
WOR_W

Oprations combinatoires sur mots (1/2)

Les oprations combinatoires sur mots combinent deux mots (16 bits) ou deux doubles mots (32 bits), bit par bit, selon les combinaisons boolennes.

Pav CONT/LOG WAND_W

LIST UW OW XOW UD OD XOD

Opration ET mot OU mot

Signification Cette opration combine deux mots bit bit selon la table de vrit ET. Cette opration combine deux mots bit bit selon la table de vrit OU.

Oprations de comparaison Oprations de conversion Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

WXOR_W WAND_DW WOR_DW WXOR_DW

OU exclusif mot Cette opration combine deux mots bit bit selon la table de vrit OU exclusif. ET double mot Cette opration combine deux double mots bit bit selon la table de vrit ET.

OU double mot Cette opration combine deux double mots bit bit selon la table de vrit OU. OU exclusif double mot Cette opration combine deux double mots bit bit selon la table de vrit OU exclusif.

45

AROUI TAREK

2010-2011

46

Oprations combinatoires sur mots (2/2)

Composants dun S7-300 et Adressages Lorganisation mmoire

WXOR_W WOR_W WAND_W EN EW0 W#16#FF00 IN1 IN2 OUT MW10 EW0 = W#16#FF00 = ENO 15

L L T

EW 0 W#16#FF00 MW10
0

Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage

AW / OW / XOW

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

Oprations de chargement et de transfert Oprations de comparaison

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

Oprations de conversion
AND MW10 Aprs AW MW10 Aprs OW MW10 Aprs XOW OR XOR

Oprations combinatoires sur mots


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

Oprations de dcalage et de rotation


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

Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat

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

AROUI TAREK

2010-2011

47

AROUI TAREK

2010-2011

48

Oprations de dcalage

Description des oprations de dcalage (1/2)

Les oprations de dcalage permettent de dcaler bit par bit le contenu du mot de poids faible de laccumulateur 1 ou de laccumulateur entier vers la gauche ou vers la droite.
EN
Pav CONT/LOG Opration LIST Sens Indication du nombre de dcalage Positions libres remplies par Plage de dcalage

SHL_W ENO

MW4 MW8 = +2

IN N OUT MW12

SHL_W SHL_W SHL_DW SHL_DW SHR_W SHR_W SHR_DW SHR_DW SHR_I SHR_I SHR_DI SHR_DI

SLW n SLW SLD n SLD SRW n SRW SRD n SRD SSI n SSI SSD n SSD

Gauche Dans linstruction Gauche Dans loctet de poids faible de laccu 2 Gauche Dans linstruction Gauche Dans loctet de poids faible de laccu 2 Droite Droite Droite Droite Droite Droite Droite Droite Dans linstruction Dans loctet de poids faible de laccu 2 Dans linstruction Dans loctet de poids faible de laccu 2 Dans linstruction Dans loctet de poids faible de laccu 2 Dans linstruction Dans loctet de poids faible de laccu 2

0 0 0 0 0 0 0 0 Bit de signe Bit de signe Bit de signe Bit de signe

n =0 15 0 255 n =0 32 0 255 n =0 15 0 255 n =0 32 0 255 n=0 15 0 255 n=0 32 0 255

L MW8 L MW4 SLW T MW12

ou

L MW4 SLW 2 T MW12

Dcalage des bits de lentre IN de deux positions vers la gauche


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12

Dcalage des bits de lentre IN de deux positions vers la droite


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
Bits perdus

1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1
Bits perdus

Mot de poids faible de lACCU1

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

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

Les positions libres sont compltes par des zros.


AROUI TAREK 2010-2011

49

AROUI TAREK

2010-2011

50

Description des oprations de dcalage (2/2)

Oprations de rotation

SHR_I EN MW4 MW8 = +3 IN N OUT MW12 EN0

L L SSI T

MW8 MW4 MW12

ou

Les oprations de dcalage permettent deffectuer la rotation bit bit vers la gauche ou vers la droite du contenu entier de laccumulateur 1 (32 bits) L MW4 SSI 3 T MW12
Pav CONT/LOG ROL_DW ROL_DW ROR_DW ROR_DW Opration LIST RLD n RLD RRD n RRD RLDA RRDA Sens Gauche Gauche Droite Droite Gauche Droite Indication du nombre de dcalage Dans linstruction Dans loctet de poids faible de laccu 2 Dans linstruction Dans loctet de poids faible de laccu 2 1 position 1 position Rotation via BI1 Non Non Non Non oui oui Plage de dcalage n =0 32 0 255 n =0 32 0 255 1 1

Dcalage des bits de lentre IN de trois positions vers la droite avec le signe
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

Paramtre
ROR_DW EN IN ENO EN ENO OUT IN N OUT
51

Description
Entre de validation(bool) Sortie de validation(bool) (ENO = EN) Valeur objet de la rotation(DWORD) Nombre de bits de rotation(WORD) Rsultat du dcalage(DWORD)
52

1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 Mot de poids faible de lACCU1


Bits perdus

0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 IN
Bits perdus

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

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

Les positions libres sont compltes par ltat du bit de signe.


AROUI TAREK 2010-2011 AROUI TAREK 2010-2011

Description des oprations de rotation

Composants dun S7-300 et Adressages Lorganisation mmoire Le jeux dinstructions des automates SIEMENS

ROL_DW EN MD2 MW6 = +4 IN N OUT MD12 ENO

L MW6 L MD2 RLD T MD12

ou

Oprations combinatoires sur bits L MD2 RLD 4 T MD12 Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert Oprations de comparaison

31

30

29

28

27 26

25

24

23

22

21

20 19

18

17

16 15

14

13

12

11 10

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

Oprations de conversion Oprations combinatoires sur mots Oprations de dcalage et de rotation

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

Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat

AROUI TAREK

2010-2011

53

AROUI TAREK

2010-2011

54

Oprations arithmtiques fondamentales (1/2)


LAD
ADD_I EN ENO IN1 IN2 OUT

Oprations arithmtiques fondamentales (2/2)


LIST
DIV_I

FBD
ADD_I OUT EN MW4 MW6 MW10 IN1 IN2 ENO

Paramtre
EN ENO IN1 IN2 OUT

Description
Entre de validation(bool) Sortie de validation(bool) (ENO = EN) Premire valeur pour lopration Deuxime valeur pour lopration Rsultat de lopration

Addition

MW6

MW4 MW10

L L +I T L L -D T

MW4 MW10 MW6 EN MD0 MD4 MD20

MUL_I SUB_I ADD_I ENO

Soustraction

SUB_DI EN ENO MD0 MD4 IN1 IN2 MD0 OUT MD20 MD4

SUB_DI OUT EN IN1 IN2 ENO MUL_R OUT EN IN1 IN2 ENO DIV_R OUT EN IN1 IN2 ENO

MD20

IN1 IN2 OUT

Multiplication

MD6 MD12

MUL_R EN ENO IN1 IN2 DIV_R EN ENO IN1 IN2 OUT

MD66

MD6 MD66 MD12

L L *R T L L /R T

MD6 MD12 MD66 MD40 MD4 MD32


55

Vue d'ensemble des oprations arithmtiques

type
Addition soustraction Multiplication Division

Description
OUT (ACCU1) = IN1 + IN2 OUT(ACCU1) = IN1 - IN2 OUT(ACCU1) = IN1 * IN2 OUT(ACCU1) = IN1 / IN2

..._ I ..._ DI ..._ R

entiers de 16 bits (16 Bit) entiers de 32 bits (32 Bit) rels

MD32

Division

MD40 MD4

MD40 MD32 MD4

AROUI TAREK

2010-2011

AROUI TAREK

2010-2011

56

Composants dun S7-300 et Adressages

Vue d'ensemble des oprations arithmtiques sur nombres rels


Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits
SQR L'opration SQR calcule le carr d'un nombre rel L'opration SQRT calcule la racine carre d'un nombre rel // Accu1 (Accu1)2 // Accu1

Fonctions mathmatiques:

Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert Oprations de comparaison Oprations de conversion

SQRT EXP

(Accu1)

L'opration EXP calcule la valeur exponentielle de base e (= 2,71828...) d'un nombre rel //Accu1 e(Accu1)

LN

L'opration LN calcule le logarithme nprien d'un nombre rel. //Accu1 ln Accu1

Exemple: Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

L SQR T

MD10 MD30
SQR

// charger un nombre rel // Calculer la racine carre // transfrer le rsultat dans MD30

(List)

EN
MD10

ENO OUT
MD30
2010-2011

(LAD)

IN

57

AROUI TAREK

58

Vue d'ensemble des oprations arithmtiques sur nombres rels Fonctions trigonomtriques :
SIN COS TAN ASIN ACOS ATAN L'opration SIN calcule le sinus d'un nombre rel qui reprsente un angle en radians L'opration COS calcule le cosinus d'un nombre rel qui reprsente un angle en radians. L'opration TAN calcule la tangente d'un nombre rel qui reprsente un angle en radians L'opration ASIN calcule l'arc sinus d'un nombre rel L'opration ACOS calcule l'arc cosinus d'un nombre rel L'opration ATAN calcule l'arc tangente d'un nombre rel.

Vue d'ensemble des autres oprations sur nombres rels


Conversion dun nombre rel en nombre entier de 32 bits:
CEIL FLOOR RND TRUNC Cette opration arrondie au nombre entier suprieur le plus proche Cette opration arrondie au nombre entier infrieur le plus proche Cette opration arrondie par excs ou par dfaut un nombre rel Cette opration donne la partie entire d'un nombre rel

Oprations de conversions rel-rel:


ABS Cette opration forme la valeur absolue d'un nombre rel.

Example: Exemple:
L SIN T MD30 MD10 // charger un nombre rel // calcule du sinus // transfrer le rsultat dans MD30 L MD10 MD30 // Charger un nombre rel // Arrondir au nombre entier suprieur le plus proche // transfrer le rsultat dans MD30

(List)

CEIL T

(List)

EN
MD22

SIN

EN ENO OUT
MD30

CEIL

ENO OUT
MD30

IN

(LAD)
59

MD22

IN

(LAD)

AROUI TAREK

2010-2011

AROUI TAREK

2010-2011

60

Composants dun S7-300 et Adressages

Registres et zones mmoires dune CPU S7-300/400


Lorganisation mmoire Le jeux dinstructions des automates SIEMENS Oprations combinatoires sur bits Oprations de temporisation Oprations de comptage Oprations de chargement et de transfert Oprations de comparaison Oprations de conversion
Registre de bloc de donnes Accumulateurs
ACCU4 Uniquement S7-400 ACCU3 ACCU2 ACCU1
32 Bits

La mmoire de chargement (RAM ou EPROM)


32 Bits 32 Bits 32 Bits Blocs de code Blocs de donnes

La mmoire de travail (RAM) L, U, O,...


Blocs de code Blocs de donnes

Registre dadresses
AR1 AR2
32 Bits

T, S, =,...
32 Bits

Zones dE/S La mmoire systme (RAM)

Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques Vue d'ensemble des oprations arithmtiques sur nombres rels Vue d'ensemble des oprations sur bits dtat
AROUI TAREK 2010-2011

N DB ouvert N DI ouvert
16 Bits

Taille DB Taille DI
16 Bits

MIE MIS Mmentos Temporisations Compteurs pile de donnes locales (Pile L :donnes temporaires des blocs) Pile des interruptions (Pile I) Pile des blocs(Pile B)

Mot d'tat
Bits dtat
16 Bits

Organisation des zones de mmoire de la CPU Registres de la cpu


61
AROUI TAREK 2010-2011

62

Exemples: blocs lists dans l'ordre dans lequel leur traitement avait commenc

Pile de donnes locales-La pile L; enregistre : les variables temporaires des donnes locales de blocs, les informations de dclenchement des blocs d'organisation, des informations pour la transmission de paramtres, des rsultats intermdiaires 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 leve (alarme/traitement d'erreur), la pile B enregistre les donnes suivantes : numro, type (OB, FB, FC, SFB, SFC) et adresse de retour du bloc interrompu, numro des blocs de donnes (des registres DB et DI) ouverts au moment de l'interruption. Ces informations permettent de poursuivre l'excution du programme utilisateur aprs l'interruption.

AROUI TAREK

2010-2011

63

AROUI TAREK

2010-2011

64

Structure du mot dtat


/PI Premire interrogation (mot d'tat, bit 0)

Signification des bits dtat (registre de 16bits(9bits utiliss)


31 9 8 7 6 5 4 3 2 1 0

L'tat de signal du bit /PI gre l'excution d'une squence combinatoire. Le bit /PI est le bit 0 du mot d'tat. Chaque opration de combinaison interroge l'tat de signal du bit /PI ainsi que l'tat de signal du contact auquel l'opration accde.

RB

BI1

BI0

DEB

DM

OU

ETAT

RLG

/PI

/PI RLG ETAT OU DM DEB BI0 BI1 RB

Premire interrogation Rsultat Logique Ce bit sauvegarde la valeur dun bit en accs Ce bit est utilis lorsquune opration ET est excute avant une opration OU Dbordement mmoris : il sauvegarde le bit de dbordement (DEB) Dbordement

Si l'tat de signal du bit /PI est 1, une opration combine le rsultat de l'interrogation de l'tat de signal du contact auquel elle accde au rsultat logique (RLG) form depuis la premire interrogation, et sauvegarde ensuite le rsultat dans le bit RLG.

Si l'tat de signal du bit /PI est 0, la squence combinatoire commence avec une premire interrogation.

Ils mettent disposition les rsultats des oprations de comparaison, arthmtiques, Rsultat binaire: Il permet d'exploiter le rsultat d'une opration combinatoire sur mots comme un rsultat binaire

Elle s'achve avec l'affectation d'une valeur (S, R, =) ou avec une opration de saut dpendante du RLG et le bit /PI est mis 0.

AROUI TAREK

2010-2011

65

AROUI TAREK

2010-2011

66

RLG

Rsultat logique (mot d'tat, bit 1)

OU

(mot d'tat, bit 3)

Le bit RLG mmorise le rsultat d'une squence d'oprations de combinaison ou de comparaison. Le RLG est le bit 1 du mot d'tat.

Le bit OU est utilis lorsque vous excutez une opration ET avant une opration OU. Le bit OU est le bit 3 du mot d'tat. Le bit OU est mis 1 lorsque le RLG de la combinaison ET gale 1, anticipant ainsi le rsultat de la combinaison OU. Toute autre opration de traitement de bits remet le bit OU 0. DM Dbordement mmoris (mot d'tat, bit 4)

La premire opration dans un rseau interroge l'tat de signal d'un contact. Le bit RLG est mis 1 si l'interrogation est satisfaite. La deuxime opration dans le rseau interroge galement l'tat de signal d'un contact. Le rsultat de cette interrogation est alors combin la valeur sauvegarde dans le bit RLG selon les rgles de l'algbre de Boole, le rsultat tant mmoris dans le bit RLG. Cette squence combinatoire s'achve aprs une affectation ou un saut conditionnel ; l'excution d'une affectation ou d'un saut conditionnel dpend de la valeur figurant dans le bit RLG. ETAT (mot d'tat, bit 2)

Le bit DM sauvegarde le bit de dbordement (DEB) l'apparition d'une erreur lors d'oprations arithmtiques ou d'oprations de comparaison avec nombres virgule flottante. Le bit DM est le bit 4 du mot d'tat. Si une erreur apparat, le bit de dbordement mmoris DM est mis 1 en mme temps que le bit DEB (dbordement). Son tat de signal est conserv, mme aprs limination de l'erreur. Le bit DM mmorise donc l'tat de signal du bit DEB et indique si une erreur s'est produite dans l'une des oprations excutes prcdemment. Les oprations suivantes remettent le bit DM zro : SPS (saut si DM gale 1), oprations d'appels de bloc et oprations de fin de bloc. DEB Dbordement (mot d'tat, bit 5)

Le bit ETAT sauvegarde la valeur d'un bit en accs. Le bit d'tat est le bit 2 du mot d'tat.

L'tat de signal d'une opration de combinaison qui a accs en lecture la mmoire (U, UN, O, ON, X ou XN) est toujours le mme que la valeur du bit en accs. L'tat d'une opration de combinaison qui a accs en criture la mmoire (R, S, ou =) est identique la valeur du bit dans lequel a lieu l'criture. En cas d'absence d'criture, l'tat de signal est gal la valeur du bit en accs. Le bit d'tat est sans signification pour les oprations de combinaison qui n'accdent pas la mmoire. Ces oprations mettent le bit d'tat 1. Le bit d'tat n'est pas interrog par des oprations, AROUI TAREK mais est uniquement valu pour l'affichage de l'tat en ligne de variables du programme. 2010-2011
67

Le bit DEB signale l'apparition d'une erreur lors d'oprations arithmtiques ou d'oprations de comparaison avec nombres virgule flottante. Le bit DEB est le bit 5 du mot d'tat. Il est mis 1 par une opration arithmtique ou une opration de comparaison de nombres virgule flottante lorsqu'apparat une erreur telle que dbordement, opration illicite, comparaison illicite. Le bit DEB est remis 0 une fois l'erreur limine.
AROUI TAREK 2010-2011

68

BI1, BI0

Bits indicateurs (mot d'tat, bits 6 et 7)

Vue d'ensemble des oprations sur bits dtat

Les bits indicateurs BI1 et BI0 mettent disposition les rsultats des oprations suivantes :

test des bits dtat


Oprations de comparaison

U OV
Oprations arithmtiques Oprations de dcalage et de rotation Oprations combinatoires sur mots

test du bit DEB (OV DEB) test du bit DM (OS DM) test du bit RB (BIE RB)

U OS U BIE

Test du rsultat dune opration arithmtique (BI0, BI1) U == 0 U > 0 U <> 0 U =< 0 Rsultat dune opration arithmtique est gal 0 Rsultat dune opration arithmtique est suprieur 0 Rsultat dune opration arithmtique est diffrent de 0 Rsultat dune opration arithmtique est infrieur ou gal 0 == 0, <> 0, > 0, < 0, >= 0, <= 0 U UO
69
AROUI TAREK

RB

Rsultat binaire (mot d'tat, bit 8)

Le bit de rsultat binaire (RB) constitue un lien entre le traitement de bits et de mots. Le bit RB est le bit 8 du mot d'tat. Ce bit permet votre programme d'exploiter le rsultat d'une opration combinatoire sur mots comme un rsultat binaire et de l'intgrer une squence combinatoire sur bits. On l'utilise pour raliser le mcanisme EN/ENO et ainsi la connexion de botes de reprsentation.

Rsultat dune opration arithmtique de nombres virgule flottante est illicite


2010-2011

AROUI TAREK

2010-2011

70

Vue d'ensemble des oprations sur bits dtat


LAD FBD
M 4.0 S

Vue d'ensemble des oprations sur bits dtat


LIST LAD
U S OV M4.0
NOT Inverser RLG
E0.0 E 0.1 NOT A8.0

FBD

LIST
U E 0.0 U E 0.1 NOT = A8.0

Dbordement

OV

M 4.0 S

OV

E0.0 E0.1

&

( )

A8.0 =

Dbordement mmoris

OS

M 4.1 S

OV

M 4.1 R

UN OS R M4.1

Rseau 1

Rseau 1

Rseau 1

MW4
Rsultat gal zro

MW10
Rseau 2

SUB_I EN ENO IN1 IN2 OUT

SUB_I OUT EN MW4 MW6 MW10


Rseau 2

MW

4 10 6

MW6

IN1 IN2

ENO

L MW -I T MW NOP 0
Rseau 2

CLR Mettre RLG 0

CLR = M 0.0

==0

M 4.0 S

==0

M 4.0 S

U S

==0 M4.0
71

SET Mettre RLG 1

SET = M 0.1

AROUI TAREK

2010-2011

AROUI TAREK

2010-2011

72

Vue d'ensemble des oprations sur bits dtat

Oprations de saut dpendant des bits du mot dtat


SPA Repre1) (SAVE) SPB Repre1) SPBN SPBB Repre1) Repre1) Repre1)

E 1.0

E 1.1

E 1.2

Saut inconditionnel Saut si RLG =1 Saut si RLG =0 Saut si RLG =1 et mmorise RLG dans RB Saut si RLG =0 et mmorise RLG dans RB Saut si RB =1 Saut si RB =0 Saut si DEB =1 Saut si DM =1

SAVE

Sauvegarder RLG dans le bit RB

||

||

||

BIE

A 4.2

A 5.0

U BIE

Test du bit RB

||

||

()

SPBNB SPBI

Repre1)

SPBIN Repre1) SPO Repre1) L STW T STW Exemple: Charger le contenu du mot d'tat dans l'accumulateur 1 Transfrer les bits 0 8 de l'accumulateur 1 dans le mot d'tat L STW T MW14
AROUI TAREK 2010-2011

SPS
1)Un

Repre1)

Repre de saut :

peut tre loprande dune opration de saut ou servir de marquage pour la destination dune opration de saut. Il est compos de 4 lettres au maximum. Le premier caractre doit tre une lettre, les suivants pouvant tre des lettres ou des chiffres (Exp:SUI1)
73
AROUI TAREK 2010-2011

74

Oprations de saut dpendant du rsultat dans les bits indicateurs BI1 et BI0 du mot dtat
SPZ Repre1) SPN Repre1) SPP Repre1) SPM Repre1) Saut si BI1=0 et BI0=0 (Rsultat = 0) Saut si BI1BI0 (Rsultat <> 0) Saut si BI1 =1 et BI0=0 (Rsultat > 0) Saut si BI1=0 et BI0 =1 (Rsultat < 0) SPPZ Repre1) SPMZ Repre1) SPU Repre1) Combinaison des sauts SPP et SPZ (Rsultat >= 0) Combinaison des sauts SPM et SPZ (Rsultat <= 0) Saut si : la valeur dun nombre virgule flottante nest pas correct dans une opration arithmtique ou division par 0 (BI1=1 et BI0=1)
1) Un repre de saut est compos de 4 lettres au maximum. Le premier caractre doit tre une lettre AROUI TAREK 2010-2011

Exemple (1/2)

Dbut

Oui RLG = 1 E 1.0 = 1 et E 2.1 = 0 ? Non RLG = 0 Effacer MW 15 U UN Instruction SPBN E 1.0 E 2.1 SUI1 // Si RLG = 0 on saute au repre //SUI1 Fin L T SUI1: L 0 MW 15 EB 2 // Partie commune du programme

SUI1

75

AROUI TAREK

2010-2011

76

Oprations de saut : Reprsentation LADDER

Saut inconditionnel : Reprsentation LADDER

LAD

FBD

List

LAD

FBD

STL

Saut si

E 0.0

E 0.1

NEW1

E 0.0 E 0.1

&

RLG=1

(JMP)

NEW1 JMP

U E 0.0 U E 0.1 SPB NEW1

rseau 1

NEW1

rseau 1

( JMP )
rseau 2 : : : : rseau x NEW1

....
rseau 2 : : : : rseau x NEW1

NEW1 JMP

rseau 1

SPA NEW1
rseau 2 : : : : rseau x

Saut si

RLG=0

E 0.2

E 0.3

NEW2

E 0.2 E 0.3

&

(JMPN)

NEW2 JMPN

U E 0.2 U E 0.3 SPBN NEW2

M5.5

E 4.7

M69.0

( )

M5.5 E 4.7

&

NEW1: M69.0
=

UN M5.5 UN E 4.7 = M69.0

AROUI TAREK

2010-2011

77

AROUI TAREK

2010-2011

78

Les instructions de fin de blocs

Oprations sur mots Introduction aux types de donnes Oprations de chargement et de transfert Oprations de comparaison
Instruction BEA (fin de bloc inconditionnelle) : Instruction BE (Fin de bloc ): BE met fin au traitement du programme de manire inconditionnelle dans le bloc de programme en cours, Elle est gnre automatiquement.

Oprations de conversion Oprations combinatoires sur mots Oprations de dcalage et de rotation Oprations arithmtiques
Instruction BEB (fin de bloc conditionnelle) : Met fin au traitement du bloc en cours uniquement si le rsultat logique RLG gale 1, Met fin au traitement du bloc en cours quelque soit le rsultat logique, Lopration se trouve toujours lintrieur du bloc .

Oprations de saut Oprations de gestion dexcution de programme


79

Si le RLG = 0, lopration BEB nest pas excute.

AROUI TAREK

2010-2011

AROUI TAREK

2010-2011

80