Vous êtes sur la page 1sur 12

CHAPITRE

GROUPAGE DES DONNES ET FONCTIONS ASSOCIES

Comme nous lavons vu dans le prcdent chapitre, il existe divers types de donnes scalaires de base. Cependant, des donnes scalaires seules ne suffisent pas construire un logiciel dacquisition de donnes; il est souvent ncessaire de pouvoir traiter les donnes en groupes. Les groupes dlments se prsentent ou bien sous la forme de tableaux de donnes de mme type, ou simplement sous la forme dun groupement de donnes appel cluster. Dans un cluster les donnes peuvent tre du mme type ou de type diffrents. Nous verrons dans ce chapitre les types de groupage de donnes que LabVIEW offre et les oprations praticables sur ces mmes groupes.

Tableaux (arrays)
"Un tableau est dfini par des lments et des dimensions. Les lments sont les donnes qui constituent le tableau. Une dimension est la longueur, la hauteur ou la profondeur dun tableau. Un tableau peut avoir une ou plusieurs dimensions et jusqu (231) 1 lments par dimension, en fonction de la capacit mmoire" [2]. Un tableau est constitu de donnes de mme type, par exemple: des numriques, des boolens, des chemins, des chanes, des waveforms et des clusters. Nous sommes invitablement appel nous servir de tableaux lorsqu'on travaille avec un grand nombre de donnes semblables et lorsqu'on effectue des calculs rptitifs. Les tableaux sont particulirement utiles pour stocker les donnes gnres par boucles ou par la gnration et l'acquisition de signaux.

Construction des tableaux


Il existe plus dune manire de construire un tableau. La manire la plus simple est de construire le tableau partir de la face-avant. Voici la dmarche suivre: 1. Ouvrir la palette des commandes 2. Cliquer sur la sous-palette Array, Matrix & Cluster. 3. Ajoutez un tableau (array) sur la face-avant. cette tape, le tableau nest pas associ aucun type dlment. Son terminal est noir dans le diagramme. 4. Dans la palette de commandes, choisir l'lment de commande ou d'indicateur de votre choix (numrique, boolen, chane, etc.) et lajouter la face-avant.

Version 2008-02-16

25

5. Glisser cet lment l'intrieur du tableau, puis le relcher. Le tableau gardera llment et dans le diagramme, le tableau aura pris la couleur qui reprsente le type de donnes de l'lment insr. Par dfaut, le tableau aura une seule dimension. On peut ajouter une autre dimension (ou indice) l'aide du menu local du tableau.

Figure 2.1 : VI avant que le tableau ne soit dfini.

Version 2008-02-16

26

Figure 2.2 : VI pendant que le contrle numrique est gliss dans le tableau vide

Version 2008-02-16

27

Figure 2.3 : VI lorsque le tableau est dfini comme tant de type nombre virgule flottante double prcision (DBL). Le tableau est un dimension comme le montre son unique indice (rectangle blanc gauche) Il est galement possible de construire des tableaux avec la fonction Build Array, discute plus loin dans ce chapitre. Un tableau peut galement tre construit avec une boucle (While ou For) en mode d'auto-indexation. Les boucles sont abordes dans le chapitre 3.

Dimensions des tableaux


Les tableaux peuvent avoir plusieurs dimensions, mais par dfaut ils ont une dimension lors de leur cration. Lorsquon veut plus dune dimension, il faut faire un click droit sur le tableau et choisir Add Dimension dans le menu local. La procdure est rpte pour ajouter d'autres dimensions au tableau. On peut connatre le nombre de dimensions dune matrice de deux manires : Sur la face-avant, le nombre de compteurs d'indice correspond au nombre de dimensions, comme le montre la figure 2.4. Le nombre d'indices indique la dimension du tableau. Dans le diagramme, on peut connatre la dimension du tableau partir du style de trac des fils, comme on peut le voir la figure 2.4, o il y a des tableaux 1D, 2D et 3D.

Version 2008-02-16

28

Habituellement, pour la programmation des instruments virtuels, on utilise des tableaux 1D, 2D, et parfois des 3D. LabVIEW permet aussi de crer des tableaux avec autant de dimensions qu'on le dsire.

Figure 2.4 : Tableaux 1D, 2D, 3D dans la face-avant et le diagramme. Le trac des fils connecteurs change avec le nombre de dimensions.

Manipulation des tableaux


LabVIEW possde plusieurs fonctions qui servent manipuler directement les tableaux. Ces fonctions sont mieux adaptes un contexte dacquisition de donnes plutt qu' celui de lalgbre vectorielle. C'est pourquoi on ne retrouve pas dans les fonctions de LabVIEW certaines oprations telles que linversion dune matrice. Pour accder aux fonctions permettant la manipulation des tableaux, aller dans Functions Palette, Programming, Arrays. Voici quelques unes des fonctions disponibles :

Version 2008-02-16

29

Icne

Description Construire un tableau (build array) : Concatne plusieurs tableaux ou ajoute des lments un tableau n dimensions. Il existe deux modes de fonctionnement pour la fonction Construire un tableau, et le mode employ varie selon que vous slectionnez ou non l'option Concatner les entres dans le menu local. Si vous slectionnez l'option Concatner les entres (Concatenate Inputs), la fonction ajoute toutes les entres dans l'ordre, en formant un tableau en sortie ayant la mme dimension que le tableau en entre de plus grande dimension cbl. Si vous ne slectionnez pas Concatner les entres, la fonction construit un tableau en sortie ayant une dimension de plus que celle des entres. Les entres doivent avoir les mmes dimensions. La fonction ajoute chaque entre dans l'ordre, formant ainsi un sous-tableau, un lment, une ligne ou une page du tableau en sortie. Les entres sont combles, si ncessaire, afin que leur taille corresponde celle de la plus longue entre. Initialise un tableau (initialize array): Cre un tableau et assigne chaque lment la mme valeur. Taille d'un tableau (array size) : Renvoie le nombre d'lments situs dans chaque dimension du tableau. Indexer un tableau (index array) : Renvoie l'lment ou le sous-tableau d'un tableau n-dimensions, l'indice spcifi. Insrer dans un tableau (insert into array) : Insre un lment ou un soustableau dans le tableau n dimensions l'endroit spcifi par indice. Remplacer une portion d'un tableau (replace array subset) : Remplace un lment ou un sous-tableau d'un tableau l'endroit que vous spcifiez dans indice. Supprimer une portion de tableau (delete from array) : Supprime un lment ou un sous-tableau de tableau et renvoie le tableau modifi dans tableau sans le sous-tableau et l'lment ou le sous-tableau supprim dans partie supprime. Sous-ensemble d'un tableau (array subset) : Renvoie la portion d'un tableau commenant indice et contenant n lments, n reprsentant la valeur de longueur. Classer un tableau 1D (sort 1D array) : Renvoie une version classe du tableau avec les lments disposs dans l'ordre croissant. Renverser un tableau 1D (rotate 1D array) : Inverse l'ordre des lments de tableau.

Version 2008-02-16

30

Transposer un tableau 2D (transpose 2D array) : Rorganise les lments du tableau 2D de manire ce que le tableau 2D [i,j] devienne le tableau transpos[j,i]. Rechercher dans un tableau 1D (search 1D array) : Recherche un lment dans un tableau 1D en commenant l'indice de dpart. Comme la recherche est linaire, vous n'avez pas besoin de classer le tableau avant d'appeler cette fonction. LabVIEW arrte la recherche ds qu'il trouve l'lment. Il existe galement dautres oprations matricielles dans LabVIEW. Celles prsentes ci-dessus sont les plus courantes.

Chanes de caractres (Strings)


Une chane de caractres est une squence de caractres ASCII affichables ou non. LabVIEW offre la possibilit de manipuler les chanes de caractre. Ceci peut savrer utile lorsquon souhaite construire un programme qui sera utilis par un autre utilisateur, de sorte que le programme soit facile utiliser. Il est ainsi possible de programmer des messages derreur, de donner des noms des entres, denregistrer des fichiers avec des noms dtermins, de donner des indications lintrieur de fichiers de donnes enregistrs, etc. Les chanes de caractres sont constitues dun lment de 32 bit (numrique) en tte, suivi dune chane dlments de 8 bit (numriques, ayant un caractre associ chaque valeur).

Cration des chanes de caractres


Pour crer des chanes de caractres, galement nommes strings, aller dans la palette des Commandes, sous-palette Strings and Paths. Bien quil sagisse dun groupe dlments, les chanes de caractres sont traites comme des lments simples. Il est toutefois possible de manipuler les caractres lintrieur des chanes avec des fonctions semblables celles servant traiter les matrices. Pour introduire des caractres spciaux non affichables dans une chane, aller dans le diagramme, palette des fonctions, sous-palette Strings et slectionner les caractres voulus dans la liste. Voici la liste des caractres spciaux : Chane vide Retour Changement de ligne Fin de ligne Tabulation

Version 2008-02-16

31

Les chanes ont des fils connecteurs plus larges que ceux des lments scalaires, puisquen ralit il sagit de groupes de caractres ASCII.

Manipulation des chanes de caractres


La manipulation des chanes se fait avec des fonctions quon peut retrouver dans la palette des fonctions, sous-palette Programming, Strings. Voici quelques fonctions servant manipuler les chanes de caractres. Icne Description Nombre de caractres : Cette fonction retourne un lment numrique indiquant le nombre de caractres dans la chane. Assemblage (concatenate) : Cette fonction assemble plusieurs chanes de caractres dans une seule chane. Sous chane (subset) : Cette fonction retourne une sous chane contenue dans la chane entre. La sous chane est dfinie par l'index de son premier caractre et sa longueur.

Clusters ou ensembles dlments de donnes


Les ensembles dlments de donnes, ou clusters sont constitus dun nombre dlments de types semblables ou diffrents. L'utilisateur peut dfinir le nombre dlments, le nombre de types dlments et le nombre dlments de chaque type qui seront inclus dans un cluster. Certaines fonctions plus avances retournent galement des ensembles prdtermins. Lutilisateur doit donc manipuler ces ensembles pour en retirer linformation quil souhaite.

Construction des clusters


Les tapes menant la construction des ensembles sont nonces et illustres ci-dessous. 1. Ouvrir la palette des Commandes (Controls Palette) 2. Cliquer sur la sous-palette Arrays & Clusters. 3. Ajoutez un cluster sur le Front Panel. cette tape, le cluster est vide. Son terminal est noir dans le diagramme. 4. Dans la palette des commandes, choisir les lments de votre choix et les introduire., dans le cluster. 5. Note: Le type du premier lment introduit dans le cluster, une commande ou un indicateur, dtermine le type du cluster (commande ou indicateur). Tous les autres lment du cluster seront du mme type.

Version 2008-02-16

32

Figure 2.5 : VI avant que le cluster ne soit dfini

Figure 2.6 : VI lorsque lensemble est dfini par un lment numrique

Version 2008-02-16

33

Figure 2.7 : VI lorsque le cluster comprend un lment numrique et un lment boolen. La couleur du fil connecteur et du terminal dun cluster dpend de ce quil contient. En effet, si lensemble ne contient que des lments numriques, la couleur qui lui est associe est le marron. Autrement, la couleur qui lui est associe est le rose. Le fil connecteur dun ensemble est plus large que celui dune chane de caractres.

Ordonner les lments d'un cluster


Lorsquun cluster est construit, un numro est associ chacun des lments qui y sont introduits, et ce dans lordre o ils y sont introduits. Pour des considrations pratiques, il peut tre utile de changer lordonnancement des lments dans un cluster. Pour ce faire, les tapes sont les suivantes: 1. Dans la face-avant, faire un clic droit sur le rebord du rectangle du cluster 2. Choisir loption Reorder Controls In Cluster. 3. Une case blanche et une case noire apparaissent sur chacun des lments dans le cluster. La case noire montre lordre initial. Pour changer lordre des lments, cliquer dans les cases blanches. Un clic dans une case blanche pousse llment en dernier. Les autres lments prennent l'ordre le plus haut possible tout en respectant lordre dans lequel ils taient. 4. Lorsque que le nouvel ordonnancement est termin, appuyer sur ok .

Version 2008-02-16

34

Figure 2.8 : tape 2 : Clic droit sur le rebord du rectangle du cluster

Figure 2.9 : tape 3 : Choisir loption Reorder Controls in Cluster

Version 2008-02-16

35

Figure 2.10 : tape 4 : Changer l'ordre des lments dans le cluster

Manipuler les clusters


Les clusters sont manipuls laide de fonctions accessibles partir de la palette des fonctions (Functions Palette, programming, Cluster. Voici les plus utiles. Icne Description Assembler (Bundle) : Prend les lments l'entre et les groupe en un cluster, dans lordre o ils y sont entrs, c'est--dire de haut en bas. Dsassembler (Unbundle) : Prend un cluster et le dsassemble en lments individuels. Cette fonction sadapte automatiquement au nombre dlments que contient le cluster et illustre chacun des lments par le diminutif du type dlment et sa couleur. Construire une matrice de clusters : Cette fonction prend plusieurs tableaux 1D de diverses sortes dlments (ex : un tableau de boolens, un tableau de nombres, un tableau de chanes de caractres) et dsassemble ces tableaux pour construire un cluster qui contient un seul lment de chaque tableau, du mme index. Il rpte cette opration autant de fois que la longueur du plus long tableau et forme ainsi un nouveau tableau de clusters. Convertir un tableau en cluster et vice-versa

Version 2008-02-16

36