Académique Documents
Professionnel Documents
Culture Documents
S7 Programmation
S7 Programmation
DAUTOMATES SIEMENS
S7 300 S7 400
AMS720090001
Programmation des automates Siemens S7-300/400
Page 1/1
PROGRAMMATION
AMS720090001
Programmation des automates Siemens S7-300/400
Page 2/2
SOMMAIRE
I. / LES VARIABLES DE LAUTOMATE ..................................................................................3
1.1
Types de variables ............................................................................................................3
1.2
Adressage des variables .................................................................................................4
1.3
Plages dadressage...........................................................................................................4
II. / SAISIS DES MNEMONIQUES ............................................................................................5
III.
/ INSTRUCTIONS SUR BITS.............................................................................................6
IV.
/ LES FLAGS.........................................................................................................................8
4.1
Ltat logique ......................................................................................................................8
4.2
La premire interrogation .................................................................................................8
4.3
Le RLG Rsultat LoGique ................................................................................................9
4.4
Instructions sur Rsultat Logique....................................................................................9
4.5
Le OU ..................................................................................................................................9
4.6
Les bits de debordements..............................................................................................10
4.7
LES FLAGS BI1 et BI0 ...................................................................................................10
V. / ASSISTANT INSTRUCTIONS DE PROGRAMME..........................................................11
VI.
/ STRUCTURE DUN PROGRAMME .............................................................................12
6.1
Excution cyclique dun programme OB1 ...................................................................12
VII. / LES BLOCS DE CODE...................................................................................................13
VIII. / LES BLOCS DORGANISATION...................................................................................14
IX.
/ CONSTITUTION DUN BLOC DE PROGRAMME .....................................................16
X. / INSTRUCTIONS SUR MOTS ............................................................................................18
XI.
/ LES REGISTRES DU PROCESSEUR..........................................................................20
XII.
/ LES TEMPORISATEURS...............................................................................................21
XIII. / LES COMPTEURS ..........................................................................................................23
XIV. / INSTRUCTIONS COMPLEMENTAIRES .....................................................................25
14.1 Oprations arithmtiques sur ACCU1..........................................................................25
14.2 Oprations de conversion sur ACCU1.........................................................................25
14.3 Dcalages .........................................................................................................................26
14.4 Les oprateurs de saut...................................................................................................27
XV. / REPRESENTATION DES NOMBRES .........................................................................28
15.1 Les types de donnes.....................................................................................................28
15.2 Les formats de reprsentation ......................................................................................28
XVI. / LES BLOCS DE DONNEES...........................................................................................30
16.1 Type de blocs de donnes :...........................................................................................30
16.2 Utilisation des blocs de donnes ..................................................................................31
16.3 Utilisation de lditeur de bloc de donnes..................................................................32
XVII.
/ LES BLOCS DE DONNEES DINSTANCE .............................................................33
17.1 Cration dun DB .............................................................................................................33
XVIII.
/ ADRESSAGE INDIRECT ZONE MEMOIRE ............................................................34
18.1 Pointeur 32 bits ................................................................................................................34
18.2 Pointeur 16 bits ................................................................................................................35
XIX. / ADRESSSAGE INDIRECT PAR REGISTRE ( AR1 et AR2).....................................36
XX. / PARAMETRES DE TYPE ANY ......................................................................................37
AMS720090001
Programmation des automates Siemens S7-300/400
Page 3/3
I. / LES VARIABLES DE LAUTOMATE
1.1
Types de variables
Zone E : Mmoire image des entres sur bus locale ou bus de terrain tel que PROFIBUS
Zone A : Mmoire image des sorties sur bus locale ou bus de terrain tel que PROFIBUS
Zone M : Mmoire utilisateur
Zone L : Mmoire locale, associe un module de programme
Zone P : Accs la priphrie
Zone T : Mmoire des temporisations
Zone Z : Mmoire des compteurs
Zone DB : Mmoire utilisateur ou systme structur dans des blocs de donnes
Symbole
SIMATIC
E
EB
EW
ED
A
AB
AW
AD
M
MB
MW
MD
L
LB
LW
LD
PEB
PAB
PEW
PAW
PED
PAD
T
Z
DBX
DBB
DBW
DBD
Dfinition
Bits dentre
Octet dentre
Mot dentre
Double mot dentre
Bits de sortie
Octet de sortie
Mot de sortie
Double mot de sortie
Mmoires utilisateurs (variables auxiliaires)
Octet mmoire
Mot mmoire
Double mot mmoire
Bit dans la mmoire locale
Octet dans la mmoire locale
Mot dans la mmoire locale
Double mot dans la mmoire locale
Octet de priphrie dentre
Octet de priphrie de sortie
Mot de priphrie dentre
Mot de priphrie de sortie
Double mot de priphrie dentre
Double mot de priphrie de sortie
Temporisation
Compteur
Bit dans un bloc de donne
Octet dans un bloc de donne
Mot dans un bloc de donne
Double mot dans un bloc de donne
Symbole
CEI
I
IB
IW
ID
Q
QB
QW
QD
M
MB
MW
MD
L
LB
LW
LD
T
C
AMS720090001
Programmation des automates Siemens S7-300/400
Page 4/4
1.2
Adressage des variables
Les objets E, A, M, DB, PE et PA sont rangs dans des octets ( 8 bits ), on peut accder un BIT,
un OCTET, un MOT de 16 bits ou un DOUBLE MOT ( 32 bits )
Exemples :
M4.3 correspond au bit 3 de loctet 4, on peut le tester en combinaison ET, OU
avec un autre bit, on peut lui affecter le rsultat dune combinaison, on peut le
mettre 1 ou 0 .
MB4
MW2
faible)
MD1
M4.3
M4.0
...
MB 1024
1.3
Plages dadressage
Bit
Octet
Mot
Double mot
0.0 65535.7
0 65535
0 65534
0 65532
MW 0
MW 1
MW 2
MW 3
MD 1
AMS720090001
Programmation des automates Siemens S7-300/400
Page 5/5
II. / SAISIS DES MNEMONIQUES
Saisir les mnmoniques est trs utile, il vaut mieux saisir un programme entirement en symbole
quen adressage absolu, cest beaucoup plus lisible et comprhensible.
Il suffit daller dans la table des Mnmoniques et y entrer les diffrents lments.
Le nom du symbole, sont adresse rel, sont type et sont commentaire
Voici un exemple
AMS720090001
Programmation des automates Siemens S7-300/400
Page 6/6
III.
AMS720090001
Programmation des automates Siemens S7-300/400
Page 7/7
Exemple :
Reprsentation
LISTe
Fonction ET
U
E 32.0
UN
E 32.1
=
A 32.4
LOGigramme
E 32.0
E 32.1
&
CONTact
A 32.4
M25.5
AMS720090001
Programmation des automates Siemens S7-300/400
Page 8/8
IV. / LES FLAGS
Les flags sont des bits vrais ou faux positionns par certaines instructions dont dpendent dautres
instructions.
er
E 1.2
E 1.3
M 10.4
A 4.5
:U
:U
:S
E 1.5
E 1.6
M 20.2
Assignation
Mise 1
Mise 0
Dmarrage dune temporisation
Comptage ou dcomptage dun compteur
AMS720090001
Programmation des automates Siemens S7-300/400
Page 9/9
4.3
Le RLG Rsultat LoGique
Ce bit mmorise le rsultat dun test et permet de raliser une combinaison avec linstruction
suivante.
Exemples :
er
:U E 1.4
:UN E 1.6
:= A 4.5
1 ?
1
0
0
ETAT
1
0
1
RLG
1
1
RLG = RLG prcdant ET PAS ETAT
1
A 4.5 prend la valeur du RLG
:O E 1.5
:ON E 1.6
:SE T 5
0
0
0
1
1
1
ACCU 1
0030
0032
ACCU 2
?
0030
RLG
1
Les accus sont reprsents en HEXA
1
0
LACCU2 nest pas > lACCU1
0
A 4.7 prend la valeur du RLG
:L MW 10
:L LF +50
:>F
:= A 4.7
4.4
4.5
er
Le OU
E 1.5
E 1.6
E 1.5
E 1.6
A 4.1
1er?
1
0
0
0
0
0
ETAT
1
0
1
0
1
RLG
1
1
1
1
1
1
OU
0
0
1
1
1
0
On mmorise le RLG
Le RLG se combine avec le OU
= ferme lquation, le OU retombe
AMS720090001
Programmation des automates Siemens S7-300/400
Page 10/10
4.6
OV
: Overflow, ce bit passe 1 suite une opration si le rsultat dborde ( sur
16 ou 32 bits), il peut tre test directement ( ex : U OV ) ou utilis pour un saut
conditionnel ( SPO ), le bit OV passe 0 automatiquement au cycle suivant
OS
4.7
AMS720090001
Programmation des automates Siemens S7-300/400
Page 11/11
V. / ASSISTANT INSTRUCTIONS DE PROGRAMME
AMS720090001
Programmation des automates Siemens S7-300/400
Page 12/12
VI. / STRUCTURE DUN PROGRAMME
6.1
Automate en RUN
E 3.0
E 3.1
M 10.4
E 3.3
M 10.4
FC 15
:0
M 5.0
: UN M 3.1
:=
M 25.7
: BE
Il y a aussi des programmes qui ne sont pas cycliques et qui interrompent lOB1, ce sont dautres
blocs dorganisations. Comme les OB dhorloge ou comme les OB de raction aux erreurs voir le
chapitre VIII
AMS720090001
Programmation des automates Siemens S7-300/400
Page 13/13
VII. / LES BLOCS DE CODE
Les OB
Blocs dorganisation
OB 1 OB 225
Dterminent la structure du programme utilisateur. Les OB sont directement appels par le systme
dexploitation de la CPU en raction un vnement ( condition toutefois de les avoir programm
et insrs dans lautomate).
Ils contiennent en gnral peut dinstructions, essentiellement des appels de blocs FC, FB
Les FB et FC
Ce sont des blocs tout prts. Il sont intgrs la CPU S7 et ne peuvent tre programms par
lutilisateur.
Les blocs de code (OB, FB, FC) peuvent tre chargs dans la CPU S7, ils sont soit crer et
diter directement dans des diteurs incrmentaux, soit ils rsultent de la compilation de source
AMS720090001
Programmation des automates Siemens S7-300/400
Page 14/14
VIII. / LES BLOCS DORGANISATION
Programme de dmarrage
OB 100
OB 1
Lors dune excution normale de programme, les traitements se font de faon cyclique. Lexcution
du programme contenu dans lOB 1 est dmarrer une fois par cycle (quand il est fini, il
recommence). On peut se servir de lOB 1 pour appeler des blocs de type FC ou FB.
OB de dclenchement sur alarmes
Alarmes horaires
OB 10 OB 17
Alarmes temporiss
OB 20 OB 23
Alarme dhorloge
OB 30 OB 38
Alarme process
OB 40 OB 47
AMS720090001
Programmation des automates Siemens S7-300/400
Page 15/15
OB de raction aux erreurs asynchrones
Erreur de temps
OB 80
Dpassement du temps de cycle
Erreur dalimentation
OB 81
Alarme diagnostic
OB 82
OB 83
OB 84
Dfaillance de profile
OB 86
OB 87
Erreur de conversion
Bloc charg
OB 122
AMS720090001
Programmation des automates Siemens S7-300/400
Page 16/16
IX. / CONSTITUTION DUN BLOC DE PROGRAMME
Reprsentation en contact
Reprsentation en LIST
AMS720090001
Programmation des automates Siemens S7-300/400
Page 17/17
Paramtrage des Fonctions et Blocs fonctionnels
Description
Paramtre
/ variables
IN
Paramtre dentre dont la valeur est fournie par le
bloc de code appelant
OUT
Paramtre de sortie dont la valeur est fournie par le
bloc de code appel
IN_OUT Paramtre dont la valeur est fournie aprs le bloc de
code appel
STAT
Variable statique contenue dans un DB dinstance
TEMP
Variable temporaire range dans la pile des donnes
locales. Les valeurs de ces variables sont perdues
une fois lexcution du bloc acheve.
Autoris pour
FB, FC
FB, FC
FB, FC
FB
FB, FC, OB
EXEMPLE
Pour utiliser un paramtre de bloc dans un programme, on doit le faire prcder du symbole # ,
exemple :
:L
:L
:*R
:T
#hauteur
#Largeur
// Charge la hauteur
// Charge la largeur
// Multiplie en nombre rel
// Transfert dans surface
#Surface
ARRAY[1..X]
STRUCT
AMS720090001
Programmation des automates Siemens S7-300/400
Page 18/18
X. / INSTRUCTIONS SUR MOTS
Les oprations sur mots ne peuvent se faire que par lintermdiaire des accumulateurs, les automates
disposent de 2 4 ACCU de 16 64 bits suivant le modle dUC.
ACCU 1
ACCU 2
Oprations arithmtiques
ACCU1 = ACCU2 op ACCU1
+
I, D, R
Addition
I, D, R
Soustraction
*
I, D, R
Multiplication
/
I, D, R
Division
L MW10
L 25
+F
T MW10
L MW10
L 25
==I
= M10.4
Le terme I signifie une opration en entier (INT), le terme D signifie une opration en double entier
(DINT) et le terme R signifie une opration en rel (REAL)
Oprations logiques
ACCU1 = ACCU2 op ACCU1
UW UD
ET bit bit
OW OD
OU bit bit
XOW XOD
OU EXCLUSIF bit bit
L MW10
L W#16#000F
UW
T MW10
Le terme W signifie une opration en mot (WORD) de 16 bit et le terme D signifie une opration en
double mot (DWORD) de 32 bit
AMS720090001
Programmation des automates Siemens S7-300/400
Page 19/19
Exemple
L MW10
SLW 8
T MW10
Remarque : la lettre I indique que lopration se fait sur un nombre entier (INT) de 16 bits, D un
nombre entier sur 32 bits (DINT), R un nombre rel (REAL) sur 32 bits.
Charger des valeurs dans les accumulateurs
Pour charger une valeur dans lACCU 1 on utilise linstruction L, lorsquon charge lACCU1,
lancienne valeur de lACCU1 se place dans lACCU 2.
Exemple :
MW10 = 5
L
MW10
L
7
+F
T
MW14
ACCU1
5
7
12
12
ACCU2
?
5
5
5
AMS720090001
Programmation des automates Siemens S7-300/400
Page 20/20
XI. / LES REGISTRES DU PROCESSEUR
Il y a 4 accumulateurs 32 bits , ACCU1, ACCU2, ACCU3, ACCU4
Les instructions sur ACCU sont :
L
T
TAK
ENT
LEAVE
PUSH
POP
TAW
TAD
Chargement de laccu1
Transfert de laccu 1
Permutation de laccu1 avec laccu2
Transfert de laccu2 dans Accu3 et accu3 dans Accu4
Transfert de laccu4 dans Accu3 et Accu3 dans Accu2
Accu1 -> Accu2 -> Accu3 -> Accu4
Accu4 -> Accu3 -> Accu2 -> Accu1
Inversion des mots poids faible, poids fort de laccu1
Inversion des mots double poids faible, poids fort de laccu1
MW5
12
ACCU2
MW5
12
MW5+12
?
?
MW15
MW15
MW10
MW10
MW15-MW10
MW20
ACCU3
?
?
MW5
?
?
?
MW5+12 .
?
MW5+12 MW5+12
?
MW5+12
MW15 MW5+12
MW5+12
?
// Charge MW5
// Charge la valeur 12
// Additionne les accus
// Inverse ACCU1 et ACCU2
// Dplace l'ACCU2 vers ACCU3
// Charge MW15 dans ACCU1
// Charge 10 dans ACCU1
//Soustraits MW10 de MW15
// Laccu 3 remonte dans lACCU 2
// Divise Accu2 par accu1
// Transfert le rsultat dans MW20
Remarque:
A la place de TAK puis ENT on aurait put utiliser PUSH puis PUSH (nouvelle instruction
qui n'existait pas sur Siemens S5).
L'ACCU3 remonte automatiquement dans l'ACCU2 la suite d'une opration (+, -, *, /),
L'ACCU3 ne se charge pas automatiquement, il faut une instruction comme ENT ou
PUSH
Il y a aussi deux registres d'adressage indirect AR1 et AR2 voir XIX
AMS720090001
Programmation des automates Siemens S7-300/400
Page 21/21
XII. / LES TEMPORISATEURS
SE
SA
SS
reset
SI
SV
______V
Limiteur dimpulsion
Gnrateur dimpulsion ( Monostable )
Principe
1
Charger une valeur dans lACCU1
2
Dmarrer la tempo ( lACCU1 se range dans la tempo )
3
La valeur de la tempo dcompte jusqu 0, au rythme dune base de temps
Les bases de temps sont
0
10 ms
1
100 ms
2
1 sec.
3
10 sec
4
5
FR
L
LC
R
AMS720090001
Programmation des automates Siemens S7-300/400
Page 22/22
Exemple :
L
S5T5s
U
E 32.7
SE
T4
lACCU 1
U
=
Facultatif
L
L
>F
=
T4
A 32.7
T4
25
M 10.4
TW
Forme simplifie
T4
DUAL
DEZ
SE
Raz de la tempo
A 32.7
AMS720090001
Programmation des automates Siemens S7-300/400
Page 23/23
XIII. / LES COMPTEURS
Dans les automatismes, on est souvent amen compter ( Nb de tour, Nb de paquets, Nb de palette,
Nb de peses etc... )
Les compteurs sont des mots de 16 bits reprsents par la lettre Z, ils peuvent voluer de 000 999,
il y a 128 mots pour 128 compteurs ( Z 0 Z 127 ).
ZV
ZR
R
S
L
LC
FR
Exemple
:U
E 2.5
:ZV Z 5
:
:U
E 2.6
ZR
Z5
:
:L
Z5
:L
KF + 50
:>=F
:R
Z5
:
:
:UN Z 5
:=
A 7.2
Si compteur vaut 0
Signale compteur vide
AMS720090001
Programmation des automates Siemens S7-300/400
Page 24/24
Reprsentation graphique en contacts ou logigramme
Forme complte
Z5
ZV
E 2.5
Entre de dcomptage
Entre d'initialisation
Valeur d'initialisation
M 50.1
ZR
S
ZW
R
Forme simplifie
Z5
ZV
AMS720090001
Programmation des automates Siemens S7-300/400
Page 25/25
Racine carr
carr
Logarithme naturel
Exponentiel
Sinus
Cosinus
Tangente
Arc Sinus
Arc Cosinus
Arc Tangente
AMS720090001
Programmation des automates Siemens S7-300/400
Page 26/26
14.3 Dcalages
SLWn
SLW
SLDn
SLD
SRWn
SRW
SRDn
SRD
SSIn
SSI
SSD
SSDn
RLDn
RLD
RRDn
RRD
RLDA
RRDA
AMS720090001
Programmation des automates Siemens S7-300/400
Page 27/27
14.4 Les oprateurs de saut
SPA
SPL
Exemple :
:L
MB100 (MB 100 : variable a tester)
:SPL
LIST
:SPA
CAS0
:SPA
CAS1
:SPA
CAS2
LIST :SPA
ELSE
CAS0 :
:SPA FIN
CAS1 :
:SPA FIN
CAS2 :
:SPA FIN
FIN
SPB
SPBN
SPBNB
LOOP
SPBB
Exemple :
:L
+5
// Init de la boucle FOR , 5 fois
SUIV :T
MB10
: // instructions qui seront excuts 5 fois
:L
MB10 // Charge le compteur de boucle
:LOOP
SUIV // Dcrmente lACCU1 et saute
AMS720090001
Programmation des automates Siemens S7-300/400
Page 28/28
XV. / REPRESENTATION DES NOMBRES
Les nombres sont des valeurs binaires constitus de 1 et de 0 , on peut reprsenter ces
nombres sous diffrentes formes, de manire faciliter leurs lecture, il est par exemple plus
comprhensible de lire 25 que sa reprsentation binaire 11001 , ou si on veut reprsenter un
code ASCII il sera plus facile de lire A que son code binaire 100 0000 , etc.
Forme gnrale dcriture dune valeur
taill
e
1
BYTE
WORD
DWORD
INT
DINT
REAL
S5TIME
8
16
32
16
32
32
16
TRUE ou
FALSE
B#
W#
DW#
rien
L#
rien
S5T#
32
16
32
64
8
48
T#
D#
TOD#
DT#
P#
Octet
Mot
Double mot
Entier
Entier long
Rel
Dure de
temporisation
TIME
Dure au standard CEI
DATE
Date au standard CEI
TIME_OF_DAY
Heure du jour
DATE_AND_TIME Date et Heure
CHAR
Caractre ASCII
POINTER
Pointeur
Symbole
A, B, * etc.
Commentaires
Dure en milisecondes
AMS720090001
Programmation des automates Siemens S7-300/400
Page 29/29
Exemple de reprsentation des valeurs :
W#16#FA5C
15 245
e
12 -5
12 x 10 -5
L#254 789
S5T#35S
S5T#35S_10MS
T#21H_3M_5S
B#16#A5
W#2#10010110111
AMS720090001
Programmation des automates Siemens S7-300/400
Page 30/30
XVI. / LES BLOCS DE DONNEES
Il sagit de zones de donnes utilises par les zones de code de programme utilisateur pour
sauvegarder des valeurs.
Les blocs de donnes contiennent des octets DBB, 2 octets conscutifs forme un mot DBW, 4
octets forme un double mot DBD
DBX 5.7
7 6
7 6
7 6
7 6
5
5
5
5
4
4
4
4
3
3
3
3
2
2
2
2
DBX 5.0
1 0 DBB 5
1 0 DBB 6
1 0 DBB 7
1 0 DBB 8
DBW 5 ( 16 bits )
DBD 5 ( 32 bits )
DBW 6 ( 16 bits )
Blocs de donnes auxquels peuvent accder tous les blocs du code du programme utilisateur S7.
Toutes FB, FC ou OB peut y lire, ou craser des donnes.
Les Blocs de donnes dinstance
Les bloc de donnes dinstances sont des blocs ordinaires, dans lesquels sont stocks tous les
paramtres dun FB, chaque fois quon appel un FB on doit prciser quel est le DB dinstance, il
peut y avoir plusieurs DB dinstance pour un mme FB. Les donnes sont locales.
AMS720090001
Programmation des automates Siemens S7-300/400
Page 31/31
AMS720090001
Programmation des automates Siemens S7-300/400
Page 32/32
16.3 Utilisation de lditeur de bloc de donnes
On a accs tout les types de donnes INT, DINT, WORD, DWORD , REAL, BOOL, S5TIME
POINTER, TIME, CHAR etc..
On a accs aux structures STRUCT
Chaque variable dans un DB contient un nom, un type, un commentaire, mais vous pouvez aussi
leur affecter une valeur par dfaut
On accde une variable soit par sont adresse dfini sur la colonne de gauche, par exemple DBW14
correspond la variable mini soit par son nom par exemple Nb correspond au
Nombre Mesure
Supposons que ce DB soit le DB25
DB25.Nb
donne accs au Nombre Mesure
DB25.TachyTremie1.mini
AMS720090001
Programmation des automates Siemens S7-300/400
Page 33/33
XVII. / LES BLOCS DE DONNEES DINSTANCE
Les blocs de donnes dinstance sont affects au FB/SFB au moment de lappel du bloc. Ils sont
gnrs automatiquement lors de la compilation.
CALL FB
CALL FB
10 , DB10
10 , DB11
// Appel le FB 10 avec le DB 10
// Appel le FB 10 avec le DB 11
Les DB dinstances, servent sauvegarder le contexte dun FB entre 2 appels, les paramtres
sauvegards sont : IN, OUT, IN_OUT et STATIC, les paramtres TEMP ne sont pas sauvegards.
17.1 Cration dun DB
AMS720090001
Programmation des automates Siemens S7-300/400
Page 34/34
XVIII. / ADRESSAGE INDIRECT ZONE MEMOIRE
18.1 Pointeur 32 bits
Les espaces mmoires E, A, M, L, DB sont accessibles par un pointeur 32 bits
structur de la manire suivante :
ZONES E, A, M, L, DBB
a
AMS720090001
Programmation des automates Siemens S7-300/400
Page 35/35
18.2 Pointeur 16 bits
Les espaces mmoires T, Z, BLOCS sont accessibles par un pointeur 16 bits
structur de la manire suivante :
POINTEURS 16 BITS
ZONES T, Z, BLOCS ( DB, FB, FC, OB )
0
Exemple :
L
30
T
MW80
AUF DB[MW80]
U
E 0.0
SE
T[MW80]
// Charge le N de DB 30
// Transfert dans pointeur MW80
// Ouvre le DB 30
// Teste lentre E 0.0
// Demarre la tempo T 30
AMS720090001
Programmation des automates Siemens S7-300/400
Page 36/36
AMS720090001
Programmation des automates Siemens S7-300/400
Page 37/37
XX. / PARAMETRES DE TYPE ANY
Le parametre de type ANY une taille de 10 octets, dfinissant le type de donnes, le
nombre dlment, le N DU DB, la zone mmoire, le N doctet et le N de bit
Toujours = 10h
Type de donnes
Nombre dlments
N de DB ou 0 si pas de DB
Zone mmoire (h8x)
N doctet
Type de donnes :
Type
Code Hexa
BOOL
01
BYTE
02
CHAR
03
WORD
04
INT
05
DWORD
06
DINT
07
REAL
08
DATE
09
TOD
0A
TIME
0B
S5TIME
0C
E
DT
0
STRING
13
BLOCK_FB
17
BLOCK_FC
18
BLOCK_DB
19
BLOCK_SDB
1A
COUNTER
1C
TIMER
1D
Zone mmoire
Zone
E
A
M
DB
DI
L
Quartet fort
8
8
8
8
8
8
Quartet faible
1
2
3
4
5
6
N Bit
AMS720090001
Programmation des automates Siemens S7-300/400
Page 38/38
Exemple dutilisation du parametre ANY en langage source
FUNCTION FC 10:VOID
VAR_TEMP
Source
ANY;
Destination ANY;
END_VAR
BEGIN
LAR1 P#Source;
// Registre dadresse = adresse du parametre #source
LAR2 P#Destination;
// Registre dadresse = adresse du parametre #destination
L
T
L
T
L
T
L
T
L
T
B#16#10;
LB [AR1,P#0.0];
B#16#02;
LB [AR1,P#1.0];
10;
LW [AR1,P#2.0];
22;
LW [AR1,P#4.0];
P#DBX11.0;
LD [AR1,P#6.0];
L
T
L
T
L
T
L
T
L
T
B#16#10;
LB [AR2,P#0.0];
B#16#02;
LB [AR2,P#1.0];
10;
LW [AR2,P#2.0];
15;
LW [AR2,P#4.0];
P#DBX50.0;
LD [AR1,P#6.0];