Discussions au sujet des autres produits NI

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

Exécuter mon sous-VI dans un simple VI

Résolu !
Accéder à la solution

Bonjour,

Je sais comment construire un sous-VI et l'exécuter correctement dans un autre VI.

Le problème est que je n'arrive pas à effectuer cette tâche avec CE sous-VI.

Après avoir passé un journée à trouver le petit problème, je m'en remet à vos mains expertes.

Bien sur je voudrais comprendre et résoudre le problème par moi-même mais si vous pouvez m'aider, je vous en serais reconnaissant.

Je vous envoie les images de mes VI et mes VIs (en version LV 2012).

 

Description du VI et du sous-VI :

Lorsque l'on démarre le VI (nommé T3), 2 boutons sont disponibles :

- l'un permet d'ouvrir le sous-VI (nommé T2)

- l'autre arrête le VI

Une fois le sous-VI exécuté, un bouton permet d'afficher une boite de dialogue toute simple.

Un autre bouton permet d'arrêter uniquement le sous-VI.

 

Remarque : Je travaille sur des VIs simples (ceux donnés en pièce jointe) pour mieux comprendre un très gros VI de mon entreprise (fonctionnant sur LV 2012).

 

Tout télécharger
0 Compliments
Message 1 sur 5
3 175 Visites

Bonjour,

Je ne comprends pas très bien ta question, mais il y a 2 possibilités :


1- Si tu met ton SOUS VI en direct dans ta boucle évènement de ton main, il faut alors que tu appuies sur le bouton "Stop" de ton sous vi avant de pouvoir arrêter ton vi principal.

2- Comme mis en commentaire sur ton diagramme, tu lances ton sous vi au travers d'un appel dynamique, ainsi ton main continue de tourner de manière autonome, et 2 possibilités sont présentes alors : tu peux arrêter ton sous vi à partir de sa face avant, ou par programmation au travers de sa référence lors de l'arrêt de ton VI principal.


Si lors de l'ouverture de ton sous vi, tu ne peux plus accéder à la face avant de ton diagramme principale, il y a deux options :

1- Enlever le caractère modale de ton sous vi (Clic droit sur l'icone, propriété du VI, affichage, personnalité)

2- Décocher la case de ta structure évènement "Verrouiller les évènements jusqu'à la fin de l'exécution de cette condition".

 

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
Message 2 sur 5
3 158 Visites

Bonjour et merci de m'avoir répondu.

Je suis désolé, je n'ai apparemment pas été assez clair.

 

Voici des explications plus détaillées en images de ce que je souhaite faire :

1. Je lance le VI principal.

2. Je veux ouvrir/exécuter le sous VI, pour cela j'appuie sur le bouton "T2".

Problème : Lors de l'appui sur le bouton T2, le VI se "fige" : le sous-VI ne s'ouvre pas et le bouton "Stop" ne fonctionne pas. Je suis obligé d'arrêter le programme par le bouton rouge de l'interface LV.

3. La face-avant du sous VI s'affiche et je peux donc l’exécuter et le fermer sans soucis.

Lorsque l'on appuie sur le bouton "Test", une page de dialogue s'affiche.

Lorsque l'on appuie sur le bouton "Stop", le sous-VI se ferme MAIS pas le VI principal.

4. Lorsque j'ai fini, je ferme le VI principal.

 

5. Cette chaîne de commandes sont désactivées malgré le fait qu'elle répond à mon problème.

Je cherche juste à simplifier mon VI au maximum, le cas échéant je l'utiliserais.

Capture d’écran (367).pngCapture d’écran (368).png

0 Compliments
Message 3 sur 5
3 129 Visites
Solution
Accepté par l'auteur du sujet tornado666

Bonjour Tornado,

 

C'est un comportement normal. La structure évènement dans T3 attend la fin de l'exécution du sous-VI T2 avant de permettre de reboucler. Dans le code désactivé, tu as bien spécifié de ne pas attendre de finir l'exécution de T2 avant de continuer. Comme T2 contient une structure évènement également (qui ne peut pas servir si la face-avant du VI est fermée), le programme se bloque.

 

Si tu affiches la face-avant de T2 pendant l'exécution, tu verras que lui fonctionne bien, et qu'en cliquant sur Stop (de T2), T3 reprend son exécution. Pour que la face-avant du sous-VI s'affiche automatiquement, tu peux suivre les étapes décrites sur cette page :

http://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/opening_subvi_front_panels/



Message 4 sur 5
3 114 Visites

Merci beaucoup pour ton aide .imb

Le lien que tu m'as envoyé a immédiatement débloqué le problème.

Mon VI fonctionne exactement comme je le souhaitais.

Par ailleurs je comprend aussi mieux comment fonctionne d'autres sous-VI que l'on m'a demandé d'étudier.

 

Voici la solution :

 http://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/opening_subvi_front_panels/

Capture.PNG

Capture.PNG

0 Compliments
Message 5 sur 5
3 106 Visites