le 06-17-2019 04:31 AM
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.
Résolu ! Accéder à la solution.
le 06-17-2019 04:54 AM
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
le 06-17-2019 05:26 AM
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.
le 06-17-2019 05:26 AM
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!
le 06-17-2019 06:34 AM
@guillaumeMa
Comment je peux les modifier partir un vi principal ?
le 06-17-2019 06:59 AM
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!
le 06-17-2019 07:01 AM
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
le 06-17-2019 07:11 AM
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!
le 06-17-2019 07:37 AM
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
le 06-17-2019 07:58 AM
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.