Discussions au sujet de NI LabVIEW

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

untilisation des variables globales

Résolu !
Accéder à la solution

Bonjour,comment utiliser la valeur d'un indicateur d'un VI dans un autre VI, je veux eviter l'utilisation des variables globales pour economiser la memoire, est ce qu'il ya un autre choix ?
merci d'avance 🙂

0 Compliments
Message 1 sur 9
5 458 Visites

Tu peux récupérer la référence de ton indicateur, et le transmettre au sous-vi.

Ensuite via noeud de propriété "valeur" tu peux récupérer celui-ci et/ou la mettre à jour.

 

S'il n'y a pas de lien "physique" entre tes deux VIs, alors la variable globale ou partagée et la seule méthode à ma connaissance.

“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
0 Compliments
Message 2 sur 9
5 454 Visites

Merci de m'avoir répondu,

en effet je pense qu'il ny'a pas de lien physique entre les deux VI ( je ne sais pas si l'execution d'un vi dans le VI principal en utilisant le noeud de methode "executer VI "se concidère comme un lien physique ou non), et est ce que la methode que vous avez mentionner et plus rentable, de point de vue memoire ?? 

cordialement, 

 

 

0 Compliments
Message 3 sur 9
5 450 Visites

Bonjour,

 

Deja pour moi les variables globales sont a eviter et le noeud de propriete valeur et a bannir, a la rigueur utiliser le noeud de propriete valeur signaling pourquoi pas car il envoie en meme temps un evement, mais niveau performance le noeud de propriete valeur est mauvais, mieux vaut utiliser une variable local!!!

 

La je pense qu'on parler de communication entre VIs, il y a deux cas a considerer :

 

1) Le premier VI appel le second VI,

 

 Dans ce cas il suffit juste dans le second VI de mettre a jour le connecteur et de passer la valeur au second VI, si c'est un gros tableau et qu'on veut vraiment optimiser la memoire il est possible d'utiliser la fonction "New Data Value reference" pour avoir la reference de la variable et evite ainsi de creer de la memoire en plus.

 

2) Ce sont deux VI qui fonctionne en paralleles


Dans ce cas il existe une multitude de moyen, comme :

a) Files d'attente qui permettent en plus de synchroniser

b) Evenement dynamique qui permette de reveiller le second Vi quand une donnee et disponible sinon il est en veille

c) Le second Vi a juste besoin de recevoir la derniere valeur et s'il loupe une valeur c'est pas grave, dans ce cas la variable global peut etre utilise

 

En esperant que cela t aide.

 

Nacer

Nacer M. | Certified LabVIEW Architecte

Message 4 sur 9
5 436 Visites

salut,

dans le deuxième cas comment utiliser le contenu d'une file d'attente dans un autre vi, sans passer par verser son contenu dans une variable globale dans le premier VI et appeler la variable globale dans le deuxième vi?

merci 🙂 

 

0 Compliments
Message 5 sur 9
5 431 Visites
Solution
Accepté par l'auteur du sujet CrisSTine01

Tiens un exemple de file d attente qui permet la communication, un VI qui cree la donnee et un autre qui la recoit<

Nacer M. | Certified LabVIEW Architecte

Message 6 sur 9
5 429 Visites

Salut, merci enormément 

ça me parais trés utile mais j'ai pas pu ouvrir les VIs, pouvez vous le réenvoyer svp.

 

0 Compliments
Message 7 sur 9
5 426 Visites

Dezipp l ensemble des fichiers et met au niveau du meme dossier et cela devrait etre bon, au pire lance le fichier main depuis l explorateur windows.

Nacer M. | Certified LabVIEW Architecte

0 Compliments
Message 8 sur 9
5 421 Visites

c'est fait mercii c'est tres utile 🙂 

0 Compliments
Message 9 sur 9
5 417 Visites