Discussions au sujet de NI LabVIEW

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

Impossible de stopper plusieurs boucles while en parallèle.

Résolu !
Accéder à la solution

Bonjour à tous,

 

Je suis débutant en labview (mon 1er programme).

J'ai développé une interface pour piloté un système de dilution de gaz, en utilisant une machine à état + un schéma producteur/consommateur.

 

Je rencontre un problème lors de la fermeture du programme: impossible de stopper toutes les boucles (mon VI continue de tourner) .

Je souhaite idéalement tout stopper avec le même bouton EXIT.

 

Fait surprenant: en mode highlight, tous mes terminaux d'arret sont activé, mais pas d'arret du VI...

 

Projet ci-joint.

 

Merci d'avance pour votre aide.

0 Compliments
Message 1 sur 8
4 831 Visites

peut être cela ?

 

err.JPG

0 Compliments
Message 2 sur 8
4 755 Visites

Bonjour PNL,

 

Utilisez des références à votre bouton exit dans vos boucles parallèle plutôt que les noeuds de propriétés => http://digital.ni.com/public.nsf/allkb/32A1A15E98CFA4FA86257752004F5485.

 

N'oubliez pas de modifier l'action mécanique de votre bouton EXIT (clic-droit dessus et choisis Action Mécanique»Commutation jusqu'au relâchement.). L'armement ne fonctionne pas avec les références: LabVIEW vient lire une fois la valeur VRAI et remet la commande à sa valeur par défaut (principe de l'armement) les références ne sont donc jamais misent à jour et les boucles parallèles continuent de tourner malgrés l'appui sur le bouton EXIT.

 

Cordialement.

Louis
National Instruments France

0 Compliments
Message 3 sur 8
4 706 Visites

Bonjour,

 

Merci Louis, je vais essayer avec des Références prochainement (en vacances actuellement).

 

=> http://digital.ni.com/public.nsf/allkb/32A1A15E98CFA4FA86257752004F5485.

 

J'avais vu cet article NI, mais il mentionne des variables locales dans le texte, ce que j'avais essayé sans succès...

Ce sont par contre des Références utilisées dans les screenshot d'illustration, je vais essayer.

0 Compliments
Message 4 sur 8
4 669 Visites

Je n'y arrive toujours pas Smiley triste

 

impossible de cabler une "Référence" de booléen sur une bouton d'arret, car de type Refnum et non de type booléen.

 

 

Quel est le type de l'élément suivant utilisé dans l'exemple NI:

Sans titre.png

 

Ni mes variables locales / globales/référence etc.. ne sont représentées comme ça (double encadrement)

 

0 Compliments
Message 5 sur 8
4 606 Visites

Bonjour,


Pour arrêter ta boucle "consommatrice", il te suffit de cabler l'arrêt de la boucle "While' sur le terminal d'erreur de la fonction de dépilage de ta FIFO.


Ainsi dès que tu détruieras la référence de ta FIFO, cela enclechera un arrêt de ta boucle.

 

Cdt,


Michael.

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 6 sur 8
4 588 Visites
Solution
Accepté par l'auteur du sujet PLN

C'est plutôt les autres boucles While qui posaient problème (la consommatrice se stoppe bien)

 

J'avais tout simplement une boucle Evenement qui tournait sans Timeout et empechait la fermeture...

Dur dur certains "petits détails" quand on débute! Smiley frustré

 

Ca fonctionne bien avec des Variables locales.

 

Merci à tous pour votre aide!

0 Compliments
Message 7 sur 8
4 577 Visites

Pas une "boucle événement" ... mais une structure événement dans une boucle While.

 

et le disfonctionnement dont tu parles (structure event sans timeout), et que tu classes dans la boîte "petits détails"  Smiley surpris   ... n'est pas un petit détail du tout !

 

ce problème découle en ligne direct du principe de base de LabVIEW, soit le " flux de données ".

 

 

 

 

 

 

0 Compliments
Message 8 sur 8
4 567 Visites