Stockage des données dans les blocs de données
SIMATIC S7 Siemens AG 1998. All rights reserved.
Dat e : Fichie Fichierr :
Sommaire
22.07.03 04_MA2 04_MA2_fr. _fr.1 1
SITRAIN Formation Automatisation et entraînements
Page
Objectifs Objectifs du chapitr chapitre e …..………… …..………………… ……………… ……………… ……………… ……………… ……………… ……………… ……………… ……………… …………… …… 2 Zones mémoire pour l'enregistrement des données ...... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ......... .... 3 Blocs Blocs de don donnée nées s (DB)........... (DB)................ ........... ............ ........... ........... ........... ........... ........... ........... ........... ........… ...…...... ........... ........... ........... ........... ............ ............. ............ ....... .. 4 Types de données dans STEP 7……………………………….......... 7………………………………................ ............... .................. ............... ............... .................. .............. ..... 5 Types Types de don donné nées es élémen élémentaire taires s dan dans s STEP STEP 7.... 7......... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ......... .... 6 Créatio Création n d‘un d‘un nou nouvea veau u bloc bloc de don donnée nées..... s.......... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ..........… ....…….. …........ ........... ..... 7 Entrée, Entrée, enregist enregistreme rement, nt, chargeme chargement nt et visualisa visualisatio tion n d‘un bloc de don donnée nées.... s.......... ........... ........... ........... ........... ........... ......... .... 8 Adressag Adressage e des élémen éléments ts de don donnée nées..... s.......... ........... ..........… ....….... .......... ........... ........... ........... ........... ............ ........... ........... ........... ........... ........... ........... ........... ..... 9 Accès aux éléments éléments de données données ………................................................ ………................................................................................... ...........................................… ........… 10 Exercice : Comptage des pièces transportées (FC18, DB18)….……………………............................ 11-12 Types de données données complexes………. complexes……….................................... ...................................................................... ................................................................ ............................. 13 Exemple de tableau………… tableau……………........................... ….............................................................. .................................................................... .........................................….. ........….. 14 Exemple de structure….………….......... structure….………….............................................. ............................................................................. ........................................................... .................. 15 Rappel Rappel des objectifs ................................ ..................................................................... ................................................................................... ....................................................... ......... 16
SITRAIN Formation Automatisation et entraînements
Page 1
Cours S7-MA2 Stockage des données dans les blocs de données
Objectifs du chapitre A l‘issue du chapitre, vous allez ...
SIMATIC S7 Siemens AG 1998. All rights reserved.
...
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.
Date : Fichier :
22.07.03 04_MA2_fr.2
SITRAIN Formation Automatisation et entraînements
Page 2
SITRAIN Formation Automatisation et entraînements
Cours S7-MA2 Stockage des données dans les blocs de données
Zones mémoire pour l'enregistrement des données
Mémento MIS
DBz DBy
MIE
DBx
Périphérie
Pile L
SIMATIC S7 Siemens AG 1998. All rights reserved.
Généralités
Date : Fichier :
. . .
Blocs de données
22.07.03 04_MA2_fr.3
SITRAIN Formation Automatisation et entraînements
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 : • des variables temporaires d'un bloc de code, y compris les informations locales 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 données
Les blocs de code utilisent les blocs de données pour mémoriser des valeurs. 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 Automatisation et entraînements
Page 3
Cours S7-MA2 Stockage des données dans les blocs de données
Blocs de données (DB) Accès à tous les blocs Fonction FC10
OB1
Données globales DB20
Fonction FC20
DB d‘instance de FB1 Bloc fonctionnel FB1
SIMATIC S7
Date : Fichier :
Siemens AG 1998. All rights reserved.
22.07.03 04_MA2_fr.4
Données d‘instance DB5
SITRAIN Formation Automatisation et entraînements
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 d'application
Les bloc de données peuvent, selon leur contenu, être employés de différentes 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 Automatisation et entraînements
Page 4
Cours S7-MA2 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, CHAR)
Types de données élémentaires (jusqu‘à 32 bits)
• Types de données arithmétiques (INT, DINT, REAL) • Types d‘heure (S5TIME, TIME, DATE, TIME_OF_DAY)
• Types d‘heure (DATE_AND_TIME)
Types de données complexes (supérieurs à 32 bits)
• Tableau (ARRAY) • Structure (STRUCT) • Chaîne de caractères (STRING)
Type de données UDT (User Defined Type)
Types de données utilisateur
SIMATIC S7
Date : Fichier :
Siemens AG 1998. All rights reserved.
22.07.03 04_MA2_fr.5
SITRAIN Formation Automatisation et entraînements
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 élémentaires
Les types de données élémentaires sont définis selon CEI 1131-3. Le type 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 complexes
Les types de données complexes peuvent être utilisés uniquement en liaison 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 utilisateur
Un type de données utilisateur (UDT) peut être utilisé pour des blocs de 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 Automatisation et entraînements
Page 5
Cours S7-MA2 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 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 entraînements
BOOL, BYTE, WORD Les variables du type de données BOOL représentent un bit, les variables avec des types de données BYTE, WORD, DWORD sont des séquences binaires de 8, DWORD, CHAR 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 Automatisation et entraînements
Page 6
Cours S7-MA2 Stockage des données dans les blocs de données
Création d'un nouveau bloc de données
SIMATIC S7
Date : Fichier :
Siemens AG 1998. All rights reserved.
22.07.03 04_MA2_fr.7
SITRAIN Formation Automatisation et entraînements
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 Automatisation et entraînements
Page 7
Cours S7-MA2 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 : Fichier :
Siemens AG 1998. All rights reserved.
22.07.03 04_MA2_fr.8
SITRAIN Formation Automatisation et entraînements
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. 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.
Initialiser le DB
SITRAIN Formation Automatisation et entraînements
Page 8
Cours S7-MA2 Stockage des données dans les blocs de données
Adressage des éléments de données
8 bits 7
0
DBB 0 DBW 0
Octet de donnée 0 Octet de donnée 1 Octet de donnée 2
DBD 0
Octet de donnée 3
DBX 4.1
DBD 8188 DBW 8190 DBB 8191
Octet de donnée 8191
SIMATIC S7
Dat e : Fichier :
Siemens AG 1998. All rights reserved.
22.07.03 04_MA2_fr.9
SITRAIN Formation Automatisation et entraînements
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 Automatisation et entraînements
Page 9
Cours S7-MA2 Stockage des données dans les blocs de données
Accès à des éléments de données DB 99 "Valeurs" Adr. Nom
Type
0. 0
Etat
BOOL
1. 0
Etats
BYT E
2.0
Nombre
INT
4.0 Poids[1]
Accès courant
absolu
symbolique
AUF U
"Valeurs" DBX 0.0
ou
U
DB99.DBX0.0
ou
U
"Valeurs".Etat
AUF L
DB 99 DBB 1
ou
L
DB99.DBB1
ou
L
"Valeurs".Etats
"Valeurs" ou DBW 2
T
DB99.DBW2
ou
T "Valeurs".Nombre
L
DB99.DBD8
ou
L "Valeurs".Poids[2]
REAL AUF T
8.0 Poids[2]
Accès entièrement 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 entraînements
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 qualifié ...
L'accès entièrement qualifié comprend à la fois la lecture du bloc de données et 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 Automatisation et entraînements
Page 10
Cours S7-MA2 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 : Fichier :
Siemens AG 1998. All rights reserved.
Fonction existante : Énoncé :
Marche à suivre :
22.07.03 04_MA2_fr.11
SITRAIN Formation Automatisation et entraînements
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. 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. 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 Automatisation et entraînements
Page 11
Cours S7-MA2 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 : Fichier :
Siemens AG 1998. All rights reserved.
Fonction existante dans FC 18 :
•
• •
22.07.03 04_MA2_fr.12
SITRAIN Formation Automatisation et entraînements
Les pièces transportées en mode automatique (avec le compteur S5 Z 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é :
•
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.
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).
SITRAIN Formation Automatisation et entraînements
Page 12
Cours S7-MA2 Stockage des données dans les blocs de données
Types de données complexes Mot-clé
Taille (en bits)
DATE_AND_TIME
Exemple
64
DT#99-09-24-12:14:55.0
8 * (nombre de caractère +2)
´Ceci est une chaîne´ ´SIEMENS´
définie par l‘utilisateur
Valeurs de mesure : ARRAY[1..20] INT
(Date et heure)
STRING (Chaîne de caractères avec 254 caractères maxi)
ARRAY (tableau, groupement de composantes de même type de données)
STRUCT (structure, groupement de composantes de types de données différents)
UDT (User Defined Data Type = type de données utilisateur, “modèle" à partir de types de données élémentaires ou complexes)
SIMATIC S7
définie par l‘utilisateur
définie par l‘utilisateur
Date : Fichier :
Siemens AG 1998. All rights reserved.
Moteur: STRUCT Vitesse : INT Courant : REAL END_STRUCT UDT „bloc“
UDT „él. de tableau“
STRUCT Vitesse : INT Courant : REAL END_STRUCT
Entraîn.:ARRAY[1..4] UDT1
22.07.03 04_MA2_fr.13
SITRAIN Formation Automatisation et entraînements
Types de données complexes
Les types de données complexes (tableaux et structures) sont créés en 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 utilisateur
Les types de données utilisateur sont une structure définie par l‘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 Automatisation et entraînements
Page 13
Cours S7-MA2 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 3e Point_de_mesure, type données Real
• • •
Tableau portant le nom "Point de mesure" (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 : Fichier :
Siemens AG 1998. All rights reserved.
22.07.03 04_MA2_fr.14
SITRAIN Formation Automatisation et entraînements
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 dans le DB
On utilise "ARRAY[n..m]" comme mot-clé d‘un tableau. Le premier élément (n) 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 Automatisation et entraînements
Page 14
Cours S7-MA2 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 avec différents types de données)
Courant_demarrage, type de données Real 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 : Fichier :
Siemens AG 1998. All rights reserved.
22.07.03 04_MA2_fr.15
SITRAIN Formation Automatisation et entraînements
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 dans le DB
On utilise "STRUCT" comme mot-clé d‘une structure. La fin de la structure est désignée par "END_STRUCT". On définit un nom pour la structure (dans l‘exemple : "Données_moteur").
SITRAIN Formation Automatisation et entraînements
Page 15
Cours S7-MA2 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 Siemens AG 1998. All rights reserved.
Date : Fichier :
22.07.03 04_MA2_fr.16
SITRAIN Formation Automatisation et entraînements
Page 16
SITRAIN Formation Automatisation et entraînements
Cours S7-MA2 Stockage des données dans les blocs de données