05-26-2015 03:27 AM - modifié 05-26-2015 03:29 AM
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
Résolu ! Accéder à la solution.
le 05-26-2015 03:36 AM
le 05-26-2015 07:07 AM
mercii 😄
le 05-26-2015 10:17 AM
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
le 05-26-2015 08:10 PM
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 ?
05-27-2015 02:51 AM - modifié 05-27-2015 02:53 AM
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.
le 05-27-2015 03:08 AM
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.
05-27-2015 03:32 AM - modifié 05-27-2015 03:34 AM
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]
le 05-27-2015 04:02 AM
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 😉
le 05-27-2015 04:33 AM
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 ! ... question d'objectif aussi (surtout).