Structures d'exécution dans LabVIEW

Inclus dans cette page

Les structures d'exécution incluent des sections de code graphique et commandent la manière et le moment de l'exécution du code qu'elles contiennent. Les structures d'exécution les plus courantes sont les boucles While, les boucles For et les Structures Condition que vous pouvez utiliser pour exécuter plusieurs fois la même portion de code, ou pour exécuter une portion différente de code en fonction d'une condition donnée.

Boucles

 

Vidéo : Création de boucles dans LabVIEW

Boucles While

Comme les boucles Do et les boucles Repeat-Until des langages de programmation textuels, la boucle While, représentée dans la Figure 1, exécute le code jusqu'à ce qu'une condition ait lieu.

(1)  Boucle While dans LabVIEW | (2) Organigramme | (3) Pseudo-code

La Figure n°1 montre une boucle While sous LabVIEW ainsi qu'un organigramme et
un exemple de pseudo-code équivalents à la fonctionnalité de cette boucle While.

La boucle While est située sur la palette Structures. Sélectionnez la boucle While à partir de la palette, puis utilisez le curseur pour former un rectangle de sélection autour de la section du diagramme que vous souhaitez répéter. Quand vous relâchez le bouton de la souris, une boucle While englobe la section que vous avez sélectionnée.

Ajoutez les objets du diagramme à la boucle While en les faisant glisser pour les déposer à l'intérieur de celle-ci.

La boucle While exécute le code jusqu'à ce que le terminal de condition, un terminal d'entrée, reçoive une valeur booléenne particulière.

Vous pouvez également effectuer une gestion d'erreur élémentaire en utilisant le terminal de condition d'une boucle While. Lorsque vous câblez un cluster d'erreur au terminal de condition, seule la valeur Vrai ou Faux du paramètre état du cluster d'erreur est transmise au terminal. En outre, les éléments du menu local Arrêter sur condition Vrai, et Continuer sur condition Vrai, deviennent Arrêter si une erreur se produit, et Continuer tant que l'erreur est présente.


Le terminal d'itération est un terminal de sortie qui contient le nombre d'itérations achevées.

Le comptage des itérations d'une boucle While commence toujours à zéro.

Remarque : la boucle While s'exécute toujours au moins une fois.

Boucles infinies

Les boucles infinies illustrent une erreur courante de programmation qui produit une boucle sans fin.

Si la condition est Arrêter sur condition Vrai, et que vous placez le terminal de commande booléenne en dehors d'une boucle While, vous générez une boucle infinie lorsque la commande est sur FAUX au démarrage de la boucle.

Figure 2. Commande booléenne en dehors de la boucle While

Le changement de la valeur de la commande n'arrête pas la boucle infinie parce que la valeur n'est lue qu'une fois, avant que la boucle ne démarre. Pour utiliser une commande afin d'arrêter une boucle While, il faudrait placer le terminal de commande à l'intérieur de la boucle. Pour arrêter une boucle infinie, vous devez abandonner le VI en cliquant sur le bouton Abandonner l'exécution de la barre d'outils.

Dans la Figure n°3 la boucle While s'exécute jusqu'à ce que la sortie de la fonction Nombre aléatoire soit supérieure ou égale à 10,00 et que la commande Activer soit définie à Vrai. La fonction ET ne renvoie la valeur Vrai que si les deux entrées sont définies à Vrai. Sinon, elle renvoie Faux.

La Figure 3 contient une boucle infinie car la fonction aléatoire ne génère jamais de valeur égale ou supérieure à 10,00.

Figure 3. Boucles infinies

Tunnels de structure

Les tunnels acheminent les données vers l'intérieur et l'extérieur des structures. Le tunnel apparaît comme un carré coloré sur le bord de la boucle While. La couleur du tunnel correspond à celle du type de données câblé au tunnel. Les données sortent de la boucle une fois l'exécution de la boucle achevée. Lorsqu'un tunnel transmet des données à une boucle, celle-ci ne s’exécute qu’une fois les données arrivées au tunnel.

Dans la Figure 4, le terminal d’itération est connecté à un tunnel. La valeur du tunnel ne passe à l’indicateur Itérations que lorsque la boucle While termine son exécution.

Figure 4. Tunnel de boucle While

Seule la dernière valeur du terminal d’itération s’affiche dans l’indicateur Itérations.

Boucles For

released with niBCVideo v1.1

Vidéo : Utilisation des boucles For dans LabVIEW

Une boucle For exécute un sous-diagramme un nombre de fois prédéfini. La Figure 5 montre une boucle For dans LabVIEW, ainsi qu'un organigramme et un exemple de pseudo-code équivalents à la fonctionnalité de cette boucle.

(1)  Boucle For dans LabVIEW | (2) Organigramme | (3) Pseudo-code

Figure 5. Boucle For

La boucle For est située sur la palette Structures. Vous pouvez aussi placer une boucle While sur le diagramme, cliquer avec le bouton droit sur le bord de la boucle While et sélectionner Remplacer par une boucle For dans le menu local pour changer une boucle While en boucle For.


Le terminal de décompte est un terminal d'entrée dont la valeur indique combien de fois l'exécution du sous-diagramme doit être répétée.


Le terminal d'itération est un terminal de sortie qui contient le nombre d'itérations achevées.

Le comptage des itérations d'une boucle For commence toujours à zéro.

La différence entre la boucle For et la boucle While est que la boucle For s’exécute un nombre prédéfini de fois. Une boucle While n'arrête de s'exécuter que si le terminal de condition reçoit une valeur booléenne spécifique.

La boucle For de la Figure 6 génère un nombre aléatoire chaque seconde pendant 100 secondes et affiche les nombres aléatoires dans un indicateur numérique.

Figure 7. Exemple de boucle For

Ajout de cadencement aux boucles

Lorsqu'une boucle termine une itération, elle commence immédiatement à exécuter l'itération suivante, à moins qu'elle ne rencontre une condition d'arrêt. La plupart du temps, vous devez contrôler la fréquence ou le cadencement des itérations. Par exemple, si vous effectuez une acquisition de données et que vous voulez acquérir des données une fois toutes les 10 secondes, il vous faut un moyen de cadencer les itérations de boucle pour qu'elles se produisent toutes les 10 secondes. Même si vous n'avez pas besoin que l'exécution se produise à une certaine fréquence, vous devez laisser le temps au processeur d'effectuer d'autres tâches, comme répondre à l'interface utilisateur.

Fonction Attendre

Placer une fonction Attendre dans une boucle permet de mettre le VI en veille pendant un laps de temps défini. Ceci permet à votre processeur d'effectuer d'autres tâches pendant le temps d'attente. Les fonctions d'attente utilisent l'horloge en millisecondes du système d'exploitation.


La fonction Attendre (ms) attend que le compteur en millisecondes atteigne le nombre spécifié en entrée. Cette fonction garantit que la vitesse d'exécution de la boucle est au moins égale à la valeur spécifiée en entrée.

Structures Condition

released with niBCVideo v1.1

Vidéo : Utilisation des structures Condition dans LabVIEW


Une structure Condition comporte au moins deux sous-diagrammes, ou conditions.

Un seul sous-diagramme est visible à la fois et la structure exécute seulement une condition à la fois. Une valeur d'entrée détermine quel sous-diagramme s'exécute. La structure Condition est similaire aux déclarations switch ou aux déclarations "if...then...else" des langages de programmation textuels.


Le sélecteur de condition figurant en haut de la structure Condition contient le nom de la valeur du sélecteur qui correspond à la condition, encadré de chaque côté par les boutons d'incrémentation et de décrémentation.

Utilisez les flèches d'incrémentation et de décrémentation pour faire défiler les conditions disponibles. Vous pouvez également cliquer sur la flèche descendante située à côté de la condition et sélectionner une condition à partir du menu déroulant.


Câblez une valeur en entrée au terminal de sélection pour déterminer quelle condition exécuter.

Vous devez câbler une valeur de type entier, booléen, chaîne ou énumération au terminal de sélection. Vous pouvez positionner le terminal de sélection n'importe où sur le bord gauche de la structure Condition. Si le type de données du terminal de sélection est booléen, la structure a un cas Vrai et un cas Faux. Si le terminal du sélecteur de condition est un entier, une chaîne ou une valeur de type énumération, la structure peut posséder n'importe quel nombre de conditions.

Remarque : par défaut, les valeurs de chaînes que vous câblez au terminal de sélection sont sensibles à la casse. Pour autoriser des correspondances qui ignorent la casse, câblez une valeur de chaîne au terminal de sélection, cliquez avec le bouton droit sur le bord de la structure Condition et sélectionnez Rechercher en ignorant la casse, dans le menu local.

Si vous ne spécifiez pas de condition par défaut dans la structure Condition pour traiter des valeurs hors gamme, vous devez répertorier explicitement toutes les valeurs possibles en entrée. Par exemple, si le sélecteur est de type entier et que vous spécifiez des conditions pour les valeurs 1, 2 et 3, vous devez spécifier une condition par défaut qui s'exécutera si 4, ou tout autre entier non spécifié, est la valeur en entrée.

Remarque : vous ne pouvez pas spécifier une condition par défaut si vous câblez une commande booléenne au sélecteur. Si vous cliquez avec le bouton droit sur l'étiquette du sélecteur de condition, Désigner cette condition comme défaut n'apparaît pas dans le menu local. Définissez la commande booléenne sur Vrai ou Faux pour déterminer quelle condition s'exécute.

Cliquez avec le bouton droit sur le bord de la structure Condition pour ajouter, dupliquer, supprimer ou réordonner les conditions, ainsi que pour sélectionner une condition par défaut.

Sélection d'une condition

La Figure n°7 représente un VI qui utilise une structure Condition pour exécuter des codes différents en fonction de l'unité de température (°C ou °F) sélectionnée par l'utilisateur. Le premier diagramme montre la condition Vrai en premier plan. Dans le diagramme du milieu, la condition Faux est sélectionnée. Pour sélectionner une condition, entrez la valeur dans l'identificateur de sélecteur de condition ou utilisez l'outil Texte pour modifier les valeurs. Lorsque vous sélectionnez une autre condition, elle apparaît au premier plan sur le diagramme, comme le montre le diagramme de la Figure n°7.

Figure 7. Changer l'affichage des conditions d'une structure Condition

Si vous entrez une valeur de sélecteur qui n'a pas le même type que l'objet câblé au terminal de sélection, la valeur apparaît en rouge. Ceci indique que vous devrez supprimer ou éditer la valeur pour que le VI s'exécute. De même, en raison de l'erreur d'arrondi inhérente à l'arithmétique à virgule flottante, vous ne pouvez pas utiliser de valeur numérique à virgule flottante comme valeur du sélecteur de condition. Si vous câblez une valeur à virgule flottante à la condition, LabVIEW arrondit la valeur à l'entier le plus proche. Si vous tapez une valeur à virgule flottante dans le sélecteur de condition, la valeur apparaît en rouge pour indiquer que vous devez supprimer ou éditer la valeur avant de pouvoir exécuter la structure.

Tunnels d'entrée et de sortie

Vous pouvez créer plusieurs tunnels d'entrée et de sortie pour une structure Condition. Les entrées sont disponibles pour toutes les conditions, mais elles ne doivent pas forcément être utilisées par toutes les conditions. Cependant, vous devez définir un tunnel de sortie pour chaque condition.

Prenons le cas suivant : une structure Condition sur le diagramme comporte un tunnel de sortie, mais dans une ou plusieurs des conditions, aucune valeur en sortie n'est câblée au tunnel. Si vous exécutez cette condition, LabVIEW ne peut pas déterminer quelle valeur renvoyer en sortie. LabVIEW signale cette erreur en laissant le centre du tunnel en blanc. La condition non câblée n'est peut-être pas celle qui est actuellement visible sur le diagramme.

Pour corriger cette erreur, affichez les conditions pour lesquelles le tunnel de sortie n'est pas câblé et câblez une sortie au tunnel. Vous pouvez aussi cliquer avec le bouton droit sur le tunnel de sortie et sélectionner Utiliser la valeur par défaut si non câblé, dans le menu local, pour utiliser la valeur par défaut du type de données du tunnel pour tous les tunnels non câblés. Une fois que la sortie est câblée pour toutes les conditions, le tunnel de sortie est entièrement coloré.

Évitez d'utiliser l'option Utiliser la valeur par défaut si non câblé. Utiliser cette option ne documente pas clairement le diagramme et vous pouvez induire en erreur les autres programmeurs qui utilisent votre code. L'option Utiliser la valeur par défaut si non câblé rend aussi votre code difficile à mettre au point. Si vous utilisez cette option, sachez que la valeur par défaut utilisée est celle du type de données câblé au tunnel. Par exemple, si le type de données du tunnel est booléen, la valeur par défaut est FAUX.

Type de données Valeur par défaut
Numérique 0
Booléen FAUX
Chaîne vide (“”)

Tableau n°1. Valeurs par défaut des types de données

Autres structures

LabVIEW dispose d'autres types de structures d'exécution plus avancées, telles que les structures Événement (utilisées pour gérer les tâches activées par interruptions, telles que l'interaction avec les interfaces utilisateur) et les structures Séquence (pour forcer l'ordre d'exécution), qui ne relèvent pas de cette introduction. Pour en apprendre davantage sur ces structures, veuillez vous reporter à la rubrique correspondante de l'Aide LabVIEW.

Découvrir LabVIEW d'une nouvelle façon

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

Continuez votre apprentissage

Préc. Structures de données
Transfert de données entre les itérations d'une boucle Suivant