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 : 

Execution continue, evenement, bouton stop et interface utilisateur

Bonjour a tous,

 

Je realise un programme permettant de controler un porte echantillon a l'aide de moteurs micrometriques.

Pour le moment mon programme est capable d'effectuer un scan parametrable par l'utilisateur.

Ce scan je l'ai place dans une structure evenement avec un bouton START. Jusque la ca marche.

J'ai aussi des deplacements unitaires (increments) dans des structures evenements.

Ces structures evenements sont placees dans une boucle while avec un bouton STOP. Et la ca ne marche pas... Je ne peux pas arreter la boucle while avant que les evenements se soient lancer et je ne peux pas choisir par quel evenement je commence...

 

Je souhaiterais que l'utilisateur puisse lancer le programme, modifier les parametres du scan, lancer une acquisition, modifier les parametres, relancer une acquisition, faire un deplacement unitaire etc de maniere aleatoire comme il le souhaite et enfin qu'il appuie sur stop quand il a fini pour quitter.

 

J'espere que vous pourrez m'aider la dessus, je n'ai pas trouve de reponse sur le forum et je pense que votre experience et savoir faire me serait tres utile.

 

Merci d'avance ! Smiley heureux

0 Compliments
Message 1 sur 5
4 979 Visites

Bonjour,

Tu doit créer un evenement qui signale le changement de la valeur de ton bouton dans la structure évènement (Stop : Value Change), ainsi tu pourras sortir quand tu veux de la boucle!

 

StopEventStruct.png

Message 2 sur 5
4 967 Visites

Merci pour ta reponse, pour sortir du while cela marche, mais j'ai maintenant plusieurs sous VIs et je souhaiterais que mon interface se lance en continue (j'ai donc mis tous mon programme dans un while) et pouvoir executer les fonctionnalites de chaque sous VI aleatoirement en cliquant sur un bouton associe (j'ai donc mis chaque sous VI dans une structure evenement avec bouton associe le tout dans le while).

 

Le probleme est que je ne peux executer mes evenements que dans un ordre specifique, les un apres les autres (pas possible d'en lancer un 2 fois de suite) .

 

Comment faire pour simplement executer une partie de programme (ici les sous VI) en fonction des choix de l'utilisateur sur la face avant ?

 

Merci d'avance a tous ! Smiley heureux

0 Compliments
Message 3 sur 5
4 878 Visites

Salut,

as-tu déjà regardé du côté des machines à états qui utilisent des événements ? Je pense que c'est ce que tu cherches 😉

Using a State Machine (Event Driven) Architecture

http://www.ni.com/white-paper/2926/en/

 

Aurelie

Message 4 sur 5
4 869 Visites

Merci beaucoup !

 

J'ai resolu mon probleme en mettant des timeouts sur mes events (je n'y avais pas pense).

Neanmoins je pense que les machines a etats me seront utiles par la suite.

 

Merci pour vos reponses,

 

Olivier

0 Compliments
Message 5 sur 5
4 849 Visites