Configuration de la mise à l'échelle pour les variables partagées
- Mise à jour2025-08-27
- Temps de lecture : 4 minute(s)
La mise à l'échelle est utile pour convertir une gamme de valeurs d'unités mesurées en une gamme calculée. Vous pouvez configurer la mise à l'échelle pour chaque type de données de variables partagées. Vous pouvez configurer la mise à l'échelle sur la page Mise à l'échelle de la boîte de dialogue Propriétés de la variable partagée.
(Module DSC) Vous pouvez également utiliser les propriétés de mise à l'échelle SharedVariableIO pour configurer la mise à l'échelle.
Mise à l'échelle de variables partagées numériques
Vous pouvez utiliser la mise à l'échelle linéaire ou racine carrée pour les variables partagées numériques.
Il faut souvent manipuler les données brutes utilisées par le serveur de périphériques pour convertir les données en unités ingénieur, plus pratiques pour les utilisateurs d'une application. Vous pouvez définir la gamme brute et la gamme ingénieur d'une variable partagée sur la page Mise à l'échelle de la boîte de dialogue Propriétés de la variable partagée pour effectuer des conversions simples entre les deux gammes. La gamme brute fait référence aux valeurs utilisées par le serveur de périphériques. La gamme ingénieur fait référence aux valeurs utilisées par le moteur de variables partagées et l'application HMI.
Mise à l'échelle linéaire et racine carrée
La mise à l'échelle linéaire est définie par l'équation suivante :
m * brute + b
b étant l'échelle zéro ingénieur, et m étant la pleine échelle ingénieur – échelle zéro ingénieur/pleine échelle brute – échelle zéro brute.
La mise à l'échelle racine carrée est définie par l'équation suivante :
b + m * racine carrée de brute – o
b étant l'échelle zéro ingénieur, m étant la pleine échelle ingénieur – échelle zéro ingénieur/racine carrée de pleine échelle brute – échelle zéro brute, et o étant l'échelle zéro brute.
Le tableau suivant montre des valeurs de variable partagée allant de 0 à 100 mises à l'échelle en unités au format ingénieur allant de 0 à 10.
| Unités brutes | Échelle linéaire | Échelle racine carrée |
|---|---|---|
| 0 | 0 | 0 |
| 4 | 0,4 | 2 |
| 9 | 0,9 | 3 |
| 10 | 1 | 3,16 |
| 16 | 1,6 | 4 |
| 20 | 2 | 4,47 |
| 25 | 2.5 | 5 |
| 30 | 3 | 5,48 |
| 36 | 3,6 | 6 |
| 40 | 4 | 6,32 |
| 49 | 4,9 | 7 |
| 50 | 5 | 7,07 |
| 60 | 6 | 7,75 |
| 64 | 6,4 | 8 |
| 70 | 7 | 8,37 |
| 80 | 8 | 8,94 |
| 81 | 8,1 | 9 |
| 90 | 9 | 9,49 |
| 100 | 10 | 10 |
Le tableau suivant montre des valeurs de variable partagée allant de 0 à 100 mises à l'échelle en unités au format ingénieur allant de 15 à 30. La mise à l'échelle avec offset donne des résultats plus compliqués.
| Unités brutes | Échelle linéaire | Échelle racine carrée |
|---|---|---|
| 0 | 15 | 15 |
| 4 | 15,60 | 18 |
| 10 | 16,50 | 19,74 |
| 16 | 17,40 | 21 |
| 20 | 18 | 21,71 |
| 30 | 19,50 | 23,22 |
| 36 | 20,40 | 24 |
| 40 | 21 | 24,49 |
| 50 | 22,50 | 25,61 |
| 60 | 24 | 26,62 |
| 64 | 24,60 | 27 |
| 70 | 25,50 | 27,55 |
| 80 | 27 | 28,42 |
| 90 | 28,5 | 29,23 |
| 100 | 30 | 30 |
Exemple de mise à l'échelle
Dans cet exemple, un serveur de périphériques renvoie une tension comprise entre 0 et 5 V. La tension provient d'un capteur de position, et la position physique est mesurée en centimètres, 0 V correspondant à 50 cm et 5 V correspondant à 100 cm. Le tableau suivant montre les valeurs des variables partagées après la mise à l'échelle.
| Unités brutes (V) | Échelle linéaire (cm) |
|---|---|
| 0 | 50 |
| 1 | 60 |
| 2 | 70 |
| 3 | 80 |
| 4 | 90 |
| 5 | 100 |
Exemple de mise à l'échelle racine carrée
Dans cet exemple, une jauge de débit mesure le débit d'un liquide en utilisant une lecture de pression différentielle. Le serveur de périphériques fournit des mesures variant de 4 à 20 mA. Le débit réel est mesuré en gallons par minute (GPM), 4 mA correspondant à 0 GPM et 20 mA correspond à 100 GPM. Le tableau suivant montre les valeurs des variables partagées après la mise à l'échelle.
| Unités brutes (mA) | Échelle racine carrée (GPM) |
|---|---|
| 4 | 0 |
| 5 | 25 |
| 6 | 35,36 |
| 7 | 43,3 |
| 8 | 50 |
| 10 | 61,24 |
| 13 | 75 |
| 15 | 82,92 |
| 20 | 100 |
(Module DSC) Utilisez la propriété Scaling.UnitsSharedVariableIO pour assigner des unités à une variable partagée. Dans l'exemple précédent, vous pouviez spécifier des gallons par minute comme constante pour la propriété Scaling.Units.
Mise à l'échelle de variables partagées booléennes
Vous pouvez utiliser la mise à l'échelle inversée pour les variables partagées booléennes. Lorsque vous activez la mise à l'échelle inversée, LabVIEW inverse la valeur booléenne lorsqu'il communique avec le serveur.
Mise à l'échelle des variables partagées à champ U32 bits
Vous pouvez utiliser une mise à l'échelle à masque d'inversion ou masque de sélection pour les variables partagées à champ U32 bits.
La mise à l'échelle à masque ne s'applique qu'aux champ U32 bits. LabVIEW stocke un champ de bits sous forme de nombre et retraduit le nombre en champ 32 bits si besoin est. Le champ de bits contient une série de 32 valeurs, chacune étant limitée à 1 ou 0. Avec une mise à l'échelle à masque, vous pouvez décider à quels membres du tableau vous devez faire attention. Tout bit éliminé par le masque apparaît comme 0. Les bits qui ne sont pas éliminés affichent leur valeur réelle, 0 ou 1. Un masque de
00000000000000001111111111111111 0x0000FFFF
0 indiquant une position à ignorer, et 1 une place à rapporter, lit le tableau de bits
10110011100011001100111000110010
comme suit :
00000000000000001100111000110010
Le tableau suivant montre des exemples de variables partagées configurées pour la mise à l'échelle de champ U32 bits.
| Nom de la variable partagée | Valeur brute | Masque d'inversion de mise à l'échelle | Masque de sélection de mise à l'échelle | Valeur mise à l'échelle |
|---|---|---|---|---|
| Variable partagée 1 | 0x0000000F | 0x00000000 | 0x000000FF | 0x0000000F |
| Variable partagée 2 | 0x0000000F | 0x00000033 | 0x000000FF | 0x0000003C |
| Variable partagée 3 | 0x0000000F | 0x00000033 | 0x0000000F | 0x0000000C |
| Variable partagée 4 | 0x0000000F | 0x00000000 | 0x00000033 | 0x00000003 |
| Variable partagée 5 | 0x0000000F | 0x00000033 | 0x00000033 | 0x00000030 |
| Variable partagée 6 | 0x00000FF0 | 0x0000000F | 0x000000FF | 0x000000FF |