Techniques de mise au point

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)

Si un VI n'est pas brisé, mais que vous obtenez des données inattendues, vous pouvez utiliser les techniques suivantes pour identifier et corriger les problèmes du VI ou du flux de données du diagramme. Si vous ne pouvez pas mettre le VI au point en utilisant les techniques suivantes, il se peut que le VI comporte une situation de compétition.

Remarque  Pour mettre au point une application autonome ou une bibliothèque partagée, commencez pas utiliser ces techniques de mise au point sur le diagramme du VI de démarrage.

(Module MathScript RT) Si le VI contient un nœud MathScript, utilisez d'autres techniques pour mettre le script au point.

Clusters d'erreur

La plupart des fonctions et des VIs intégrés possèdent des paramètres d'entrée et de sortie d'erreur. Ces paramètres détectent les erreurs rencontrées sur chaque nœud du diagramme et indiquent si une erreur s'est produite et, le cas échéant, à quel endroit. Vous pouvez également utiliser ces paramètres dans les VIs que vous construisez.

Quand vous câblez les paramètres d'erreur des VIs et des fonctions, les clusters entrée d'erreur et sortie d'erreur fournissent les informations suivantes :

  • status représente une valeur booléenne qui renvoie la valeur VRAI si une erreur s'est produite.
  • code représente un entier 32 bits signé qui identifie l'erreur numériquement. Un code d'erreur différent de zéro couplé avec un état FAUX signale une mise en garde plutôt qu'une erreur.
  • source représente une chaîne qui identifie l’endroit où l'erreur s'est produite.

Mises en garde

Bien que les mises en garde n'empêchent pas l'exécution d'un VI, elles risquent de provoquer un comportement inattendu. Lorsque vous mettez au point un VI, veillez à afficher les mises en garde. Si le VI provoque une mise en garde, utilisez la fenêtre Liste des erreurs pour en déterminer la cause et corriger le VI.

Animation de l'exécution

Affichez l'animation de l'exécution du diagramme en cliquant sur le bouton Animer l'exécution, représenté ci-après.

L'animation de l'exécution présente le mouvement des données sur le diagramme d'un nœud à un autre en utilisant des "bulles" qui se déplacent le long des fils de liaison. Utilisez l'animation de l'exécution avec le mode pas à pas pour observer comment les valeurs de données se déplacent entre les nœuds d'un VI.

Remarque  L'animation de l'exécution réduit considérablement la vitesse à laquelle le VI s'exécute. Si un VI s'exécute plus lentement que prévu, assurez-vous que vous avez désactivé l'animation de l'exécution dans les sous-VIs.

Si le cluster sortie d'erreur rapporte une erreur, la valeur de l'erreur apparaît à côté de sortie d'erreur avec un cadre rouge. Si aucune erreur ne survient, OK apparaît à côté de sortie d'erreur avec un cadre vert.

Mode pas à pas

Avancez pas à pas dans un VI pour voir chaque action du VI sur le diagramme lors de son exécution. Les boutons du mode pas à pas, représentés ci-après, n'affectent que l'exécution d'un VI ou d'un sous-VI en mode pas à pas.

Accédez au mode pas à pas en cliquant sur le bouton Exécuter de façon détaillée ou Exécuter sans détailler sur la barre d'outils du diagramme. Déplacez le curseur au-dessus du bouton Exécuter de façon détaillée, Exécuter sans détailler ou Terminer l'exécution pour afficher une info-bulle qui décrit l'étape suivante si vous cliquez sur ce bouton. Vous pouvez lancer l'exécution pas à pas des sous-VIs ou les exécuter normalement.

Lorsque vous exécutez un VI pas à pas, les nœuds clignotent pour indiquer qu'ils sont prêts à être exécutés. Si vous utilisez le mode pas à pas dans un VI et que l'animation de l'exécution est activée, un symbole d'exécution, représenté ci-après, apparaît sur les icônes des sous-VIs en cours d'exécution.

Outil Sonde

Utilisez l'outil Sonde, représenté ci-après, pour vérifier des valeurs intermédiaires sur un fil de liaison lors de l'exécution d'un VI.

Utilisez l'outil Sonde si votre diagramme est compliqué, avec une série d'opérations, n'importe laquelle d'entre elles pouvant renvoyer des données incorrectes. Utilisez l'outil Sonde avec le mode Animation, le mode pas à pas et des points d'arrêt pour déterminer si des données sont incorrectes et, le cas échéant, où se situe le problème. Si des données sont disponibles, la sonde se met immédiatement à jour et affiche les données dans la Fenêtre d'observation des sondes durant l'exécution en mode Animation, pas à pas, ou lorsque vous effectuez une pause à un point d'arrêt. Lors de la suspension de l'exécution à un nœud en raison du mode pas à pas ou d'un point d'arrêt, vous pouvez aussi sonder le fil de liaison qui vient de s'exécuter pour connaître la valeur qui a été transmise par ce fil de liaison.

Types de sondes

Vous pouvez vérifier les valeurs intermédiaires sur un fil de liaison durant l'exécution d'un VI au moyen d'une sonde générique, en utilisant un indicateur de la palette Commandes pour afficher les données, en utilisant une sonde fournie (personnalisée ou non), ou en créant une nouvelle sonde.

Générique

Utilisez une sonde générique pour afficher les données qui sont transmises par un fil de liaison. Cliquez avec le bouton droit de la souris sur un fil de liaison et sélectionnez Sonde personnalisée»Sonde générique dans le menu local pour utiliser la sonde générique.

La sonde générique affiche les données. Vous ne pouvez pas configurer la sonde générique pour répondre aux données.

LabVIEW affiche la sonde générique lorsque vous cliquez avec le bouton droit sur un fil de liaison et que vous sélectionnez Sonde, sauf si vous avez déjà spécifié une sonde fournie ou personnalisée pour ce type de données.

Vous pouvez mettre au point une sonde personnalisée comme s'il s'agissait d'un VI. Toutefois, une sonde ne peut sonder son propre diagramme, ni celui de ses sous-VIs. Quand vous mettez au point des sondes, utilisez la sonde générique.

Utilisation d'indicateurs pour afficher les données

Vous pouvez aussi utiliser un indicateur pour afficher les données transmises par un fil de liaison. Par exemple, si vous affichez des données numériques, vous pouvez utiliser un graphe déroulant à l'intérieur de la sonde pour afficher les données. Cliquez avec le bouton droit sur un fil de liaison, sélectionnez Sonde personnalisée»Commandes dans le menu local et sélectionnez l'indicateur que vous voulez utiliser. Vous pouvez aussi cliquer sur l'icône Sélectionner une commande dans la palette Commandes et sélectionner une commande ou une définition de type enregistrée dans l'ordinateur ou dans un répertoire partagé sur un serveur. LabVIEW traite les définitions de type comme des commandes personnalisées lorsque vous les utilisez pour afficher des données sondées.

Si le type de données de l'indicateur que vous avez sélectionné ne correspond pas au type de données du fil de liaison sur lequel vous avez effectué un clic droit, LabVIEW ne place pas l'indicateur sur le fil de liaison.

Fournie

Les sondes fournies sont des VIs qui affichent des informations complètes sur les données transmises par un fil de liaison. Par exemple, le VI Sonde Refnum renvoie des informations sur le nom du VI, le chemin du VI et la valeur hexadécimale de la référence. Vous pouvez aussi utiliser une sonde fournie pour répondre en fonction des données transmises à travers le fil de liaison. Par exemple, utilisez une sonde Erreur ou un cluster d'erreur pour recevoir l'état, le code, la source et la description de l'erreur et spécifier si vous voulez définir un point d'arrêt conditionnel si une erreur ou une mise en garde a lieu.

Les sondes fournies apparaissent en haut du menu local Sonde personnalisée. Cliquez avec le bouton droit de la souris sur un fil de liaison et sélectionnez Sonde personnalisée dans le menu local pour sélectionner une sonde fournie. Seules les sondes qui correspondent au type de données du fil de liaison sur lequel vous avez effectué un clic droit apparaissent dans le menu local.

Personnalisée

Utilisez la boîte de dialogue Créer une nouvelle sonde pour créer une sonde basée sur une sonde existante ou pour en créer une nouvelle. Cliquez avec le bouton droit sur un fil de liaison et sélectionnez Sonde personnalisée»Nouveau dans le menu local pour afficher la boîte de dialogue Nouveau. Créez une sonde lorsque vous voulez exercer un contrôle plus étroit sur la manière dont LabVIEW sonde les données transmises par un fil de liaison. Lorsque vous créez une nouvelle sonde, le type de données de la sonde correspond au type de données du fil de liaison sur lequel vous avez effectué un clic droit. Si vous voulez modifier la sonde que vous avez créée, vous devez l'ouvrir à partir du répertoire dans lequel vous l'avez enregistrée.

Après avoir sélectionné une sonde dans le menu Sonde personnalisée, avoir navigué jusqu'à celle-ci à l'aide de l'option de palette Sélectionner une commande ou avoir créé une nouvelle sonde avec la boîte de dialogue Créer une nouvelle sonde, cette sonde devient la sonde par défaut pour ce type de données et celle que LabVIEW charge lorsque vous effectuez un clic droit sur un fil de liaison et que vous sélectionnez Sonde dans le menu local. LabVIEW ne charge que les sondes qui correspondent exactement au type de données du fil de liaison sur lequel vous avez effectué un clic droit. Autrement dit, une sonde numérique à virgule flottante double précision ne peut pas sonder un fil de liaison entier 32 bits non signé même si LabVIEW est capable de convertir les données.

Remarque  Si vous voulez qu'une sonde soit la sonde par défaut pour un type de données particulier, enregistrez-la dans le répertoire user.lib\_probes\default. N'enregistrez pas les sondes dans le répertoire vi.lib\_probes car LabVIEW écrase ces fichiers lorsque vous effectuez une mise à jour ou une réinstallation.

Points d'arrêt

Utilisez l'outil Point d'arrêt, représenté ci-après, pour placer un point d'arrêt sur un VI, un nœud ou un fil de liaison et interrompre momentanément l'exécution à cet emplacement.

Lorsque vous définissez un point d'arrêt sur un fil de liaison, l'exécution se met en pause après le passage des données dans le fil de liaison, et le bouton Pause apparaît en rouge. Placez un point d'arrêt sur le diagramme pour suspendre l'exécution une fois que tous les nœuds du diagramme ont été exécutés. Le cadre du diagramme devient rouge et clignote pour indiquer le placement d'un point d'arrêt.

Lorsqu'un VI est suspendu à un point d'arrêt, LabVIEW affiche le diagramme au premier plan et utilise un contour en pointillé pour mettre en surbrillance le nœud, le fil de liaison ou la ligne de script qui contient le point d'arrêt. Lorsque vous placez le curseur sur un point d'arrêt existant, la zone noire de l'outil Point d'arrêt devient blanche.

Lorsque l'exécution atteint un point d'arrêt, le VI se met en pause et le bouton Pause est représenté en rouge. De plus, l'arrière-plan et la bordure du VI se mettent à clignoter. Vous pouvez effectuer les actions suivantes :

  • Exécuter en mode pas à pas avec les boutons du mode pas à pas.
  • Vérifier les valeurs intermédiaires sur des sondes que vous avez placées sur les fils de liaison avant d'exécuter le VI.
  • Vérifier les valeurs intermédiaires sur n'importe quelle sonde que vous placez après avoir exécuté le VI si vous avez activé l'option Retenir les valeurs des fils de liaison.
  • Modifier les valeurs des commandes de la face-avant.
  • Vérifiez le menu déroulant Liste d'appels pour voir la liste des VIs qui appellent le VI qui est arrêté à un point d'arrêt.
  • Cliquer sur le bouton Pause pour poursuivre l'exécution jusqu'au prochain point d'arrêt ou jusqu'à la fin du VI.

LabVIEW enregistre les points d'arrêt avec un VI, mais ceux-ci ne sont activés que lors de l'exécution. Il est plus pratique d'enregistrer un point d'arrêt qui pourra servir plusieurs fois, plutôt que de le supprimer pour ensuite le recréer. Toutefois, il est possible que vous ne vouliez pas que tous les points d'arrêt soient actifs chaque fois que vous exécutez le VI. Désactivez les point d'arrêt de sorte que l'exécution ne se mette pas en pause à ces points-là lorsque vous exécutez le VI. Vous pouvez utiliser la fenêtre du Gestionnaire de points d'arrêt pour désactiver, activer, supprimer ou repérer les points d'arrêt existants. Pour ouvrir la fenêtre du Gestionnaire de points d'arrêt, sélectionnez Affichage»Gestionnaire de points d'arrêt ou faites un clic droit sur un objet du diagramme et sélectionnez Point d'arrêt»Gestionnaire de points d'arrêt dans le menu local.

Vous pouvez supprimer les points d'arrêt individuellement ou dans toute la hiérarchie du VI.

Comment LabVIEW met en évidence les points d'arrêt

LabVIEW met les points d'arrêt en évidence et interrompt l'exécution différemment en fonction de l'emplacement des points d'arrêt sur le diagramme. Vous pouvez placer des points d'arrêt sur les structures, les nœuds et les fils de liaison.

Point d'arrêt sur une structure

L'illustration suivante représente une boucle For dotée d'un point d'arrêt. Le VI est mis en pause avant la fin de l'exécution de toute la boucle For. Une bordure rouge autour du diagramme met le point d'arrêt en évidence. Si le diagramme est à l'intérieur d'une structure, celle-ci inclut cette bordure rouge. L'exécution est mise en pause lorsque tous les nœuds du diagramme ont terminé leur exécution. Si un point d'arrêt est à l'intérieur d'une structure en boucle, la suspension se produit après chaque itération de la boucle.

Point d'arrêt sur un nœud

L'illustration suivante représente un point d'arrêt sur le nœud Incrémenter. Le VI est suspendu avant l'exécution de la fonction Incrémenter. Un fil de liaison possède également un point d'arrêt. Le VI est suspendu de nouveau après l'exécution de la fonction Multiplier. Une bordure rouge autour du nœud met le point d'arrêt en évidence. L'exécution est mise en pause juste avant l'exécution du nœud. Vous pouvez sonder tous les signaux d'entrée dans un nœud avec l'outil Sonde.

Point d'arrêt sur un fil de liaison

L'illustration suivante montre un point d'arrêt sur un fil de liaison avec une sonde. Si vous avez sélectionné Retenir les valeurs des fils de liaison et que vous placez le curseur sur un fil de liaison, une info-bulle apparaît, comme dans l'illustration, pour indiquer la valeur des données dans le fil de liaison. L'exécution est mise en pause lorsque les données sont passées dans le fil de liaison et la sonde affiche les données pour l'itération présente. Le point d'arrêt est mis en évidence par une puce rouge au milieu du fil de liaison. Si vous attachez une sonde à un fil de liaison, celle-ci possède également une bordure rouge.

Point d'arrêt désactivé

L'illustration suivante montre les points d'arrêt qui se trouvent sur la boucle For, le nœud Incrémenter, un fil de liaison et une ligne de script (module MathScript RT) dans un nœud MathScript. Tous les points d'arrêt sont désactivés. Le VI ne se met en pause à aucun de ces points d'arrêt. La bordure rouge autour des objets du diagramme est plus mince que la bordure normale pour indiquer que vous avez désactivé les points d'arrêt. Si vous les activez à nouveau, la bordure rouge repasse à l'épaisseur normale, comme le représentent les illustrations précédentes.

Suspension de l'exécution

Suspendez l'exécution d'un sous-VI pour modifier les valeurs des commandes et indicateurs, pour contrôler le nombre d'exécutions avant de retourner à l'appelant ou pour revenir au début de l'exécution d'un sous-VI. Si vous le décidez, tous les appels à un sous-VI peuvent démarrer avec l'exécution suspendue ou vous pouvez interrompre un appel spécifique à un sous-VI.

Pour suspendre tous les appels à un sous-VI, ouvrez le sous-VI et sélectionnez Exécution»Interrompre l'exécution à l'appel. Le sous-VI est automatiquement suspendu lorsqu'un autre VI l'appelle. Si vous sélectionnez cet élément de menu avec le mode pas à pas, le sous-VI ne s'interrompt pas immédiatement. Le sous-VI est suspendu lorsqu'il est appelé.

Pour suspendre un appel de sous-VI spécifique, cliquez avec le bouton droit sur le nœud de sous-VI sur le diagramme et sélectionnez Configuration du nœud du sous-VI dans le menu local. Cochez la case Interrompre l'exécution à l'appel pour suspendre l'exécution uniquement à cette instance du sous-VI.

La fenêtre Hiérarchie du VI, que vous affichez en sélectionnant Affichage»Hiérarchie du VI, indique si un VI a été mis en pause ou suspendu. Un symbole de flèche, représenté ci-après, indique un VI qui s'exécute de manière normale ou en mode pas à pas.

Un symbole de pause, représenté ci-après, indique un VI en pause ou suspendu.

Un symbole de pause vert, ou un symbole vide noir et blanc, indique un VI qui s'est mis en pause lorsqu'il a été appelé. Un symbole de pause rouge, ou un symbole noir et blanc, indique un VI qui est actuellement sur pause. Un point d'exclamation, représenté ci-après, indique que le sous-VI est suspendu.

Un VI peut être à la fois suspendu et en pause.

Détermination de l'instance actuelle d'un sous-VI

Lorsque vous mettez un sous-VI en pause, le menu déroulant Liste d'appels sur la barre d'outils liste la chaîne des appelants du VI de niveau principal au sous-VI. Il ne s'agit pas de la même liste que celle qui s'affiche lorsque vous sélectionnez Parcourir»VIs appelant ce VI, qui liste tous les VIs appelants, qu'ils soient en cours d'exécution ou non. Utilisez le menu Liste d'appels pour déterminer l'instance actuelle du sous-VI si le diagramme contient plusieurs appels à ce sous-VI. Lorsque vous sélectionnez un VI appelant dans le menu Liste d'appels, son diagramme s'ouvre et LabVIEW met en surbrillance l'instance actuelle du sous-VI.

Vous pouvez aussi utiliser la fonction Chaîne d'appel pour afficher la chaîne des appelants du VI actuel au VI de niveau principal.

Mise au point de sections de diagrammes

Vous pouvez exécuter un VI en désactivant une partie du diagramme, de la même manière que l'on transforme en commentaire une section de code dans un langage de programmation textuel. Désactivez une section du diagramme pour déterminer si le VI fonctionne mieux sans cette dernière. Placez la section que vous voulez désactiver à l'intérieur d'une structure à diagrammes désactivés.

Vous pouvez aussi mettre au point une section de code pour isoler le problème. Pour mettre au point une section de code, placez le code à mettre au point dans une structure à conditions désactivées.

Instrumentation

Si une sonde, un point d'arrêt ou l'animation de l'exécution prend longtemps à mettre au point le code d'un VI, utilisez un VI d'instrumentation. Utilisez un VI d'instrumentation pour observer l'exécution d'un VI et résoudre le problème.

Programmez le VI d'instrumentation pour qu'il lise les données du VI à mettre au point et qu'il génère un rapport avec les résultats. Dans le VI d'instrumentation, spécifiez la section de code à mettre au point, pointez sur le chemin du VI à mettre au point et ajouter une étape de cadencement.

Un VI d'instrumentation fonctionne comme le toolkit Desktop Execution Trace : ils fournissent tous deux l'ordre d'exécution des données d'un diagramme.

Vérification du comportement des objets

En plus des outils de mise au point, vous pouvez aussi utiliser les techniques suivantes pour identifier et corriger des problèmes avec le flux de données sur le diagramme ou la face-avant :

  • Vérifiez la représentation des commandes et indicateurs pour voir si vous recevez un dépassement de capacité parce que vous avez converti un nombre à virgule flottante en entier, ou un entier en entier plus petit. Vous pourriez, par exemple, avoir câblé un entier 16 bits à une fonction qui n'accepte que les entiers 8 bits. Ceci force la fonction à convertir l'entier 16 bits en une représentation 8 bits, ce qui risque de causer une perte de données. Reportez-vous à la page Éviter les données non définies pour obtenir plus d'informations.
  • Déterminez si les données transmises par une fonction ou un sous-VI sont indéfinies. Cela se produit fréquemment avec des nombres. Par exemple, à un certain point de votre VI, une opération peut avoir divisé un nombre par zéro, renvoyant ainsi Inf (infini), alors que les fonctions ou les sous-VIs ultérieurs attendaient des nombres.
  • Déterminez si des boucles For n'exécutent pas par erreur aucune itération et renvoient des tableaux vides. Reportez-vous aux pages Animation de l'exécution et Éviter les données non définies pour obtenir plus d'informations.
  • Vérifiez que vous avez correctement initialisé les registres à décalage, à moins que vous ne souhaitiez qu'ils stockent les données d'une exécution de la boucle pour la suivante.
  • Vérifiez l'ordre des l'éléments des clusters à la source et à la destination. LabVIEW détecte les différences de type de données et de taille du cluster lors de l'édition, mais il ne détecte pas les différences pour les éléments du même type.
  • Vérifiez que le VI ne contient pas de sous-VI masqué. Vous pourriez avoir caché par inadvertance un sous-VI en déposant un autre nœud directement dessus ou en diminuant la taille d'une structure dans laquelle il se trouve. Vérifiez l'inventaire des sous-VIs que le VI utilise et comparez les résultats dans Affichage»Parcourir les relations»Sous-VIs appelés par ce VI et Affichage»Parcourir les relations»Sous-VIs non ouverts afin de déterminer si des sous-VIs superflus existent.
  • Sélectionnez Affichage»Hiérarchie du VI pour rechercher les sous-VIs non câblés. À l'inverse des fonctions non câblées, les VIs non câblés ne génèrent pas toujours des erreurs, sauf si vous configurez une entrée comme entrée nécessaire. Si vous placez par erreur un sous-VI non câblé sur le diagramme, il s'exécute en même temps que le diagramme. Par conséquent, votre application risque d'effectuer des actions superflues.
  • Utilisez la fenêtre d'Aide contextuelle pour vérifier les valeurs par défaut de chaque fonction et sous-VI du diagramme. Les VIs et fonctions transmettent des valeurs par défaut si des entrées recommandées ou optionnelles ne sont pas câblées. Par exemple, une entrée booléenne pourrait être définie à VRAI si elle n'est pas câblée.

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

Pas utile