From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

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

Bouton reste enfoncer après un event "Value Change"

Bonjour,

 

J'essaye de mettre en place le fait que quand j'appuye sur un bouton STOP, il fais une interruption via un event "Value Change" et execute le code à l'intérieur.

Cela fonctionne très bien une première fois, mais lorsque j'essaye de le faire une seconde fois, l'event n'est plus appelé. Est-ce que la valeur ne change pas ou quelque chose comme ça ?

 

EtiVan_0-1594821007574.png

(Je peux appuyer plusieurs fois sur le bouton STOP, le while ne s'arrête que longtemps après)

 

Bien à vous,

 

EtiVan

0 Compliments
Message 1 sur 4
1 130 Visites

Change le mode (action mécanique) de ton bouton stop pour "latch when released" et enlève la structure case qui est inutile. Ainsi quand ton bouton sera le par la structure événement il sera remis à off automatiquement (si son terminal est dans l'événement stop).

 

Ben64

0 Compliments
Message 2 sur 4
1 110 Visites

Bonjour,

 

Mon bouton est bien en effet en Latch When Released, donc je ne comprend pas trop pourquoi cela fait cette erreur.

Par contre je ne peux enlever la structure car si le bouton n'est pas lu, il ne se release pas. (https://zone.ni.com/reference/en-XX/help/371361R-01/lvhowto/latchbooleanevent/)

Le problème ici est que j'ai l'impression que lors d'un 2e appel, l'event n'est pas appelé...

0 Compliments
Message 3 sur 4
1 077 Visites

Le bouton STOP booléen ne stoppera pas ta boucle car tu utilises un contrôle STOP numérique DBL pour ça (c'est une très mauvaise idée d'utiliser une égalité avec un DBL, l'indicateur peut indiquer 1 mais en réalité la valeur est 1.00000000000000000001 et l'égalité retournera Faux). C'est la structure Case reliée au bouton STOP booléen que tu peux éliminer.

 

Pourquoi un timeout de 1 ms, ça me semble inutilement rapide?

 

On ne peut pas savoir pourquoi l'événement n'est pas appelé, ça se passe ailleurs que dans la partie de code que tu montres (probablement qu'il y a un autre événement qui prend du temps à se terminer).

 

Ben64

0 Compliments
Message 4 sur 4
1 061 Visites