From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Fonctionnement d'un programme

Résolu !
Accéder à la solution

Bonjour,

Je débute dans Labview et je bloque sur le fonctionnement d'un programme :

labview.PNG

D'après ce que je connais de Labview, il s'agit d'une boucle while ; je vois également que l'on compare la valeur d'un thermomètre avec une valeur de consigne ; la mesure se fait toutes les 100 ms.
Mais il y a plusieurs éléments que je ne maitrise pas notamment toute la ligne orange supérieure.

Quelqu'un peut-il m'aider ?

Merci

0 Compliments
Message 1 sur 10
1 493 Visites

Il s'agit d'un registre à décalage. Je vous invite à lire cette aide et à revenir ici si des questions subsistent.

0 Compliments
Message 2 sur 10
1 485 Visites

A chaque itération de la boucle, la valeur du thermomètre est ajoutée au début (index de la fonction d'insertion non défini >> valeur par défaut qui est 0 >> premier élément) du tableau.

 

Personnellement, j'utiliserai cette méthode plus simple pour arriver au même résultat :

  • relier la valeur du thermomètre sur le bord de la boucle
  • clic droit sur ce tunnel >> Tunnel Mode >> Indexing
  • comme les valeurs sont dans ce cas ajoutées à la suite du tableau, utiliser la fonction Reverse 1D Array si la température la plus récente doit être au début du tableau

JB_1-1644478216493.png

 

Le reste du code reste identique et n'est pas représenté dans l'image ci-dessus.

 

0 Compliments
Message 3 sur 10
1 478 Visites

Bonjour,

 

Donc, je mesure une température : cette valeur est insérée dans un tableau indicé par la valeur de l'itération qui commence à 0

On compare cette température à une consigne : si la valeur est supérieure ou si l'utilisateur stoppe l'acquisition, on sort de la boucle while.

A la sortie de la boucle, on transmet le tableau que l'on enregistre dans un document test.txt

Est-ce que mon raisonnement est juste ?

 

0 Compliments
Message 4 sur 10
1 455 Visites
Solution
Accepté par l'auteur du sujet nlbmoi

Juste à un détail près.

Comme l'indice de la fonction d'ajout au tableau n'est pas défini, LabVIEW utilise la valeur par défaut qui est 0. Ceci étant, la température la plus récente est ajoutée au début du tableau.

Comme expliqué, cette opération peut être simplifiée.

0 Compliments
Message 5 sur 10
1 441 Visites

Merci pour ces précisions

0 Compliments
Message 6 sur 10
1 429 Visites

Je me trompe peut-être, mais pour moi la valeur est ajoutée à la fin du tableau, et non au début.

Message 7 sur 10
1 341 Visites

Ce rapide essai vous donne raison.

 

Index non relié.png

 

Index égal 0.png

 

Cela me surprend un peu car lorsqu'une entrée n'est pas définie, LV prend normalement la valeur par défaut --> 0. De toute évidence, cela n'est pas le cas pour cette fonction. De quoi corriger mes suppositions.

0 Compliments
Message 8 sur 10
1 325 Visites

Je pense que cela dépend de la "logique" de l'action à mener. En général on ajoute un élément à la fin d'une liste, donc on prendra le dernier indice +1 dans le cas de cette fonction. Par contre, on lit bien les éléments d'un tableau dans l'ordre, donc la fonction indexer prendra 0 comme indice par défaut.

C'est en tout cas comme ça que je l'ai toujours interprété.

0 Compliments
Message 9 sur 10
1 319 Visites

Ma "logique" se basait sur le fait que, quand une entrée n'est pas définie, LV prend la valeur par défaut (0 pour une valeur numérique). Cette approche me semble plus cohérente que celle basée sur le comportement par défaut d'une fonction (par ex ajouter à la suite du tableau mais retirer au début). De toute évidence, les développeurs NI sont d'un autre avis. 😀

 

Merci pour le correctif et bonne journée.

0 Compliments
Message 10 sur 10
1 296 Visites