Transcript bouccles

Vous pouvez également définir une commande Cluster. Pour cela, on commence par tracer un cadre, puis on y met les commandes désirées. Prenez l’élément cluster, et placez-le sur la face avant. Prenez alors des commandes, et placez-les dans le cadre du cluster. Vous pouvez étirer facilement ce cadre si nécessaire. Voici le résultat sur le schéma : Ce principe se retrouve pour les tableaux. Un tableau peut être de dimensions multiple et contenir tous type de données. Par exemple, si vous voulez créer un tableau 2D d’entier, placez un cadre de tableau, tirez à gauche pour rajouter une dimension, puis faites y glisser une commande numérique. Vous pouvez cacher les boutons d’incrémentation par un clic droit, et donner des valeurs à vos éléments.

6.

Structure en G

6.1.

Structure While Loop

Relancer systématiquement le programme à la fin de son exécution n’est pas une solution très élégante. Nous allons rajouter un bouton d’arrêt et utiliser une structure de type « while loop ». Sur la fenêtre diagramme, faites un clic droit et choisissez dans la palette « structure » la fonction « Boucle While ». Encadrez votre diagramme existant : Tout ce qui est contenu dans le cadre sera exécuté jusqu’à ce que la condition représentée par Le symbole indique le compteur de boucle. Il s’incrémente à chaque répétition de la boucle. Faites un clic droit sur la condition d’arrêt, et choisissez de créer une commande. Un bouton STOP se rajoute en face avant et sa variable associée sur le diagramme. soit vraie. Introduction à labVIEW- BTS GOP 1 - Informatique 12

Lancez votre VI en cliquant sur à la place de . Arrêtez-le en cliquant STOP. Vous pouvez aussi changer le type de conditions d’arrêt. Faites un clic droit sur la condition, et choisissez « Continuer sur condition Vrai». Le symbole devient . Cette fois-ci, la boucle s’exécutera tant que la condition sera vraie. Dans notre cas, si l’on choisit ce type de condition, il faut rajouter un inverseur après la variable STOP : Vérifiez que votre programme tourne encore avec ce nouveau type de condition d’arrêt.

6.2.

Structure For Loop

Sauvegardez votre travail et créez un nouveau VI par Ctrl-N. Dans la fenêtre face avant, créez une commande graphe. Dans la fenêtre diagramme, mettez une structure « For Loop » (palette structures => « For Loop ») On retrouve notre index ainsi que le nombre de fois que la boucle s’exécute :

Attention, l’index i varie de 0 à N-1, la boucle s’exécute N fois.

Complétez votre VI pour avoir le schéma : Les constantes se créent en approchant le pointeur de l’icône où vous voulez créer la constante, en faisant un clic droit et en choisissant « Créer -> constante ». Sinus et division se trouvent dans la palette mathématique. Observez que sur ce diagramme : • Un « Triangle rouge » indique sur le diviseur qu’il y a eu transformation de type (entier => flottant) • Le fil de sortie de la boucle est plus épais : il s’agit d’un tableau de 100 éléments Introduction à labVIEW- BTS GOP 1 - Informatique 13

C’est important : la boucle for est dite « auto indexée », c’est pour cela qu’elle sort un tableau. Si vous ne voulez que le dernier élément de la boucle, placez-vous sur le « tunnel » (le petit carré entre ce qui est dans la boucle et ce qui ne l’est pas), faites un clic droit et choisissez « Désactiver l’indexation ». Le tunnel devient un carré plein . Vous pouvez également auto indexer une structure while, mais c’est dangereux : vous risquez de créer une saturation mémoire en ne contrôlant pas le nombre d’indice créés. Lancez votre VI et admirez le résultat !

6.3.

Registres à décalage

Poursuivons avec la boucle. Supprimez la liaison avec le terminal du graphe, éloignez-le et rajoutez une seconde boucle à coté de la première. Approchez-vous du bord gauche de votre nouvelle boucle, faites alors un clic droit et choisissez « Ajouter un registre à décalage ». Vous ajoutez alors deux éléments à gauche et à droite, qui correspondent à un registre à décalage : ce qui sort à droite sera présent à gauche au prochain passage dans la boucle. Prenons un exemple simple pour bien comprendre. Observez la largeur des fils dans la deuxième boucle : on traite les éléments un par un grâce à l’auto indexation. Il est alors inutile de

relier N, sa valeur sera celle du nombre d’entrée. d’éléments du tableau

Introduction à labVIEW- BTS GOP 1 - Informatique 14

Bref, un registre à décalage décale la sortie de droite à gauche à chaque itération de boucle. Pour des électroniciens, cela s’appelle un retard d’un échantillon, ou une multiplication par z -1 de l’entrée… Profitons-en pour faire un filtre ! Revenons à notre schéma précédent, et ajoutons encore un autre étage à notre registre à décalage. Cliquez avec le bouton droit sur l’élément de gauche et choisissez « Ajouter un élément ». Complétez alors le schéma comme ci-dessous. Equation de récurrence : Y n =-2.X

n + 2.X

n-2 Donc Y(z)=(-2+2.z

-2 ).X(z) Par défaut, un registre à décalage est initialisé à 0 Le dernier élément sert à construire à partir des tableaux [Sinus] et [Sinus filtré], le tableau [[Sinus],[Sinus filtré],] Le bloc se trouve dans la palette tableau « l’allonger» pour y rajouter des entrées. Rq : le bloc . Il se nomme construire un tableau, et vous pouvez permet de créer un tableau à partir de ses éléments, ou de concaténer les entrées, c’est à dire obtenir le tableau [sinus, sinus filtré]. Pour cela, faites un clic droit sur une des entrées et choisissez « Concatener les entrées ». Regardez alors la différence sur le graphique : vos deux graphes sont à la queue leu leu. Introduction à labVIEW- BTS GOP 1 - Informatique 15

Bon, mais mis à part les filtres numériques, vous vous dites que ce registre à décalage ne doit pas servir à grand chose… Détrompez-vous ! Voici un exemple simple d’utilisation : La montre permet d’attendre 30 ms avant de continuer, pour que vous compreniez bien le processus. Cela simule un long calcul. Le graphe du haut ne pourra se tracer qu’une fois la boucle terminée. Le graphe du bas, lui, se trace point par point. Pour cela, on ajoute à chaque itération le nouveau point calculé et on trace les points déjà calculés. Vous pouvez utiliser une autre représentation du registre à décalage, qui s’appelle nœud de rétroaction. Sur votre registre à décalage, faites un clic droit et choisissez « Remplacer par un nœud de rétroaction». Votre diagramme devient : C’est exactement la même chose, seul l’aspect graphique change, mais cela donne souvent des schémas plus clairs. Autre exemple typique : un asservissement. Le schéma classique implique une rétroaction, autrement dit un retour de la sortie Vs sur un soustracteur. Mais il est impossible pour LabVIEW de calculer la sortie du soustracteur, vue que Vs n’est pas encore déterminée… Solution : prendre un nœud de rétroaction, vous aurez alors un échantillon de retard, mais votre asservissement pourra fonctionner. A vous de choisir une fréquence d’échantillonnage suffisamment élevée pour que cela ne soit pas gênant (un retard est source d’instabilité) Voici un exemple d’asservissement avec correcteur proportionnel. Remarquez le nœud de rétroaction. L’entrée est un échelon, créée avec l’initialisation d’un tableau de 100 éléments à 1. Introduction à labVIEW- BTS GOP 1 - Informatique 16

6.4.

Structure condition

La structure condition permet d’effectuer un traitement différent selon le choix d’une entrée de sélection : On ne voit qu’une seule possibilité de traitement à la fois, cliquez sur les flèches de défilement pour voir les autres possibilités. C’est mieux que l’aiguillage car avec une structure condition un seul traitement est effectué, au lieu de deux. Surtout, vous n’êtes pas limités à une sélection à l’aide de booléen. Par contre, n’oubliez pas que : • • Toute sortie d’une structure condition doit être reliée dans tous les cas Tous les cas possibles doivent pouvoir être traités (un cas « default » est souvent nécessaire) Voici des exemples de structures case : ..0 toute valeur inférieure ou égale à 0 1,3,8 les valeurs 1, 3 ou 8 10..20 toutes valeurs comprises entre 10 et 20 2.. toute valeur supérieure ou égale à 2 « rouge », « vert » une entrée chaîne de caractère valant « rouge » ou « vert » Comme d’habitude, un clic droit sur l’indication du choix permet de faire apparaître les options possibles : Rajouter des cas « Ajouter une condition après» Définir le cas par défaut « Designer cette condition par défaut » Sont les plus importants. Nous allons changer la couleur d’un thermomètre pour mettre en évidence cette fonction Créez un nouveau VI vide, avec un thermomètre en face avant, et une commande énumération. Vous la trouverez dans la palette moderne, , Editez ses propriétés par un clic droit, allez dans l’onglet « Editer les éléments», et insérez les valeurs « Rouge», « Vert», « Bleu ». Validez par OK, puis double cliquez sur Enum pour passer dans le diagramme. Introduction à labVIEW- BTS GOP 1 - Informatique 17

Rajoutez une structure condition et câblez l’entrée de condition à votre énumération. Observez que seul deux cas sont présents dans votre structure condition. Faites un clic droit dessus et choisissez Pour avoir 3 cas. Maintenant, occupons nous du thermomètre. Pour en changer la couleur, nous allons utiliser un nœud de propriété qui répertorie toutes les propriétés de votre commande et permet de les changer. Faites un clic droit sur le thermomètre, et choisir Observez toutes les propriétés d’un simple thermomètre ! Par défaut, le nœud de propriété est en lecture. Faites un clic droit dessus pour le changer en écriture. Maintenant, il nous faut une boite à couleur. Comme je ne me rappelle jamais ou elle est rangée, voila l’occasion d’utiliser la fonction rechercher. Dans votre palette de fonction, cliquez et tapez « couleur» dans le champ de recherche. Double cliquez sur la première entrée, et placez la boite à couleur près de votre nœud de propriété. Reliez-les. Maintenant, cliquez la boite à couleur et choisissez du vert. Sélectionnez le cas « Vert » sur la structure condition, tracez un cadre autour de la boite à couleur et du nœud de propriété, et faites glisser l’ensemble vers votre structure condition, en maintenant Ctrl appuyé pour faire une copie. Faire de même avec les 2 autres couleurs, et testez votre VI en exécution continu. Introduction à labVIEW- BTS GOP 1 - Informatique 18

6.5.

Structure séquence

Cette structure permet d’obtenir un ordre dans l’exécution des fonctions. Cela permet de contrôler des processus ordonnés. Par exemple, avant de lire le contenu d’un fichier, il vaut mieux l’ouvrir… Voici un VI permettant de calculer votre rapidité à cliquer : Dans cet exemple : on attend que le bouton soit enfoncé une première fois on lance un chronomètre (attention, il décompte) et on attend un deuxième clic on calcule le temps mis pour cliquer on affiche ce temps en ms Pour que cet exemple fonctionne, il faut que votre bouton soit du type commutation à l’appui. Sinon, s’il est à armement, la lecture par LabVIEW de la valeur du bouton change cette valeur et invalide le test. J’en ai profité pour placer une variable locale. Cela permet de communiquer facilement des variables d’un bout à l’autre d’un schéma sans avoir des liaisons qui traversent tout l’écran et rendent le schéma difficilement lisible. Cela permet d’écrire dans une commande également. Par contre, cette variable ne peut être vue entre 2 VI tournant simultanément. Dans ce cas, il vous faut une variable globale. Pour créer une variable locale, faites un clic droit sur votre variable, choisissez créer -> Variable locale. Par défaut, elle est en écriture . Pour la placer en lecture, faites un clic droit et choisissez Testez votre structure, et voyez si vous cliquez plus vite que moi (67 ms sans tricher) Vous pouvez afficher votre structure de manière empilée, mais c’est moins lisible car vous ne pouvez voir qu’une étape à la fois. Une autre méthode pour assurer un séquencement, c’est de faire transiter une information d’un VI à l’autre. Par exemple, la gestion des erreurs. Introduction à labVIEW- BTS GOP 1 - Informatique 19

Voici un exemple de programme utilisant un GBF externe et générant un signal sinusoïdal. Transmission de la référence Référence de mon appareil pour le piloter Transmission de l’erreur Observez le chainage des blocs qui oblige l’exécution à s’effectuer de gauche à droite. Non seulement on chaîne la référence de l’appareil, mais également le flux d’erreur. Lorsqu’une erreur non nulle entre dans un bloc, le bloc en question se contente de faire suivre l’erreur sur sa sortie et n’accomplit aucune action.

6.6.

Structure boite de calcul

La structure « Boite de calcul » vous permet de rentrer directement des formules mathématiques. Vous avez le droit à énormément de fonctions (algébriques, booléennes…). L’ajout d’entrée ou de sortie se fait avec le menu contextuel (clic droit). Pensez à finir une expression par un point virgule « ; ».

7.

VI Express

Maintenant que vous connaissez les bases de LabVIEW, vous pouvez utiliser les VI express. Ce sont de puissants outils pour créer un programme complexe très rapidement… mais ils ne font pas tout ! Souvent vous ferez une grande partie de votre programme avec, mais vous aurez besoin des structures de bases pour la partie restante. C’est pour cela qu’il faut commencer par les structures de base, sinon vous serez frustré de ne pas pouvoir achever votre VI. Le principe est simple, vous placez un VI express générique, et vous l’adaptez à votre projet en le paramétrant. Par exemple, je veux afficher l’aspect temporel et spectral d’un signal carré et du même signal filtré. Vous pensez devoir vous préparer de l’aspirine ? Voici le code… Est-il possible de faire plus simple ? Introduction à labVIEW- BTS GOP 1 - Informatique 20