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 : 

Erreur pour exécuter un sous VI à partir d'un VI

Résolu !
Accéder à la solution

Bonjour,

 

J'ai passé pas mal de temps à chercher des cas similaires au miens sans pour autant trouver de réponse à ma question.

J'essaye d'ouvrir et d’exécuter un sous VI à partir d'un VI principal (voir programme ci-dessous : aller_sur_un_autre_VI étant le VI principal et Cas 1 le sous VI, j'ai seulement mis le cas 1 en exemple, les autres cas étant identiques). J'obtiens systématiquement une erreur avec pour code ERREUR 1000 :

"L'erreur 1000 s'est produite à : Nœud de méthode dans Aller_sur_un_autre_VI.vi

Raisons possibles :

LabVIEW: Le VI n'est pas dans un état compatible avec cette opération.

Nom de la méthode : Exécuter le VI". 

 

Je ne comprends pas l'erreur. Mon sous VI s'ouvre mais ne s’exécute pas et s'arrête à cette erreur... Pouvez-vous m'aider à régler mon problème ?

Tout télécharger
0 Compliments
Message 1 sur 3
2 711 Visites
Solution
Accepté par l'auteur du sujet Azraael

Plusieurs petites choses:

  1. Il faut connecter reference out du noeud de méthode FP.Open a reference du noeud de méthode Run VI (cela règlera le problème de l'erreur 1000).
  2. Si Auto Dispose Ref est TRUE, alors on ne doit pas fermer explicitement la référence avec le VI Close Reference (cela générera une erreur 1026 (référence invalide puisqu'on en a disposée, il faut utiliser l'un ou l'autre)
  3. Comme il n'y a pas de temps mort le bouton stop ne sera pas lu. Cré un événement stop value change, place le terminal du bouton stop dans cet événement et connecte une constante TRUE au terminal stop de la boucle while (la constante est placée dans l'événement stop).
  4. Dans le sous-vi, place une constante TRUE dans l'événement Booléen: value change et relie cette constante au terminal stop de la boucle while. FP.Close ne fait que fermer le panneau avant du vi, il ne l'arrête pas et comme dans le vi principal il y a une constante T connectée à Wait Until Done alors on attendra indéfiniement car dans le sous-vi tu as connecté une constante F au terminal Stop if True!
  5. Fais les même modifications pour les cas 2 et 3 et les autres sous-vi.

Ben64

Message 2 sur 3
2 700 Visites

Merci beaucoup cette solution détaillée, j'ai réglé tous mes problèmes et mon programme fonctionne. Merci!

0 Compliments
Message 3 sur 3
2 674 Visites