Appel de fonctions définies par l'utilisateur à partir de MathScript LabVIEW (module MathScript RT)

Aide du module LabVIEW 2012 MathScript RT

Date d'édition : June 2012

Numéro de référence : 373123C-0114

»Afficher les infos sur le produit
Télécharger l'aide (Windows uniquement)

Une fois que vous avez défini et enregistré une fonction, vous pouvez l'appeler à partir de la fenêtre MathScript LabVIEW ou du Nœud MathScript. Pour appeler une fonction définie par l'utilisateur, le nom de fichier de la fonction doit être le même que le nom de la fonction et comporter l'extension .m en minuscules. Par exemple, le nom de fichier de la fonction foo doit être foo.m. Vous devez également enregistrer la fonction dans un répertoire situé dans la liste des chemins de recherche du module MathScript RT. L'exemple suivant représente une fonction définie par l'utilisateur qui ajoute deux valeurs en entrée et renvoie la somme :

function return_value = add2(a, b)

%Add a and b

return_value = a + b;

Vous pouvez utiliser la syntaxe suivante pour appeler cette fonction après avoir enregistré le fichier comme add2.m dans un répertoire de la liste des chemins de recherche :

c = add2(5, 9)

Remarque  Les appels aux fonctions définies par l'utilisateur sont sensibles à la casse sous Linux, mais pas sous Windows ni Mac OS.

Appel de fonctions définies par l'utilisateur au chargement

LabVIEW identifie les fonctions définies par l'utilisateur par leur nom de fichier. Lorsque vous appelez une fonction définie par l'utilisateur depuis la fenêtre MathScript LabVIEW, LabVIEW effectue une recherche de haut en bas dans la liste des chemins de recherche MathScript pour trouver un fichier .m du nom spécifié. Si vous chargez un VI doté d'un nœud MathScript qui appelle une fonction définie par l'utilisateur, LabVIEW recherche dans les trois emplacements suivants, dans l'ordre, un fichier .m du nom spécifié :

  • LabVIEW commence par examiner la mémoire pour déterminer si un fichier .m du nom spécifié s'y trouve déjà.
  • Ensuite, LabVIEW recherche dans le répertoire où se trouvait votre fichier .m la dernière fois que vous avez enregistré le VI contenant le nœud MathScript. Comme LabVIEW cherche dans le répertoire où votre fichier .m se trouvait la dernière fois que vous avez enregistré le VI, il n'est pas nécessaire de reconfigurer la liste des chemins de recherche du module MathScript RT si vous ouvrez le VI sur un autre ordinateur. Vous devez toutefois maintenir le même chemin relatif entre le VI et votre fichier .m.
  • Pour finir, LabVIEW fait une recherche de haut en bas dans la liste des chemins du module MathScript RT. Si vous ouvrez le VI sur un autre ordinateur, la liste des chemins de la recherche risque de changer car LabVIEW recherche dans la liste de recherche configurée pour cet ordinateur, et non dans la liste des chemins de recherche configurée la dernière fois que vous avez enregistré le VI.
Remarque  Si un symbole de mise en garde apparaît dans le nœud MathScript, LabVIEW recherche le fichier m dans le répertoire où il se trouvait la dernière fois, puis dans les chemins répertoriés dans la liste des chemins de recherche MathScript et enfin en mémoire.

Appel de fonctions définies par l'utilisateur à l'édition et à l'exécution

Lorsque vous écrivez un nouveau script qui appelle une fonction définie par l'utilisateur, ou que vous ajoutez ou éditez un appel à une fonction définie par l'utilisateur dans un nœud MathScript existant, LabVIEW recherche si un fichier .m du nom spécifié se trouve en mémoire, puis recherche dans les chemins répertoriés dans la liste des chemins de recherche du module MathScript RT en allant de haut en bas. Autrement dit, si vous chargez un VI existant et que vous éditez un appel de fonction dans un nœud MathScript, LabVIEW ne recherche pas votre fichier .m dans le répertoire où il se trouvait la dernière fois que vous avez enregistré le VI.

Remarque Remarque  Si un symbole de mise en garde apparaît dans le nœud MathScript, LabVIEW effectue une recherche dans les chemins répertoriés dans la liste des chemins de recherche de MathScript puis dans la mémoire.

Comment LabVIEW établit un lien avec les fonctions définies par l'utilisateur

Si un fichier .m du nom spécifié se trouve actuellement en mémoire, LabVIEW lie l'appel de fonction à ce fichier .m à des fins d'exécution. Le lien entre l'appel de fonction et le fichier .m se comporte de la même manière que les liens entre les VIs et les sous-VIs. Lorsque vous tentez de référencer un sous-VI et qu'il existe un autre VI du même nom en mémoire, LabVIEW référence le VI qui se trouve en mémoire au lieu de celui que vous avez sélectionné. De la même manière, si vous essayez de charger des références à deux fichiers .m différents portant le même nom et provenant de la même instance d'application, un seul fichier .m est réellement chargé en mémoire. Comme deux références au fichier .m pointent sur le même fichier, un problème de référence croisée a lieu.

Pour éviter les problèmes de référence croisée de fichiers, utilisez des projets LabVIEW. Lorsque vous référencez un fichier .m à partir d'un VI qui fait partie d'un projet, LabVIEW ajoute le fichier .m aux dépendances de la cible. Vous pouvez alors configurer un seul chemin de recherche pour le fichier .m. Par exemple, vous pouvez construire un VI avec un nœud MathScript qui appelle une fonction définie par l'utilisateur, nommée foo, et qui appartient au projet project1.lvproj. Vous pouvez aussi construire un VI avec un nœud MathScript qui appelle une autre fonction définie par l'utilisateur, nommée foo, et qui appartient au projet project2.lvproj. Cliquez avec le bouton droit sur une cible d'un projet, sélectionnez Propriétés dans le menu local et utilisez la page MathScript : chemins de la recherche de la liste Catégorie pour configurer un chemin de recherche unique à chaque projet, puis enregistrez les VIs. La prochaine fois que vous ouvrez un des VIs en dehors du projet, LabVIEW lie l'appel de la fonction foo au fichier .m approprié tant que vous n'ouvrez qu'un des VIs.

CET ARTICLE VOUS A-T-IL ÉTÉ UTILE ?

Pas utile