Vous êtes sur la page 1sur 28

Types de donnes et variables de STEP 7

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.1

Siemens Centre de Formation Savoir pour automatiser

Signification de types de donnes et variables


Les types de donnes caractrisent les proprits fondamentales de donnes zone continue: p.ex. vitesse_relle proprit "oui/non": p.ex. dfaut Le type de donnes dtermine: la plage des valeurs admissible (INT: -32 768 ... +32 767, etc.) les oprations admissibles (oprations arithmtiques : +, -, etc.) abstraction de la reprsentation de base des bits dans la mmoire

vitesse _relle: REAL consigne_vitesse : REAL dfaut: BOOL libration: BOOL

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.2

Siemens Centre de Formation Savoir pour automatiser

Proprits et dclaration de variables


Par la dclaration d'une variable, les proprits suivantes sont dtermines: nom symbolique type de donnes plage de validit Variables peuvent tre dclares: dans la liste globale des symboles (type de donnes lmentaire) dans la partie dclarative d'un bloc de donnes globales (tous les types de donnes) dans la partie dclarative d'un bloc logique (OB, FB et FC)

point_mesure: ARRAY[1..10] point_mesure[1]: Real point_mesure[2]: Real point_mesure[3]: Real

point_mesure[10]: Real

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.3

Siemens Centre de Formation Savoir pour automatiser

Aperu des types de donnes dans STEP 7


Types de donnes bit (BOOL, BYTE, WORD, DWORD, CHAR)
Types de temporisations (S5TIME, TIME, DATE, TIME_OF_DAY) Types de donnes arithmtiques (INT, DINT, REAL)

Types de donnes lmentaires (jusqu' 32 bits)

Types de date et heure (DATE_AND_TIME) Types de donnes complexes (suprieur 32 bits) Tableau (ARRAY) Structure (STRUCT) Chane de caractres (STRING)

Types de donnes utilisateur (suprieur 32 bits)

Type de donnes UDT (User Defined Type)

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.4

Siemens Centre de Formation Savoir pour automatiser

Types de donnes lmentaires dans STEP 7

Mot-cl
BOOL BYTE WORD DWORD CHAR S5TIME INT DINT REAL TIME DATE TIME-OF-DAY

Largeur (en bits) Exemple d'une constante de ce type


1 8 16 32 8 16 16 32 32 32 16 32 1 ou 0 B#16#A9 W#16#12AF DW#16#ADAC1EF5 CHAR

S5T#5s_200ms
123 65539 ou L#-1 REAL T#2D_1H_3M_45S_12MS D#200-07-21 TOD#12:23:45.12

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.5

Siemens Centre de Formation Savoir pour automatiser

Signification de types de donnes complexes


Permet de structurer les donnes: adapte l'nonc avec type de donnes "correct" Forme compacte de la transmission de donnes lors de l'appel d'un bloc: "beaucoup" de donnes peuvent tre transmises dans un paramtre permet la programmation structure les blocs "communiquent" uniquement par la structure des paramtres bloc rutilisable
SIMATIC S7
Siemens AG 2000. All rights reserved.

Moteur: STRUCT consigne_vitesse: vitesse_relle: libration: dfaut: REAL BOOL BOOL REAL

END_STRUCT

in entrainement out ...

UDT1 ...
in moteur UDT1 out ... ...

. . CALL "rgulateur" 5 moteur:= #entrainement . .

. . U #moteur.libration . .

Date: Fichier:

07.02.2013 PRO2_05f.6

Siemens Centre de Formation Savoir pour automatiser

Types de donnes complexes dans STEP 7

Mot-cl DATE_AND_TIME (date et heure) STRING (chane de caractres avec max. 254 caractres) ARRAY (tableau, groupe de composantes du mme type de donnes) STRUCT (structure, groupe de composantes de diffrent type de donnes)

Largeur (en bits) Exemple 64 8 * (nombre des caractres +2) dfini par l'utilisateur DT#00-07-22-12:14:55.0 'Ceci est n string' 'SIEMENS' Valeurs meures: ARRAY[1..20] INT Moteur: STRUCT Vitesse de rotation: INT Courant: REAL END_STRUCT UDT comme bloc comme lment de tableau STRUCT Vitesse de rotation: INT Entrainement: ARRAY[1..4] Courant: REAL UDT1 END_STRUCT

dfini par l'utilisateur

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

dfini par l'utilisateur

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.7

Siemens Centre de Formation Savoir pour automatiser

Types de paramtres dans STEP 7

Mot-cl TIMER

Largeur (en bits) 16

Exemple Temps_contact: TIMER . SI #temps_contact Nbre_pieces_finies: COUNTER . LC Nbre_pieces_finies Retour: BLOCK_FB . UC #Retour Mesure: POINTER . L P##Mesure Valeurs_mesurees: ANY . L P## Valeurs_mesurees

COUNTER

16

BLOCK_FB BLOCK_FC BLOCK_DB BLOCK_SDB


POINTER

16

48

ANY

80

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.8

Siemens Centre de Formation Savoir pour automatiser

Zones de variables

Mmentos MIS MIE DBz DBy DBx

Priphrie

Zones d'automate "classiques"

Pile des donnes locales

Blocs de donnes

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.9

Siemens Centre de Formation Savoir pour automatiser

Fonctionnement de la pile des donnes locales


OB1 . . CALL FB1 . .
5 1

FB1 . . CALL FC5 . . FC10


5 2

FC5

. . CALL FC10 . .

Occupation de la pile L pour OB1

LD pour OB1

LD pour OB1 LD pour FB1

LD pour OB1

LD pour OB1 LD pour FB1

LD pour OB1

LD pour OB1

LD pour OB1

LDpour FB1 LD pour FB1


LD pour FC5

LD pour FC10 libre libre libre libre libre libre libre

p.ex. 256 octets


Dbut de cycle LD = donnes locales 1

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.10

Siemens Centre de Formation Savoir pour automatiser

Exemple: utilisation des donnes locales par l'diteur CONT/LOG


Ramification en CONT Reprsentation en LIST

Ramifications

Variables auxiliaires de la pile des donnes locales

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.11

Siemens Centre de Formation Savoir pour automatiser

Blocs de donnes (DB)


Accs de tous les blocs OB1 Fonction FC10

Donnes globales DB20

Fonction FC20

DB d'instance pour FB1 Bloc de fonction FB1 Donnes d'instance DB5

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.12

Siemens Centre de Formation Savoir pour automatiser

Le type de donnes: ARRAY


ARRAY (tableau): Groupe de composantes du mme type de donnes

Point_mesure: ARRAY[1..10] Point_mesure[1]: Real Point_mesure[2]: Real Point_mesure[3]: Real . .

Dclaration:

Point_mesure[10]:Real unidimensionnel: Nom de tableau: ARRAY[min_index..max_index] OF type de donnes; multidimensionnel: Nom de tableau: ARRAY[min_index1..max_index1,min_index2..max_index2] OF type de donnes;

Exemples: Dclaration d'une variable:


unidimensionnel: multidimensionnel:

valeur_mesuree: resultat:

ARRAY[1..10] OF REAL; ARRAY[1..5,2..8] OF INT;

Accs une variable:


L #valeur_mesuree[5]
T #resultat[2,5]

// Charger le 5ime lment de l'ARRAY valeur_mesuree dans l'ACCU1

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.13

Siemens Centre de Formation Savoir pour automatiser

Dclaration et initialisation de tableaux (ARRAY)


DB5 "Vue de dclaration"

DB5 "Vue de donnes"

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.14

Siemens Centre de Formation Savoir pour automatiser

Sauvegarde de variables ARRAY dans la mmoire


Tableaux unidimensionnels

Tableaux multidimensionnels

Type de donnes BOOL


7 6 5 4 3 2 1

Exemple. ARRAY[1..2,1..3,1..2] OF BYTE


Octet n1) Octet n+1 Octet 1.1.1 Octet 1.1.2 Octet 1.2.1 Octet 1.2.2 Octet 1.3.1 Octet 1.3.2 Octet 2.1.1 Octet 2.1.2 Octet 2.2.1 Octet 2.2.2

Octet n1)

8 7 6 5 4 3 2 1

Octet n+1 non affect 12 11 10 9

Type de donnes BYTE, CHAR


Octet m Octet m+1 Octet m+2 Octet 1 Octet 2 Octet 3

Octet n+2

. .

. . .

Type de donnes WORD, DWORD,...


Octet n1) Octet n+1 Mot 1 Byte 3 Mot 2

Octet 2.3.1 Octet 2.3.2

Octet n+2
Octet n+2
1) n

= paire

. . .
Date: Fichier: 07.02.2013 PRO2_05f.15
Siemens Centre de Formation Savoir pour automatiser

SIMATIC S7
Siemens AG 2000. All rights reserved.

Le type de donnes: STRUCT


STRUCT (Structure): Groupe de composantes de diffrents types de donnes

MoteuCommande: STRUCT Consigne_Vitesse: REAL Vitesse_Reelle: REAL Liberation: Defaut: END_STRUCT BOOL BOOL

Dclaration:
NomStructure: STRUCT NomComp1: type de donnes; NomComp2: type de donnes; ... END_STRUCT

Exemple: Dclaration d'une variable:


MoteurCommande: Vitesse_Reelle Consigne_Vitesse Liberation ... Defaut END_STRUCT; SIMATIC S7
Siemens AG 2000. All rights reserved.

Accs la variable
S #MoteurCommande.Liberation L #MoteurCommande.Vitesse_Relle T #MoteurCommande.Consigne_Vitesse

STRUCT : REAL; : REAL; : BOOL; : BOOL;


Date: Fichier:

07.02.2013 PRO2_05f.16

Siemens Centre de Formation Savoir pour automatiser

Dclaration de STRUCTs
Exemple: Dclaration de tableau - structure - tableau
DB6 "Vue de dclaration"

DB6 "Vue de donnes"

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.17

Siemens Centre de Formation Savoir pour automatiser

Sauvegarde de variables STRUCT dans la mmoire


Structure avec types de donnes lmentaires
7 6 5 4 3 2 1 0

Structure avec types de donnes complexes


Limite du mot Composantes avec type de donnes lmentaire Limite du mot Composantes avec type de donnes ARRAY Limite du mot Composantes avec type de donnes STRUCT

Octet n1) Octet n+1 Octet n+2 Octet n+3 Octet n+4 Octet n+5 Octet n+6 Octet n+7 Octet n+8 Octet n+9

6 5 4 3 2 1
Octet perdu Octet 1 Octet 2 Octet 3 Octet perdu

6 5 4 3 2 1
Octet perdu Mot 1

. .

Mot 2

. .
1) n

. .

= paire
Siemens Centre de Formation Savoir pour automatiser

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.18

Types de donnes utilisateur: UDT


Types de donnes utilisateur UDT:

Cration d'un modle pour utilisation ultrieure lors de dclarations valable pour tous les blocs du programme

Exemple:

Dfinition d'un nouveau type de donnes (structure): UDT1 STRUCT Consigne_Vitesse : REAL; ... Vitesse_Relle : REAL; UDT1: STRUCT Libration : BOOL; Consigne_Vitesse: Dfaut : BOOL; END_STRUCT; Vitesse_Reelle: Dclaration de variables: Liberation: BOOL Moteur_1: UDT1; Defaut: BOOL Moteur_2: UDT1; END_STRUCT Accs aux variables: L #Moteur_1.Vitesse_Relle

REAL REAL

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.19

Siemens Centre de Formation Savoir pour automatiser

Utilisation de UDTs
UDT5

FC23

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.20

Siemens Centre de Formation Savoir pour automatiser

Le type de donnes: DATE_AND_TIME


Constitution:
Octet n1) Octet n+2

Anne (90 ... 89) Jour (01 ... 31) Minute (00 ... 59) Millisecondes (000 ... 999)

Mois (01 ... 12)

Octet n+1

Heure (00 ... 23)


Secondes (00 ... 59)

Octet n+3

Octet n+4

Octet n+5

Octet n+4

Jour de semaine Pctet n+7 (1..7)

1=Dimanche 2=Lundi 3=Mardi 4=Mercredi 5=Jeudi 6=Vendredi 7=Samedi

Toutes les valeurs sont sauvegardes dans le format BCD

Prrglage des variables: DT#Anne-Mois-Jour-Heures:Minutes:Secondes.[Millisecondes] Exemple: DT#2000-07-14-23:00:00:00

1) n

Traitement par des fonctions de la bibliothque IEC

= paire
Date: Fichier: 07.02.2013 PRO2_05f.21
Siemens Centre de Formation Savoir pour automatiser

SIMATIC S7
Siemens AG 2000. All rights reserved.

Fonctions pour le traitement de variables DT


Bibliothque IEC dans Standard Library

FC1 (AD_DT_TM): La fonction FC 1 additionne une dure (format TIME) et une date/heure (format DT) et fournit comme rsultat une nouvelle date/heure (format DT). FC34 (SB_DT_DT): La fonction FC 34 soustrait deux date/heure (l'une de l'autre) (format DT) et fournit comme rsultat une dure (format TIME). FC35 (SB_DT_TM): La fonction FC 35 soustrait une dure (format TIME) d'une date/heure (format DT) et fournit comme rsultat une nouvelle date/heure (format DT).

FC3 (D_TOD_DT): La fonction FC 3 regroupe les formats de donnes DATE et TIME_OF_DAY (TOD) et les convertit dans le format de donnes DATE_AND_TIME (DT).
FC6 (DT_DATE): La fonction FC 6 extrait le format de donnes DATE du format DATE_AND_TIME. FC7 (DT_DAY): La fonction FC 7 extrait le jour de la semaine du format DATE_AND_TIME. FC8 (DT_TOD): La fonction FC 8 extrait le format de donnes TIME_OF_DAY du format DATE_AND_TIME. Fonctions de comparaison pour DT#variables: FC9 (EQ_DT), FC12 (GE_DT), FC14 (GT_DT), FC18 (LE_DT), FC23 (LT_DT), FC28 (NE_DT)
Date: Fichier: 07.02.2013 PRO2_05f.22
Siemens Centre de Formation Savoir pour automatiser

SIMATIC S7
Siemens AG 2000. All rights reserved.

Le type de donnes: STRING


Variables du type STRING (chane de caractres):
Type de donnes STRING reprsente une chane de caractres comprenant jusqu' 254 caractres Application: prparation de textes de messages Dclaration: NomString: STRING[Nbremax]: 'texte d'initialisation' (variable string jusqu' Nbremax caractres, Nbremax: 0... 254) NomString : STRING: 'texte d'initialisation' (variable string jusqu' 254 caractres)

Exemple:

Dclaration de variables: Message_defaut : STRING

'Dfaut du moteur_4'

Avertissement : STRING[50] ' '

Traitement: Accs lmentaires: L #message_defaut[5] (charge le 5ime caractre de message_defaut) Traitement au moyen de FCs de la bibliothque IEC
Date: Fichier: 07.02.2013 PRO2_05f.23
Siemens Centre de Formation Savoir pour automatiser

SIMATIC S7
Siemens AG 2000. All rights reserved.

Sauvegarde de variables STRING dans la mmoire


Exemple:

Dclaration avec initialisation Prnom: STRING[8]: 'TOTO' Sauvegarde de la variable STRING "prnom"
Octet n1) Octet n+1 Octet n+2 Octet n+3 Octet n+4 Octet n+5 Octet n+6 Octet n+7 Octet n+8 Octet n+9 Longueur max = 8 Longueur actuelle = 4 1. caractre = 'T' 2. caractre = 'O' 3. caractre = 'T' 4. caractre = 'O' B#16#00 B#16#00 B#16#00 B#16#00

Indique le nombre max. de caractres pouvant tre sauvegards Indique le nombre de caractres effectifs

L'information sur le nombre max. de caractres pouvant tre sauvegards, ou sur la longueur actuelle est traite par la fonction de bibliothque IEC.

. . .
1) n

= paire
Siemens Centre de Formation Savoir pour automatiser

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.24

Fonctions pour le traitement de variables STRING


Bibliothque IEC dans Standard Library

FC2 (CONCAT): La fonction FC2 runit deux variables STRING en une chane de caractres. FC4 (DELETE): La fonction FC4 efface dans une chane de caractres L caractres partir du P-ime caractre. FC11 (FINF): La fonction FC11 recherche la position de la deuxime chane de caractres incluse dans la premire. FC17 (INSERT): La fonction FC17 insre la chane de caractres au paramtre IN2 dans la chane de caractres au paramtre IN1 derrire le P-ime caractre. FC20 (LEFT): La fonction FC20 fournit les premiers L caractres d'une chane de caractres. FC21 (LEN): La fonction FC21 met la longueur actuelle d'une chane de caractres (nombre de caractres valables). FC26 (MID): La fonction FC26 fournit la partie centrale d'une chane de caractres. FC31 (REPLACE): La fonction FC31 remplace L caractres de la premire chane de caractres (IN1) partir du P-ime caractre (inclus) par la deuxime chane de caractres (IN2). FC32 (RIGHT): La fonction FC32 fournit les derniers L caractres d'une chane de caractres. Fonctions de comparaison pour variables STRING: FC10 (EQ_STRING), FC13 (GE_STRING), FC15 (GT_STRING), FC19 (LE_STRING), FC24 (LT_STRING), FC29 (NE_STRING)

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.25

Siemens Centre de Formation Savoir pour automatiser

Exercice 5.1: Utilisation de types de donnes complexes


UDT99 "Moteur"

DB51 "Rouleaux_Moteurs"

...

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.26

Siemens Centre de Formation Savoir pour automatiser

Exercice 5.2: Accs des types de donnes complexes

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.27

Siemens Centre de Formation Savoir pour automatiser

Exercice optionnel 5.3: Lecture de l'heure avec SFC1 (READ_CLK)

SFC1 EN ENO RET_VAL CDT

??.?
??.?

SIMATIC S7
Siemens AG 2000. All rights reserved.

Date: Fichier:

07.02.2013 PRO2_05f.28

Siemens Centre de Formation Savoir pour automatiser

Vous aimerez peut-être aussi