Discussions au sujet de NI LabVIEW

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

Gerer la fermeture de la face avant dans une structure production/consommation

Résolu !
Accéder à la solution

Bonjour,

 

Je réalise un programme qui en gros utilise une structure production/consommation avec liste d'attente pour faire de l'acquisition et l'afficher dans un diagramme sur une face avant.

 

De façon générale, je gère ma face avec une structure condition qui exécute un programme selon l'état de ma face avant ("initialisation", "acquisition", "attente", "quitter",etc...)

Au lancement de l'application, le programme va dans la condition "initialisation", exécute son bout de programme et va dans l'état "attente".

Cet état "attente" est lui géré par une structure événementielle qui va exécuter des bouts de programme selon les boutons sur lesquels va cliquer l'utilisateur.(je clique sur bouton marche=>on va dans l'état "acquisition" dans lequel la boucle production conso se lance; on clique sur la croix de fermeture =>ça va dans l'état "quitter" et une pop up apparait pour demander validation de la fermeture, etc...)

 

Mon problème est le suivant : ma boucle prod/conso ne se termine que si on clique sur un bouton stop ou si une erreur survient. Si l'utilisateur clique sur la croix de fermeture du VI, l'application plante.

J'ai essayé de rajouter une structure événement "fermeture face avant?" dans la boucle production, ça fonctionne : j'annule l’événement, ça termine ma boucle prod/conso et on va dans l'état "quitter"  mais si ensuite j'annule la fermeture de la face avant grâce à ma pop up, impossible ensuite de fermer l'application. On a beau cliquer sur la croix de fermeture rien ne se passe.

Ma structure événement dans l'état attente ne revient jamais dans l’événement "fermeture face avant?" , il reste dans celui du time-out.

 

Où faut-il que je place la structure événement pour que cela fonctionne?

Autre solution, peut-on griser la croix de fermeture d'un VI lorsque je suis en acquisition et la réactiver ensuite?

 

Voici quelques photos de mon code.

 

Merci d'avance.

 

 

 

Tout télécharger
0 Compliments
Message 1 sur 7
3 244 Visites
Solution
Accepté par l'auteur du sujet mecatronicengineer

Bonjour,

 

Vous pouvez utiliser les nœuds de propriété en ayant pour référence votre VI. Comme le montre l'exemple que je vous fournis ci-dessous qui permet d'activer ou désactiver la croix de fermeture du VI.

 

Blocage_Fermeture_VI.png

 

 

 

 

 

 

 

 

Cordialement.

 

Baba59

0 Compliments
Message 2 sur 7
3 222 Visites

merci ça fonctionne parfaitement.

0 Compliments
Message 3 sur 7
3 202 Visites

Je passe par ici ... petit commentaire, sans prétention particulière.

 

Quand tu places sur le BD un noeud de propriété (ou de méthode) de la palette Application Control, tu déposes sur ton BD un noeud de Classe "application". Tu peux toi-même modifier la Classe (voir image), et transformer ton noeud "application" en noeud "VI" (ou toutes autres Classes). Une fois que tu as ton noeud de Classe VI il n'est plus nécessaire d'y câbler la Référence de "ton VI". En effet, en l'absence de Référence, les propriétés (ou méthodes) du noeud concerneront d'office le VI dans lequel il se trouve. Ceci dit, un noeud de propriété ou de méthode est polymorphique, câbler une Réf à son entrée Référence fera que le noeud adaptera automatiquement sa Classe au type de Ref qu'il trouvera à son entrée Référence, comme tu as fait toi-même. (mais en l'occurrence tu peux ensuite retirer la Ref "ce VI"). Voila, juste pour pointer qu'il existe "différentes façons de". (les "Classes" dans LV est un monde en soi).

 

class VI.jpg

 

Message 4 sur 7
3 190 Visites

Bonjour Ouadji,

 

merci pour l'information je ne savais pas du tout que les Nœuds pouvaient s'adapter automatiquement si on ne met pas de référence en entrée.

 

Bonne journée à vous.

 

Cordialement.

 

Baba59

0 Compliments
Message 5 sur 7
3 167 Visites

C'est l'inverse Baba.

La Classe d'un noeud s'adapte si on câble une Référence à son entrée.

0 Compliments
Message 6 sur 7
3 161 Visites

D'accord, merci pour l'information 🙂

0 Compliments
Message 7 sur 7
3 145 Visites