Discussions au sujet des autres produits NI

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

Problème d'appel de sous VI

Bonjour,

Je suis en train de programmer une appli sous Labview 8.5.
Le probleme que je rencontre concerne l'appel de sous-VI.
Plus précisement, l'appel se fait bien, mais à sens unique...

J'ai créé deux VI. Le premier est ce que l'on pourrait appeller le VI principal, et le second permet de faire certains réglages pour le VI principal.
Pour le moment, lorque le VI de réglage est ouvert et qu'on valide, ca ouvre bien le VI principal, tout en chargeant les infos, donc à ce niveau la, pas de problème.
Mais par contre, j'aimerai avoir la possibilité, à partir du VI principal, d'ouvrir le VI de paramétrage.
Et a partir de la, plus rien ne fonctionne. Lorsque je veux incorporer le VI du VI de paramétrage dans le diagramme du VI principal, il me dit : "Impossible d'utiliser "le VI.vi" de facon récursive".
Je pense que le souci vient du fait d'utiliser un VI dans un VI qui est utilisé dans ce meme VI (probleme de bouclage)
Mais y a  t il une possibilité pour moi de contourner le problème ? D'autant qu'ici il s'agit uniquement d'ouvrir la face avant du VI en question (pas besoin d'echange de données dans ce sens).

J'espere avoir été suffisamment clair dans l'exposé de mon problème.
D'avance merci pour votre aide.

Thomas
0 Compliments
Message 1 sur 7
3 875 Visites

Salut lamule,

Ce que je te conseille de faire, c'est de mettre un bouton sur ton vi principal, qui fait appel à ton vi réglages. Et de transformer ton vi réglages en fenêtre modale (tu peux faire ca dans propriété du vi (ctrl + i) apparence de la fenetre,  personnalisé)

Et si tu veux vraiment que la fenetre réglage s'ouvre dès le début, faire un diagramme sequence pour ouvrir le sous vi puis faire ton programme ou tu peux mettre le bouton et l appel au sous vi. Je sais que c'est pas très clair ce que je viens de dire, mais le vi joint devrai t'aider a mieu comprendre.

0 Compliments
Message 2 sur 7
3 870 Visites

Bonjour,

Merci d’être venu sur le Forum de National Instruments.

Je vous conseil de lire ce lien qui vous explique comment appeler plusieurs le même VI dans un même diagramme, i.e. allouer un nouvel espace mémoire pour le VI = VI réentrant.

    Benjamin R.


Senior LabVIEW Developer @Neosoft


0 Compliments
Message 3 sur 7
3 869 Visites
Une autre solution est de creer un nouveau sous vi réglages, qui lui ne lance pas le vi principal
 
Le problème dans ce que tu as généré, c'est que ton vi réglages ouvre le vi principal qui peut ouvrir le vi reglage, qui lui à la fin ouvrira le vi principal qui peut ouvrir le vi réglage.....
bref tu t'en sors plus.
 
J'espere en tout cas que les solutions proposées te suffiront pour faire ce que tu souhaites
0 Compliments
Message 4 sur 7
3 865 Visites
Suite a vos aides respectives, j'ai pu progresser. J'ai mis le VI principal en réentrant, donc une fois les réglages effectués (grace au VI reglages), on peut les charger dans le VI principal en appellant celui ci, tandis que dans le VI principale, j'utilise un noeud de methode pour ouvrir la face avant de reglage. (deja la, il y a peut etre mieux à faire?).
Toujours est-il que ca fonctionne plutot bien, mais j'ai maintenant un autre problème qui decoule du fonctionnement en réantrant ...
Il y a creation d'un VI clone de mon VI principal, mais je ne sais pas à le gérer avec la combinaison "ouvrir une ref de VI + noeud de methode".
En fait, j'ai besoin que sur un evenement, le clone stop son execution, et se ferme. J'arrive a le faire se stopper en utilisant la commande "arreter", mais pour le fermer, j'utilise habituellement le noeud de methode "fermer", en ouvrant la ref du VI en question, ce que je n'arrive pas a faire ici puisque c'est un clone et que je ne connais donc pas son chemin ...

En tout cas, meme si je m'arrache les cheuveux sur ce petit pb, je suis vraiment content de la tournure que prend mon programme grace a votre aide !


0 Compliments
Message 5 sur 7
3 813 Visites
Je me repete, (et c'est peut être pas la meilleure solution), mais je te conseille de faire en sorte que ce soit ton vi principal qui ouvre quand tu le souhaite le vi reglage, plutôt qu'un vi reglage qui ouvre le vi principal quand il se fini, ca fera disparaitre ton problème de clone.
 
Sinon pour la fermeture de ton vi clone, tu peut faire appel à sa référence, grâce au bloc référence de ce vi ("programmation"->"controle d'application"->"reference de vi serveur") et d'utiliser le noeud de propriété "face avant"->"ouverte" et de mettre une constante booleenne faux en entrée de ce noeud.  Ca devrait fermé a face avant
0 Compliments
Message 6 sur 7
3 807 Visites

bonjour 

mon sous vi ne s'execute pas de la mpeme façon que le vi d'origine 

c'est a dire lorsque j'execute le vi ,les indicateurs (Led dans mon cas )s'allument,par contre si je l'execute en sous vi elles s'allument pas jusqu'a la fin de l'execution

et je comprend pas normalement un sous vi est sensé avoir le meme compôrtement que le vi n'est ce pas ?

j'ai esseyer de configurer l'appel mais rien a changer 

 

merci 

cordialement

rafik

0 Compliments
Message 7 sur 7
3 101 Visites