LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Comment crée une boucle qui ce répète le même nombre de fois que le nombre d'impultions que reçoit l'entrée compteur de ma carte NI USB-6009 ?

Bonjour à tous,

 

Je cherche à relever la tension aux bornes d'un capteur en fonction de la position de celui-ci donc en fonction du nombre de pas du moteur qui le déplace.

Pour celà je cherche comment créer une boucle qui ce répète le même nombre de fois que le nombre d'impultions que reçoit l'entrée compteur de ma carte NI USB-6009.

 

Le problème c'est que lorsque j'utilise pour cela une boucle while, la mesure ce fait en continue même si je n'ai aucune impulsion sur mon compteur (que le moteur ne tourne pas).

Alors que je voudrais que la mesure ne se fasse que quand me moteur tourne et s'arrete lorsque qu'il s'arrete.

 

Je suis vraiment débutant avec LabView j'ai donc beaucoup de peine malgré plusieurs heures d'essai infructueux.

 

Ci-joint le .VI actuel.

 

Merci d'avance à tous pour votre temps et votre aide.

 

Cordialement,

 

Alpine13

0 Kudos
Message 1 of 21
(3,387 Views)

Bonjour Alpine 13,

 

Pour créer une boucle qui ce répète le même nombre de fois que le nombre d'impultions de compteur, il faut utiliser le boucle "for" qui prend les impulsion de votre compteur comme l'entrée.Je vous suggère de commencer avec un simple exemple. Regardez l'exemple suivant:

 

LabVIEW >> Help >> Find Examples >> Hardware Input and Output >> DAQmx >> Counter Measurements >> Count Digital Events >> Count Digital Events.vi


Vous pouvez modifier cet exemple, de façon suivant. Mettez un boucle "for" dans le boucle "while" et branchez le sortie "Data" dans le nombre d'itérations de votre boucle "for", de cette façon votre boucle "for" va executer  le même nombre de fois que le nombre d'impultions de votre compteur. Aussi pour devenir plus à l'aise avec la programmation LabVIEW,  je vous recommande les articles suivants:

 

Learn 10 Functions in NI-DAQmx and Handle 80 Percent of Your Data Acquisition Applications

 

Getting Started with NI-DAQmx: Main Page

Synchronize Encoder Counter Input and Analog Input


Mikhail
RF Toolkits, Product Support Engineer
National Instruments
Message 2 of 21
(3,375 Views)

Bonjour,

 

J'avais déjà testé la boucle FOR mais les résultats n'étaient pas concluants, mais je n'avais pas pensé à mettre la boucle FOR dans la boucle WHILE en effet, je vais essayer cela et je vous tiens au courant.

 

Merci beaucoup pour votre aide précieuse.

 

Cordialement,

 

Alpine

0 Kudos
Message 3 of 21
(3,365 Views)

J'ai installé la version française de Labview (en remplacement de la version anglaise) et ma carte NI USB-6009 ne marche plus, elle n'est plus détecté, même par Signal Express qui lui n'as pas changé. Je ne vois pas du tout d'ou peut venir le problème.

 

Merci d'avance pour votre aide.

 

Cordialement,

 

Alpine

0 Kudos
Message 4 of 21
(3,361 Views)

Problème résolu. Cependant la boucle FOR dans la boucle While n'est pas une solution car supposons que le nombre d'impulsions s'arrete, la boucle FOR ce repete a l'infini avec la valeur du nombre de pas. Ce qui me donne au final plus de mesures que de pas.

0 Kudos
Message 5 of 21
(3,357 Views)

Il faudrait réinitialiser le compteur après la lecture du train d'impulsion ou utiliser un shift register pour mesurer la différence entre deux lectures du compteur. Dans ce dernier cas si le nombre d'impulsion s'arrête alors la différence entre deux lectures est de zéro.

 

Ben64

0 Kudos
Message 6 of 21
(3,354 Views)

Ton idée est bonne cependant ce qu'il me manque ce sont les solution techniques, pourrait tu m'indiquer quels "boites" utiliser pour réaliser ses fonctions ?

 

Merci d'avance.

 

Alpine

0 Kudos
Message 7 of 21
(3,342 Views)

Tu peux poster ton VI en version LV2009?

 

Ben64

0 Kudos
Message 8 of 21
(3,338 Views)

Voici une version très simplifiée de l'idée.

 

Itération sortie compteur.png

 

Ben64

Message 9 of 21
(3,333 Views)

J'ai réussi a utiliser le shift register comme tu le conseil et ça marche parfaitement, cependant j'ai un soucis avec ma boucle FOR qui a une éxécution paticulièrement lente, aurait tu une idée ?

0 Kudos
Message 10 of 21
(3,331 Views)