Développement de drivers d’instruments LabVIEW Plug and Play

Aperçu

Ce document, qui décrit les normes et les pratiques des drivers Plug-and-Play LabVIEW, est destiné aux développeurs de drivers et décrit les normes de structuration des VIs, les E/S d’instrument, le style et les rapports d’erreurs. Il décrit également les composants du driver d’instruments et la manière d’intégrer ces composants. De plus, ce document décrit un processus de développement de drivers d’instruments utiles.

D’autres ressources incluent les modèles de drivers d’instruments et le manuel Instrument Driver Guidelines, tous deux disponibles sur le réseau de drivers d’instruments NI (ni.com/idnet).

Pour utiliser ce document, vous devez avoir une connaissance de base du contrôle des instruments et vous familiariser avec le fonctionnement de LabVIEW. Vous devez également vous familiariser avec l’interface de programmation d’application (API) VISA (Virtual Instrument Software Architecture).

Contenu

Qu’est-ce qu’un driver d’instruments LabVIEW Plug and Play ?

Un driver d’instruments LabVIEW Plug and Play est un ensemble de VIs qui contrôlent un instrument programmable. Chaque VI correspond à une opération d’instrument, tel que la configuration, le déclenchement et la lecture de mesures de l’instrument. Les drivers d’instruments vous aident à utiliser votre instrument depuis votre ordinateur. En outre, ils vous font gagner du temps et vous font faire des économies en matière de développement car vous n’avez pas besoin d’apprendre le protocole de programmation de chaque instrument. Avec des drivers d’instruments open-source et bien documentés, vous pouvez personnaliser leur fonctionnement pour obtenir de meilleures performances. Une conception modulaire facilite la personnalisation du driver.

L’utilisation d’une architecture standard pour tous les drivers d’instruments LabVIEW présente les avantages suivants :

  • Améliore la cohérence des drivers d’instruments au profit des utilisateurs finaux.
  • Améliore la qualité des drivers.
  • Minimise la duplication de l’effort.
  • Améliore la facilité d’utilisation en fournissant une méthodologie cohérente pour l’utilisation de drivers d’instruments provenant de sources diverses.
  • Simplifie le processus de développement des drivers d’instruments au profit des développeurs de drivers d’instruments.

Le LabVIEW Instrument Driver Network contient des drivers d’instruments pour divers instruments programmables, y compris les instruments GPIB, USB, TCP/IP, VXI, RS-232 et PXI. Les drivers d’instruments contiennent des VIs de haut niveau avec des interfaces intuitives, ce qui vous permet de tester et de vérifier rapidement les capacités à distance de votre instrument. Vous n’avez pas besoin de connaître le contrôle des instruments de bas niveau et les commandes et syntaxes spécifiques à l’instrument. Vous créez des applications de contrôle d’instruments en construisant des VIs à l’aide des VI de driver d’instruments en tant que sous-VIs sur vos diagrammes.

Modèle de driver d’instruments LabVIEW Plug and Play

De nombreux instruments programmables ont un grand nombre de fonctions et de modes. En raison de cette complexité, il est nécessaire de fournir un modèle de conception cohérent qui vous aide, ainsi que les développeurs de drivers d’instruments, à développer des applications de contrôle d’instruments. Le modèle de driver d’instruments LabVIEW Plug and Play contient à la fois des règles de structure externe et de structure interne. La structure externe montre comment le driver d’instruments s’interface avec l’utilisateur et avec les autres composants logiciels du système. La structure interne montre l’organisation interne du module logiciel du driver d’instruments.

Structure externe du driver d’instruments

Un driver d’instruments est constitué des VIs API que vous appelez à partir d’une application de niveau supérieur. La figure ci-dessous illustre comment le driver d’instruments interagit avec le reste du système.

Figure 1 : Structure externe du driver d’instruments LabVIEW

La structure externe illustre comment le driver d’instruments présente à la fois une interface interactive et une interface de programmation. L’interface de programmation d’application (Application Programming Interface - API) est l’ensemble des VIs de driver d’instruments appelables par l’utilisateur utilisés dans les systèmes centrés sur l’utilisateur final. Par exemple, un système de test du fabricant peut faire des appels de driver d’instruments pour communiquer avec un multimètre ou un oscilloscope.

Vous vous familiarisez avec l’API via les interfaces du driver d’instruments. En exécutant de manière interactive les interfaces des VIs driver d’instruments, vous êtes amené à comprendre comment chaque commande affecte l’instrument. Une fois que vous vous êtes familiarisé avec les paramètres, vous pouvez incorporer les VIs de driver d’instruments dans votre application.

L’interface d’E/S Virtual Instrument Software Architecture (VISA) est l’ensemble des fonctions LabVIEW que le driver utilise pour communiquer avec le matériel de l’instrument. VISA est une interface de programmation standard largement utilisée qui contrôle les bus d’instruments GPIB, USB, série et autres. Reportez-vous à l’Aide LabVIEW pour obtenir une description des fonctions et commandes VISA.

Les VIs de support sont des VIs auxquels vous n’avez pas directement accès. Par conséquent, les VIs de support ne font pas partie de l’API de driver d’instruments. Par exemple, les drivers d’instruments appellent souvent le VI de configuration par défaut lors de l’initialisation pour configurer l’instrument dans un état permettant un contrôle robuste de l’instrument par le reste des VIs de driver d’instruments. Seuls les VIs Initialize et Reset utilisent le VI de configuration par défaut en tant que sous-VI ; il est donc considéré comme un VI de support.

Modèle de conception interne de drivers d’instruments

La structure interne du driver d’instruments définit l’organisation des VIs de driver d’instruments. Tous les VIs API accessibles sont organisés en une hiérarchie modulaire basée sur la fonctionnalité de l’instrument.

La figure ci-dessous illustre la structure interne des drivers d’instruments LabVIEW. Vous obtenez la granularité nécessaire pour contrôler correctement les instruments dans les applications. Par exemple, vous pouvez initialiser tous les instruments une fois au début, configurer plusieurs instruments, puis déclencher plusieurs instruments simultanément. En outre, vous pouvez initialiser et configurer un instrument une fois, puis déclencher et lire plusieurs fois à partir de l’instrument.

Le modèle fournit un modèle de driver d’instruments cohérent. Une fois que vous vous êtes familiarisé avec un driver d’instrument, vous pouvez appliquer vos connaissances à d’autres drivers d’instruments LabVIEW.

Figure 2 : Structure interne du driver d’instruments LabVIEW

VIs API de driver d’instruments

Les VIs API de driver d’instruments sont divisés en six catégories :

Initialisation — Tous les drivers d’instruments LabVIEW doivent inclure un VI Initialize. Le VI Initialize établit la communication avec l’instrument ; c’est le premier VI de driver d’instruments appelé. Facultativement, le VI effectue une demande d’identification de l’instrument et des opérations de réinitialisation. Il peut également placer l’instrument à l’état de mise sous tension par défaut ou dans un autre état.

Configuration — Les VIs de configuration regroupent des sous-programmes servant à configurer l’instrument en vue de réaliser des opérations spécifiques. Habituellement, les API de driver d’instruments incluent plusieurs VIs de configuration. Le nombre de VIs de configuration pour un driver d’instruments dépend des capacités uniques de l’instrument. Une fois que vous avez appelé ces VIs, l’instrument est prêt à prendre des mesures ou à stimuler un système.

Action/État -- Il existe deux types de VIs d’action et d’état. Les VIs d’action commencent ou terminent des opérations de test et de mesure. Ces opérations comprennent l’armement d’un système de déclenchement ou la génération d’un stimulus. Ces VIs diffèrent des VIs de configuration car ils ne modifient pas les paramètres de l’instrument. Au lieu de cela, ils contrôlent l’instrument pour qu’il exécute une action en fonction de sa configuration actuelle. Les VIs d’état obtiennent l’état actuel de l’instrument ou l’état des opérations en cours. Les VIs d’état sont généralement créés lorsqu’ils sont requis par d’autres fonctions.

Données — Les VIs de données transfèrent des données vers ou depuis l’instrument. Les exemples comprennent les VIs utilisés pour lire une valeur ou une waveform mesurée et les VIs pour télécharger des waveforms ou des patterns numériques vers un instrument source. Les sous-programmes spécifiques de cette catégorie dépendent de l’instrument.

Utilitaire -- Les VIs d’utilitaires effectuent diverses opérations auxiliaires, telles que la réinitialisation et l’auto-test, et peuvent inclure d’autres routines personnalisées, telles que l’étalonnage ou le stockage et le rappel de configurations d’instruments.

Fermeture -- Le VI de fermeture arrête la connexion logicielle à l’instrument. Tous les drivers d’instruments LabVIEW doivent inclure un VI de fermeture.

Chaque catégorie de VIs, à l’exception des VIs Initialize et Close, contient plusieurs VIs modulaires. Une grosse partie du travail lors du développement d’un driver d’instruments réside dans la conception et l’organisation initiales des VIs API de driver d’instruments.

Vous pouvez télécharger des VIs modèles à partir de NI et les personnaliser pour effectuer des opérations communes à presque tous les instruments, telles que l’initialisation, la fermeture, la réinitialisation, l’auto-test et la demande de révision (Initialize, Close, Reset, Self-Test et Revision Query). Les VIs modèles contiennent des instructions de modification pour leur utilisation dans un driver d’instruments spécifique pour un instrument particulier. Reportez-vous à la section Modèles de drivers d’instruments LabVIEW pour en savoir plus sur la personnalisation des VIs modèles.

En plus de ces fonctions courantes, vous pouvez ajouter des VIs supplémentaires pour effectuer des opérations spécifiques aux instruments. Les VIs spécifiques que vous développez dépendent des capacités uniques de votre instrument. Toutefois, dans la mesure du possible, respectez les six catégories de VI de driver d’instruments.

En utilisant la structure de conception interne illustrée à la Figure 2, vous pouvez combiner des VIs de driver d’instruments pour créer des applications. Le diagramme de la figure ci-dessous illustre comment les VIs API des drivers d’instruments contrôlent par programmation le système d’acquisition HP34970A.

Figure 3 : Diagramme du VI Exemple de mesure du courant HP34970A

La figure 4 illustre le diagramme d’un des VIs API de driver d’instruments, qui utilisent des fonctions LabVIEW intégrées et des fonctions VISA pour construire des chaînes de commande et les envoyer à l’instrument. Les fonctions VISA assurent la gestion des appareils, les E/S d’instrumentation normalisées et la gestion des erreurs. Le VI spécifique de la figure 4 ci-dessous crée une chaîne de commande en combinant des opérations de formatage de chaîne, puis en câblant la chaîne résultante dans la fonction VISA Write. La fonction VISA Write envoie la chaîne de commande à l’instrument. La fonction VISA Read renvoie la chaîne de réponse de l’instrument. La chaîne de réponse est ensuite formatée en un tableau numérique à utiliser dans l’application. Le reformatage de la chaîne de réponse est bénéfique car elle permet de visualiser les données de réponse dans le format voulu. Le VI Error Query recherche les erreurs et met à jour le cluster d’erreurs.

Figure 4 : Créer une chaîne de commande

VIs supplémentaires distribués avec le driver d’instruments

En plus des VIs API décrits par la structure interne, un driver d’instruments comprend également des exemples de VIs et un VI VI Tree.

VIs d’exemple de driver d’instruments

Tous les drivers d’instruments incluent des exemples de VIs. Ces exemples illustrent comment combiner les VIs de driver d’instruments pour les opérations de test et de mesure de base avec l’instrument. Ils illustrent la fonctionnalité de test et de mesure en configurant l’instrument pour un mode de fonctionnement commun, le déclenchement et les mesures. Les VIs d’exemple vérifient également la communication avec l’instrument. Ces exemples doivent être ajoutés à l’outil de recherche d’exemples NI via la création d’un fichier *.bin3.  La figure ci-dessous illustre la face-avant du VI d’exemple de mesure de courant HP34970A.

Figure 5 : Face-avant du VI d’exemple de mesure de courant HP34970A

VI VI Tree

Vous pouvez accéder aux VIs de driver d’instruments depuis la palette Fonctions de LabVIEW. Toutefois, les VIs VI Tree vous permettent d’afficher simultanément la hiérarchie complète des drivers d’instruments. Le VI VI Tree est un VI non exécutable conçu pour illustrer la structure fonctionnelle du driver d’instruments, comme l’illustre la figure suivante.

Figure 6 : Diagramme du VI VI Tree HP34970A

Développement du driver d’instruments LabVIEW

Cette section décrit la procédure de développement d’un driver d’instruments Plug and Play LabVIEW. Le driver d’instruments LabVIEW idéal vous permet de contrôler toutes les fonctionnalités de l’instrument. Comme il n’est pas possible de spécifier la fonctionnalité requise de tous les différents types d’instruments, tels que les multimètres, les compteurs/timers, cette section se concentre sur les règles architecturales pour tous les drivers. Utilisez ces informations pour vous aider à organiser et à conditionner vos drivers de manière cohérente tout en implémentant les fonctionnalités propres à votre instrument.

Suivez un processus en trois étapes pour développer un driver d’instruments LabVIEW. À l’étape 1, vous concevez la structure du driver d’instruments. À l’étape 2, vous utilisez l’Assistant de projet de driver d’instruments pour créer de nouveaux VIs de driver d’instruments. À l’étape 3, vous ajoutez des VIs définis par le développeur et vous créez des exemples de VIs.

Étape 1. Concevoir la structure du driver d’instruments

Le driver d’instruments idéal répond aux besoins de l’utilisateur, ni plus ni moins. Aucun type particulier de conception de driver n’est parfait pour tout le monde, mais en étudiant attentivement l’instrument et en regroupant les commandes en VIs modulaires, vous pouvez satisfaire la plupart de vos utilisateurs.

Lorsque le nombre de commandes programmables dans un instrument augmente, le besoin d’une conception de driver d’instruments modulaire augmente également. N’essayez pas d’implémenter toutes les fonctionnalités d’un instrument avec un seul VI. Cependant, ne concevez pas un driver d’instruments dans lequel chaque VI contrôle une seule entité.  Cette approche pourrait résulter en une API avec des centaines de VIs. En outre, cela pourrait obliger l’utilisateur final à devoir comprendre les règles spécifiques aux instruments en matière d’ordre et d’interaction des commandes. La conception modulaire simplifie la programmation nécessaire pour contrôler l’instrument.

Envisagez d’abord la structure globale de votre driver d’instruments avant de créer les VIs individuels. Concevez un driver d’instruments en tenant compte de l’application et de l’utilisateur final.

Comprendre l’instrument est essentiel au processus de conception

Les étapes suivantes décrivent une approche pour développer la structure d’un driver d’instruments LabVIEW.

  1. Familiarisez-vous avec le fonctionnement de l’instrument. Lisez attentivement le manuel d’utilisation. Apprenez à utiliser l’instrument de manière interactive avant de tenter de développer un VI.
  2. Utilisez l’instrument dans une configuration de test réel pour acquérir une expérience pratique. Le manuel d’utilisation peut expliquer comment configurer un test simple.
  3. Étudiez la section de programmation du manuel. Lisez les instructions pour en savoir plus sur les commandes et les fonctions disponibles et leur organisation. Décidez quelles sont les meilleures fonctionnalités pour une utilisation programmatique.
  4. Examinez les drivers d’instruments existants pour voir si vous pouvez en trouver un qui contrôlent des instruments similaires. Souvent, les instruments de la même famille ont des ensembles de commandes de programmation similaires que vous pouvez modifier pour votre instrument.
  5. Recherchez les commandes utilisées ensemble pour exécuter une tâche ou une fonction unique afin de développer la structure du driver. Souvent, les sections du manuel correspondent aux regroupements des fonctions d’un driver d’instruments.


Développer la structure du driver en organisant les commandes des instruments

L’organisation d’un driver d’instruments définit la hiérarchie et la relation globale des VIs des composants du driver d’instruments.

Il existe deux types de VIs API dans un driver d’instruments : ceux qui sont communs à tous les instruments et ceux qui présentent les capacités uniques de l’instrument. Les VIs modèle de driver d’instruments (Initialize, Close, Reset, Self-Test, Revision Querry et Error Query) exécutent ces opérations communes. Vous, en tant que développeur de drivers d’instruments, définissez les VIs qui présentent les capacités uniques de l’instrument. Certains drivers d’instruments peuvent définir des catégories supplémentaires, telles que « routage » ou « balayage » pour les instruments de commutation.

Regroupez les VIs communs et définis par le développeur par catégories. Une catégorie est un groupe de VIs effectuant des opérations similaires. Les catégories de VIs les plus courantes sont la configuration, l’action/l’état, les données et l’utilitaire.

Le tableau suivant montre un exemple d’organisation de driver d’instruments pour un oscilloscope simple. Au niveau le plus élevé de la hiérarchie, vous voyez les VIs modèle (Initialize et Close) et les catégories de VI types.

Tableau 1 : Exemple d’organisation pour un oscilloscope simple.

Hiérarchie du VIType
VI Initialize(Modèle)
Exemples de VIs
Configuration automatique et Exemple Lire une waveform
(Développeur défini)
VIs de configuration
Configuration automatique
Configurer la verticale
Configurer l’horizontale
Configurer le déclenchement
Configurer le mode d’acquisition
(Développeur défini)
(Développeur défini)
(Développeur défini)
(Développeur défini)
(Développeur défini)
VIs de données
Lire la waveform
Lire une mesure
VIs avancés
Initialiser
Récupérer une waveform
Récupérer les mesures
(Développeur défini)
(Développeur défini)

(Développeur défini)
(Développeur défini)
(Développeur défini)
VIs d’Utilitaires
Réinitialiser
Auto-tester
Requête de révision
Requête d’erreur
(Modèle)
(Modèle)
(Modèle)
(Modèle)
VI Fermer(Modèle)


Exemple de conception

Consultez les informations sur l’organisation disponibles dans la plupart des manuels d’instruments pour vous aider à déterminer les paramètres à inclure dans un VI de driver d’instruments. En particulier, la section de programmation du manuel peut regrouper les commandes en sections, telles que la configuration d’une mesure, le déclenchement, la lecture de mesures, etc. Utilisez ces regroupements comme modèle pour la hiérarchie des drivers. Recherchez les commandes utilisées ensemble pour exécuter une tâche ou une fonction unique afin de vous aider à développer une structure pour le driver. Un driver modulaire contient des VIs individuels pour chaque groupe de commandes.

Le tableau ci-dessous illustre comment les commandes d’instrument pour un simple DMM peuvent correspondre à des VIs de driver d’instruments définis par le développeur.

Tableau 2 : Relations entre les sections du manuel et les commandes avec les VIs de drivers d’instruments.

Instrument virtuel TerminauxCommandes d’instruments
Initialiser Requête d’ID ?

Réinitialiser ?
Configuration entrée/sortie *IDN ?

*RST

Configuration de mesure

Fonction de mesure
Gamme
Résolution
Nombre de cycles de la ligne d’alimentation

Configuration de mesure SENS:FUNC <sélection de fonction>
<sélection de fonction>:RANGE ;
<sélection de fonction>:RES ;
<sélection de fonction>:NPLC ;

Configuration de déclenchement

Source de déclenchement
Retard de déclenchement
Nombre de déclenchements
Nombre d’échantillons

Opérations de déclenchement TRIG:SOUR
TRIG:DEL
TRIG:COUN
SAMP:COUN
Lectures de Lire les mesuresLire les mesures
Utilisez les commandes suivantes pour récupérer les mesures
INIT;
FETCH;


Alors que le manuel de l’instrument peut fournir de nombreuses informations sur la manière de structurer le driver d’instruments, ne vous y fiez pas exclusivement. Votre connaissance de l’utilisation de l’instrument devrait être votre principal guide. Vous devez souvent placer des commandes provenant de plusieurs groupes de commandes différents dans un même VI. À d’autres moments, vous devez prendre un groupe de commandes du manuel et le diviser en deux VIs ou plus. Examinez comment le manuel d’un instrument regroupe les commandes de configuration de déclenchement avec les commandes qui exécutent réellement l’armement et l’exécution de déclenchement. Dans ce cas, séparez les commandes en deux VIs -- un qui configure le déclenchement et un qui arme ou déclenche l’instrument.

Étape 2. Utiliser l’Assistant de projet de driver d’instruments pour créer un nouveau driver d’instruments

Après avoir conçu la structure du driver d’instruments LabVIEW, utilisez l’Assistant de projet de driver d’instruments pour créer un nouveau driver d’instruments, puis modifiez les nouveaux VIs de driver d’instruments pour qu’ils fonctionnent avec votre instrument. 

Utilisation de l’Assistant de driver d’instruments

Dans LabVIEW 8.x et versions ultérieures, l’Assistant de projet de driver d’instruments peut être utilisé pour créer un nouveau projet de driver d’instruments. 

Suivez les étapes suivantes pour créer un driver d’instruments en utilisant l’Assistant de driver d’instruments.

  1. Dans la fenêtre de démarrage de LabVIEW, sélectionnez Outils»Instrumentation»Créer un projet de driver d’instruments pour lancer l’Assistant de projet de driver d’instruments.
  2. Sélectionnez Nouveau driver à partir d’un modèle dans le menu Type de projet et sélectionnez le type d’instrument dans le menu Driver source.
  3. Sélectionnez Suivant.
  4. Créer un Identificateur de driver. Cela devrait être quelque chose qui a un sens.
  5. Sélectionnez Suivant.
  6. Sélectionnez la couleur et le type de l’icône.
  7. Sélectionnez Terminer. Cela fera apparaître la fenêtre de projet et l’Aide LabVIEW.

Étape 3. Ajouter des VIs d’API de driver d’instruments

Ajoutez les VIs d’API définis par le développeur qui définissent la fonctionnalité du driver d’instruments et accèdent aux capacités uniques de l’instrument. 

Utilisation de l’Assistant de VI driver d’instruments

L’Assistant de VI driver d’instruments peut créer des VIs supplémentaires supportés par l’instrument. Si vous avez créé un driver à partir d’un modèle source, comme le modèle Multimètre numérique, l’instrument supporte probablement des fonctionnalités supplémentaires qui ne sont pas couvertes par le modèle. Vous devez créer des VIs supplémentaires pour chaque fonctionnalité supportée, en utilisant des structures et des VIs existants comme modèle. Par exemple, les oscilloscopes possèdent généralement plusieurs types de déclenchement mais le modèle Oscilloscope intègre uniquement le déclenchement par front. Si l’instrument supporte d’autres types de déclenchement, ajoutez cette fonctionnalité avec des VIs drivers d’instruments supplémentaires.

Suivez les étapes suivantes pour créer un driver d’instruments en utilisant l’Assistant de driver d’instruments.

  1. Ouvrez un Projet de driver d’instruments.
  2. Cliquez avec le bouton droit sur une bibliothèque de projet de driver d’instruments LabVIEW (.lvlib) dans la fenêtre de l’Explorateur de projet et sélectionnez Nouveau»VI driver d’instruments dans le menu local pour afficher l’Assistant de VI driver d’instruments.
  3. Sur la page Début de l’Assistant de VI driver d’instruments, sélectionnez l’une des options suivantes, puis cliquez sur le bouton Suivant.
    1. Créer à partir d’un VI modèle de driver d’instruments — Crée le VI de driver d’instruments à partir d’un VI modèle.
    2. Copier à partir d’un VI existant — Copie et configure un VI de driver d’instruments existant et ses sous-VIs.
    3. Configurer votre propre VI — Configure une commande d’instrument, spécifie comment analyser une réponse, interagit avec des instruments connectés et génère le code de formatage ou d’analyse de chaîne et d’E/S d’instrument correspondant sous forme de nouveau VI.
    4. Ajouter un VI vide — Crée un VI de driver d’instruments qui contient seulement une commande et un indicateur Nom de ressource VISA, ainsi qu’une commande et un indicateur cluster d’erreur.
  4. Sur la deuxième page de l’assistant :
    1. Si vous avez sélectionné Créer à partir d’un VI modèle de driver d’instruments sur la page Début, sélectionnez un VI parmi les modèles de VI driver d’instruments disponibles sur la page Faire une copie du modèle puis cliquez sur le bouton Suivant.
    2. Si vous avez sélectionné Copier à partir d’un VI existant sur la page Début, cliquez sur le bouton Parcourir sur la page Naviguer vers le VI pour naviguer vers le VI que vous voulez ajouter au projet et le sélectionner, puis cliquez sur le bouton Suivant.
    3. Si vous avez sélectionné Configurer votre propre VI sur la page Début, sélectionnez VI de configuration ou VI de mesure sur la page Sélectionner le type de VI et cliquez sur le bouton Suivant. Sélectionnez VI de configuration pour créer un VI qui envoie une commande à l’instrument. Sélectionnez VI de mesure pour créer un VI qui envoie une commande à l’instrument puis lit la réponse de l’instrument.
    4. Si vous avez sélectionné Ajouter un VI vide sur la page Début, passez à l’étape 6.
  5. Si vous avez sélectionné Configurer votre propre VI sur la page Début, configurez la page Configuration de commande puis cliquez sur le bouton Suivant. Sinon, passez à l’étape suivante.
    1. Sélectionnez le type de données approprié pour chaque paramètre dans le menu déroulant Type de données.
    2. Définissez une valeur par défaut pour chaque paramètre dans le champ numérique à droite du menu déroulant Type de données.
    3. Vérifiez la chaîne de commande configurée dans le champ Aperçu de la commande.
    4. Si vous avez sélectionné VI de configuration sur la page Sélectionner le type de VI, sélectionnez l’instrument dans le menu déroulant de la section Tester la commande. Si vous avez sélectionné VI de mesure sur la page Sélectionner le type de VI, cliquez sur le bouton Suivant puis sélectionnez l’instrument dans le menu déroulant de la section Tester la commande.
    5. Cliquez sur le bouton Exécuter le test pour tester la commande que vous avez configurée. LabVIEW envoie la commande du champ Aperçu de la commande à l’instrument et montre le nombre d’octets écrits sur l’instrument dans le champ Octets écrits. Si la commande réussit, le voyant devient vert clair. Si VISA renvoie une erreur, le voyant devient rouge. Cliquez sur le bouton Expliquer l’erreur pour afficher les erreurs. Si vous avez sélectionné VI de mesure sur la page Sélectionner le type de VI, LabVIEW lit la réponse de l’instrument et l’affiche dans le champ Réponse. Vous pouvez sélectionner le type de données de la réponse dans la section Configurer le type de données de la réponse.
  6. Sur la page Propriétés du VI, modifiez le nom, le chemin, l’icône et la description du VI puis cliquez sur le bouton Suivant.
  7. Sur la page Résumé, vérifiez les informations sur le nouveau VI et cliquez sur le bouton Terminer pour ajouter le VI driver d’instruments et tout autre sous-VI au projet de driver d’instruments et ouvrir le VI. Si vous avez créé le VI à partir d’un VI modèle ou d’un VI existant, LabVIEW renomme les sous-VIs qui ont le même nom mais un connecteur différent d’un VI existant dans la bibliothèque de projet. LabVIEW ne copie pas les sous-VIs qui ont le même nom et le même connecteur qu’un VI existant de la bibliothèque de projet. Le nouveau VI utilise les VIs qui existent dans la bibliothèque de projet à la place des sous-VIs que LabVIEW n’a pas ajoutés.


• VIs : Noms et propriétés
• Commandes/Indicateurs : Nommage et représentation des données
• Faces-avant de VIs
• Icônes et connecteurs
• Diagrammes
• Documentation

Après avoir modifié chaque VI, créez les menus de la palette Fonctions afin de pouvoir installer et utiliser les drivers d’instruments et y accéder à partir de la palette Fonctions. Par souci de cohérence, les drivers d’instruments doivent apparaître dans la sous-palette VI de driver d’instruments. Dans la sous-palette, les VIs d’instruments doivent avoir la même organisation que le modèle de conception interne, comme le montre la figure ci-dessous.

Figure 7 : Exemple de sous-palette pour le FL45

Style de la face-avant

Outre les commandes nécessaires pour faire fonctionner l’instrument, la face-avant doit inclure la commande Nom de ressource VISA, l’indicateur Nom de ressource VISA en sortie, la commande entrée d’erreur et l’indicateur sortie d’erreur. Reportez-vous à la section Bibliothèques de support de drivers pour en savoir plus sur les handles de session VISA. Dans LabVIEW 7.1 ou versions antérieures, reportez-vous au chapitre 6 du Manuel de l’utilisateur LabVIEW (lien ci-dessous) pour de plus amples informations sur les paramètres d’entrée d’erreur et de sortie d’erreur. Dans LabVIEW 8.0 ou versions ultérieures, reportez-vous à la rubrique Gestion des erreurs de l’Aide LabVIEW (ci-dessous).

Respectez les règles de style suivantes pour vous assurer de l’uniformité avec les autres faces-avant de LabVIEW lors de la conception des faces-avant. Reportez-vous aux sections Commandes/Indicateurs : Nom et représentation des données et Face-avant du manuel Instrument Driver Guidelines pour toutes les indications et les recommandations quant à la création des faces-avant du driver d’instruments.

  1. Utilisez la police par défaut (Application) pour toutes les étiquettes. LabVIEW inclut cette police. Elle est donc disponible pour tous les autres utilisateurs.
  2. Mettez en gras les noms de commande et d’indicateur. Utilisez des majuscules pour la première lettre du premier mot dans les étiquettes de commandes, telles que Configurer la source de déclenchement. Nom de ressource VISA, entrée d’erreur, sortie d’erreur et les acronymes connus tels que AC ou FM sont des exceptions.
  3. Placez les informations par défaut en texte brut entre parenthèses dans l’étiquette de commande afin que les valeurs par défaut apparaissent dans la fenêtre d’Aide contextuelle. Cela facilite le câblage vers le VI sur le diagramme. Par exemple, étiquetez une commande menu déroulant du sélecteur de fonction avec une tension DC par défaut à zéro comme fonction (0: DCV) et étiquetez un commutateur booléen qui est par défaut sur Vrai indiquant automatiquement activé comme Délai de déclenchement automatique (T: activé).
  4. Placez la commande Nom de ressource VISA en haut à gauche, l’indicateur Nom de ressource VISA en haut à droite, la commande entrée d’erreur en bas à gauche et la commande sortie d’erreur en bas à droite.
  5. Modifiez toutes les descriptions de commande et d’indicateur. Reportez-vous à l’Aide LabVIEW pour obtenir de plus amples informations sur la description de la commande.


Icône et connecteur

Réservez le terminal supérieur gauche du connecteur pour la commande Nom de ressource VISA et le terminal supérieur droit pour l’indicateur Nom de ressource VISA en sortie. Réservez le terminal inférieur gauche pour la commande entrée d’erreur et le terminal inférieur droit pour l’indicateur de sortie d’erreur pour simplifier le câblage vers les terminaux d’erreur suivants. Sélectionnez un modèle de connecteur qui a plus de terminaux que le nombre de commandes et d’indicateurs car vous pouvez ajouter des commandes ou des indicateurs au connecteur ultérieurement. Cette précaution vous empêche de modifier le modèle et de remplacer toutes les instances d’appels vers un sous-VI modifié. Placez les entrées sur la gauche et les sorties sur la droite pour promouvoir un flux de données de gauche à droite sur le diagramme.

Utilisez des icônes pertinentes pour chaque VI. Utilisez les icônes du Glossaire des graphiques dans la mesure du possible. En outre, vous pouvez emprunter des icônes à partir de VIs similaires dans d’autres drivers d’instruments ou utiliser la bibliothèque d’icônes Icon256.vi située dans le répertoire labview\examples\instr\insticon.llb. Incluez le préfixe du driver d’instruments en haut de l’icône afin que les utilisateurs puissent identifier les VIs à partir de l’API de driver. Créez une icône en utilisant des glyphes et des images qui représentent la fonctionnalité du VI. La figure ci-dessous montre des exemples d’icônes de configuration de Icon256.vi.

Figure 8 : Exemple d’icône

Reportez-vous à la section Icône et connecteur du manuel Instrument Driver Guidelines pour connaître les indications et recommandations pour créer des icônes ayant un sens et concevoir des connecteurs.

Diagramme

Après avoir conçu la face-avant, créez le diagramme. Utilisez la fonction Formater en chaîne pour créer des chaînes de commande d’instrument. Cette fonction extensible formate plusieurs valeurs et plusieurs types de données dans une chaîne. Double-cliquez sur la fonction pour entrer les commandes de format à l’aide de la boîte de dialogue Formater en chaînes. Utilisez également les fonctions Ajouter la chaîne Vrai/Faux et Ajouter une chaîne multiligne pour manipuler des chaînes. Par exemple, utilisez la fonction Ajouter la chaîne Vrai/Faux pour convertir la valeur d’une chaîne booléenne de la face-avant en chaîne. Cette fonction sélectionne la chaîne appropriée et la concatène à la chaîne de commande en une seule étape. Utilisez la fonction Ajouter une chaîne multiligne pour convertir une valeur menu déroulant texte en chaîne. Cette fonction sélectionne la chaîne appropriée en fonction de la valeur de l’étiquette et la concatène avec la chaîne de commande. Reportez-vous à l’Aide LabVIEW (ci-dessous) pour obtenir des descriptions de ces fonctions. Le diagramme de la figure ci-dessous illustre les meilleures méthodes pour créer des chaînes de commande.

Figure 9 : Techniques de construction de chaînes

De nombreux instruments sont conformes à l’ensemble des commandes et à la syntaxe de programmation SCPI (Standard Commands for Programmable Instruments). Ces instruments basés sur SCPI vous permettent de relier plusieurs commandes ensemble pour envoyer une opération d’écriture d’E/S. Les fonctions de chaîne décrites ci-dessus vous permettent de créer des chaînes qui incluent plusieurs commandes. Connectez la chaîne combinée à la fonction VISA Write.

Le fonctionnement du VI se comprend principalement à partir du diagramme. Il est donc essentiel que les diagrammes soient aussi lisibles que possible. La plupart des recommandations pour les diagrammes de drivers d’instruments sont similaires aux meilleures pratiques pour toutes les applications LabVIEW, qui incluent une disposition de gauche à droite du diagramme, minimisant les coudes des fils et utilisant des techniques de codage efficaces et cohérentes. Reportez-vous à la section Diagramme du manuel Instrument Driver Guidelines pour connaître les indications et les recommandations spécifiques pour la création d’un diagramme de driver d’instruments.

Le diagramme de la figure ci-dessous respecte les indications et les recommandations détaillées dans le manuel Instrument Driver Guidelines.

Figure 10 : Diagramme simple respectant les règles de style

Voir aussi :
Manuel de l’utilisateur LabVIEW
Aide LabVIEW : Gestion des erreurs

Bibliothèques de support de driver

Les outils LabVIEW pour le développement de drivers d’instruments incluent une bibliothèque de VIs servant de point de départ pour créer vos propres drivers, l’Assistant de projet de driver d’instruments qui personnalise ces modèles, les fonctions VISA pour effectuer les E/S d’instrument, les bibliothèques d’icônes pour créer des icônes ayant un sens et les fonctions et fichiers de support. Cette section décrit les fonctions VISA et les VIs modèle de driver d’instruments.

VISA

Les fonctions VISA contiennent l’interface E/S utilisée par les drivers d’instruments pour communiquer avec des instruments programmables. VISA fournit une bibliothèque d’interface unique permettant de contrôler les instruments VXI, GPIB, Serial, TCP/IP et autres. Reportez-vous à la rubrique VIs et fonctions VISA de l’Aide LabVIEW (ci-dessous) pour obtenir une description des fonctions et des commandes VISA.

La face-avant de la plupart des VIs de drivers d’instruments comprend une commande Nom de ressource VISA et un indicateur Nom de ressource VISA en sortie. Ces commandes et indicateurs transmettent des informations de session entre les sous-VIs de driver d’instruments. Le nom de ressource VISA identifie la ressource sur laquelle le VI fonctionne. Il fait aussi la distinction entre les différentes sessions du driver d’instruments.

Nom de ressource VISA est une référence d’identifiant unique à une session d’E/S de périphérique (à l’exception du VI Initialize). Il identifie le périphérique avec lequel le VI communique et transmet toutes les informations de configuration nécessaires pour effectuer l’opération d’E/S.

Nom de ressource VISA en sortie contient les mêmes informations sur l’identificateur que Nom de ressource VISA. Cette commande transmet la référence du VI vers d’autres VIs qui accèdent au même instrument. Câbler des noms de ressources VISA entre eux établit une dépendance des données.

Vous pouvez également passer le nom de ressource VISA dans et hors des fonctions VISA sur le diagramme.

VIs modèle de driver d’instruments

Les modèles de drivers d’instruments LabVIEW, situés dans le dossier instr.lib, contiennent un ensemble de VIs communs à la plupart des instruments. NI met à jour ces modèles périodiquement et les inclut dans la dernière version de LabVIEW. Utilisez ces VIs comme point de départ pour le développement de votre driver d’instruments. Les modèles ont une structure simple et flexible. Ils établissent un format standard pour tous les drivers LabVIEW.

Les VIs modèle contiennent des instructions pour modifier les VIs d’un instrument particulier. Utilisez les VIs modèle avec des instruments basés sur des messages (GPIB, VXI et série) et des instruments basés sur des registres VXI. Étant donné que les modèles ont été conçus pour des instruments compatibles IEEE 488.2, des modifications minimes sont nécessaires pour les instruments conformes à la norme IEEE 488.2. Pour les autres instruments, utilisez les VIs modèle comme modèle pour vos VIs en substituant vos commandes spécifiques à l’instrument le cas échéant.

Voir aussi :
Aide LabVIEW : VIs et fonctions VISA

Considérations importantes

Documentation des VIs

Documentez les VIs que vous créez afin que les informations apparaissent dans la fenêtre d’Aide contextuelle LabVIEW pour chaque driver d’instruments. Reportez-vous à la rubrique Documenter les VIs de l’Aide LabVIEW (ci-dessous) pour en savoir plus sur la documentation des VIs.

Sélectionnez Aide»Afficher l’aide contextuelle pour accéder à la fenêtre d’Aide contextuelle. Lorsque vous déplacez le curseur sur des objets de la face-avant ou du diagramme, ou sur l’icône dans le coin supérieur droit de la face-avant ou du diagramme, une description de cet objet apparaît dans la fenêtre d’Aide contextuelle.

En outre, utilisez des étiquettes libres sur la face-avant et le diagramme pour aider l’utilisateur. Sur le diagramme, affichez toutes les étiquettes de terminal (texte brut) et coloriez les bordures transparentes. Utilisez du texte en gras dans les étiquettes libres qui apparaissent dans les structures Condition et Séquence pour faire ressortir le commentaire et faciliter la compréhension et la modification du VI.

Rapport d’erreurs

Les rapports d’erreurs des drivers d’instruments sont similaires aux rapports d’erreurs de la plupart des autres applications LabVIEW. Les fonctions VISA vérifient l’état booléen du cluster entrée d’erreur pour déterminer si un VI ou une fonction précédemment exécuté a généré une erreur. Si le VI ou la fonction détecte une erreur, la fonction VISA ne fonctionne pas normalement. Au lieu de cela, il transmet les informations au cluster sortie d’erreur sans modification. Si le VI ou la fonction ne détecte pas d’erreur, la fonction VISA s’exécute normalement et détermine si elle a généré une erreur. Si c’est le cas, la fonction renvoie de nouvelles informations sur l’erreur dans le cluster sortie d’erreur. Sinon, la fonction renvoie les informations d’entrée d’erreur dans le cluster sortie d’erreur. La première erreur empêche les VIs suivants (ou toute autre action définie par l’utilisateur) de s’exécuter et le code d’erreur et la source de l’erreur se propagent sur la face-avant de niveau supérieur. De plus, les avertissements (codes d’erreur et messages source avec l’erreur booléenne définie sur FAUX) passent sans déclencher d’actions d’erreur.

En plus des codes d’erreur VISA, les codes d’erreur et d’avertissement répertoriés dans le tableau ci-dessous sont réservés aux drivers d’instruments. Les VIs de drivers d’instruments doivent renvoyer ces codes lorsque les conditions appropriées se présentent. Vous pouvez voir des codes d’erreur comme -1300 pour des erreurs spécifiques aux instruments dans les anciens drivers d’instruments et les anciens modèles de drivers d’instruments. Toutefois, utilisez les codes du tableau suivant pour garantir la conformité aux normes de driver d’instruments.

Tableau 3 : Code décimal des codes d’erreur du driver d’instruments

Code décimalCode hexaSignification
00Pas d’erreur : l’appel a réussi
1073481728 à 10734837753FFC0800 à
3FFC0FFF
AVERTISSEMENT : Avertissements définis par le développeur
-1074003951BFFC0011ERREUR : La demande d’identification a échoué
-1074000000BFFC0F80ERREUR : Erreur définie par l’instrument
-1073999873
à -1074001919
BFFC0801 à
BFFC0FFF
ERREUR : Erreurs définies par le développeur


Le VI Initialize utilise l’erreur « La demande d’identification a échoué. » Le VI Error Query utilise le « Code d’erreur défini par l’instrument ».


État de la demande d’instrument

Presque tous les instruments ont un mécanisme pour signaler les erreurs définies par l’instrument. Les erreurs définies par l’instrument comprennent les erreurs de commande, les erreurs d’exécution et les erreurs de requête. De nombreux instruments récemment fabriqués incluent une commande de requête pour déterminer si une erreur d’instrument s’est produite. Pour les instruments SCPI, la commande standard pour récupérer les erreurs de l’instrument est « SYST:ERR? ». La réponse à cette commande inclut un code d’erreur et un message d’erreur. Si aucune erreur ne s’est produite, la réponse est « 0, « Pas d’erreur ».

Si l’instrument ne prend pas en charge la commande « SYST:ERR? », mais prend en charge les registres d’état IEEE 488.2, vous pouvez interroger le Registre des événements standard pour déterminer si une erreur s’est produite.

Utilisez le VI Error Query dans les VIs de driver d’instruments pour implémenter le mécanisme de rapport d’erreur de l’instrument afin de signaler les erreurs d’instrument à l’utilisateur. Les drivers d’instruments ne redéfinissent pas les erreurs d’instrument dans le driver d’instruments. Au lieu de cela, le VI Error Query signale le code d’erreur et le message associé que l’instrument rapporte.

Si vous n’utilisez pas le VI Error Query pour rechercher des erreurs dans l’instrument, vous risquez de ne pas savoir que les utilisateurs finaux ont commis une erreur, même s’ils utilisent le Gestionnaire d’erreur simple. Il est possible d’envoyer et de recevoir des données de l’instrument sans provoquer d’erreur d’E/S, mais cela ne signifie pas nécessairement une erreur de l’instrument.

Pour obtenir rapidement des informations sur les erreurs d’instrument, la plupart des VIs API appellent le VI Error Query après toutes les opérations d’E/S. Lorsqu’une erreur d’instrument se produit, les techniques standard de gestion des erreurs LabVIEW, telles que l’appel du VI Gestionnaire d’erreur simple, vous notifient automatiquement de l’erreur. Le VI Error Query met à jour le cluster d’erreurs avec le code de code d’erreur -1074000000 (Hex : BFFC0F80) si une erreur est détectée et place les informations d’erreur renvoyées par l’instrument dans le message source. Les VIs Gestionnaire d’erreurs LabVIEW identifient le code de code d’erreur -1074000000 comme une erreur spécifique à l’instrument et génèrent un message d’erreur approprié. La figure ci-dessous montre la face-avant du VI Error Query.

Figure 11 : Face-avant du VI Error Query


Les VIs API de bas niveau n’appellent pas le VI Error Query. De nombreux VIs API de bas niveau sont conçus principalement pour améliorer les performances ou pour mieux contrôler les opérations de l’instrument. Par exemple, un driver d’instruments d’oscilloscope peut implémenter un VI Read Waveform pour renvoyer des données de waveform basées sur des canaux. Pour avoir plus de contrôle, vous devez implémenter les VIs Initiate et Fetch. Les VIs Initiate et Fetch de bas niveau vous permettent de mieux contrôler le moment où les opérations se produisent. Par conséquent, ces VIs de bas niveau n’appellent pas le VI Error Query.

Certains instruments ont une file d’attente d’erreurs qui stocke les erreurs et les événements au fur et à mesure qu’ils sont détectés. Cette file d’attente est de type « premier entré, premier sorti » (FIFO), avec une longueur minimale de deux messages. En cas de débordements, l’instrument conserve les erreurs/événements les plus récents et remplace l’erreur/événement le moins récent par un message de dépassement de file d’attente. Dans votre driver d’instruments, utilisez cette file d’attente pour détecter et signaler les erreurs d’instrument en interrogeant l’instrument après l’envoi des commandes. En émettant la commande :SYST:ERR?, les instruments SCPI renvoient une entrée de la file d’attente qui peut être une erreur, un avertissement de dépassement de capacité ou le message 0, « Aucune erreur ». Vous pouvez vouloir récupérer la file d’attente d’erreurs complète, de sorte que de nombreux drivers d’instruments incluent également un VI Error Query (Multiple). Ce VI interroge l’instrument avec la commande :SYST:ERR? jusqu’à ce que la file d’attente d’erreurs soit vide.

Le code généré par l’Assistant de projet de driver d’instruments inclut le VI Error Query.

Les VIs de driver d’instruments n’effectuent généralement pas de vérification de la gamme sur les paramètres d’entrée. Si un utilisateur passe une valeur non valide, l’instrument doit signaler une erreur spécifique à l’instrument. Le VI Error Query détecte cette erreur de l’instrument et signale la condition de dépassement de gamme. Les informations de gamme de documents dans le VI et l’aide de la commande vous permettent de ne pas rencontrer d’erreurs de dépassement de gamme.

Règles supplémentaires de style

La cohérence entre les drivers d’instruments est de mise. Le développement de faces-avant simples et de diagrammes avec une mise en page facile à comprendre est moins intimidante quand il s’agit de modifier le code ultérieurement. Vous pouvez avoir besoin de modifier le code pour l’optimiser en fonction de vos besoins particuliers. Reportez-vous au manuel Instrument Driver Guidelines pour en savoir plus sur les règles de style.

Tester l’opération

Testez votre driver d’instruments au fur et à mesure que vous le développez. Bien que la fenêtre d’Aide contextuelle peut être utilisée pour déterminer les entrées des VIs, vous pouvez décider ne pas l’utiliser pour déterminer les entrées des VIs et transmettre des données non valides aux VIs. Par conséquent, testez vos VIs avec des données non valides, des conditions et des gammes aux limites et des combinaisons inhabituelles d’entrées. Si un sous-VI requiert des informations de chaîne ou de tableau, connectez un tableau vide ou une chaîne vide à l’entrée du VI.

Voir aussi :
Aide LabVIEW : Documentation des VIs

Conclusion

Définir la structure des VIs est l’étape la plus importante dans le développement d’un driver d’instruments. Regroupez les commandes d’instruments associées en VIs modulaires, chacune effectuant une tâche de la même manière que vous utiliseriez l’instrument à partir de sa face-avant. Avec ce type de structure, chaque VI fournit aux utilisateurs exactement ce dont ils ont besoin pour effectuer un fonctionnement particulier de l’instrument. Déterminer quelles commandes appartiennent à chaque VI est le plus grand défi dans le développement de drivers d’instruments.

La structure logique, la documentation et le rapport d’erreurs sont les caractéristiques les plus importantes du driver d’instruments. Incluez les commentaires appropriés dans toutes les zones de description et documentez votre code avec des commentaires dans les diagrammes. Générez des rapports d’erreurs utiles dans vos VIs en utilisant les techniques décrites dans ce document. Testez soigneusement tous vos VIs pour vous assurer qu’ils fonctionnent correctement.

Le développement de drivers d’instruments va au-delà de la construction et de l’envoi de chaînes aux instruments. Utilisez l’Assistant de projet de driver d’instruments et les milliers de drivers d’instruments disponibles sur le réseau de drivers d’instruments NI (ni.com/idnet). Les modèles contiennent des VIs communs à la plupart des instruments et illustrent le style et la structure souhaités des VI de driver d’instruments. Utilisez les drivers d’instruments existants pour vous aider à créer votre propre driver d’instruments. Suivez la structure de conception interne et gardez à l’esprit les catégories de VIs API lors de la création de vos VIs. Utilisez le manuel Instrument Driver Guidelines tout au long de votre processus de développement de driver pour vous assurer de créer des drivers d’instruments de haute qualité. Ces outils vous aident à concevoir des drivers d’instruments acceptables pour un large éventail d’utilisateurs.

Was this information helpful?

Yes

No