Discussions au sujet de NI LabVIEW

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

Modification d'un VI à partir d'un autre

Résolu !
Accéder à la solution

Bonjour,

J'ai un programme commande moteur qui permet de tourner et d’arrêter le moteur ainsi le tourner dans les 2 sens  avec 2 booléens .

J'aimerai savoir s'il est possible de contrôler ou modifier ce VI à partir d'un autre à l'aide des nœuds de méthodes  .c'est à dire pouvoir arrêter le moteur ou le tourner dans un autre sens sans ouvrir le VI commande moteur mais à partir du VI principal .Si vous pouvez m'expliquer la façon de le faire à l'aide des nœuds .

Je vous mets en pièce jointe le programme qui permet de contrôler le moteur .

Merci.

 

0 Compliments
Message 1 sur 13
3 041 Visites

Bonjour,

si c est les booleens qui servent à choisir le sens de rotation vous pouvez les modifier à partir un vi principal en appelant le vi de controle moteur 

0 Compliments
Message 2 sur 13
3 032 Visites

Bonjour

Alors il est possible de faire comme ça mais ce n'est pas la méthode idéale.

Pour faire cela il faut ouvrir une référence au deuxième vi et utiliser un noeud de méthode Valeur pour changer la valeur.

Ca fonctionne mais ce n'est pas très rapide pour répondre.

 

Il y a des solutions plus simples et plus facile à contrôler à mettre en place.

Une FGV par exemple permet dans un VI de choisir un sens de rotation qui est traduit à la lecture en une commande brute.

 

 

 

 

0 Compliments
Message 3 sur 13
3 016 Visites
Solution
Accepté par l'auteur du sujet oum

Partager des variables de contrôle (sous forme de variables globales ou de variables partagées sur réseau) qui seraient écrites dans le vi principal et lues dans le vi de contrôle moteur!
Pour ça, faut faire un projet contenant les deux Vi!

0 Compliments
Message 4 sur 13
3 015 Visites

@guillaumeMa

Comment je peux les modifier partir un vi principal ?

 

 

0 Compliments
Message 5 sur 13
3 003 Visites

J'ai fait un petit projet pour te montrer comment faire ...
Tu ouvres le projet, lance les deux Vi (Vi principal et Vi controle sens de rotation moteur) et tu veras en actionnant le bouton dans le Vi principal que le Vi de contrôle moteur répond à cette modification en allumant/éteignant la led.
Les deux Vi dialoguent dans ce cas au travers d'une variable globale partagée. Il y a d'autres méthodes, celle-ci demande de la prudence si plusieurs Vi peuvent modifier la variable globale (accès en écriture donc), on n'est pas toujours certain de la valeur lue dans ce cas, mais c'est une autre histoire!

0 Compliments
Message 6 sur 13
2 998 Visites

J'ai essayé de faire cela mais ça ne fonctionne pas.

Pour plus d'information dans le programme principal je mesure une tension et en fonction de cette valeur je contrôle le moteur ,c'est à dire si la tension =0 le moteur continue de tourner mais si la tension est différente de 0 il faut que le moteur s’arrête et j'ai besoin d'une solution pour arrêter le moteur qui est contrôlé à partir de l'autre VI controle moteur sans avoir besoin de l'ouvrir et le faire manuellement   

0 Compliments
Message 7 sur 13
2 995 Visites

Tu peux très bien transmettre la valeur de la même manière, sous forme de variable globale, tout peut passer d'un vi à un autre de cette manière, une chaine, un entier, un double, un booléen, tableaux et clusters également.
La seule chose, c'est que les variables globales doivent être reconnues par les deux Vi.
Maintenant, le Vi qui controle ton moteur doit être en mode exécution sinon, c'est impossible de contrôler ton moteur, mais il est possible de le lancer à l'appel du Vi principal si c'est ça que tu veux!

0 Compliments
Message 8 sur 13
2 989 Visites

@PhilB58

En pièce jointe mon projet.

Du coup vu que j'ai mis les variables globales j'ai plus de bascules pour commander le moteur dans le vi commande moteur . 

Si vous pouvez regarder et me dire ce qui ne vas pas 

0 Compliments
Message 9 sur 13
2 984 Visites

Nulle part dans ton projet tu ne changes les valeurs des deux variables globales, elles restent donc en permanence à FALSE, ton Vi de commande moteur répond donc à ces valeurs!
Il faut qu'un de tes Vi change ces valeurs en fonction du controle que tu veux sur ton moteur, et que le Vi de commande moteur lise les valeurs et s'adapte en fonction de ces valeurs.

Message 10 sur 13
2 982 Visites