le 06-05-2015 03:41 AM
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 🙂
Résolu ! Accéder à la solution.
06-05-2015 03:57 AM - modifié 06-05-2015 03:58 AM
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.
le 06-05-2015 04:11 AM
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,
le 06-05-2015 06:13 AM
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
le 06-05-2015 06:46 AM
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 🙂
le 06-05-2015 06:57 AM
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
le 06-05-2015 07:06 AM
Salut, merci enormément
ça me parais trés utile mais j'ai pas pu ouvrir les VIs, pouvez vous le réenvoyer svp.
le 06-05-2015 07:16 AM
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
le 06-05-2015 07:27 AM
c'est fait mercii c'est tres utile 🙂