Vous êtes sur la page 1sur 13

Exposer

Traitement sur les entres et les sorties analogiques sous step 7

Traitement sur les entres et les sorties


analogiques sous step 7

Page 1 sur 13

Exposer

Traitement sur les entres et les sorties analogiques sous step 7

Sommaire
PAGE :
1.

Avant-propos.......................................................................................................

2.

Signaux Analogiques..........................................................................................

3.

Types de donnes dans STEP7..........................................................................

4.

Oprations de calcul...........................................................................................

4.1.
4.2.
4.3.

Calcul avec des nombres entiers (INT et DINT)....................................................


Calcul avec des nombres rels (REAL).................................................................
Oprations de conversion de types.......................................................................

8
9
10

5.

Lire/Extraire des valeurs analogiques...............................................................

11

5.1.
5.2.

Lire et normaliser des valeurs analogiques...........................................................


Normaliser et extraire des valeurs analogiques....................................................

12
13

Page 2 sur 13

Exposer

1.

Traitement sur les entres et les sorties analogiques sous step 7

AVANT-PROPOS
Le contenu du module B2 est assign lunit Fonctions avances de la programmation STEP 7.

Connaissances de base de la programmation STEP 7


2 - 3 jours
Module A

Fonctions avances de la programmation STEP


7
Simulation
de dispositif avec SIMIT SCE
2- 3 jours Module B
1-2 jours Module G

Langage de programmation
Systme de bus srie industriels
Visualisation des processus
2- 3 jours Module C
2- 3 jours Module D
2- 3 jours Module F

Communication IT
avec SIMATIC S7
1- 2 jours Module E

Objectif :
Le lecteur va apprendre dans les tapes suivantes extraire, traiter et produire des valeurs
analogiques dans SIMATIC S7.

Signaux analogiques

Types de donnes en STEP 7

Oprations mathmatiques

Conversion de types de donnes en STEP 7

Lire et normaliser des valeurs analogiques

Normaliser et produire des valeurs analogiques

Pr-requis :
Les connaissances suivantes sont requises pour ltude de ce module :

Connaissances pratiques de Windows 95/98/2000/ME/NT4.0/XP

Fondements de la programmation dautomates programmables avec STEP 7 (par ex. Module


A3 - Startup
Programmation dautomates avec STEP 7)

Page 3 sur 13

Exposer

Traitement sur les entres et les sorties analogiques sous step 7

Logiciels et matriels ncessaires


1

PC, systmes dexploitation Windows 95/98/2000/ME/NT4.0/XP avec comme configuration


Minimale : 133MHz et 64Mo RAM, espace disque env. 65 MB
Optimale : 500MHz et 128Mo RAM, espace disque env. 65 MB
2
Logiciel STEP 7 V 5.x
3
Interface MPI pour le PC (par ex. PC-Adapter)
4
Automate SIMATIC S7-300 avec au moins un module dentres/sorties analogiques auquel est
connect via une entre valeur analogique un potentiomtre ou un signaleur de signal analogique.
En outre, il doit tre connect un afficheur de valeur analogique au moins une sortie analogique.
Exemple de configuration :
- Alimentation : PS 307 2A
- CPU : CPU 314
- Entres numriques : DI 16x DC24V
- Sorties numriques : DO 16x DC24V / 0,5 A
- Entres/sorties analogiques : AI 4/ AO 2 x 8bits
-

2 STEP7

1 PC

4 SIMATIC S7-300

Page 4 sur 13

Exposer

2.

Traitement sur les entres et les sorties analogiques sous step 7

SIGNAUX ANALOGIQUES

Contrairement un signal binaire, qui peut seulement prendre les deux tats de signal Tension
disponible +24V et Tension indisponible 0V, les signaux analogiques peuvent prendre de
nombreuses valeurs lintrieur dun domaine donn. Lexemple typique de capteur analogique est
le potentiomtre. Selon la position du curseur sur le potentiomtre, on peut lui faire prendre une
rsistance quelconque en-dessous de sa rsistance maximale.
Exemples de grandeurs analogiques en technique des rgulations :

Temprature -50 ... +150C


Dbit 0 ... 200l/min
Nombre de tours 500 ... 1500 U/min
etc.
Ces caractristiques physiques sont converties en tensions lectriques, courants ou rsistances
laide dun convertisseur de mesure. Si lon doit dterminer par exemple un nombre de tours, on peut
convertir un domaine de nombre de tours de 500 1500 tours/min dans un domaine de tension de 0
+10V par un convertisseur de mesure. Si lon mesure un nombre de tours de 865 tours/min, le
convertisseur de mesure nous donne ainsi une tension de + 3,65 V.
500

865

1500 Tr/min

365

10tr : 1000 tr/min = 0,01 V/U/min

1000 Tr/min

365 tr/min x 0,01 tr/U/min = 3,65

10V
0V

+10V

Ces tensions, courants ou rsistances lectriques sont ensuite connects un module analogique
qui numrise ce signal.
Indications : Certains modules analogiques peuvent traiter diffrentes catgories de signaux.
Celles-ci doivent tre paramtres dans la configuration matrielle. Veillez sil vous plat
respecter les instructions du manuel utilisateur associ lappareil.

Page 5 sur 13

Exposer

Traitement sur les entres et les sorties analogiques sous step 7

Si des donnes analogiques sont traites par un automate, la valeur de tension/courant/impdance


lue doit tre convertie en une information numrique. Cette conversion est connue sous le nom de
conversion analogique/numrique (CAN (A/D)). Ceci signifie quune valeur de tension valant par
exemple 3,65V doit tre traduite dans une srie de chiffres binaires comme information. Plus on
utilise de chiffres binaires pour la reprsentation numrique, meilleure est la rsolution. Si on avait
par exemple un seul bit disposition pour le domaine de tension 0 ... +10V, on pourrait seulement
dire que la tension mesure se trouve dans le domaine 0 .. +5V ou dans +5V ... +10V. Avec 2 bits, on
pourrait dj diviser le domaine en 4 sous domaines individuels, soit 0 ... 2,5 / 2,5 ... 5 / 5 ... 7,5 /
7,5 ... 10V. Les convertisseurs A/N (A/D) usuels convertissent avec 8 ou 11 bits en technique des
rgulations.
Les convertisseurs 8 bits ont 256 domaines lmentaires et les 11 bits une rsolution de 2048
domaines lmentaires.
0A/0V

20mA/10V
10V: 2048 = 0,0048828
11 bits

peut dtecter des diffrences


On
de tension infrieures <5mV
2048

Page 6 sur 13

Exposer

3.

Traitement sur les entres et les sorties analogiques sous step 7

TYPES DE DONNEES DANS STEP7


Dans SIMATIC S7, il y a un certain nombre de types de donnes avec lesquels on peut reprsenter
plusieurs formats de nombres. Dans la suite, on va dtailler de manire exhaustive les types de
donnes lmentaires.

Type et
description

Exemple

option

Domaine et reprsentation des


nombres depuis la plus petite
jusqu la plus haute valeur

Texte Bool

TRUE/FALSE

TRUE

BYTE (octet)

Hexadcimal

B#16#0 B#16#FF

B#16#10

WORD (mot)

16

Dual

2#0 2#1111_1111_1111_1111

2#0001_0000_0000_0000

Hexadcimal

W#16#0 W#16#FFFF

W#16#1000

BCD

C#0 C#999

C#998

Dcimal (o.V.)

B#(0,0) B#(255,255)

B#(10,20)

Dual

2#0
2#1000_0001_0001_1000_10
2#1111_1111_1111_1111_1111_1111_11 11_1011_0111_1111
11_1111

Hexadcimal

DW#16#0000_0000
DW#16#FFFF_FFFF

DW#16#00A2_1234

BOOL (bit)

DWORD (double
mot)

Taille

Format-

en bits

32

Dcimal (o.V.)

B#(0,0,0,0) B#(255,255,255,255)

B#(1,14,100,120)

INT (entier)

16

Dcimal

-32768 32767

DINT (entier,32
bits)

32

Dcimal

L#-2147483648 L#2147483647

L#1

REAL (rel)

32

IEEE rel

Limite suprieure : +/-3.402823e+38


Limite infrieure : +/-1.175495e-38

1.234567e+13

S5TIME
(temps Simatic)

16

Temps S7 par pas


de 10 ms

S5T#0H_0M_0S_10MS
S5T#2H_46M_30S_0MS et
S5T#0H_0M_0S_0MS

S5T#0H_1M_0S_0MS
S5TIME#1H_1M_0S_0MS

TIME
(temps IEC)

32

Temps IEC par pas -T#24D_20H_31M_23S_648MS


de 1ms, Entiers
T#24D_20H_31M_23S_647MS
signs

T#0D_1H_1M_0S_0MS
TIME#0D_1H_1M_0S_0MS

DATE
(Date IEC)

16

Date IEC par pas


dun jour

D#1990-1-1 D#2168-12-31

DATE#1994-3-15

TIME_OF_DAY
(heure)

32

Heure par pas de


1ms

TOD#0:0:0.0 TOD#23:59:59.999

TIME_OF_DAY#1:10:3.3

CHAR
(caractres)

Caractres ASCII

A, B etc.

Indication :
En traitement des signaux analogiques, les types de donnes INT et REAL jouent un rle
important car les valeurs analogiques extraites sont disponibles au format INT, or, pour le traitement, il nest
question que de considrer les rels REAL pour viter des erreurs darrondis.

Page 7 sur 13

Exposer

Traitement sur les entres et les sorties analogiques sous step 7

4.

OPERATIONS DE CALCUL

4.1

CALCUL AVEC DES NOMBRES ENTIERS (INT ET DINT)


Les oprations mathmatiques de base sont possibles avec des nombres entiers : addition,
soustraction, multiplication et division. Les chiffres aprs la virgule sont toutefois ignors ce qui mne
des erreurs darrondis lors de la division.
Opration

4.2

Taille en bit

Fonction

+I

16

Additionne le contenu du mot de poids faible de lACCU 1 et 2 et enregistre le


rsultat dans le mot de poids faible de lACCU 1.

-I

16

*I

16

Soustrait le contenu du mot de poids faible de lACCU 1 au contenu du mot de


poids faible de lACCU 2 et enregistre le rsultat dans le mot de poids faible de
lACCU 1.
Multiplie le contenu des mots de poids faible des ACCU 1 et 2 et enregistre le
rsultat (32 bits) dans lACCU 1.

/I

16

Divise le contenu du mot de poids faible dACCU 2 par le contenu du mot de poids
faible de lACCU 1. Le rsultat est enregistr dans le mot de poids faible dACCU 1.
Le reste de la division est enregistr dans le mot de poids fort dACCU 1.

+D

32

Additionne le contenu de lACCU 1 et 2 et enregistre le rsultat dans lACCU 1.

-D

32

*D

32

Soustrait le contenu de lACCU 1 au contenu de lACCU 2 et enregistre le rsultat


dans lACCU 1.
Multiplie le contenu des ACCU 1 et 2 et enregistre le rsultat dans lACCU 1.

/D

32

MOD

32

Divise le contenu dACCU 2 par le contenu de lACCU 1 et enregistre le quotient


dans ACCU 1.
Divise le contenu dACCU 2 par le contenu de lACCU 1 et enregistre le reste de la
division dans ACCU 1.

CALCUL AVEC DES NOMBRES REELS (REAL)


On peut calculer un grand nombre doprations mathmatiques avec les rels. Dans ce format, les
chiffres aprs la virgule sont toujours pris en compte.
Opration
+R
-R
*R
/R
ABS
SQRT
SQR
LN
EXP

Fonction
Additionne les rels (32 Bit, IEEE-FP) des ACCU 1 et 2 et enregistre le rsultat sur 32 bits dans
ACCU 1.
Soustrait le rel (32 bits, IEEE-FP) dACCU 1 au rel (32 bits, IEEE-FP) dans ACCU 2 et enregistre
le rsultat sur 32 bits dans lACCU 1.
Multiplie le rel (32 bits, IEEE-FP) dACCU 1 par le rel (32 bits, IEEE-FP) dans ACCU 2 et
enregistre le rsultat sur 32 bits dans l ACCU 1.
Divise le rel (32 Bit, IEEE-FP) dACCU 2 par le rel (32 bits, IEEE-FP) dACCU 1. Le rsultat sur
32 bits est enregistr dans l ACCU 1.
Effectue lopration valeur absolue dun rel (32 bits, IEEE-FP) dACCU 1. Le rsultat est
enregistr dans ACCU 1. Lopration est effectue sans considrer ou influencer le bit de statut.
Calcule la racine carre du rel (32 bits, IEEE-FP) dACCU 1 et enregistre le rsultat sur 32 bits
dans lACCU 1.
Calcule le carr du rel (32 bits, IEEE-FP) dACCU 1 et enregistre le rsultat sur 32 bits dans
lACCU 1.
Calcule le logarithme nprien du rel (32 bits, IEEE-FP) dACCU 1 et enregistre le rsultat sur 32
bits dans lACCU 1.
Calcule la valeur exponentielle (ExponenT I A l) du rel (32 bits, IEEE-FP) de base e et enregistre
le rsultat sur 32 bits dans lACCU 1.

Page 8 sur 13

Exposer
SIN
COS
TAN
ASIN
ACOS
ATAN

Traitement sur les entres et les sorties analogiques sous step 7


Calcule le sinus du rel (32 bits, IEEE-FP) dACCU 1 et enregistre le rsultat sur 32 bits dans
lACCU 1..
Calcule le cosinus du rel (32 bits, IEEE-FP) dACCU 1 et enregistre le rsultat sur 32 bits dans
lACCU 1.
Calcule la tangente du rel (32 bits, IEEE-FP) dACCU 1 et enregistre le rsultat sur 32 bits dans
lACCU 1.
Calcule larcsinus du rel (32 bits, IEEE-FP) dACCU 1 et enregistre le rsultat sur 32 bits dans
lACCU 1.
Calcule larccosinus du rel (32 bits, IEEE-FP) dans ACCU 1 et enregistre le rsultat sur 32 bits
dans lACCU 1.
Calcule larctangente du rel (32 bits, IEEE-FP) dans ACCU 1 et enregistre le rsultat sur 32 bits
dans lACCU 1.

Page 9 sur 13

Exposer
4.3

Traitement sur les entres et les sorties analogiques sous step 7

OPERATIONS DE CONVERSION DE TYPES DE DONNEES


Comme les nombres ne sont pas souvent dans le format ncessaire au traitement, ceux-ci doivent
tre frquemment adapts laide doprations de conversion.
Opration
BTI
BTD
ITB
ITD
DTB
DTR
RND

RND+
RNDTRUNC

Fonction
Convertit un BCD en entier (16 bits). Cette opration convertit une valeur dcimale code en binaire
dans ACCU 1 en un entier (16 bits).
Convertit un BCD en entier (32 bits). Cette opration convertit une valeur dcimale code en binaire
dans ACCU 1 en un entier (32 bits).
Convertit un entier (16 bits) en un BCD. Cette opration convertit un entier (16 bits) stock dans le
mot de poids faible dACCU 1 en une valeur dcimale code en binaire.
Convertit un entier (16 bits) en un entier (32 bits). Cette opration convertit un entier (16 bits) stock
dans le mot de poids faible dACCU 1 en un entier (32 bits).
Convertit un entier (32 bits) en un BCD. Cette opration convertit un entier (32 bits) stock dans le
mot de poids faible dACCU 1 en une valeur dcimale code en binaire.
Convertit un entier (32 bits) en un rel (32 bits, IEEE-FP). Cette opration convertit un entier (32 bits)
dans ACCU 1 en un rel (32 bits, IEEE-FP).
Arrondit lentier le plus proche. Cette opration arrondit le nombre au plus proche entier.
Si le nombre se trouve pile entre un rsultat pair et un rsultat impair, lopration choisit le rsultat
pair.
Arrondit lentier suprieur. Cette opration arrondit le rel de telle sorte que lentier obtenu soit le
plus petit possible tout en tant suprieur ou gal au rel dorigine.
Arrondit lentier infrieur. Cette opration arrondit le rel de telle sorte que lentier obtenu soit le
plus grand possible tout en tant infrieur ou gal au rel dorigine.
Tronque. Cette opration utilise la partie entire du rel pour former lentier.

Indication :
Dans le cas du traitement de valeurs analogiques, la valeur analogique est sous format INT et
doit tre convertie en rel REAL pour viter les erreurs darrondis. Comme cela ne peut pas se faire
directement, dabord avec ITD pour convertir en DINT puis avec DTR pour convertir en REAL.

Page 10 sur 13

Exposer

5.

Traitement sur les entres et les sorties analogiques sous step 7

EXTRAIRE/PRODUIRE DES VALEURS ANALOGIQUES


Les valeurs analogiques sont lues et produites comme des mots dinformations dans lautomate.
Laccs ces mots seffectue par les instructions :
L
T

PEW x
PAW x

Charger mot dentre analogique


Transfrer mot dentre analogique

Chaque valeur analogique ( canal ) occupe un mot dentre et de sortie de priphrie. Le format
est INT , un nombre entier.
Ladressage des mots dentre/sortie sajuste suivant les adresses de dbut du module.
Si on connecte le module analogique lemplacement 4, il prend alors ladresse de dbut par dfaut
256. Ladresse de dbut de chaque module analogique supplmentaire slve de 16 par
emplacement.
Ces adresses de dbut par dfaut peuvent tre consultes dans la table de configuration matrielle
sous vue dtaille.
Ladresse de la premire entre analogique serait ainsi PEW 288 avec le module analogique
lemplacement 6, celle de la deuxime PEW 290, celle de la premire sortie analogique serait
ensuite PAW 288 etc...
La transformation de valeurs analogiques pour la poursuite du traitement dans lautomate (numris)
est identique que ce soit les entres ou sorties analogiques.
Pour les modules SM334, 4 entres analogiques et 2 sorties analogiques, avec les domaines de
valeurs analogiques 0 10V et 0 20mA, voil lallure du domaine de valeurs numrises :

0V 0A/0V

10mA/5V
5V

2
0
0
U
G
R

5
0
03
13824

Domaine nominal de la valeur analogique


20mA/10V1
0V
N
e
n
n
b
e
re
ic
hd
e
s
A
n
a
lo
g
e
in
g
a
n
g
s

5
0
0
27648
O
G
R

Valeur numrise pour traitement dans le SPS


A
n
w
e
n
d
u
n
g
s
b
e
re
ic
h

Les valeurs numrises doivent souvent encore tre normalises par des traitements
correspondants dans lautomate.
5.1.

LIRE ET NORMALISER DES VALEURS ANALOGIQUES


Sil y a une valeur dentre analogique comme valeur numrise, celle-ci doit tout dabord tre
normalise, avant de pouvoir tre traite dans lautomate programmable.
De mme, la production analogique seffectue habituellement sur le mot de sortie priphrique aprs
une normalisation de la valeur de sortie.
Dans les programmes STEP7, on aura recours aux oprations de calcul pour la normalisation.
Afin quelle puisse seffectuer le plus exactement possible, les valeurs doivent encore tre converties
en valeurs normalises dans le type REAL pour minimiser les erreurs darrondis.

Page 11 sur 13

Exposer

Traitement sur les entres et les sorties analogiques sous step 7

Dans lexemple suivant, on lit une valeur de 0 10V avec un module analogique SM334 sur
lemplacement 6 (PEW288). Au dbut, la valeur est un ENTIER (16 bits) et doit tre normalise entre
100 et 1000 en format rel et stocke dans le double mot mmento MD10.
L
PEW 288
ITD
DTR
L
2.7648e+4
/R
L
9.000e+2
*R
L
1.000e+2
+R
T
MD10

// Lire Valeur analogique 0-10V correspondant aux entiers 0-27648 (sur 16 bits)
// Convertir Valeur dentier (16 bits) en entier (32 bits)
// Convertir Valeur dentier (32 bits) en rels
//
// Division par entier 27648
//
// Multiplication par rel 900 (1000-100)
//
// Addition lentier 100 (dcalage (Offset) )
// Valeur norme 100 1000 en format rel

Page 12 sur 13

Exposer
5.2.

Traitement sur les entres et les sorties analogiques sous step 7

NORMALISER ET PRODUIRE DES VALEURS ANALOGIQUES


Si une valeur normalise doit tre produite par un module de sortie analogique, celle-ci doit tout
dabord tre convenablement normalise.
Dans les programmes STEP7, on aura recours aux oprations de calcul pour la normalisation.
Ceci seffectue encore avec le type de donnes REAL, pour minimiser les erreurs darrondis. Cest
seulement aprs que cette valeur est arrondie un nombre entier. Les chiffres aprs la virgule sont
ainsi perdus.
Dans lexemple suivant, on a une valeur entre 100 et 1000 stock sous format rel sur le mot double
mmento MD20 devant tre normalise et produite de 0 10V par un module analogique SM334
(PAW288).

L
MD20
L
1.000e+2
-R
L
9.000e+2
/R
L
2.7648e+4
*R
RND
T
PAW 288

// Valeur 100 1000 en format rel


//
// Soustraction de 100 (dcalage (Offset) )
//
// Division par le rel 900
//
// Multiplication par le rel 27648
// Arrondir lentier
// Extraire entier 0-27648 (16 bits) correspondant la valeur analogique 0-10 V

Page 13 sur 13