Obtention de références à des objets dans un VI cible connu en utilisant un script de VI
- Mise à jour2025-08-27
- Temps de lecture : 5 minute(s)
Requiert : Scripts de VI
En général, lorsque vous créez un nouveau VI à partir d'un modèle, vous voulez faire de petites modifications au code que LabVIEW a copié à partir du modèle dans le nouveau VI. Pour faire ces modifications, vous devez obtenir des références aux objets du nouveau VI que vous voulez inspecter ou modifier. Une fois les références à ces objets obtenues, vous pouvez les câbler à des nœuds de propriété ou de méthode pour obtenir ou définir des informations sur les objets référencés. La façon la plus simple d'obtenir des références aux objets du nouveau VI consiste à utiliser la fonction Ouvrir une référence d'objet de VI. Cependant, pour utiliser cette fonction, les objets désirés du nouveau VI doivent avoir des étiquettes uniques. Si les étiquettes des objets désirés ne sont pas uniques, vous devez utiliser une autre procédure, plus complexe, pour obtenir des références pour ces objets sans étiquette ou inconnus.
Éléments utilisés
La tâche de création du script de VI requiert les objets suivants :
Comment procéder
Avant de commencer : Ouvrez le VI Obtaining Known Object Reference.vi du répertoire labview\examples\Application Control\VI Scripting\Finding and Modifying Objects pour voir un exemple illustrant chaque étape de la procédure suivante.
- Obtenez une référence au VI cible qui contient l'objet avec lequel vous voulez interagir.
-
Déterminez les informations d'identification de l'objet pour lequel vous voulez obtenir une référence.
- Type de classe — Chaque objet de la face-avant ou du diagramme que vous pouvez utiliser avec un script de VI est membre d'une classe VI Serveur et la référence à un objet donné à la classe correspondante. Reportez-vous aux anatomies des VIs pour déterminer le nom de classe de l'objet auquel vous voulez accéder. Utilisez la constante de spécification de classe pour indiquer la classe d'objet de la fonction Ouvrir une référence d'objet de VI.
Détails de l'exemple
Dans l'exemple, la commande À éditer est membre de la classe Numérique.
- Propriétaire — Chaque objet de la face-avant et du diagramme a un propriétaire. Dans le cas le plus simple, le propriétaire d'un objet est soit la face-avant, soit le diagramme d'un VI. Cependant, si un objet se trouve dans une structure secondaire comme une boucle, une structure Condition, une structure Séquence ou un cluster, cette structure secondaire est propriétaire de l'objet.
Détails de l'exemple
Dans l'exemple, la commande À éditer se trouve sur la face-avant du VI cible ; par conséquent, la face-avant du VI cible est propriétaire de la commande. Ainsi, le VI de script utilise la propriété VI:Face-avant pour obtenir la référence à la face-avant du VI cible.
Remarque Les classes Commande et TerminalCommande sont souvent confondues l'une pour l'autre. Un objet TerminalCommande est la représentation sur le diagramme de l'objet Commande correspondant de la face-avant. Par conséquent, la face-avant du VI cible est propriétaire de l'objet Commande À éditer, et le diagramme du VI cible est propriétaire de l'objet TerminalCommande Edit Me associé. Vous pouvez changer la représentation numérique d'un objet Commande mais pas d'un objet TerminalCommande. - Étiquette — C'est le nom assigné à l'objet désiré du VI cible.
Détails de l'exemple
Dans l'exemple, l'étiquette de la commande à changer est À éditer.
- Type de classe — Chaque objet de la face-avant ou du diagramme que vous pouvez utiliser avec un script de VI est membre d'une classe VI Serveur et la référence à un objet donné à la classe correspondante. Reportez-vous aux anatomies des VIs pour déterminer le nom de classe de l'objet auquel vous voulez accéder. Utilisez la constante de spécification de classe pour indiquer la classe d'objet de la fonction Ouvrir une référence d'objet de VI.
- Utilisez une fonction Ouvrir une référence d'objet de VI pour obtenir une référence à l'objet désiré en câblant les informations d'identification de l'étape 2 à la fonction.
- Obtenez ou définissez les informations sur l'objet référencé en câblant la sortie refnum de l'objet de la fonction Ouvrir une référence d'objet de VI à un nœud de propriété ou de méhode.
Détails de l'exemple
Dans l'exemple, le VI de script utilise la propriété Numérique:Représentation pour définir la représentation numérique de la commande À éditer.
- Utilisez la fonction Fermer une référence pour fermer chaque référence d'objet ouverte lorsque vous avez fini de l'utiliser.
Mises en garde et recommandations
- Affichez les étiquettes du diagramme au moins une fois — La fonction Ouvrir une référence d'objet de VI ne peut pas trouver les objets dont les étiquettes n'ont jamais été affichées. Comme, par défaut, les objets du diagramme n'affichent pas d'étiquette, vous devez manuellement afficher les étiquettes des objets du diagramme si vous avez l'intention de trouver ces objets avec la fonction Ouvrir une référence d'objet de VI. Pour afficher l'étiquette d'un objet, cliquez avec le bouton droit sur l'objet et sélectionnez Éléments visibles»Étiquette. Lorsque l'étiquette a été affichée une fois, la fonction Ouvrir une référence d'objet de VI est capable de trouver l'objet associé, même si l'étiquette a été masquée de nouveau.
- Créez des étiquettes uniques — LabVIEW n'empêche pas d'avoir des étiquettes identiques pour plusieurs objets du diagramme. Par défaut, la plupart des objets qui sont membres de la même classe ont la même étiquette. Par exemple, si vous ajoutez deux boucles For sur un diagramme, elles ont chacune l'étiquette Boucle For. Si vous utilisez la fonction Ouvrir une référence d'objet de VI sur un objet qui a la même étiquette qu'un autre objet, LabVIEW renvoie une référence au premier objet qu'il trouve. L'assignation d'étiquettes uniques à chaque objet garantit que LabVIEW renvoie la référence désirée.
- Fermez toutes les références que vous avez ouvertes — Un nombre excessif de références ouvertes a un impact négatif sur les performances d'un VI. Lisez les informations sur la fermeture des références aux VIs ou objets de VI pour en savoir plus sur les performances.
Autres exemples
Reportez-vous au VI Creating New VI From Template.vi du répertoire labview\examples\Application Control\VI Scripting\Creating VIs pour voir un exemple d'obtention de références dans un VI connu.