Discussions au sujet de NI LabVIEW

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

arret automatique du programme

Bonjour,

 

cela fait un moment que je bloque sur une partie de mon programme.

J'envoie trois signaux pour une commande de moteur. Je voudrais que le signal "ENABLE" qui arrete ma carte arrete aussi le programme Labview.

Je bloque sur cette étape. Voici la dernière version de mon programme. Ce dernier arret bien le programme mais trop tot et du coup mon moteur n'a pas le temps de faire ce que je lui demande.

 

Pour info, j'utilise un NI USB6211

 

Merci pour votre aide

0 Compliments
Message 1 sur 9
4 844 Visites

premièrement ... ce n'est pas mon domaine de prédilection.

 

ceci dit, si je raisonne simplement de façon "logique" ...

 

il me semble que pour avoir une certitude que la tâche soit totalement exécutée ... il te faut un "dialogue" avec le périphérique qui exécute cette tâche.

Seul le périphérique lui-même est à même de répondre à cette question.

 

en l'absence de dialogue, tu dois utiliser une "attente" équivalente a "la durée maximum possible".

 

et si je regarde ton code ... cette temporisation est à placer dans la structure case, là où tu stoppes ta boucle while, et donc ton code.

0 Compliments
Message 2 sur 9
4 831 Visites

Hello,

 

Le signal "enable" correspond bien au true que tu renvoies dans ta condition "1"?

Donc tu provoques un arrêt de ta boucle dès que ce signal passe à true. Quand tu dis que "mon moteur n'a pas le temps de faire ce que je lui demande", de quoi s'agit-il? que lui demades tu? Dans le code que tu nous as envoyé, tu ne lui demande plus rien...

Si tu dois encore exécuter du code derriére, il suffit de l'ajouter dans ta structure conditionnelle, et ta boucle while ne s'arrêtera que lorsque le code aura été exécuté. Sinon, il faut comme suggéré par ouadji attendre un signal de ton moteur qui t'informe qu'il "a eu le temps de faire ce que " tu "lui demandes"...

Francis M
Message 3 sur 9
4 816 Visites

Bonjour,

 

Voici ce que je demande à mon moteur:

j'ai trois signaux carré ( trois sorties) qui sont lié ensemble.

La première sortie est un signal carré de fréquence variable qui fait tourné mon moteur (la variable "Vitesse" modifier la fréquence)

La deuxième sortie est un signal carré qui me permet de changer le sens de rotation du moteur.

La troisième sortie est un signal carré qui va activer ou désactiver mon moteur. La période de ce signal dépend du nombre de fois que je veux que le moteur tourne dans un sens puis dans l'autre. (Un exemple : je veux que mon moteur tourne dans les deux sens, deux fois, puis s'arrete).

 

Quand j'ai fait ma boucle while sans la condition et l'entrée aio. Le programme me donne exectement ce que je veux mais comme c'est une boucle while il le répète tant que je n'ai pas appuyer sur le bouton stop.

 

Ce que je souhaiterai, c'est que mon programme s'arret quand la troisième sortie passe de l'état haut (actvation du moteur) à l'état bas (arret du moteur). J'ai donc reboucle mon signal de sortie sur une entrée pour lire le signal et arreter le prog quand il y a détection du frond descendant. mais ca marche pas. il y a peut-être plus simple. Mais la je bloque.

 

Merci de votre aide

 

0 Compliments
Message 4 sur 9
4 810 Visites

C'est pourtant ce que fait li vi posté. arrêt dès que le front est détecté. Si remise en cause, elle se situe au niveau de la détection du front. Peut-être qu'on déclenche sur de fausses conditions:

Sinon dans le case "1" de la structure condition, attention car les tâches DAQ ne sont pas câblées --> elles ne seront pas libérées "proprement" à la sortie de la boucle...

Francis M
0 Compliments
Message 5 sur 9
4 803 Visites

En mode pas à pas cela fonctionne, le programme s'arret quand le frod est descendant, mais en mode normal, le vi s'arret quasi immédiatement.

que veux-tu dire pas les taches DAQ ne sont pas cablé?

 

0 Compliments
Message 6 sur 9
4 799 Visites

j'ai compris pour le cablage, je l'ai corrigé

 

0 Compliments
Message 7 sur 9
4 798 Visites

SAlut ouadji,

 

peux-tu me dire ou me montrer comment je crée cette attente?

 

Merci

0 Compliments
Message 8 sur 9
4 796 Visites

quelque chose comme ça:

 

wait.png

 

A insérer dans ta case "1", ce qui va retarder l'arrêt du vi.

Francis M
0 Compliments
Message 9 sur 9
4 793 Visites