Données numériques

Aide LabVIEW 2014

Date d'édition : June 2014

Numéro de référence : 371361L-0114

»Afficher les infos sur le produit
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.

Association d'unités numériques aux nombres en virgule flottante

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.

Unités et vérification de type stricte

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.

Type de données à virgule fixe

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.

Représentation des nombres rationnels avec le type de données à virgule fixe

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.

Configuration des nombres à virgule fixe

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.

Encodage

Spécifiez l'encodage binaire d'un nombre à virgule fixe si vous voulez que ce nombre soit conforme à une certaine taille de bits.

  • Signé — Cette option détermine si les données en virgule fixe doivent être signées. Si vous sélectionnez signé, le bit de signe est toujours le premier bit de la chaîne de bits qui représente les données.
  • Non signé — Cette option détermine si les données en virgule fixe doivent être non signées.
  • Longueur de mot — Le nombre total de bits dans la chaîne de bits que LabVIEW utilise pour représenter toutes les valeurs possibles des données en virgule fixe. LabVIEW accepte une longueur de mot maximale de 64 bits. Il se peut que certaines cibles limitent les données à des longueurs de mot plus petites. Si vous ouvrez un VI sur une cible et que ce VI contient des données en virgule fixe ayant des longueurs de mot supérieures à celles que la cible peut accepter, le VI contient des fils de liaison brisés. Reportez-vous à la documentation se rapportant à une cible pour déterminer la longueur de mot maximale qu'une cible accepte.
  • Longueur de mot de la partie entière — Le nombre de bits pour la partie entière dans la chaîne de bits utilisée par LabVIEW pour représenter toutes les valeurs possibles des données en virgule fixe ou, étant donné la position initiale à gauche ou à droite du bit de poids fort, le nombre de bits dont il faut décaler la virgule binaire pour atteindre le bit de poids fort. La longueur de mot de la partie entière peut être supérieure à la longueur de mot et peut être positive ou négative.

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

Longueurs de mot de la partie entière longues ou négatives

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

Gamme

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.

  • Minimum — Définit la valeur minimale de la gamme des données en virgule fixe.
  • Maximum — Définit la valeur maximale de la gamme des données en virgule fixe.
  • Delta — Définit l'incrément entre les nombres au sein de la gamme spécifiée.

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.

Arithmétique en virgule fixe

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.

Dépassement et arrondi

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.

Dépassement

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 :

  • Saturation — Si la valeur est supérieure à la valeur maximale de la gamme désirée du type de sortie, LabVIEW contraint, ou arrondit, la valeur au maximum spécifié. Si la valeur est inférieure à la valeur minimale de la gamme désirée du type de sortie, LabVIEW contraint la valeur au minimum spécifié.
  • Modulo — Si la valeur se trouve en dehors de la gamme désirée du type de sortie, LabVIEW supprime les bits de poids fort de la valeur jusqu'à ce que cette dernière se trouve dans la gamme désirée du type de sortie. Cette option stipule que la valeur en sortie ait l'encodage que vous spécifiez. Vous ne pouvez pas spécifier une gamme désirée si vous sélectionnez cette option car LabVIEW définit automatiquement la gamme pour qu'elle corresponde à l'encodage.
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.

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 :

  • Tronquer — Arrondit la valeur à la valeur inférieure la plus proche qui peut être représentée par le type de sortie. LabVIEW supprime les bits de poids faible de la valeur. Ce mode d'arrondi produit les meilleures performances mais aussi les valeurs les moins précises.

    Par exemple, si la valeur en sortie x se trouve entre des valeurs s et t successives telles que

    s<x<t,

    LabVIEW définit x comme étant égal à s.
  • Arrondir 1/2 vers le haut — Arrondit la valeur à la valeur la plus proche qui peut être représentée par le type de sortie. Si la valeur à arrondir se trouve à équidistance de deux valeurs valides, ce mode arrondit la valeur à la plus grande de ces deux valeurs. LabVIEW ajoute la moitié d'un bit de poids faible à la valeur en sortie puis tronque la valeur. Ce mode d'arrondi produit des valeurs en sortie plus précises que Tronquer mais a aussi un effet plus grand sur les performances.

    Par exemple, si la valeur en sortie x se trouve entre des valeurs s et t successives telles que

    s<x<t,

    LabVIEW définit x comme étant égal à la plus proche des valeurs s ou t. Si x est à équidistance de s et de t, LabVIEW sélectionne t.
  • Arrondir 1/2 pair — Arrondit la valeur à la valeur la plus proche qui peut être représentée par le type de sortie. Si la valeur à arrondir est à équidistance de deux valeurs valides, LabVIEW vérifie le bit de la valeur qui devient le bit de poids faible après l'arrondi. Si le bit est 0, cette option arrondit la valeur à la plus petite des deux valeurs les plus proches que le type de sortie peut représenter. Si le bit n'est pas 0, ce mode arrondit la valeur à la valeur supérieure. Ce mode d'arrondi a l'effet le plus important sur les performances mais produit des valeurs en sortie plus précises en sortie que Tronquer. Ce mode neutralise aussi le biais vers les valeurs supérieures susceptible de se produire si vous effectuez plusieurs opérations d'arrondi qui utilisent le mode Arrondir d'un demi vers le haut. Ceci est le mode d'arrondi par défaut.

    Par exemple, si la valeur en sortie x se trouve entre des valeurs s et t successives telles que

    s<x<t,

    LabVIEW définit x comme étant égal à la plus proche des valeurs s ou t. Si x est à équidistance de s et t, s est sélectionné si le bit de poids faible est 0 après l'arrondi. t est sélectionné si le bit de poids faible n'est pas 0 après 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.

CET ARTICLE VOUS A-T-IL ÉTÉ UTILE ?

Pas utile