Sie sind auf Seite 1von 16

Stockage des données dans les blocs de données

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.1

Sommaire Page

Objectifs du chapitre …..……………………………………………………………………………………… 2


Zones mémoire pour l'enregistrement des données ............................................................................ 3
Blocs de données (DB).....................................................................…................................................ 4
Types de données dans STEP 7………………………………............................................................... 5
Types de données élémentaires dans STEP 7..................................................................................... 6
Création d‘un nouveau bloc de données...........................................................................……............. 7
Entrée, enregistrement, chargement et visualisation d‘un bloc de données......................................... 8
Adressage des éléments de données....................…............................................................................ 9
Accès aux éléments de données ………...........................................................................................… 10
Exercice : Comptage des pièces transportées (FC18, DB18)….……………………............................ 11-12
Types de données complexes……….................................................................................................... 13
Exemple de tableau…………….......................................................................................................….. 14
Exemple de structure….…………......................................................................................................... 15
Rappel des objectifs ............................................................................................................................ 16

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 1 Stockage des données dans les blocs de données
Objectifs du chapitre

A l‘issue du chapitre, vous allez ...

... connaître l‘utilité des blocs de données globaux

... connaître les types de données complexes et élémentaires

... savoir éditer, enregistrer et charger dans la CPU


un bloc de données avec des variables élémentaires

... connaître et savoir utiliser les possibilités


d‘adressage des variables de blocs de données.

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.2

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 2 Stockage des données dans les blocs de données
Zones mémoire pour l'enregistrement des données

Mémento
DBz
MIS
DBy . .
MIE .
DBx
Périphérie

Pile L Blocs de données

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.3

Généralités Outre les blocs de programme, un programme utilisateur comporte aussi des données
sur l‘état du processus et des signaux, traitées par les opérations du programme
utilisateur.
Les données sont stockées dans des variables du programme utilisateur, une variable
étant caractérisée de manière univoque par :
• le chemin d‘accès à la zone mémoire (opérande : par exemple Périphérie, MIE, MIS,
mémentos, pile L, DB)
• le type de données (type de données élémentaire ou complexe, type de paramètre).
En fonction des modalités d‘accès, on distingue :
• les variables globales qui sont déclarées dans la table des mnémoniques globale ou
dans des blocs de données globaux et
• les variables locales qui se trouvent dans la partie déclarative des OB, FB et FC.

Les variables peuvent être stockées à un emplacement déterminé de manière fixe


dans la mémoire image du processus, dans la zone des mémentos ou dans des blocs
de données ; mais elles peuvent aussi être stockées de façon dynamique dans la pile L
des données locales du bloc en cours de traitement.

Pile de données La pile de données locales (pile L) est une zone mémoire qui permet d‘enregistrer :
locales • des variables temporaires d'un bloc de code, y compris les informations
de démarrage des OB.
• des opérandes effectifs lors du transfert de paramètres pour les appels de FC
• des résultats intermédiaires dans des programmes en schéma à contacts.
Ce sujet est traité au chapitre "Fonctions et blocs fonctionnels".

Blocs de Les blocs de code utilisent les blocs de données pour mémoriser des valeurs.
données Contrairement aux données temporaires, les données stockées dans un bloc de
données ne sont pas écrasées lorsque le traitement du bloc de code est terminé ou
que le DB est fermé.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 3 Stockage des données dans les blocs de données
Blocs de données (DB)

Accès à tous les blocs

Fonction
OB1
FC10
Données
globales
DB20
Fonction
FC20

DB d‘instance de FB1

Bloc Données
fonctionnel d‘instance
FB1 DB5

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.4

Généralités Les blocs de données servent à enregistrer des données utilisateur. Comme les
blocs de code, ils occupent de l‘espace dans la mémoire utilisateur. Les blocs
de données contiennent des variables (par exemple des valeurs numériques)
nécessaires à l‘exécution du programme utilisateur.
Le programme utilisateur peut accéder aux données d'un bloc de données par
des opérations sur bit, sur octet, sur mot et sur double mot. L'accès peut se faire
en symbolique ou en absolu.

Domaine Les bloc de données peuvent, selon leur contenu, être employés de différentes
d'application manières par l‘utilisateur. On distingue :
• les blocs de données globaux : ils contiennent des informations auxquelles
on peut accéder à partir de tous les blocs logiques du programme utilisateur.
• les blocs de données d'instance : ils sont toujours associés à un FB. Les
données de ce DB ne devraient être traitées que par le FB correspondant.
Les blocs de données d'instance sont traités plus en détail au chapitre
"Fonctions et blocs fonctionnels ".

Création de DB Les DB globaux sont créés via l‘éditeur de programme ou selon un "type de
données utilisateur" défini préalablement.
Les blocs de données d'instance sont créés en cas d'appel d'un bloc FB.

Registres La CPU possède deux registres de blocs de données, les registres DB et DI,
permettant d‘ouvrir deux blocs de données simultanément.
Ce sujet est traité dans un cours de programmation avancé.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 4 Stockage des données dans les blocs de données
Types de données dans STEP 7

• Types de données binaires (BOOL, BYTE, WORD, DWORD,


Types de CHAR)
données
élémentaires • Types de données arithmétiques (INT, DINT, REAL)
(jusqu‘à 32 bits) • Types d‘heure (S5TIME, TIME, DATE, TIME_OF_DAY)

• Types d‘heure (DATE_AND_TIME)


Types de
données • Tableau (ARRAY)
complexes • Structure (STRUCT)
(supérieurs à 32 bits)
• Chaîne de caractères (STRING)

Type de données UDT


Types de données utilisateur (User Defined Type)

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.5

Aperçu Les types de données définissent les propriétés des données, c'est-à-dire la
représentation du contenu d'un ou plusieurs opérandes interdépendants et les
plages de valeurs admissibles.
Le type de données détermine également les opérations possibles.

Types de données Les types de données élémentaires sont définis selon CEI 1131-3. Le type
élémentaires de données définit de manière univoque l‘espace mémoire nécessaire
correspondant. C‘est ainsi, par exemple, que le type de données Mot (Word)
occupe 16 bits dans la mémoire utilisateur.
Les types de données élémentaires ont toujours une longueur inférieure ou
égale à 32 bits, ils peuvent être chargés entièrement dans les accumulateurs et
traités par des opérations STEP 7 élémentaires.

Types de données Les types de données complexes peuvent être utilisés uniquement en liaison
complexes avec des variables déclarées dans des blocs de données globaux. Les types de
données complexes ne peuvent pas être chargés entièrement dans
l‘accumulateur avec des opérations de chargement. Pour traiter des types de
données complexes, on dispose de blocs standard dans la bibliothèque "CEI".

Types de données Un type de données utilisateur (UDT) peut être utilisé pour des blocs de
utilisateur données ou comme type de donnée dans une table de déclaration des
variables.
Les UDT sont créés avec l‘éditeur de bloc de données.
La structure d'un UDT peut contenir des groupes de types de données
élémentaires et/ou complexes.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 5 Stockage des données dans les blocs de données
Types de données élémentaires dans STEP 7

Mot-clé Taille (en bits) Exemple d‘une constante de ce type

BOOL 1 1 ou 0
BYTE 8 B#16#A6
WORD 16 W#16#FADA
DWORD 32 DW#16#CAC40EDF
CHAR 8 'w'

S5TIME 16 S5T#5s_200ms

INT 16 123
DINT 32 65539 ou L#-5
REAL 32 1.0 ou 34.5E-12

TIME 32 T#2D_1H_3M_45S_12MS
DATE 16 D#2002-06-20
TIME_OF_DAY 32 TOD#12:23:45.12

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.6

BOOL, BYTE, WORD Les variables du type de données BOOL représentent un bit, les variables avec
DWORD, CHAR des types de données BYTE, WORD, DWORD sont des séquences binaires de 8,
16 ou 32 bits. Les bits ne sont pas évalués individuellement dans ces types de
données.
Les nombres BCD et la valeur de comptage, ainsi que le type de données CHAR,
qui représente un caractère dans la représentation ASCII, sont des formes
particulières de ces types de données.

S5TIME Les variables du type de données S5TIME sont utilisées pour définir les valeurs de
temps dans les temporisations. La durée est indiquée en heures, minutes,
secondes ou millisecondes. Les valeurs de temps peuvent être entrées avec un
caractère de soulignement (1h_4m) ou sans (1h4m).
Les fonctions FC33 et FC40 de la bibliothèque "Library Standard" convertissent les
formats S5TIME en TIME ou TIME en S5TIME.

INT, DINT, REAL Les variables avec ces types de données représentent des nombres avec lesquels
il est possible d‘effectuer des opérations arithmétiques.

TIME Une variable du type de données TIME (durée) occupe un double mot. Cette
variable est utilisée par exemple pour définir des valeurs de temps dans les
temporisations CEI. Le contenu d‘une variable est interprété comme un nombre
DINT en millisecondes et peut ainsi être positif ou négatif (par exemple :
T#1s=L#1 000, T#24d20h31m23s647ms = L#214748647).

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

TIME_OF_DAY Une variable du type de données TIME_OF_DAY (heure du jour) occupe un


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

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 6 Stockage des données dans les blocs de données
Création d'un nouveau bloc de données

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.7

Création d'un DB Vous pouvez insérer un nouveau bloc de données dans le SIMATIC Manager,
comme indiqué sur la figure, en sélectionnant tout d'abord le dossier Blocs dans
le programme S7 puis Insertion -> Bloc S7 -> Bloc de données.
Il est également possible de créer un nouveau bloc de données dans l'Editeur
CONT/LIST/LOG via les commandes de menu suivantes :
Fichier -> Nouveau -> Définir projet et nom du projet -> Sélectionner le dossier
Blocs du programme S7 -> Nom de l'objet : DB 99

DB global Un bloc de données global est destiné à stocker les données globales, c'est-à-
dire les données générales auxquelles doit pouvoir accéder tout bloc de code
(OB, FC, FB).
Un bloc de données global doit être édité par l'utilisateur lui-même en déclarant
dans le bloc de données les variables requises pour le stockage des données.

DB d'instance Un bloc de données d'instance est utilisé comme "mémoire" pour un bloc
fonctionnel (FB). Les paramètres et les variables statiques d'un bloc fonctionnel
sont gérés dans le DB d'instance de ce bloc fonctionnel.
En règle générale, les DB d'instance ne sont pas édités par l'utilisateur, mais
générés par l‘éditeur (voir chapitre Fonctions et blocs fonctionnels).

DB de type Un bloc de données peut aussi être généré par l‘éditeur en fonction d'un type de
données défini par l'utilisateur, appelé UDT (User Defined dataType). L'UDT est
un modèle que l'utilisateur doit éditer, exactement comme un bloc de données.
L'UDT peut également servir de modèle pour la création d'autres blocs de
données et/ou d'une manière générale, pour la déclaration de variables et de
paramètres de blocs.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 7 Stockage des données dans les blocs de données
Entrée, enregistrement, chargement et visualisation
d'un bloc de données

Affichage -> Vue des déclarations

Affichage -> Vue des données

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.8

Déclaration Les blocs de données sont édités dans la table de déclaration. L‘utilisateur
(entrée des variables) y déclare les variables requises pour mémoriser les données.

Colonnes Les colonnes ont la signification suivante :

• Adresse - est inscrite par l‘éditeur de programme et correspond à


l'adresse du premier octet occupé par la variable.
• Nom - nom symbolique des variables.
• Type - type de données (sélection avec le bouton droit de la
souris : INT, REAL...).
• Valeur initiale - valeur effective affectée à la variable à la première édition.
Sans indication, l‘éditeur affecte automatiquement la
valeur 0.
• Commentaire - description de la variable (facultatif).

Enregistrer Le bouton représentant une disquette permet d‘enregistrer le bloc de données


sur le disque dur de la console de programmation.

Charger Tout comme les blocs de code, les blocs de données doivent être chargés dans
la CPU.

Vue des données Pour visualiser les valeurs courantes dans le bloc de données (valeurs des
variables dans la CPU), passez en ligne à la “Vue des données". Les “lunettes"
dans la barre d‘outils permettent de visualiser le bloc de données.
Initialiser le DB Lorsqu‘un bloc de données est initialisé, les valeurs effectives des variables
sont remplacées par les valeurs initiales. Cette opération d‘initialisation des
valeurs peut être nécessaire lorsque des valeurs initiales modifiées doivent être
validées en tant que valeurs effectives.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 8 Stockage des données dans les blocs de données
Adressage des éléments de données

8 bits
7 0
Octet de donnée 0 DBB 0
Octet de donnée 1 DBW 0
Octet de donnée 2
DBD 0
Octet de donnée 3

DBX 4.1

DBD 8188

DBW 8190
Octet de donnée DBB 8191
8191

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.9

Généralités L‘adressage des éléments de données d'un bloc de données se fait octet par
octet, comme pour les mémentos.
Vous pouvez charger et transférer des octets de données, des mots de données
ou des doubles mots de données. Dans le cas des mots de données, entrez la
première adresse d'octet pour l‘opération (par exemple L DBW 2), 2 octets sont
ensuite chargés à partir de cette adresse. Dans le cas des doubles mots, 4
octets sont chargés à partir de l‘adresse d'octet indiquée.

Nombre, longueur Le nombre de blocs de données dépend de la CPU utilisée.


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

Nota En cas d‘accès à des éléments de données ou à des blocs de données


inexistants, la CPU se met à l‘arrêt si aucun OB d'erreur n‘a été programmé.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 9 Stockage des données dans les blocs de données
Accès à des éléments de données
DB 99 "Valeurs" Accès courant Accès entièrement qualifié

Adr. Nom Type absolu symbolique


0.0 Etat BOOL AUF "Valeurs"
ou U DB99.DBX0.0 ou U "Valeurs".Etat
U DBX 0.0
1.0 Etats BYTE
2.0 Nombre INT
AUF DB 99
ou L DB99.DBB1 ou L "Valeurs".Etats
L DBB 1
4.0 Poids[1] REAL
AUF "Valeurs"
ou T DB99.DBW2 ou T "Valeurs".Nombre
T DBW 2

AUF DB 99
8.0 Poids[2] REAL ou L DB99.DBD8 ou L "Valeurs".Poids[2]
L DBD 8

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.10

Accès courant L'accès courant à un bloc de données (en environnement S5) n‘est possible
qu'après ouverture effective du bloc. L'accès qui peut être absolu ou
symbolique, se fait avec l'instruction AUF DB 99 ou AUF "Valeurs"
(voir exemple). Le bloc de données préalablement ouvert, est automatiquement
refermé. Il est ensuite possible d'accéder individuellement aux éléments de
données par bits (DBX...), octets (DBB...), mots (DBW...) ou doubles mots
(DBD...) sans être obligé de spécifier le bloc de données.
Inconvénients :
• En cas d'accès aux éléments de données, il faut s'assurer que le bloc de
données ouvert est le bon.
• Seul un accès absolu est possible, et par conséquent c'est le programmeur
qui doit “retrouver" dans le bloc de données la valeur requise. Supposons
que DBW3 soit chargé dans l'exemple ci-dessus, la valeur chargée ne
serait dans ce cas ni le Nombre ni le Poids[1], mais une valeur incorrecte.
• Les accès absolus diminuent considérablement les possibilités de correction
et la lisibilité du programme.

Accès entièrement L'accès entièrement qualifié comprend à la fois la lecture du bloc de données et
qualifié ... la fermeture du bloc de données précédemment ouvert (!). Dans ce cas, l'accès
peut être absolu ou symbolique :

...absolu L'ouverture du bloc de données et l'accès à un élément de données sont


absolus et combinés dans une instruction. Les inconvénients sont identiques à
ceux de l'accès courant précédemment décrits.

...symbolique Un accès symbolique à une variable dans un bloc de données n'est possible
que sous forme entièrement qualifiée et symbolique. L'éditeur offre la possibilité
théorique de "mélanger" des adresses absolues et symboliques, mais passe en
mode entièrement symbolique dès validation de l'entrée.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 10 Stockage des données dans les blocs de données
Exercice : Comptage des pièces transportées (FC 18, DB 18) :
(1) édition du bloc de données DB 18

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.11

Fonction existante : Les pièces transportées en mode automatique sont comptées (avec un compteur
S5 Z18), dès qu'elles franchissent le poste de contrôle final ou la barrière
photoélectrique.
Énoncé : N'utilisez plus le compteur S5 Z18 pour le comptage des pièces, mais effectuez le
comptage par addition avec la variable “DB_pieces“.Nombre_de_pieces_produit
(DB 18.DBW 0).
Pour cela, il faut tout d‘abord éditer le DB 18.

Marche à suivre : 1. Modifiez le DB 18 (voir figure) en insérant les variables et chargez-le dans la
CPU.
2. Attribuez le nom symbolique "DB_pieces" au DB 18 dans la table de
mnémoniques globale.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 11 Stockage des données dans les blocs de données
Exercice : Comptage des pièces transportées (FC 18, DB 18):
(2) accès au bloc de données DB 18

Simulateur Programme de la CPU : DB 18, FC 18

Nombre réel

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 : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.12

Fonction existante • Les pièces transportées en mode automatique (avec le compteur S5 Z 18)
dans FC 18 : sont comptées dès qu'elles franchissent la barrière photoélectrique, front
0->1.
• Le nombre de pièces transportées (nombre réel de pièces) est affiché sur
l‘afficheur numérique BCD.
• Le compteur est remis à zéro à l'arrêt de l'installation (A 8.1 / 4.1 = ´0´).

Énoncé : • Le comptage des pièces transportées 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 mémento auxiliaire pour la
réponse aux fronts.
• Le nombre de pièces de consigne, c'est-à-dire le nombre de pièces à
transporter, est déterminé sur les roues codeuses en BCD (Comme
mémoire tampon pour le résultat de la conversion, on peut utiliser le mot de
mémento MW 200). Lorsqu'il est atteint, la LED (A 20.4 / A 8.4) du poste de
contrôle final doit s'allumer.
• Tant que le signal Nombre de pièces de consigne atteint est émis (LED
précédente), aucun autre convoyage ne peut être lancé (verrouillage dans
FC 16, FC17).

Marche à suivre : 1. Insérez le bloc d'organisation OB 121 dans votre programme et chargez-le
dans la CPU. L'OB 121 ne nécessite aucun programme. Le chargement de
l'OB 121 "vide" empêche la mise à l‘arrêt de la CPU lors du réglage du
nombre de pièces de consigne sur les roues codeuses par suite des aléas
de commutation générant des valeurs non BCD.
2. Supprimez la FC 18 précédente et programmez une nouvelle FC 18
en vous conformant à la structure décrite ci-dessus.
3. Modifiez la FC 16 et la FC 17 pour la commande du moteur du convoyeur et
des voyants lumineux.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 12 Stockage des données dans les blocs de données
Types de données complexes
Mot-clé Taille (en bits) Exemple
DATE_AND_TIME 64 DT#99-09-24-12:14:55.0
(Date et heure)

STRING 8 * (nombre de ´Ceci est une chaîne´


(Chaîne de caractères avec caractère +2) ´SIEMENS´
254 caractères maxi)

ARRAY définie par Valeurs de mesure : ARRAY[1..20]


(tableau, groupement de l‘utilisateur INT
composantes de même
type de données)

STRUCT définie par Moteur: STRUCT


(structure, groupement l‘utilisateur Vitesse : INT
de composantes de types Courant : REAL
de données différents) END_STRUCT

UDT UDT „bloc“ UDT „él. de tableau“


(User Defined Data Type = définie par
type de données utilisateur, l‘utilisateur STRUCT Entraîn.:ARRAY[1..4]
“modèle" à partir de types de Vitesse : INT UDT1
données élémentaires Courant : REAL
ou complexes) END_STRUCT

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.13

Types de données Les types de données complexes (tableaux et structures) sont créés en
complexes regroupant des types de données élémentaires ou complexes.
L‘utilisateur a ainsi la possibilité de créer des types de données adaptés à son
besoin avec lesquels il peut structurer et traiter par voie symbolique de grandes
quantités de données.
Les types de données complexes ne peuvent pas être traités directement dans
leur intégralité (taille supérieure à 32 bits) avec des opérations STEP7, le
traitement ne peut se faire que composante par composante.
Les types de données complexes sont prédéfinis, la longueur du type de données
DATE_AND_TIME étant égale à 64 bits. La longueur des types de données
ARRAY (tableau), STRUCT (structure) et STRING (chaîne de caractères) est
définie par l‘utilisateur.
Les variables contenant des types de données complexes ne peuvent être
déclarées qu‘à l‘intérieur de blocs de données globaux et sous forme de
paramètres ou comme variables locales de blocs de code.

Type de données Les types de données utilisateur sont une structure définie par l‘utilisateur.
utilisateur Mémorisée dans des blocs UDT (UDT1 à UDT65535), cette structure peut être
utilisée comme modèle pour le type de données d‘une autre variable.
Cette solution évite des opérations de frappe superflues, lors de la saisie d'un
bloc de données, lorsqu‘une même structure est utilisée plusieurs fois.
Exemple : vous avez besoin de la même structure 10 fois dans un bloc de
données. Définissez d‘abord la structure puis enregistrez celle-ci, par exemple en
tant que UDT 1. Dans le DB, définissez une variable “Entrainement" sous forme
de tableau avec 10 éléments du type UDT1 :
Entrainement : array[1..10]
UDT 1
Vous avez ainsi créé 10 zones de données avec la structure définie dans l‘UDT 1
sans avoir à les resaisir.

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 13 Stockage des données dans les blocs de données
Exemple de tableau
Point de mesure
1er Point_de_mesure, type données Real

2e Point_de_mesure, type données Real


Tableau portant le nom "Point de mesure"
3e Point_de_mesure, type données Real (plusieurs éléments
• de même type de données)


10e Point_de_mesure, type données Real

Réprésentation dans l'éditeur de programme (bloc de données DB 2) :

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.14

Tableau Un tableau se compose de plusieurs éléments d‘un même type de données.


Cette diapositive représente un tableau "Point de mesure" avec 10 éléments du
type de données REAL. Différentes valeurs de mesure seront enregistrées dans
ce tableau par la suite.

Définir un tableau On utilise "ARRAY[n..m]" comme mot-clé d‘un tableau. Le premier élément (n)
dans le DB et le dernier élément (m) sont indiqués entre crochets. Dans notre exemple
[1..10] signifie 10 éléments, le premier élément étant adressé avec l‘indice [1] et
le dernier avec l‘indice [10]. Au lieu de [1..10], on peut tout autant définir [0..9]
par exemple, ceci a seulement une incidence sur l‘accès aux éléments.

Nota Pour créer un bloc de données vide, définissez un tableau avec le type de
données souhaité.

Vue des données Pour voir quelles sont les valeurs enregistrées dans les différents éléments,
passez à un autre mode d‘affichage avec l'option de menu Affichage -> " Vue
des données“. L‘écran „Vue des données" présente les valeurs enregistrées à
cet instant dans la colonne “Valeur en cours".

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 14 Stockage des données dans les blocs de données
Exemple de structure
Données_moteur
Vitesse_rotation, type de données Integer
Courant_nominal, type de données Real Structure portant le nom "Données moteur"
(plusieurs éléments
Courant_demarrage, type de données Real avec différents types de données)
Sens_de_rotation, type de données Bool

Réprésentation dans l'éditeur de programme (bloc de données DB 1 : Entrainement) :

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.15

Structure Cette diapositive montre un exemple de structure portant le nom


"Données_moteur". Cette structure se compose de plusieurs éléments avec
différents types de données. Les différents éléments d‘une structure peuvent
être des types de données élémentaires ou complexes.
L‘accès aux différents éléments d‘une structure est fonction du nom de la
structure. Le programme est donc plus facile à lire.
Pour que l‘accès aux éléments soit possible en symbolique, le bloc de données
doit être doté d‘un nom symbolique, par exemple "Entraînement_1".
Exemples d‘accès aux différents éléments d‘une structure :
L "Entraînement_1".Données_moteur.Courant_nominal. ou
L "Entraînement_1".Données_moteur.Vitesse_rotation
"Entraînement_1" est le nom symbolique du bloc de données contenant la
structure. Le nom de la structure est indiqué après le nom symbolique (séparé
par un point). Le nom de la structure est suivi d‘un nom d‘élément de la
structure (séparé par un point).

Définir la structure On utilise "STRUCT" comme mot-clé d‘une structure. La fin de la structure est
dans le DB désignée par "END_STRUCT". On définit un nom pour la structure (dans
l‘exemple : "Données_moteur").

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 15 Stockage des données dans les blocs de données
Objectifs du chapitre

Ce que vous venez de voir...

... l‘utilité des blocs de données globaux

... les types de données complexes et élémentaires

... éditer, enregistrer et charger dans la CPU


un bloc de données avec des variables élémentaires

... utiliser les possibilités d‘adressage des variables


de blocs de données.

À tout de suite...

SIMATIC S7 Date : 22.07.03


SITRAIN Formation
Automatisation et entraînements
Siemens AG 1998. All rights reserved. Fichier : 04_MA2_fr.16

SITRAIN Formation Cours S7-MA2


Automatisation et entraînements Page 16 Stockage des données dans les blocs de données