le 06-26-2020 04:01 AM
bonjour,
Je suis actuellement en stage et j'ai comme mission de créer des programmes avec Labview pour récuperer des données d'une pompe (température, pression, débit)
Sauf que je suis bloqué pour le programme de débit. Grâce à un DAQ, je récupère le signal d'un pulser et Je voudrais calculer le débit en instanné.
Pour cela, j'ai créé une boucle for dans lequel il y a une boucle while qui me permet récuperer le nombre de pulse pendant deux secondes et de calculer mon débit. Une fois les deux secondes passées, la boucle while s'arrete puis se relance grace à la boucle for. Cependant mon nombre de pulse ne se réinitialise pas ce qui me fausse mon débit. Comment faire pour réinitialiser cette valeur entre chaque boucle for ?
merdi d'avance pour votre aide.
Résolu ! Accéder à la solution.
le 06-26-2020 06:57 AM
Pour réinitialiser un compteur tu n'as pas le choix de le redémarrer (de mémoire). Tu n'as pas inclus ton programme donc je ne peux que supposer que dans ta boucle while tu lis une valeur par itération pendant 2 secondes en utilisant l'assistant DAQ (que je n'utilise jamais car il n'y a pas assez de latitudes). Également tu ne spécifies pas le matériel utilisé.
Tu pourrais éliminer la boucle while et tout simplement lire un nombre fini d'échantillons (par exemple 200 données à Fs = 100Hz échantillonnera pendant 2 secondes). Ce serait la meilleure méthode.
Regarde l'exemple Counter-Count Edges (Finite Clock).vi [Fait une recherche dans le NI Example Finder, menu Help -> Find Examples ...]. Dans la boucle For il n'y aurait que la section acquisition (les vi Start, Read et Stop), les autres vi seraient avant et après la boucle For.
Une alternative, utilise un registre à décalage sur ta boucle For qui contient le compte de l'itération précédente et à la fin de l'acquisition soustrait ce compte du résultat obtenu. C'est moins intuitif mais ça fonctionne.
Ben64
le 06-26-2020 07:18 AM
bonjour et merci de ta réponse,
Je suis debutant et je ne suis pas sur d'avoir tout compris. Cependant, la premiere méthode me parait impossible car dans mon cas, le débit doit varié très régulièrement, d'ou le fait d'avoir créer un programme qui récupère un nombre de pulses sur un temps donnée ( le nombre de pulses varie en fonction du débit)
Pour le matériel , j'utilise un DAQ avec la carte NI 9423 qui permet de compter des fronts montants (ou descendants).
Je mets ci-joint mon VI
chugchug
le 06-29-2020 11:06 AM
le 06-30-2020 01:29 AM
ça fonctionne parfaitement, merci beaucoup pour votre aide!
chugchug