![]() | Télécharger l'aide (Windows uniquement) |
LabVIEW représente les données numériques sous forme de nombres à virgule flottante, de nombres à virgule fixe, d'entiers, d'entiers non signés et de nombres complexes.
![]() |
Remarque La différence entre les différents types de données numériques est le nombre de bits qu'ils utilisent pour stocker les données et les valeurs des données qu'ils représentent. |
Certains types de données disposent aussi d'options de configurations avancées. Par exemple, vous pouvez associer des unités de mesure physiques aux données en virgule flottante (y compris les nombres complexes) et vous pouvez configurer l'encodage et la gamme des données en virgule fixe.
Vous pouvez associer des unités physiques de mesure, comme des mètres ou des kilomètres par seconde, à n'importe quelle commande ou indicateur numérique ayant une représentation à virgule flottante.
Les unités d'une commande apparaissent sur une étiquette liée indépendante, appelée étiquette d'unité. Affichez l'étiquette d'unité en effectuant un clic droit sur la commande et en sélectionnant Éléments visibles»Étiquette d'unité dans le menu local. Cliquez avec le bouton droit sur une étiquette d'unité et sélectionnez Construire la chaîne d'unité dans le menu local pour modifier l'étiquette d'unité.
Quand LabVIEW affiche l'étiquette d'unité, vous pouvez entrer une unité en utilisant des abréviations standard telles que m pour mètres, ft pour pieds, s pour secondes et ainsi de suite.
![]() |
Remarque Vous ne pouvez pas utiliser d'unités dans les boîtes de calcul. |
Quand vous associez des unités à un objet, vous ne pouvez câbler que des objets ayant des unités compatibles. LabVIEW utilise une vérification de type stricte afin de s'assurer que les unités sont compatibles. Si vous câblez deux objets avec des unités incompatibles, LabVIEW renvoie une erreur. Par exemple, LabVIEW renvoie une erreur si vous câblez un objet avec le kilomètre comme type d'unité sur un objet dont le type d'unité est le litre, car le kilomètre est une unité de distance et le litre, une unité de volume.
Le VI suivant présente le câblage d'objets avec des unités compatibles. Dans cette figure, LabVIEW met automatiquement à l'échelle l'indicateur de distance afin d'afficher des kilomètres plutôt que des mètres, car le kilomètre est l'unité de l'indicateur.
Une erreur se produit dans le VI suivant car les unités de distance sont exprimées en secondes. Pour corriger l'erreur, modifiez les secondes en une unité de distance, le kilomètre par exemple, comme illustré pour le VI précédent.
Certains VIs et fonctions sont ambigus en ce qui concerne les unités. Vous ne pouvez pas utiliser ces VIs et fonctions avec d'autres terminaux qui ont des unités. Par exemple, la fonction Incrémenter est ambiguë en ce qui concerne les unités. Si vous utilisez des unités de distance, la fonction d'incrémentation est incapable de dire s'il faut ajouter un mètre, un kilomètre ou un pied. C'est en raison de cette ambiguïté que vous ne pouvez pas utiliser la fonction d'incrémentation, ni d'autres fonctions qui incrémentent ou décrémentent des valeurs, avec des données ayant des unités associées.
Pour éviter toute ambiguïté dans cet exemple, utilisez une constante numérique ayant l'unité adéquate et la fonction Additionner pour créer votre propre fonction d'incrémentation d'unités, comme l'illustre le diagramme suivant.
Le type de données à virgule fixe est un type de données numérique qui représente un ensemble de nombres rationnels en utilisant des chiffres binaires, ou bits. Contrairement au type de données à virgule flottante, qui permet à la précision et à la gamme des données de varier, vous pouvez configurer des chiffres à virgule fixe pour qu'ils utilisent toujours un nombre spécifique de bits pour les parties entière et fractionnaire.
![]() |
Remarque Pour représenter un nombre rationnel avec le type de données à virgule fixe, le dénominateur du nombre rationnel doit être réductible par une puissance de 2, car le système des nombres binaires est un système numérique de base 2. |
Utilisez le type de données à virgule fixe si vous n'avez pas besoin de la gamme dynamique de représentation à virgule flottante ou si vous voulez utiliser une cible qui ne supporte pas l'arithmétique en virgule flottante.
![]() |
Remarque (Module FPGA) Reportez-vous à Utilisation du type de données à virgule fixe pour en savoir plus sur l'utilisation du type de données à virgule fixe sur une cible FPGA. Évaluez votre utilisation des types de données numériques afin de déterminer quel type de données correspond le mieux à votre conception. |
Un nombre à virgule fixe a un nombre fixe de bits pour la partie entière et la partie fractionnaire. Les bits de la partie entière apparaissent à gauche de la virgule binaire et ceux de la partie fractionnaire à droite de la virgule binaire. Comme vous pouvez spécifier le nombre précis de bits à utiliser, la virgule binaire, qui est l'équivalent binaire de la virgule décimale, a une position fixe.
Par exemple, vous pouvez configurer LabVIEW pour représenter le nombre rationnel 0,5 comme un nombre à virgule fixe avec un total de 8 bits et 4 bits pour la partie entière.
Nombre rationnel | Équivalent en virgule fixe |
---|---|
0.5 | 0000.1000 |
Vous pouvez aussi configurer LabVIEW pour représenter le même nombre rationnel comme un nombre à virgule fixe avec un total de 16 bits et 8 bits pour la partie entière.
Nombre rationnel | Équivalent en virgule fixe |
---|---|
0.5 | 00000000.10000000 |
Les nombres à virgule fixe diffèrent des nombres à virgule flottante car ces derniers permettent au nombre de bits des parties entière et fractionnaire de varier lorsque vous effectuez une opération sur le nombre à virgule flottante. Autrement dit, la virgule binaire peut se déplacer, ou flotter, dans un nombre à virgule flottante.
![]() |
Remarque Si vous ne spécifiez pas le nombre exact de bits à utiliser pour représenter l'équivalent en virgule fixe d'un nombre rationnel, LabVIEW ajuste dans la mesure du possible le nombre de bits pour éviter une perte de données. LabVIEW ne peut pas traiter les nombres de plus de 64 bits. |
Pour définir un nombre en représentation en virgule fixe, cliquez avec le bouton droit sur l'objet numérique et sélectionnez Représentation dans le menu local pour changer le type de données de l'objet. Vous pouvez configurer l'encodage des nombres à virgule fixe. Vous pouvez aussi spécifier s'il faut inclure un état de dépassement avec les nombres à virgule fixe et comment les fonctions de la palette Numérique traitent les conditions de dépassement et d'arrondi pour les nombres à virgule fixe. Pour configurer un nombre à virgule fixe, cliquez avec le bouton droit sur une constante, une commande, un indicateur ou une fonction numérique et sélectionnez Propriétés dans le menu local pour afficher la boîte de dialogue Propriétés du numérique, Propriétés de la constante numérique ou Propriétés du nœud numérique.
Spécifiez l'encodage binaire d'un nombre à virgule fixe si vous voulez que ce nombre soit conforme à une certaine taille de bits.
LabVIEW affiche cette configuration dans le format suivant dans la fenêtre d'Aide contextuelle si vous placez le curseur sur un fil de liaison qui transmet des données en virgule fixe :
<encodage,longueur de mot,longueur de mot de la partie entière>
Par exemple :
<s, 16, 8> est un nombre 16 bits signé avec huit bits pour la partie entière. La figure suivante représente un nombre signé ayant une longueur de mot de 16 et une longueur de mot de la partie entière de 8.
1 | Longueur de mot (16 bits) |
2 | Longueur de mot de la partie entière (8 bits) |
3 | Bit de signe |
4 | Virgule binaire |
Si la longueur de mot de la partie entière est supérieure à la longueur de mot, LabVIEW ne stocke pas les bits de la partie entière qui dépassent la longueur de mot. La figure suivante représente un nombre ayant une longueur de mot de 8 et une longueur de mot de la partie entière de 10.
1 | Longueur de mot (8 bits) |
2 | Longueur de mot de la partie entière (10 bits) |
3 | Bits de la partie entière non stockés |
4 | Virgule binaire |
Si la longueur de mot de la partie entière est négative, LabVIEW ne stocke ni les bits de la partie entière, ni le nombre de bits de la partie fractionnaire égal au nombre négatif, en commençant à la virgule binaire. La figure suivante représente un nombre ayant une longueur de mot de 8 et une longueur de mot de la partie entière de –2.
1 | Longueur de mot (8 bits) |
2 | Longueur de mot moins Longueur de mot de la partie entière (8 bits moins –2 bits) |
3 | Bits de la partie fractionnaire non stockés |
4 | Virgule binaire |
LabVIEW calcule la gamme et le delta pour un nombre à virgule fixe en fonction des valeurs que vous spécifiez pour l'encodage du nombre à virgule fixe.
LabVIEW exprime cette configuration dans le format suivant dans la fenêtre d'Aide contextuelle si vous placez le curseur sur un fil de liaison qui transmet des données en virgule fixe :
[Minimum,Maximum]:Delta
Par exemple :
[–4, 4]:1 a une valeur minimale de –4, une valeur maximale de 4 et un delta de 1.
Lorsque vous effectuez une opération arithmétique sur des nombres à virgule fixe pour lesquels vous avez spécifié une longueur de mot, la position de la virgule binaire ne change pas par rapport à la position que vous aviez spécifiée avant d'exécuter le VI. Ce comportement diffère de celui des nombres à virgule flottante, dont la virgule binaire ou décimale peut changer de position lors de l'exécution suite à une opération arithmétique. Si le résultat d'une opération arithmétique nécessite une longueur de mot supérieure à celle autorisée par la configuration à virgule fixe, vous risquez de perdre des données du résultat de l'opération.
Dans la mesure du possible, LabVIEW ajuste la longueur de mot des valeurs en sortie des fonctions numériques pour éviter la perte de données. Cependant, LabVIEW ne peut pas éviter la perte de données si la longueur de mot requise pour représenter la valeur en sortie dépasse le maximum que vous spécifiez ou le maximum de 64 bits de LabVIEW. Pour configurer les paramètres de sortie d'une fonction numérique, cliquez avec le bouton droit sur la fonction et sélectionnez Propriétés dans le menu local afin d'afficher la boîte de dialogue Propriétés du nœud numérique.
Des conditions de dépassement et d'arrondi peuvent survenir au cours d'une opération arithmétique sur des nombres à virgule fixe ou lorsque vous utilisez la fonction En virgule fixe pour convertir des données numériques en données en virgule fixe. Dans la mesure du possible, LabVIEW configure les sorties des fonctions numériques de sorte à éviter le dépassement et l'arrondi des données en virgule fixe. Cependant, LabVIEW ne peut pas éviter le dépassement ou l'arrondi dans certaines conditions.
Par exemple, si vous câblez des valeurs à virgule fixe aux fonctions numériques comme Additionner, Soustraire, Multiplier et Carré, LabVIEW augmente la longueur de mot de la valeur en sortie pour qu'elle convienne au résultat de l'opération. Ceci est le même comportement que pour les valeurs à virgule flottante. Cependant, si la valeur en sortie qui permet d'éviter le dépassement ou l'arrondi dépasse la longueur de mot maximale acceptée par LabVIEW ou que vous spécifiez, des conditions de dépassement ou d'arrondi risquent de survenir. LabVIEW accepte une longueur de mot maximale de 64 bits.
![]() |
Remarque Si vous câblez des valeurs à virgule fixe aux fonctions Diviser, Inverser ou Racine carrée, des conditions d'arrondi ont toujours lieu car la précision des résultats peut être infinie. |
Autres conditions dans lesquelles un dépassement ou un arrondi risque de se produire : des boucles de types et des valeurs qui ne peuvent pas être représentées exactement dans un système numérique de base 2.
Un dépassement a lieu si le résultat d'un opération se trouve en dehors de la gamme de valeurs que le type de sortie peut représenter. Vous pouvez sélectionner un des modes de dépassement suivants pour traiter le dépassement :
![]() |
Remarque Typiquement, le mode Saturation peut nécessiter des ressources matérielles supplémentaires sur une cible FPGA. |
Pour déterminer si un dépassement se produit, vous pouvez configurer un nombre à virgule fixe pour qu'il comporte un état de dépassement. Lorsque vous introduisez un état de dépassement dans un nombre à virgule fixe, LabVIEW alloue un espace de stockage supplémentaire pour indiquer si le nombre à virgule fixe provient d'une opération dans laquelle un dépassement a eu lieu. Après avoir configuré un nombre à virgule fixe pour qu'il comporte un état de dépassement, vous pouvez afficher un voyant LED d'état de dépassement sur les commandes, les constantes et les indicateurs de données à virgule fixe. Cette LED s'allume si l'état de dépassement du nombre à virgule fixe est VRAI. Vous pouvez aussi utiliser la fonction Dépassement des données à virgule fixe ? pour déterminer l'état de dépassement d'un nombre à virgule fixe. Utilisez les fonctions de la palette Virgule fixe pour manipuler l'état de dépassement d'un nombre à virgule fixe.
![]() |
Remarque LabVIEW ne recherche pas les conditions de dépassement sur les nombres à virgule fixe. |
Lorsque vous utilisez les fonctions de Comparaison pour comparer des nombres à virgule fixe, LabVIEW ignore l'état de dépassement et ne compare que les nombres. Par exemple, si vous utilisez la fonction Égaux ? pour comparer une valeur à virgule fixe de 1,5 dont l'état de dépassement est Vrai avec une valeur à virgule fixe de 1,5 sans état de dépassement, LabVIEW renvoie Vrai.
Pour configurer les paramètres de sortie d'une fonction numérique, cliquez avec le bouton droit sur la fonction et sélectionnez Propriétés dans le menu local afin d'afficher la boîte de dialogue Propriétés du nœud numérique. Vous pouvez utiliser cette boîte de dialogue pour configurer la façon dont LabVIEW traite les conditions de dépassement et d'arrondi.
L'arrondi a lieu si la précision de la valeur en entrée ou si le résultat d'un opération est supérieure à la précision du type de sortie. LabVIEW contraint la valeur en entrée à une valeur qui a la même précision que le type de sortie. Par exemple, supposons que le type de sortie puisse représenter les valeurs successives s et t. Si le résultat d'une opération est la valeur x et que x se trouve entre s et t de telle sorte que s<x<t, un arrondi se produit car le type de sortie ne peut pas représenter x exactement.
Vous pouvez sélectionner l'un des modes d'arrondi suivants pour gérer l'arrondi :
![]() |
Remarque Les modes d'arrondi ont tous un effet minime sur les performances. Cependant, les performances risquent d'être affectées de manière significative si vous exécutez un VI qui gère le dépassement sur une cible comme FPGA. |
Reportez-vous à la rubrique Utilisation du type de données à virgule fixe pour en savoir plus sur l'impact au niveau des performances sur les FPGA.
Utile
Pas utile