NI Home
Cart Achats | Aide
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


Répondre
Active Participant
ouadji
Envois : 873
0 Compliments
Solution approuvée

appel dynamique sous-VI (avis)

[ modifié ]

Bonjour à tous,

 

J'ai besoin d'un oeil "qui sait" pour me dire si je suis dans le bon ou pas.

Premier contact avec l'appel dynamique d'un sous-VI ... dans une boucle While.

J'ai rassemblé tout ce que j'ai appris jusqu'à présent, et pour le reste j'ai utilisé le bon sens.

ça compile et ça tourne ... c'est pas pour ça que c'est forcément ok.

 

voici mes questions (et d'avance un grand merci pour vos réponses et le temps consacré)

 

En image ci-dessous mon appel dynamique dans la boucle While.

Ma question concerne "open VI reference" et "close reference".

 

a) Est-ce comme cela que l'on fait ? (les 2 en dehors de la boucle, avec rétroactions)

(Je pense que c'est correct, mais sans confirmation cela reste une supposition.)

 

b) Est-il "d'usage" d'utiliser les appels dynamiques ?

    Cela libère de la mémoire ... y a-t-il d'autres avantages ?

    Quels sont les inconvénients ?

 

c) Dans "open VI reference", a quoi servent les entrées: (non cablées ici)

    - application reference (locale)

    - options ... quels sont ces fameuses options ?

 

Toutes vos remarques et conseils sont les bienvenus concernant cette pratique.

 

Merci beaucoup à tous.

 

snippet_03.png

 

 

 

Trusted Enthusiast
Trusted Enthusiast
JB
Envois : 2 505

Re : appel dynamique sous-VI (avis)

Bonjour,

 

Pourriez-vous republier le snippet puisqu'une erreur semble s'être produite lors de sa publication ?

 

b) J'utilise cette technique pour appeler des VIs qui s'exécuteront en parallèle au reste du code (méthode Run VI avec l'entrée Wait Until Done définie à False) et avec lequels des informations seront échangées par exemple par le biais de queues.

 

c) Ces options sont décrites dans l'aide de Open VI Reference. Avez-vous besoin de plus de détails que ce qui figure dans l'aide ?

 

A la prochaine

Active Participant
DaHelmut
Envois : 611

Re : appel dynamique sous-VI (avis)

[ modifié ]

Bonjour,

 

Il y'a également le VI "Asynchronous VI Call" (voir pièce jointe) qui semble plus adapté, mais qui n'existe que depuis LabVIEW 2011.

 

Si vous souhaitez executer des VIs en parallèle comme l'a dit JB, cela semble la meilleur solution si vous disposez de LabVIEW 2011.

 

extrait.png

 

Cordialement,

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
Active Participant
ouadji
Envois : 873
0 Compliments

Re : appel dynamique sous-VI (avis)

[ modifié ]

Merci Helmut et JB pour vos réponses.

 

Je reviendrai après avoir pris le temps d'analyser tout cela de prês.

 

Mais rapidement, je replace le snippet, comme demandé

 

PS:

Helmut, je vous ai posé une question dans le sujet "Evénement (déclenché par un booléen au VI)

actuellement 18eme dans la liste en première page du forum.

Quand vous avez 3min, votre réponse m'intéresse beaucoup.

 

HO.png

 

Active Participant
ouadji
Envois : 873
0 Compliments

Re : appel dynamique sous-VI (avis)

votre avis ?

 

les 2 rétroactions sont-elles nécessaires ? (le snippet ci-dessus)

 

le feedback sur le cluster d'erreur ... pour moi, il est nécessaire,

 

mais le feedback sur la référence du VI ?

cette référence est relue à chaque itération, non ?

J'ai l'impression que la rétroaction sur la réf du VI n'est pas indispensable ...

qu'en pensez-vous ?

 

merci à tous,

Active Participant
Luc_Desruelle
Envois : 623
0 Compliments

Re : appel dynamique sous-VI (avis)

bonjour, vous avez quelques questions en LabVIEW

je vous propose de faire la lecture

LabVIEW Style Checklist qui évoque Front Panel Checklist et block diagram Checklist et VI

et

Building Applications Checklist

et

LabVIEW Style Guide

 

A la question


ouadji a écrit : votre avis ? les 2 rétroactions sont-elles nécessaires ? (le snippet ci-dessus)le feedback sur le cluster d'erreur ... pour moi, il est nécessaire,

 

mais le feedback sur la référence du VI ?cette référence est relue à chaque itération, non ?J'ai l'impression que la rétroaction sur la réf du VI n'est pas indispensable ...qu'en pensez-vous ?

 



Le registre à décalage sur l'erreur : oui pour ne pas perdre l'erreur. Je ne sais pas ce que fait le code mais il faudrait gérer le stop de la boucle si erreur.

 

Le registre à décalage sur la référence : non car elle ne change pas (si elle change il faudrait la fermer). Dans une boucle for il y a un intérêt. Si la boucle ne s'éxécute pas; par exemple auto-indexation vide; alors la référence est perdue si pas sur un registre à décalage.

 

PS : Vous pouvez mettre le fil d'erreur droit; chaîner la référence entre les 2 propriétés value (celle en  en écriture et celle lecture); gérer l'erreur sur les propriétés surtout si pas implicite avec passage via une référence;

 

 

 

 

Cordialement
Luc DESRUELLE
(CLA : Certified LabVIEW Architect -- CLD : Certified LabVIEW Developer, Développeur certifié LabVIEW | MESULOG | F-38430 Moirans - Grenoble - Chambery, Rhône-Alpes
Active Participant
Luc_Desruelle
Envois : 623

Re : appel dynamique sous-VI (avis)

[ modifié ]

Helmut O'Brian a écrit :

 

extrait.png

 

 


Le code d'Helmut est un bel exemple : ligne droite d'erreur; lecture de gauche à droite. Très propre. Du vrai code LabVIEW d'un vrai développeur qui a mon estime.

Juste une remarque je pense qu'il faut mettre un registre à décalage sur la gestion d'erreur de la boucle For car si une erreur arrive en entrée après 1000 boucles elle sera perdue.

Cordialement
Luc DESRUELLE
(CLA : Certified LabVIEW Architect -- CLD : Certified LabVIEW Developer, Développeur certifié LabVIEW | MESULOG | F-38430 Moirans - Grenoble - Chambery, Rhône-Alpes
Active Participant
DaHelmut
Envois : 611
0 Compliments

Re : appel dynamique sous-VI (avis)

[ modifié ]

Bonjour Luc,

 

En effet les registres à décalages...Un oublie de ma part dans cet exemple...

 

Cordialement,

 

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
Member
yledieu
Envois : 124

Re : appel dynamique sous-VI (avis)


Luc Desruelle a écrit :

Juste une remarque je pense qu'il faut mettre un registre à décalage sur la gestion d'erreur de la boucle For car si une erreur arrive en entrée après 1000 boucles elle sera perdue.


Je ne pense pas, il n'y a que si la boucle n'executait aucune iteration que la valeur serait perdue, mais dans le cas présent ce n'est pas possible puisque le nombre d'itérations est fixé à 1000, la ligne d'erreur va véhiculer 1000 fois la valeur d'erreur présente initialement sur le connecteur d'entrée de la boucle.

Cordialement,
Yohann L.
Active Participant
tinnitus
Envois : 1 176

Re : appel dynamique sous-VI (avis)

sur cet exemple il n'est pas necessaire de mettre le cluster d'erreur dans un registre puisqu' il

sert seulement à sequencer le code.

Si dans la boucle l'erreur était utilisée il serait alors nessaire de la memoriser d'une fois sur l'autre via le registre.

 

 

Cdt

 

Tinnitus

 

 

CLAD / Labview 2011, Win Xp
------------------------------------------------------
Mission d'une semaine- à plusieurs mois laissez moi un MP...
RP et Midi-pyrénées .Km+++ si possibilité de télétravail

Kudos always accepted / Les petits clicks jaunes sont toujours appréciés
Don't forget to valid a good answer / pensez à valider une réponse correcte
En consultant ce site, vous en acceptez les Conditions d'utilisation. Veuillez les lire attentivement avant d'accéder à une quelconque partie du site. Veuillez suivre ce lien pour en savoir plus sur la politique sur les droits d'auteur de ni.com.
Mon Profil | Confidentialité | Conditions d'utilisation | Contacter NI © 2011 National Instruments Corporation. All rights reserved.    |    Envoyer cette page Envoyer cette page