Structures de données dans LabVIEW

Inclus dans cette page

Type de données chaîne


Une chaîne est une séquence de caractères ASCII affichables ou non. Les chaînes fournissent un format indépendant de la plate-forme pour les informations et les données. Certaines des applications les plus courantes utilisant les chaînes offrent les fonctions suivantes :

  • La création de messages textuels simples.
  • Le contrôle d'instruments par l'envoi de commandes textuelles à l'instrument et le renvoi de valeurs de données sous forme de chaînes binaires ou ASCII que vous convertissez ensuite en valeurs numériques
  • Le stockage des données numériques sur le disque. Pour stocker des données numériques dans un fichier ASCII, vous devez les convertir en chaînes avant de les écrire sur un fichier du disque.
  • La notification de l'utilisateur par des messages ou des instructions avec des boîtes de dialogue.

Sur la face-avant, les chaînes apparaissent comme des tables, des boîtes d'entrée de texte et des étiquettes. LabVIEW comprend des fonctions et des VIs intégrés servant à manipuler des chaînes, notamment les chaînes de formatage, d'analyse et autres processus d'édition. Les données chaîne sont représentées dans LabVIEW par du rose.

Obtenir plus d'informations sur les données chaîne

Type de données numérique

Dans LabVIEW, les données numériques sont représentées comme des nombres en virgule flottante, des nombres en virgule fixe, des entiers, des entiers non signés et des nombres complexes. Les données numériques en double ou simple précision ou complexes sont représentées par du orange dans LabVIEW. Tous les nombres entiers sont représentés par du bleu.

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.

Obtenir plus d'informations sur les données numériques

Afficher un tableau des types de données numériques

Type de données booléen


LabVIEW enregistre les données booléennes sous forme de valeurs de 8 bits. Vous pouvez utiliser un booléen dans LabVIEW pour représenter un 0 ou un 1, ou un VRAI ou FAUX. Si la valeur 8 bits est zéro, la valeur booléenne est FAUX. Toute valeur non nulle est VRAI. Des applications courantes pour des données de type booléen incluent la représentation de données numériques et les commandes de face-avant de type commutateur dont l'action mécanique est souvent utilisée pour contrôler une structure d'exécution, telle qu'une structure Condition. Une commande booléenne est généralement utilisée comme la condition de sortie d'une boucle While. Dans LabVIEW, les données booléennes sont représentées en vert.

Obtenir plus d'informations sur les actions mécaniques des commandes booléennes

Type de données dynamique

La plupart des VIs Express acceptent et/ou renvoient des types de données dynamiques, qui apparaissent comme des terminaux bleu foncé.

En utilisant les VIs Convertir en données dynamiques et Convertir des données dynamiques, vous pouvez convertir des données numériques en virgule flottante ou des données booléennes, des types de données suivants :

  • Tableau 1D de waveforms
  • Tableau 1D de scalaires
  • Tableau 1D de scalaires - valeur la plus récente
  • Tableau 1D de scalaires - une seule voie
  • Tableau 2D de scalaires - les colonnes sont les voies
  • Tableau 2D de scalaires - les lignes sont les voies
  • Scalaire unique
  • Waveform unique

Câblez des données de type dynamique à l'indicateur capable de les présenter de la meilleure manière. Les indicateurs comprennent un graphe, un graphe déroulant, un indicateur numérique ou un indicateur booléen. Cependant, comme les données dynamiques doivent subir une conversion automatique pour correspondre à l'indicateur auquel elles sont câblées, les VIs Express risquent de ralentir l'exécution du diagramme.

Le type de données dynamique est prévu pour être utilisé avec les VIs Express. La plupart des autres VIs et fonctions livrés avec LabVIEW n'acceptent pas ce type de données. Pour pouvoir utiliser les fonctions ou les VIs intégrés afin d'analyser ou traiter les données contenues dans des données dynamiques, il convient d'abord de convertir ces données.

Obtenir plus d'informations sur les données dynamiques

Tableaux

Il est parfois utile de regrouper des données apparentées. Utilisez des tableaux et des clusters pour regrouper des données apparentées dans LabVIEW. Les tableaux combinent des points de données du même type dans une structure de données, et les clusters combinent des points de données de types différents dans une structure de données.

Un tableau est défini par des éléments et des dimensions. Les éléments sont les points de données qui constituent le tableau. Une dimension est la longueur, la hauteur ou la profondeur d'un tableau. Un tableau peut avoir une ou plusieurs dimensions et jusqu'à (231) – 1 éléments par dimension, en fonction de la capacité mémoire.

Vous pouvez construire des tableaux de données numériques, de booléens, de chemins, de chaînes, de waveforms et de clusters. Pensez à utiliser des tableaux lorsque vous travaillez avec beaucoup de points de données semblables et lorsque vous effectuez des calculs répétitifs. Les tableaux sont utiles pour stocker des données provenant de waveforms ou générées dans des boucles, où chaque itération d'une boucle produit un élément du tableau.

Remarque : les indices de tableau dans LabVIEW commencent à la valeur zéro. L'indice du premier élément dans le tableau, quelle que soit sa dimension, est zéro.

Les éléments d'un tableau sont ordonnés. Un tableau utilise un indice pour vous permettre d'accéder facilement à un élément particulier. L'indice est basé sur zéro, ce qui signifie qu'il se trouve dans la gamme de 0 à n-1, où n est le nombre d'éléments du tableau. Par exemple, n-12 pour les 12 mois de l'année, et l'indice va de 0 à 11. Mars étant le troisième mois, son indice est 2.

La Figure n°1 présente un exemple de tableau de numériques. Le premier élément visible dans le tableau (3,00) est à l'indice 1, et le deuxième élément (1,00) est à l'indice 2. L'élément à l'indice 0 n'est pas visible sur cette figure car l'élément 1 est sélectionné dans l'afficheur d'indice. L'élément sélectionné dans l'afficheur d'indice fait toujours référence à l'élément affiché dans le coin supérieur gauche de l'afficheur d'éléments.

(1) Afficheur d'indices  |  (2) Afficheur d'éléments

Figure 1. Commande tableau de numériques

Création de commandes et indicateurs tableau

Créez une commande ou un indicateur tableau sur la face-avant en y plaçant un tableau vide, illustré dans la Figure n°2, et en y faisant glisser un élément ou un objet de données, lequel peut être une commande ou un indicateur numérique, booléen, chaîne, chemin, refnum ou cluster.

Figure 2. Placement d'une commande numérique dans un tableau vide

Si vous essayez de déplacer une commande ou un indicateur non valide dans l'enveloppe de tableau, vous ne pourrez pas déposer la commande ou l'indicateur dans l'enveloppe de tableau.

Avant d'utiliser un tableau sur le diagramme, vous devez insérer un objet dans le tableau vide. Sinon, le terminal tableau est noir et aucun type de données n'apparaît entre les crochets.

Tableaux à deux dimensions

Les exemples précédents utilisent des tableaux 1D. Un tableau 2D stocke des éléments dans une grille. Pour repérer un élément, vous avez besoin d'un indice de colonne et d'un indice de ligne, les deux commençant à zéro. La Figure n°3 montre un tableau 2D à 8 colonnes et 8 lignes contenant 8 × 8 = 64 éléments.

Figure 3.Tableau 2D

Pour ajouter un tableau multidimensionnel sur la face-avant, effectuez un clic droit sur l'afficheur d'indice et sélectionnez Ajouter une dimension dans le menu local. Vous pouvez aussi redimensionner l'afficheur d'indice jusqu'à ce que vous obteniez le nombre de dimensions souhaité.

Initialisation des tableaux

Vous pouvez initialiser un tableau ou le laisser non initialisé. Un tableau est initialisé si vous avez défini le nombre d'éléments de chaque dimension et le contenu de chaque élément. Un tableau non initialisé contient un nombre fixe de dimensions, mais pas d'éléments. La Figure n°4 représente une commande tableau 2D non initialisée. Notez que tous les éléments sont grisés. Ceci indique que le tableau n'est pas initialisé.

Figure 4. Tableau 2D non initialisé

Dans un tableau 2D, une fois que vous avez initialisé un élément, tout élément non initialisé de cette colonne et des colonnes précédentes est initialisé et rempli par la valeur par défaut de ce type de données. Dans la Figure n°5, une valeur 4 est entrée dans la colonne 2 du tableau de base 0. Les éléments précédents des colonnes 0, 1 et 2 sont initialisés à 0, qui est la valeur par défaut pour le type de données numériques.

Figure 5. Tableau 2D initialisé avec neuf éléments

Création de constantes tableau

Pour créer une constante tableau sur le diagramme, sélectionnez une constante tableau sur la palette Fonctions, positionnez le tableau vide sur le diagramme et placez-y une constante chaîne, une constante numérique, une constante booléenne ou une constante cluster. Vous pouvez utiliser une constante tableau pour enregistrer les données d'une constante ou pour effectuer une comparaison avec un autre tableau.

Auto-indexation des entrées de tableau


Si vous câblez un tableau à une boucle For ou une boucle While, vous pouvez associer chaque itération de la boucle à un élément de ce tableau en activant l'auto-indexation. Pour indiquer que l'auto-indexation est activée, l'image du tunnel passe d'un carré plein à l'illustration suivante. Pour changer l'état du tunnel, effectuez un clic droit sur le tunnel et sélectionnez Activer l'indexation ou Désactiver l'indexation dans le menu local.

Tableaux en entrée

Si vous activez l'indexation automatique pour un tableau câblé à un terminal d'entrée de boucle For, LabVIEW adapte le terminal de décompte à la taille du tableau pour que vous n'ayez pas besoin de câbler le terminal de décompte. Dans la mesure où vous pouvez utiliser des boucles For pour traiter les éléments d'un tableau un par un, LabVIEW active l'auto-indexation par défaut pour chaque tableau que vous câblez à une boucle For. Vous pouvez désactiver l'auto-indexation si vous n'avez pas besoin de traiter des tableaux élément par élément.

Dans la Figure n°6, la boucle For s'exécute un nombre de fois égal au nombre d'éléments du tableau. Normalement, si le terminal de décompte de la boucle For n'est pas câblé, la flèche d'exécution est brisée. Cependant, dans ce cas-ci, la flèche d'exécution n'est pas brisée.

Figure 7. Tableau utilisé pour définir le nombre d'itérations de la boucle For

Si vous activez l'auto-indexation pour plusieurs tunnels ou si vous câblez le terminal de décompte, le nombre d'itérations sera le plus petit parmi les choix. Par exemple, si deux tableaux auto-indexés entrent dans la boucle, avec respectivement 10 et 20 éléments, et que vous câblez la valeur 15 au terminal de décompte, la boucle exécute 10 itérations en indexant tous les éléments du premier tableau mais en n'indexant que les 10 premiers éléments du deuxième tableau.

Tableaux en sortie

Lorsque vous auto-indexez le tunnel de sortie d'un tableau, le tableau en sortie reçoit un nouvel élément à chaque itération de la boucle. Ainsi, les tableaux auto-indexés en sortie ont toujours une taille égale au nombre d'itérations.

Le fil reliant le tunnel de sortie à l'indicateur tableau devient plus épais quand il se transforme en tableau sur le cadre de la boucle, et le tunnel de sortie contient des crochets représentant un tableau.

Figure 7. Sortie auto-indexée

Cliquez avec le bouton droit sur le tunnel sur le cadre de la boucle et sélectionnez Activer l'indexation ou Désactiver l'indexation dans le menu local pour activer ou désactiver l'auto-indexation. L'auto-indexation pour les boucles While est désactivée par défaut.

Désactivez l'indexation automatique si seule la dernière valeur transmise par le tunnel vous intéresse.

Création de tableaux à deux dimensions

Vous pouvez utiliser deux boucles For imbriquées l'une dans l'autre pour créer un tableau 2D. La boucle For extérieure crée les éléments de ligne tandis que la boucle intérieure crée les éléments de colonne.

Figure 8. Création d'un tableau 2D

Clusters

 

Vidéo : Clusters

Les clusters regroupent des éléments de données de types différents. Le cluster d'erreur LabVIEW en est un exemple ; il comprend une valeur booléenne, une valeur numérique et une chaîne. Les clusters sont semblables aux "record" et "struct" des langages de programmation textuels.

L'assemblage de plusieurs éléments de données dans des clusters évite d'encombrer le diagramme et réduit le nombre de terminaux de connexion nécessaires pour les sous-VIs. Le connecteur peut avoir un maximum de 28 terminaux. Si votre face-avant contient plus de 28 commandes et indicateurs qui seront utilisés par un autre VI, regroupez certains d'entre eux dans un cluster et affectez le cluster à un terminal du connecteur.

La plupart des clusters sur le diagramme possèdent un modèle de fil de liaison et un terminal de type de données roses. Les clusters d'erreur ont un modèle de fil et un terminal de type de données jaune foncé. Les clusters de valeurs numériques, appelés parfois des points, possèdent un modèle de fil de liaison et un terminal de type de données marron. Vous pouvez câbler les clusters numériques marron aux fonctions numériques, comme Additionner ou Racine carrée, pour effectuer la même opération simultanément sur tous les éléments du cluster.

Ordre des éléments d'un cluster

Bien que les éléments des clusters et des tableaux soient ordonnés, vous pouvez désassembler tous les éléments d'un cluster en même temps en utilisant la fonction Désassembler. Vous pouvez utiliser la fonction Désassembler par nom pour désassembler les éléments d'un cluster d'après leur nom. Si vous utilisez la fonction Désassembler par nom, tous les éléments du cluster doivent avoir une étiquette. Les clusters diffèrent également des tableaux de par leur taille fixe. Comme un tableau, un cluster est soit une commande soit un indicateur. Un cluster ne peut pas contenir simultanément des commandes et des indicateurs.

Création de commandes et indicateurs cluster

Créez une commande ou un indicateur cluster sur la face-avant en y plaçant un cluster vide, comme dans la face-avant suivante, et en y faisant glisser un élément ou un objet de données, comme une commande ou un indicateur numérique, booléen, chaîne, chemin, refnum ou cluster.

Lorsque vous déposez un cluster, vous pouvez le redimensionner en faisant glisser le curseur.

Figure 9. Création d'une commande Cluster

La Figure n°10 est un exemple de cluster qui comporte trois commandes : une chaîne, un commutateur booléen et un numérique.

Figure n°10. Exemple de commande cluster

Création de constantes cluster

Pour créer une constante cluster sur le diagramme, sélectionnez une constante cluster sur la palette Fonctions, positionnez le cluster vierge sur le diagramme et mettez-y une constante chaîne, une constante numérique, une constante booléenne ou une constante cluster. Vous pouvez utiliser une constante cluster pour stocker les données d'une constante ou pour effectuer une comparaison avec un autre cluster.

Si la face-avant contient une commande ou un indicateur cluster et que vous souhaitez créer une constante cluster contenant les mêmes éléments sur le diagramme, faites glisser ce cluster de la fenêtre de la face-avant jusqu'au diagramme. Une autre possibilité consiste à cliquer avec le bouton droit sur le cluster de la fenêtre de la face-avant pour sélectionner Créer»Constante dans le menu local.

Utilisation des fonctions de cluster

Utilisez les fonctions de cluster pour créer et manipuler des clusters. Par exemple, vous pouvez effectuer des tâches semblables aux suivantes :

  • Extraire des éléments de données individuels d'un cluster.
  • Ajouter des éléments de données individuels à un cluster.
  • Décomposer un cluster en ses différents éléments de données.

Utilisez la fonction Assembler pour assembler un cluster, les fonctions Assembler et Assembler par nom pour modifier un cluster et les fonctions Désassembler et Désassembler par nom pour désassembler des clusters.

Vous pouvez également déposer une fonction Assembler, Assembler par nom, Désassembler ou Désassembler par nom sur le diagramme en cliquant avec le bouton droit sur un terminal de cluster du diagramme et en sélectionnant Palette Cluster, Classe et Variant dans le menu local. Les fonctions Assembler et Désassembler contiennent automatiquement le nombre correct de terminaux. Les fonctions Assembler par nom et Désassembler par nom apparaissent avec le premier élément du cluster. Utilisez l’outil Flèche pour redimensionner les fonctions Assembler par nom et Désassembler et afficher les autres éléments du cluster.

Assemblage de clusters

Utilisez la fonction Assembler pour assembler un cluster à partir d’éléments individuels ou pour modifier les valeurs d’éléments individuels dans un cluster existant sans avoir à spécifier de nouvelles valeurs pour tous les éléments. Utilisez l'outil Flèche pour redimensionner la fonction ou cliquez avec le bouton droit sur l'entrée d'un élément et sélectionnez Ajouter une entrée dans le menu local.

Figure n°11. Assemblage d'un cluster sur le diagramme

Modification d'un cluster

Si vous câblez l’entrée cluster, vous pouvez vous contenter de ne câbler que les éléments que vous souhaitez changer. Par exemple, le cluster en entrée illustré dans la Figure n°12 se compose de trois commandes.

Figure n°12. Utilisation de la fonction Assembler pour modifier un cluster

Si vous connaissez l'ordre du cluster, vous pouvez utiliser la fonction Assembler pour changer la valeur de Commande en câblant les éléments représentés dans la Figure n°12.

Vous pouvez aussi utiliser la fonction Assembler par nom, pour accéder aux éléments nommés d'un cluster existant ou les remplacer. Assembler par nom fonctionne de la même manière que la fonction Assembler, mais au lieu de référencer les éléments du cluster dans l'ordre de celui-ci, elle les référence d'après leur étiquette liée. Vous ne pouvez accéder qu'aux éléments qui ont des étiquettes liées. Il n'est pas nécessaire que le nombre d'entrées soit identique à celui des éléments du cluster de sortie.

Cliquez sur un terminal d'entrée avec l'outil Doigt et sélectionnez un élément dans le menu déroulant. Vous pouvez également cliquer avec le bouton droit sur l'entrée et sélectionner l'élément dans le menu local de Sélectionner un élément.

Dans la Figure n°13, vous pouvez utiliser la fonction Assembler par nom pour mettre à jour les valeurs de Commande et de Fonction avec les valeurs de Nouvelle commande et de Nouvelle fonction.

Figure n°13. Utilisation de la fonction Assembler par nom pour modifier un cluster

Utilisez la fonction Assembler par nom pour les structures de données susceptibles de changer pendant le développement. Si vous ajoutez un nouvel élément au cluster ou si vous en modifiez l'ordre, il n'est pas nécessaire de recâbler la fonction Assembler par nom, car les noms sont encore valides.

Désassemblage de clusters

Utilisez la fonction Désassembler pour désassembler les différents éléments d'un cluster.

Utilisez la fonction Désassembler par nom pour renvoyer les éléments de cluster dont vous spécifiez le nom. Le nombre de terminaux de sortie ne dépend pas du nombre d'éléments contenus dans le cluster d'entrée.

Cliquez sur un terminal de sortie avec l'outil Doigt pour sélectionner un élément dans le menu déroulant. Vous pouvez également cliquer avec le bouton droit sur le terminal de sortie et sélectionner l'élément dans le menu local de Sélectionner un élément.

Par exemple, si vous utilisez la fonction Désassembler avec le cluster de la Figure n°14, elle comporte quatre terminaux de sortie correspondant aux quatre commandes du cluster. Vous devez connaître l'ordre du cluster pour associer le terminal booléen correct du cluster désassemblé à l'interrupteur correspondant du cluster. Dans cet exemple, les éléments sont classés de haut en bas à partir de l'élément 0. Si vous appliquez la fonction Désassembler par nom, vous pouvez avoir un nombre arbitraire de terminaux de sortie et accéder aux éléments individuels par leur nom quel que soit leur ordre dans le cluster.

Figure n°14. Désassembler et Désassembler par nom

Énums

Un énum (commande, constante ou indicateur énumération) est une association de types de données. Un énum représente une paire de valeurs (une chaîne et un numérique) qui peut faire partie d'une liste de valeurs. Par exemple, si vous avez créé un type d'énum appelé Mois, les paires de valeurs possibles pour une variable Mois sont janvier-0, février-1 et ainsi de suite jusqu'à décembre-11. La Figure n°15 montre un exemple de ces paires de données dans la boîte de dialogue Propriétés d'une commande de type énumération. Vous pouvez y accéder en cliquant avec le bouton droit sur la commande énum et en sélectionnant Éditer les éléments.

Figure n°15. Propriétés de la commande de type énumération Mois

Les énums sont utiles car il est plus simple de manipuler des nombres que des chaînes sur le diagramme. La Figure n°16 montre la commande de type énumération Mois, une paire de données sélectionnée dans la commande de type énumération et le terminal correspondant sur le diagramme.

(1) Commande de la face-avant | (2) Sélection d'un élément | (3) Terminal du diagramme

Figure n°16. Mois : commande de type énumération

Outil Sonde


Utilisez l'outil Sonde pour vérifier les valeurs intermédiaires sur un fil de liaison lors de l'exécution d'un VI.

Utilisez l'outil Sonde si votre diagramme comporte une série d'opérations qui sont toutes susceptibles de 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 est passée par ce fil de liaison.

Découvrir LabVIEW d'une nouvelle façon

Découvrez ces concepts LabVIEW à travers une nouvelle expérience interactive.

Continuez votre apprentissage

Préc. Outils de mise au point dans LabVIEW
Structures d'exécution Suivant