Discussions au sujet de NI LabVIEW

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

file d'attente

Résolu !
Accéder à la solution

Bonjour, je veux enregistrer des mesures dans un fichier excel j'ai reussi a le faire mais je veux que la periode d'enregistrement soit plus petite, je voulais savoir comment utiliser une file d'attente pour stocker les mesures avant de les enregistrer car l'enregistrement au meme temps que l'aquisition prend beaucoup du temps

pouvez vous m'aider svp  

0 Compliments
Message 1 sur 11
5 435 Visites
Solution
Accepté par l'auteur du sujet CrisSTine01
Bonjour CriSTine,

As-tu regarder du côté de l'exemple fourni dans LabVIEW ? Il s'agit du modèle de conception Producteur/Consommateur (données) qui me semble suffisamment clair pour que tu puisses l'utiliser à ta guise.

Le principe est simple : créer une file d'attente que l'on remplit dans une première boucle productrice, et que l'on vide dans une seconde boucle consommatrice.

Si tu as d'autres questions n'hésite pas à le faire savoir 😉
CLAMaxime -- Kudos are a great way to say thank you
0 Compliments
Message 2 sur 11
5 430 Visites

mercii 😄 

0 Compliments
Message 3 sur 11
5 411 Visites

salut, l'enregistrement fonctionne avec la periode que je voulais, mais avez vous une idée comment eviter le décalage a la fin de l'exécution entre les dernières valeurs enregistrées et celles mesurées 

cordialement 

 

0 Compliments
Message 4 sur 11
5 396 Visites

si tu empiles dans ta file d'attente plus rapidement que tu ne dépiles pour enregistrer ...

 

tu auras forcément un décalage en fin de mesure ....

 

le temps que la boucle consommatrice dépile les dernières mesures et les enregistre.

 

à moins que tu veuilles tout stopper immédiatement après la dernière mesure .... au risque de perdre l'enregistrement des mesures toujours dans la file d'attente (??)

 

Mais mon raisonnement me semble trop évident .... je pense n'avoir pas réellement compris la question.

 

Pourrais-tu préciser / expliquer de quel "décalage" tu parles exactement ?

0 Compliments
Message 5 sur 11
5 388 Visites

Bonjour,

en effet lorsque j'arrete l'exécution il en reste des mesures qui sont acquises mais pas encore enregistrées dans mon fochier excel, je ne sais pas comment les récupérer

cordialement.

0 Compliments
Message 6 sur 11
5 380 Visites

Bonjour,

 

Assurez-vous avant d'arrêter la boucle qui gère l'enregistrement  lorsqu'il n'y a plus d'éléments dans la file d'attente (Obtenir le Statut de la File d'Attente), de telle façon que tous les éléments dans la file d'attente soient traités. Par défaut dans les exemples, on détruit immédiatement la file d'attente, ce qui arrête aussi la boucle consommatrice.

 

Cdt,

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

0 Compliments
Message 7 sur 11
5 372 Visites

je ne sais pas comment les récupérer

 

Quand tu actionnes l'arrêt de ton VI, cela ne doit pas être une action réelle, mais "une demande".

 

Demande d'arrêt qui sera validée "si et seulement si" la boucle consommatrice a terminé de vider la file d'attente, et donc terminé ses enregistrements.

 

Tu envoies ta demande d'arrêt à la boucle productrice .... celle-si stoppe .... en envoyant elle-même une demande d'arrêt à la boucle consommatrice.

 

La boucle consommatrice reçoit la demande d'arrêt et (par une logique) valide uniquement lorsque la file est vide.

 

Pour transmettre ta "demande" d'arrêt à la boucle consommatrice ... une variable locale, un Notifier, une FGV

 

ou tout simplement (si tu connais le temps maximum entre 2 mesures) ... via le "time out" de la fonction "Dequeue Element" (dans la boucle consommatrice)

 

Tu peux également "jouer" avec "Get Queue Status / nombre d'élements dans la queue.

 

Il y a certainement une bonne dizaine de façons différentes de faire ça.

 

Sans code sous les yeux, difficile de donner une solution concrète.

 

 

[edit]

je n'avais pas encore lu le message d'Eric quand j'ai posté. (bonjour Eric)

[/edit]

 

 

0 Compliments
Message 8 sur 11
5 367 Visites

merci beaucoup,au fait j'ai ajouter une fonction pour vider la file d'attente, le décalage a bien diminué je ne sais pas si c'est la bonne methode ou non mais ça me va 😉 

 

0 Compliments
Message 9 sur 11
5 358 Visites

sans code, impossible de donner un avis quelconque.

 

toute la différence entre "une" solution et "la bonne" solution. (la tienne peut très bien être la bonne)

 

Grand débat !  Smiley heureux ... question d'objectif aussi (surtout).

0 Compliments
Message 10 sur 11
5 353 Visites