NI Home > Community > NI Discussion Forums

LabVIEW

Showing results for 
Search instead for 
Do you mean 
Reply
Member
Alpine13
Posts: 14
0 Kudos

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

Member
MikhailK
Posts: 148

Re: 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 ?

[ Edited ]

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
Member
Alpine13
Posts: 14
0 Kudos

Re: 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,

 

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

Member
Alpine13
Posts: 14
0 Kudos

Re: 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 ?

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

Member
Alpine13
Posts: 14
0 Kudos

Re: 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 ?

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.

Active Participant
ben64
Posts: 766
0 Kudos

Re: 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 ?

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

Member
Alpine13
Posts: 14
0 Kudos

Re: 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 ?

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

Active Participant
ben64
Posts: 766
0 Kudos

Re: 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 ?

Tu peux poster ton VI en version LV2009?

 

Ben64

Active Participant
ben64
Posts: 766

Re: 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 ?

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

 

Itération sortie compteur.png

 

Ben64

Member
Alpine13
Posts: 14
0 Kudos

Re: 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 ?

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 ?