Automate programmable S7-200 Manuel système
Conversion et normalisation des variables d'entrée
Une boucle de régulation comporte deux variables d'entrée : la consigne et la mesure. En général, la
consigne est une valeur fixe telle que le réglage de la vitesse de croisière de votre voiture. La mesure est
une valeur liée à la grandeur réglante et qui mesure donc l'effet qu'a la grandeur réglante sur le système
réglé. Dans notre exemple de vitesse de croisière, la mesure serait une entrée de tachymètre qui mesure la
vitesse de rotation des pneus.
La consigne et la mesure sont des valeurs analogiques du monde réel dont la grandeur, la plage et les
unités peuvent être différentes. Il faut donc les convertir en représentations normalisées à virgule flottante
avant de pouvoir les utiliser dans l'opération PID.
La première étape consiste à convertir la valeur analogique entière de 16 bits en une valeur réelle. La suite
d'instructions ci-dessous vous montre comment faire.
ITD
DTR
L'étape suivante consiste à convertir la représentation en nombre réel de la valeur analogique en une valeur
6
normalisée comprise entre 0,0 et 1,0. L'équation suivante permet de normaliser la valeur de la consigne ou
de la mesure :
R
norm
avec :
La suite d'opérations ci-après vous montre comment normaliser la valeur bipolaire dans l'accumulateur 0
(dont l'étendue est 64000) après la séquence d'instructions donnée précédemment :
/R
+R
MOVR
150
AIW0, AC0
//Convertir une valeur d'entrée en double mot
AC0, AC0
//Convertir l'entier de 32 bits en réel.
=
((R
/ étendue) + décalage)
brute
R
représentation réelle normalisée de la valeur analogique
norm
R
représentation réelle brute (non normalisée) de la valeur analogique
brute
décalage égal à 0.0 pour les valeurs unipolaires
égal à 0.5 pour les valeurs bipolaires
étendue valeur maximale possible moins valeur minimale possible :
= 32 000 pour les valeurs unipolaires (typique)
= 64 000 pour les valeurs bipolaires (typique)
64000.0, AC0
//Normaliser la valeur dans l'accumulateur
0.5, AC0
//Décaler la valeur dans la plage entre 0,0 et 1,0
AC0, VD100
//Sauvegarder la valeur normalisée dans la table