Vous êtes sur la page 1sur 16

Stockage des donnes dans les blocs de donnes

SIMATIC S7
Siemens AG 1998. All rights reserved.

Date :
Fichier :

Sommaire

22.07.03
04_MA2_fr.1

SITRAIN Formation
Automatisation et entranements

Page

Objectifs du chapitre .. 2
Zones mmoire pour l'enregistrement des donnes ............................................................................
3
Blocs de donnes (DB).....................................................................................................................
4
Types de donnes dans STEP 7...............................................................
5
Types de donnes lmentaires dans STEP 7.....................................................................................
6
Cration dun nouveau bloc de donnes........................................................................................ 7
Entre, enregistrement, chargement et visualisation dun bloc de donnes......................................... 8
Adressage des lments de donnes................................................................................................ 9
Accs aux lments de donnes ........................................................................................... 10
Exercice : Comptage des pices transportes (FC18, DB18)............................. 11-12
Types de donnes complexes.................................................................................................... 13
Exemple de tableau......................................................................................................... 14
Exemple de structure.......................................................................................................... 15
Rappel des objectifs ............................................................................................................................ 16

SITRAIN Formation
Automatisation et entranements

Page 1

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Objectifs du chapitre
A lissue du chapitre, vous allez ...

SIMATIC S7
Siemens AG 1998. All rights reserved.

SITRAIN Formation
Automatisation et entranements

...

connatre lutilit des blocs de donnes globaux

...

connatre les types de donnes complexes et lmentaires

...

savoir diter, enregistrer et charger dans la CPU


un bloc de donnes avec des variables lmentaires

...

connatre et savoir utiliser les possibilits


dadressage des variables de blocs de donnes.

Date :
Fichier :

22.07.03
04_MA2_fr.2

Page 2

SITRAIN Formation
Automatisation et entranements

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Zones mmoire pour l'enregistrement des donnes

Mmento

DBz

MIS
DBy

MIE

DBx

Priphrie

Pile L

SIMATIC S7
Siemens AG 1998. All rights reserved.

Gnralits

.
.
.

Date :
Fichier :

Blocs de donnes

22.07.03
04_MA2_fr.3

SITRAIN Formation
Automatisation et entranements

Outre les blocs de programme, un programme utilisateur comporte aussi des donnes
sur ltat du processus et des signaux, traites par les oprations du programme
utilisateur.
Les donnes sont stockes dans des variables du programme utilisateur, une variable
tant caractrise de manire univoque par :
le chemin daccs la zone mmoire (oprande : par exemple Priphrie, MIE, MIS,
mmentos, pile L, DB)
le type de donnes (type de donnes lmentaire ou complexe, type de paramtre).
En fonction des modalits daccs, on distingue :
les variables globales qui sont dclares dans la table des mnmoniques globale ou
dans des blocs de donnes globaux et
les variables locales qui se trouvent dans la partie dclarative des OB, FB et FC.
Les variables peuvent tre stockes un emplacement dtermin de manire fixe
dans la mmoire image du processus, dans la zone des mmentos ou dans des blocs
de donnes ; mais elles peuvent aussi tre stockes de faon dynamique dans la pile L
des donnes locales du bloc en cours de traitement.

Pile de donnes La pile de donnes locales (pile L) est une zone mmoire qui permet denregistrer :
locales
des variables temporaires d'un bloc de code, y compris les informations
de dmarrage des OB.
des oprandes effectifs lors du transfert de paramtres pour les appels de FC
des rsultats intermdiaires dans des programmes en schma contacts.
Ce sujet est trait au chapitre "Fonctions et blocs fonctionnels".
Blocs de
donnes

Les blocs de code utilisent les blocs de donnes pour mmoriser des valeurs.
Contrairement aux donnes temporaires, les donnes stockes dans un bloc de
donnes ne sont pas crases lorsque le traitement du bloc de code est termin ou
que le DB est ferm.

SITRAIN Formation
Automatisation et entranements

Page 3

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Blocs de donnes (DB)


Accs tous les blocs
Fonction
FC10

OB1

Donnes
globales
DB20

Fonction
FC20

DB dinstance de FB1
Bloc
fonctionnel
FB1

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

22.07.03
04_MA2_fr.4

Donnes
dinstance
DB5

SITRAIN Formation
Automatisation et entranements

Gnralits

Les blocs de donnes servent enregistrer des donnes utilisateur. Comme les
blocs de code, ils occupent de lespace dans la mmoire utilisateur. Les blocs
de donnes contiennent des variables (par exemple des valeurs numriques)
ncessaires lexcution du programme utilisateur.
Le programme utilisateur peut accder aux donnes d'un bloc de donnes par
des oprations sur bit, sur octet, sur mot et sur double mot. L'accs peut se faire
en symbolique ou en absolu.

Domaine
d'application

Les bloc de donnes peuvent, selon leur contenu, tre employs de diffrentes
manires par lutilisateur. On distingue :
les blocs de donnes globaux : ils contiennent des informations auxquelles
on peut accder partir de tous les blocs logiques du programme utilisateur.
les blocs de donnes d'instance : ils sont toujours associs un FB. Les
donnes de ce DB ne devraient tre traites que par le FB correspondant.
Les blocs de donnes d'instance sont traits plus en dtail au chapitre
"Fonctions et blocs fonctionnels ".

Cration de DB

Les DB globaux sont crs via lditeur de programme ou selon un "type de


donnes utilisateur" dfini pralablement.
Les blocs de donnes d'instance sont crs en cas d'appel d'un bloc FB.

Registres

La CPU possde deux registres de blocs de donnes, les registres DB et DI,


permettant douvrir deux blocs de donnes simultanment.
Ce sujet est trait dans un cours de programmation avanc.

SITRAIN Formation
Automatisation et entranements

Page 4

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Types de donnes dans STEP 7


Types de donnes binaires (BOOL, BYTE, WORD, DWORD,
CHAR)

Types de
donnes
lmentaires
(jusqu 32 bits)

Types de donnes arithmtiques (INT, DINT, REAL)


Types dheure (S5TIME, TIME, DATE, TIME_OF_DAY)

Types dheure (DATE_AND_TIME)


Types de
donnes
complexes
(suprieurs 32 bits)

Tableau (ARRAY)
Structure (STRUCT)
Chane de caractres (STRING)

Type de donnes UDT


(User Defined Type)

Types de donnes utilisateur

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

22.07.03
04_MA2_fr.5

SITRAIN Formation
Automatisation et entranements

Aperu

Les types de donnes dfinissent les proprits des donnes, c'est--dire la


reprsentation du contenu d'un ou plusieurs oprandes interdpendants et les
plages de valeurs admissibles.
Le type de donnes dtermine galement les oprations possibles.

Types de donnes
lmentaires

Les types de donnes lmentaires sont dfinis selon CEI 1131-3. Le type
de donnes dfinit de manire univoque lespace mmoire ncessaire
correspondant. Cest ainsi, par exemple, que le type de donnes Mot (Word)
occupe 16 bits dans la mmoire utilisateur.
Les types de donnes lmentaires ont toujours une longueur infrieure ou
gale 32 bits, ils peuvent tre chargs entirement dans les accumulateurs et
traits par des oprations STEP 7 lmentaires.

Types de donnes
complexes

Les types de donnes complexes peuvent tre utiliss uniquement en liaison


avec des variables dclares dans des blocs de donnes globaux. Les types de
donnes complexes ne peuvent pas tre chargs entirement dans
laccumulateur avec des oprations de chargement. Pour traiter des types de
donnes complexes, on dispose de blocs standard dans la bibliothque "CEI".

Types de donnes
utilisateur

Un type de donnes utilisateur (UDT) peut tre utilis pour des blocs de
donnes ou comme type de donne dans une table de dclaration des
variables.
Les UDT sont crs avec lditeur de bloc de donnes.
La structure d'un UDT peut contenir des groupes de types de donnes
lmentaires et/ou complexes.

SITRAIN Formation
Automatisation et entranements

Page 5

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Types de donnes lmentaires dans STEP 7


Mot-cl

Taille (en bits)

Exemple dune constante de ce type

BOOL
BYTE
WORD
DWORD
CHAR

1
8
16
32
8

1 ou 0
B#16#A6
W#16#FADA
DW#16#CAC40EDF
'w'

S5TIME

16

S5T#5s_200ms

INT
DINT
REAL

16
32
32

123
65539 ou L#-5
1.0 ou 34.5E-12

TIME
DATE
TIME_OF_DAY

32
16
32

T#2D_1H_3M_45S_12MS
D#2002-06-20
TOD#12:23:45.12

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

22.07.03
04_MA2_fr.6

SITRAIN Formation
Automatisation et entranements

BOOL, BYTE, WORD Les variables du type de donnes BOOL reprsentent un bit, les variables avec
DWORD, CHAR
des types de donnes BYTE, WORD, DWORD sont des squences binaires de 8,
16 ou 32 bits. Les bits ne sont pas valus individuellement dans ces types de
donnes.
Les nombres BCD et la valeur de comptage, ainsi que le type de donnes CHAR,
qui reprsente un caractre dans la reprsentation ASCII, sont des formes
particulires de ces types de donnes.
S5TIME

Les variables du type de donnes S5TIME sont utilises pour dfinir les valeurs de
temps dans les temporisations. La dure est indique en heures, minutes,
secondes ou millisecondes. Les valeurs de temps peuvent tre entres avec un
caractre de soulignement (1h_4m) ou sans (1h4m).
Les fonctions FC33 et FC40 de la bibliothque "Library Standard" convertissent les
formats S5TIME en TIME ou TIME en S5TIME.

INT, DINT, REAL

Les variables avec ces types de donnes reprsentent des nombres avec lesquels
il est possible deffectuer des oprations arithmtiques.

TIME

Une variable du type de donnes TIME (dure) occupe un double mot. Cette
variable est utilise par exemple pour dfinir des valeurs de temps dans les
temporisations CEI. Le contenu dune variable est interprt comme un nombre
DINT en millisecondes et peut ainsi tre positif ou ngatif (par exemple :
T#1s=L#1 000, T#24d20h31m23s647ms = L#214748647).

DATE

Une variable du type de donnes DATE (date) est stocke dans un mot comme un
nombre entier sans signe. Le contenu de la variable correspond au nombre de
jours couls depuis le 01.01.1990 (par exemple : D#1999-06-24 = W#16#0D85).

TIME_OF_DAY

Une variable du type de donnes TIME_OF_DAY (heure du jour) occupe un


double mot qui contient le nombre de millisecondes coul depuis le dbut du jour
(0:00 h) sous forme dun nombre entier sans signe. (par exemple :
TOD#23:59:59.999 = DW#16#0526_5B77).

SITRAIN Formation
Automatisation et entranements

Page 6

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Cration d'un nouveau bloc de donnes

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

22.07.03
04_MA2_fr.7

SITRAIN Formation
Automatisation et entranements

Cration d'un DB

Vous pouvez insrer un nouveau bloc de donnes dans le SIMATIC Manager,


comme indiqu sur la figure, en slectionnant tout d'abord le dossier Blocs dans
le programme S7 puis Insertion -> Bloc S7 -> Bloc de donnes.
Il est galement possible de crer un nouveau bloc de donnes dans l'Editeur
CONT/LIST/LOG via les commandes de menu suivantes :
Fichier -> Nouveau -> Dfinir projet et nom du projet -> Slectionner le dossier
Blocs du programme S7 -> Nom de l'objet : DB 99

DB global

Un bloc de donnes global est destin stocker les donnes globales, c'est-dire les donnes gnrales auxquelles doit pouvoir accder tout bloc de code
(OB, FC, FB).
Un bloc de donnes global doit tre dit par l'utilisateur lui-mme en dclarant
dans le bloc de donnes les variables requises pour le stockage des donnes.

DB d'instance

Un bloc de donnes d'instance est utilis comme "mmoire" pour un bloc


fonctionnel (FB). Les paramtres et les variables statiques d'un bloc fonctionnel
sont grs dans le DB d'instance de ce bloc fonctionnel.
En rgle gnrale, les DB d'instance ne sont pas dits par l'utilisateur, mais
gnrs par lditeur (voir chapitre Fonctions et blocs fonctionnels).

DB de type

Un bloc de donnes peut aussi tre gnr par lditeur en fonction d'un type de
donnes dfini par l'utilisateur, appel UDT (User Defined dataType). L'UDT est
un modle que l'utilisateur doit diter, exactement comme un bloc de donnes.
L'UDT peut galement servir de modle pour la cration d'autres blocs de
donnes et/ou d'une manire gnrale, pour la dclaration de variables et de
paramtres de blocs.

SITRAIN Formation
Automatisation et entranements

Page 7

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Entre, enregistrement, chargement et visualisation


d'un bloc de donnes

Affichage -> Vue des dclarations

Affichage -> Vue des donnes

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

22.07.03
04_MA2_fr.8

SITRAIN Formation
Automatisation et entranements

Dclaration
Les blocs de donnes sont dits dans la table de dclaration. Lutilisateur
(entre des variables) y dclare les variables requises pour mmoriser les donnes.
Colonnes

Les colonnes ont la signification suivante :

Adresse

- est inscrite par lditeur de programme et correspond


l'adresse du premier octet occup par la variable.
Nom
- nom symbolique des variables.
Type
- type de donnes (slection avec le bouton droit de la
souris : INT, REAL...).
Valeur initiale - valeur effective affecte la variable la premire dition.
Sans indication, lditeur affecte automatiquement la
valeur 0.
Commentaire - description de la variable (facultatif).

Enregistrer

Le bouton reprsentant une disquette permet denregistrer le bloc de donnes


sur le disque dur de la console de programmation.

Charger

Tout comme les blocs de code, les blocs de donnes doivent tre chargs dans
la CPU.

Vue des donnes

Pour visualiser les valeurs courantes dans le bloc de donnes (valeurs des
variables dans la CPU), passez en ligne la Vue des donnes". Les lunettes"
dans la barre doutils permettent de visualiser le bloc de donnes.
Lorsquun bloc de donnes est initialis, les valeurs effectives des variables
sont remplaces par les valeurs initiales. Cette opration dinitialisation des
valeurs peut tre ncessaire lorsque des valeurs initiales modifies doivent tre
valides en tant que valeurs effectives.

Initialiser le DB

SITRAIN Formation
Automatisation et entranements

Page 8

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Adressage des lments de donnes

8 bits
7

Octet de donne 0

DBB 0

Octet de donne 1

DBW 0

Octet de donne 2

DBD 0

Octet de donne 3

DBX 4.1

DBD 8188
DBW 8190
DBB 8191

Octet de donne
8191

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

22.07.03
04_MA2_fr.9

SITRAIN Formation
Automatisation et entranements

Gnralits

Ladressage des lments de donnes d'un bloc de donnes se fait octet par
octet, comme pour les mmentos.
Vous pouvez charger et transfrer des octets de donnes, des mots de donnes
ou des doubles mots de donnes. Dans le cas des mots de donnes, entrez la
premire adresse d'octet pour lopration (par exemple L DBW 2), 2 octets sont
ensuite chargs partir de cette adresse. Dans le cas des doubles mots, 4
octets sont chargs partir de ladresse d'octet indique.

Nombre, longueur

Le nombre de blocs de donnes dpend de la CPU utilise.


La longueur de bloc maxi. est de 16 Ko sur le S7-300 et de 64 Ko sur le S7-400.

Nota

En cas daccs des lments de donnes ou des blocs de donnes


inexistants, la CPU se met larrt si aucun OB d'erreur na t programm.

SITRAIN Formation
Automatisation et entranements

Page 9

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Accs des lments de donnes


DB 99 "Valeurs"
Adr. Nom

Type

0.0

Etat

BOOL

1.0

Etats

BYTE

2.0

Nombre

INT

Accs courant

absolu
AUF
U

AUF
L

4.0 Poids[1]

"Valeurs"
ou
DBX 0.0

symbolique

DB99.DBX0.0

ou

"Valeurs".Etat

ou

DB99.DBB1

ou

"Valeurs".Etats

"Valeurs"
ou
DBW 2

DB99.DBW2

ou

T "Valeurs".Nombre

DB99.DBD8

ou

L "Valeurs".Poids[2]

DB 99
DBB 1

REAL
AUF
T

8.0 Poids[2]

Accs entirement qualifi

REAL

SIMATIC S7

AUF
L

DB 99
DBD 8

Date :
Fichier :

Siemens AG 1998. All rights reserved.

ou

22.07.03
04_MA2_fr.10

SITRAIN Formation
Automatisation et entranements

Accs courant

L'accs courant un bloc de donnes (en environnement S5) nest possible


qu'aprs ouverture effective du bloc. L'accs qui peut tre absolu ou
symbolique, se fait avec l'instruction AUF DB 99 ou
AUF "Valeurs"
(voir exemple). Le bloc de donnes pralablement ouvert, est automatiquement
referm. Il est ensuite possible d'accder individuellement aux lments de
donnes par bits (DBX...), octets (DBB...), mots (DBW...) ou doubles mots
(DBD...) sans tre oblig de spcifier le bloc de donnes.
Inconvnients :
En cas d'accs aux lments de donnes, il faut s'assurer que le bloc de
donnes ouvert est le bon.
Seul un accs absolu est possible, et par consquent c'est le programmeur
qui doit retrouver" dans le bloc de donnes la valeur requise. Supposons
que DBW3 soit charg dans l'exemple ci-dessus, la valeur charge ne
serait dans ce cas ni le Nombre ni le Poids[1], mais une valeur incorrecte.
Les accs absolus diminuent considrablement les possibilits de correction
et la lisibilit du programme.

Accs entirement
qualifi ...

L'accs entirement qualifi comprend la fois la lecture du bloc de donnes et


la fermeture du bloc de donnes prcdemment ouvert (!). Dans ce cas, l'accs
peut tre absolu ou symbolique :

...absolu

L'ouverture du bloc de donnes et l'accs un lment de donnes sont


absolus et combins dans une instruction. Les inconvnients sont identiques
ceux de l'accs courant prcdemment dcrits.

...symbolique

Un accs symbolique une variable dans un bloc de donnes n'est possible


que sous forme entirement qualifie et symbolique. L'diteur offre la possibilit
thorique de "mlanger" des adresses absolues et symboliques, mais passe en
mode entirement symbolique ds validation de l'entre.

SITRAIN Formation
Automatisation et entranements

Page 10

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Exercice : Comptage des pices transportes (FC 18, DB 18) :


(1) dition du bloc de donnes DB 18

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

Fonction existante :

nonc :

Marche suivre :

22.07.03
04_MA2_fr.11

SITRAIN Formation
Automatisation et entranements

Les pices transportes en mode automatique sont comptes (avec un compteur


S5 Z18), ds qu'elles franchissent le poste de contrle final ou la barrire
photolectrique.
N'utilisez plus le compteur S5 Z18 pour le comptage des pices, mais effectuez le
comptage par addition avec la variable DB_pieces.Nombre_de_pieces_produit
(DB 18.DBW 0).
Pour cela, il faut tout dabord diter le DB 18.
1. Modifiez le DB 18 (voir figure) en insrant les variables et chargez-le dans la
CPU.
2. Attribuez le nom symbolique "DB_pieces" au DB 18 dans la table de
mnmoniques globale.

SITRAIN Formation
Automatisation et entranements

Page 11

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Exercice : Comptage des pices transportes (FC 18, DB 18):


(2) accs au bloc de donnes DB 18
Simulateur

Programme de la CPU : DB 18, FC 18

Nombre rel

AW 12 / AW 6
Nombre de consigne

0 8 1 5
EW 4 / EW 2
LED de la maquette
REEL=CONSIGNE
A 20.4 / A 8.4

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

Fonction existante
dans FC 18 :

22.07.03
04_MA2_fr.12

SITRAIN Formation
Automatisation et entranements

Les pices transportes en mode automatique (avec le compteur S5 Z 18)


sont comptes ds qu'elles franchissent la barrire photolectrique, front
0->1.
Le nombre de pices transportes (nombre rel de pices) est affich sur
lafficheur numrique BCD.
Le compteur est remis zro l'arrt de l'installation (A 8.1 / 4.1 = 0).

nonc :

Le comptage des pices transportes ne doit plus s'effectuer avec le


compteur S5 Z 18, mais par addition l'aide de la variable
DB_pieces.Nombre_de_pieces_produites (DB18.DBW 0). Utilisez la
variable DB_pieces.Memento_de_front comme mmento auxiliaire pour la
rponse aux fronts.
Le nombre de pices de consigne, c'est--dire le nombre de pices
transporter, est dtermin sur les roues codeuses en BCD (Comme
mmoire tampon pour le rsultat de la conversion, on peut utiliser le mot de
mmento MW 200). Lorsqu'il est atteint, la LED (A 20.4 / A 8.4) du poste de
contrle final doit s'allumer.
Tant que le signal Nombre de pices de consigne atteint est mis (LED
prcdente), aucun autre convoyage ne peut tre lanc (verrouillage dans
FC 16, FC17).

Marche suivre :

1. Insrez le bloc d'organisation OB 121 dans votre programme et chargez-le


dans la CPU. L'OB 121 ne ncessite aucun programme. Le chargement de
l'OB 121 "vide" empche la mise larrt de la CPU lors du rglage du
nombre de pices de consigne sur les roues codeuses par suite des alas
de commutation gnrant des valeurs non BCD.
2. Supprimez la FC 18 prcdente et programmez une nouvelle FC 18
en vous conformant la structure dcrite ci-dessus.
3. Modifiez la FC 16 et la FC 17 pour la commande du moteur du convoyeur et
des voyants lumineux.

SITRAIN Formation
Automatisation et entranements

Page 12

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Types de donnes complexes


Mot-cl

Taille (en bits)

Exemple

DATE_AND_TIME
(Date et heure)

64

DT#99-09-24-12:14:55.0

STRING
(Chane de caractres avec
254 caractres maxi)

8 * (nombre de
caractre +2)

Ceci est une chane


SIEMENS

ARRAY
(tableau, groupement de
composantes de mme
type de donnes)

dfinie par
lutilisateur

Valeurs de mesure : ARRAY[1..20]


INT

STRUCT
(structure, groupement
de composantes de types
de donnes diffrents)

dfinie par
lutilisateur

Moteur: STRUCT
Vitesse : INT
Courant : REAL
END_STRUCT

UDT
(User Defined Data Type =
type de donnes utilisateur,
modle" partir de types de
donnes lmentaires
ou complexes)

SIMATIC S7

dfinie par
lutilisateur

Date :
Fichier :

Siemens AG 1998. All rights reserved.

UDT bloc

UDT l. de tableau

STRUCT
Vitesse : INT
Courant : REAL
END_STRUCT

Entran.:ARRAY[1..4]
UDT1

22.07.03
04_MA2_fr.13

SITRAIN Formation
Automatisation et entranements

Types de donnes
complexes

Les types de donnes complexes (tableaux et structures) sont crs en


regroupant des types de donnes lmentaires ou complexes.
Lutilisateur a ainsi la possibilit de crer des types de donnes adapts son
besoin avec lesquels il peut structurer et traiter par voie symbolique de grandes
quantits de donnes.
Les types de donnes complexes ne peuvent pas tre traits directement dans
leur intgralit (taille suprieure 32 bits) avec des oprations STEP7, le
traitement ne peut se faire que composante par composante.
Les types de donnes complexes sont prdfinis, la longueur du type de donnes
DATE_AND_TIME tant gale 64 bits. La longueur des types de donnes
ARRAY (tableau), STRUCT (structure) et STRING (chane de caractres) est
dfinie par lutilisateur.
Les variables contenant des types de donnes complexes ne peuvent tre
dclares qu lintrieur de blocs de donnes globaux et sous forme de
paramtres ou comme variables locales de blocs de code.

Type de donnes
utilisateur

Les types de donnes utilisateur sont une structure dfinie par lutilisateur.
Mmorise dans des blocs UDT (UDT1 UDT65535), cette structure peut tre
utilise comme modle pour le type de donnes dune autre variable.
Cette solution vite des oprations de frappe superflues, lors de la saisie d'un
bloc de donnes, lorsquune mme structure est utilise plusieurs fois.
Exemple : vous avez besoin de la mme structure 10 fois dans un bloc de
donnes. Dfinissez dabord la structure puis enregistrez celle-ci, par exemple en
tant que UDT 1. Dans le DB, dfinissez une variable Entrainement" sous forme
de tableau avec 10 lments du type UDT1 :
Entrainement : array[1..10]
UDT 1
Vous avez ainsi cr 10 zones de donnes avec la structure dfinie dans lUDT 1
sans avoir les resaisir.

SITRAIN Formation
Automatisation et entranements

Page 13

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Exemple de tableau
Point de mesure
1er Point_de_mesure, type donnes Real
2e Point_de_mesure, type donnes Real
3e Point_de_mesure, type donnes Real

Tableau portant le nom "Point de mesure"


(plusieurs lments
de mme type de donnes)

10e Point_de_mesure, type donnes Real

Rprsentation dans l'diteur de programme (bloc de donnes DB 2) :

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

22.07.03
04_MA2_fr.14

SITRAIN Formation
Automatisation et entranements

Tableau

Un tableau se compose de plusieurs lments dun mme type de donnes.


Cette diapositive reprsente un tableau "Point de mesure" avec 10 lments du
type de donnes REAL. Diffrentes valeurs de mesure seront enregistres dans
ce tableau par la suite.

Dfinir un tableau
dans le DB

On utilise "ARRAY[n..m]" comme mot-cl dun tableau. Le premier lment (n)


et le dernier lment (m) sont indiqus entre crochets. Dans notre exemple
[1..10] signifie 10 lments, le premier lment tant adress avec lindice [1] et
le dernier avec lindice [10]. Au lieu de [1..10], on peut tout autant dfinir [0..9]
par exemple, ceci a seulement une incidence sur laccs aux lments.

Nota

Pour crer un bloc de donnes vide, dfinissez un tableau avec le type de


donnes souhait.

Vue des donnes

Pour voir quelles sont les valeurs enregistres dans les diffrents lments,
passez un autre mode daffichage avec l'option de menu Affichage -> " Vue
des donnes. Lcran Vue des donnes" prsente les valeurs enregistres
cet instant dans la colonne Valeur en cours".

SITRAIN Formation
Automatisation et entranements

Page 14

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Exemple de structure
Donnes_moteur
Vitesse_rotation,

type de donnes Integer

Courant_nominal,

type de donnes Real

Structure portant le nom "Donnes moteur"


(plusieurs lments
avec diffrents types de donnes)

Courant_demarrage, type de donnes Real


Sens_de_rotation,

type de donnes Bool

Rprsentation dans l'diteur de programme (bloc de donnes DB 1 : Entrainement) :

SIMATIC S7

Date :
Fichier :

Siemens AG 1998. All rights reserved.

22.07.03
04_MA2_fr.15

SITRAIN Formation
Automatisation et entranements

Structure

Cette diapositive montre un exemple de structure portant le nom


"Donnes_moteur". Cette structure se compose de plusieurs lments avec
diffrents types de donnes. Les diffrents lments dune structure peuvent
tre des types de donnes lmentaires ou complexes.
Laccs aux diffrents lments dune structure est fonction du nom de la
structure. Le programme est donc plus facile lire.
Pour que laccs aux lments soit possible en symbolique, le bloc de donnes
doit tre dot dun nom symbolique, par exemple "Entranement_1".
Exemples daccs aux diffrents lments dune structure :
L "Entranement_1".Donnes_moteur.Courant_nominal. ou
L "Entranement_1".Donnes_moteur.Vitesse_rotation
"Entranement_1" est le nom symbolique du bloc de donnes contenant la
structure. Le nom de la structure est indiqu aprs le nom symbolique (spar
par un point). Le nom de la structure est suivi dun nom dlment de la
structure (spar par un point).

Dfinir la structure
dans le DB

On utilise "STRUCT" comme mot-cl dune structure. La fin de la structure est


dsigne par "END_STRUCT". On dfinit un nom pour la structure (dans
lexemple : "Donnes_moteur").

SITRAIN Formation
Automatisation et entranements

Page 15

Cours S7-MA2
Stockage des donnes dans les blocs de donnes

Objectifs du chapitre
Ce que vous venez de voir...

...

lutilit des blocs de donnes globaux

...

les types de donnes complexes et lmentaires

...

diter, enregistrer et charger dans la CPU


un bloc de donnes avec des variables lmentaires

...

utiliser les possibilits dadressage des variables


de blocs de donnes.

tout de suite...

SIMATIC S7
Siemens AG 1998. All rights reserved.

SITRAIN Formation
Automatisation et entranements

Date :
Fichier :

22.07.03
04_MA2_fr.16

Page 16

SITRAIN Formation
Automatisation et entranements

Cours S7-MA2
Stockage des donnes dans les blocs de donnes