Points de coercition

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)

Les points de coercition apparaissent sur les nœuds du diagramme pour vous indiquer que LabVIEW a converti la valeur transmise au nœud en une représentation différente. LabVIEW place un point de coercition sur le bord du terminal où la conversion a lieu. Les VIs et les fonctions étant susceptibles de posséder de nombreux terminaux, un point de coercition peut apparaître à l'intérieur d'une icône si vous effectuez le câblage d'un terminal à un autre.

Points de coercition rouges

LabVIEW place des points de coercition rouges sur des nœuds du diagramme quand vous connectez un fil de liaison d'un type numérique à un terminal de type différent ou quand vous connectez n'importe quel fil de liaison non variant à un terminal variant.

Par exemple, dans la figure suivante, LabVIEW place un point de coercition rouge sur la fonction Additionner car cette fonction reçoit un nombre à virgule flottante double précision et un entier alors qu'elle requiert deux entrées de type numérique identique. Les types de données sont suffisamment semblables pour que LabVIEW contraigne l'entier et effectue quand même l'addition.

Points de coercition bleus

LabVIEW place des points de coercition bleus sur les terminaux de sortie des fonctions numériques quand vous configurez manuellement les paramètres en sortie à virgule fixe d'une fonction. Le point indique que LabVIEW n'ajuste pas automatiquement le type de données en sortie pour éviter les erreurs de dépassement et d'arrondi.

Le diagramme suivant montre un point de coercition bleu.

Élimination des points de coercition pour conserver l'exactitude et optimiser l'utilisation de la mémoire

Les points de coercition peuvent affecter l'utilisation de la mémoire, voire l'ensemble des performances d'un VI des façons suivantes :

  • Coercition des définitions de type — Si vous câblez une instance d'une définition de type à un objet associé à une autre définition de type, le VI risque de générer des résultats inexacts.
  • Coercition des scalaires — Si vous manipulez des types numériques différents, LabVIEW contraint les types de données à se correspondre. Lorsque cette coercition se produit, le VI risque de générer des résultats inexacts.
  • Coercition des grands tableaux — Si vous contraignez le type de données d'un très grand tableau, le VI risque d'utiliser une quantité importante de mémoire et de prendre plus de temps à s'exécuter.

Pour éviter les coercitions, utilisez des types de données identiques.

Astuce  Quand vous placez le curseur sur un terminal doté d'un point de coercition, le champ Type de données du fil de liaison connecté de la fenêtre d'Aide contextuelle affiche le type de données du fil connecté au VI ou à la fonction. Pour éliminer les points de coercition, faites correspondre le Type de données du fil de liaison connecté au Type de données du terminal.

Coercition des définitions de type

Lorsque vous câblez une instance d'une définition de type à un objet associé à une autre définition de type, LabVIEW place un point de coercition sur le terminal qui reçoit les données pour vous avertir que, si vous éditez la définition de type, le VI risque de se briser ou de générer des données inexactes. Si vous éditez la définition de type d'un objet câblé à un cluster ou à un énum, le fil de liaison qui le connecte au cluster ou à l'énum se brise.

Le diagramme de la figure suivante illustre la coercition d'une définition de type qui risque d'affecter l'exactitude des résultats et de briser le fil de liaison si la définition de type est modifiée. Dans cet exemple, l'entrée du sous-VI est associée à une définition de type qui définit le type de filtre.

LabVIEW place un point de coercition sur le terminal câblé du sous-VI pour indiquer que la constante énum n'est pas associée à la même définition de type.

Le diagramme de la figure suivante illustre comment utiliser des définitions de type pour conserver l'exactitude des résultats et ne pas briser le fil de liaison quand la définition de type est modifiée.

Vous pouvez faire correspondre la définition de type de l'entrée du sous-VI en copiant l'objet qui y est associé ou en remplaçant l'objet associé à une autre définition de type par une instance de cette définition de type. Vous pouvez aussi faire correspondre la définition de type de l'entrée du sous-VI en cliquant avec le bouton droit de la souris sur le terminal en entrée et en sélectionnant Créer»Constante dans le menu local. La constante est associée automatiquement à la définition de type.

Coercition des scalaires

Lorsque vous manipulez des types de données numériques scalaires simples, LabVIEW contraint au type de données qui n'entraîne pas de perte de données fractionnaires. Si les deux types de données sont des entiers, LabVIEW contraint le type ayant la valeur maximale la plus basse au type ayant la valeur maximale la plus élevée.

Le diagramme de la figure suivante illustre une coercition n'affectant pas l'exactitude des résultats.

Dans cet exemple, lorsque vous additionnez un nombre à virgule flottante double précision et un entier long, LabVIEW contraint l'entier long à un nombre à virgule flottante double précision puis additionne les deux valeurs. Le point de coercition que LabVIEW place sur la fonction Additionner ne modifie pas le résultat de l'opération car LabVIEW contraint le type de données ayant la valeur maximale la plus basse à un type de données plus précis. Cependant, il vous est recommandé d'utiliser autant que possible des types de données identiques.

Si vous souhaitez vous assurer que LabVIEW contraint les données au type de votre choix, changez le type de données d'une commande, d'une constante ou d'un indicateur en cliquant avec le bouton droit sur l'objet et en sélectionnant Représentation dans le menu local.

Le diagramme de la figure suivante illustre une coercition générant des résultats inexacts.

Dans cet exemple, LabVIEW contraint l'entier signé à un entier non signé. Comme LabVIEW tente de contraindre une valeur négative à un type de données qui ne supporte pas les valeurs négatives, la valeur 65,531 est générée au lieu de la valeur -5. Pour éviter de générer des données inexactes, modifiez la représentation des objets du diagramme de façon à faire correspondre les types des données.

Astuce  Vous pouvez activer la propriété Adapter à la source de l'indicateur pour que le type de données de l'indicateur soit automatiquement modifié et corresponde au type de données des valeurs numériques en entrée. Pour activer la propriété Adapter à la source, cliquez avec le bouton droit sur l'indicateur et sélectionnez Adapter à la source dans le menu local.

Coercition des grands tableaux

Lorsque LabVIEW contraint des données contenues dans de très grands tableaux, le VI risque d'utiliser une quantité importante de mémoire et de prendre plus de temps à s'exécuter. Le diagramme de la figure suivante illustre un VI qui utilise une grande quantité de mémoire, LabVIEW devant contraindre le type de données du grand tableau au type de données de l'entrée du sous-VI.

Dans cet exemple, LabVIEW contraint le type de données d'un très grand tableau à des nombres à virgule flottante à précision étendue pour qu'il corresponde au type de données du sous-VI. Pour réduire l'utilisation de mémoire, faites correspondre les types de données en cliquant avec le bouton droit sur la commande, la constante ou l'indicateur sur le diagramme et en sélectionnant Représentation dans le menu local. Sur le diagramme représenté ci-dessus, la modification du type de données de la constante et de la commande sur le diagramme du sous-VI permet d'éviter à LabVIEW de contraindre les données.

Le diagramme de la figure suivante illustre un VI qui utilise la mémoire de manière plus performante.

Astuce  Pour suivre et surveiller la quantité de mémoire utilisée par un VI, vous pouvez utiliser la fenêtre Profil - Performances et mémoire, qui collecte et affiche les données relatives au temps d'exécution des VIs et à leur utilisation de la mémoire.

Fonctions de conversion

Vous pouvez utiliser les fonctions de conversion pour supprimer les points de coercition. En général, les fonctions de conversion produisent le même effet que les points de coercition à la différence qu'elles prennent plus de place sur le diagramme. Cependant, l'utilisation d'une fonction de conversion à l'intérieur d'une boucle qui génère un tableau vous permet d'éviter de convertir un grand buffer de données puisque la conversion a lieu avant que LabVIEW crée le tableau, comme le montre le diagramme suivant.

Changement de couleur des points de coercition

Pour changer la couleur des points de coercition rouges, utilisez la page Environnement de la boîte de dialogue Options. Désélectionnez l'option Utiliser les couleurs par défaut dans la section Couleurs et cliquez sur la boîte de couleur Points de coercition pour sélectionner une autre couleur.

Vous ne pouvez pas changer la couleur des points de coercition bleus.

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

Pas utile