Cet article est constitué d’extraits du livre français sur LabVIEW : « LabVIEW programmation et applications ». Il ne traite que de la réalisation d’un driver d’instrument en VISA. Pour des informations plus complètes sur DAQmx, IVI, les commandes E/S directes, dll externe, la réalisation de driver Plug & Play LabVIEW, la recherche de driver IDNet, etc… je vous conseille le chapitre 4 qui aborde cela en détail.
Les architectures des instruments et des cartes d'acquisition (DAQ) font apparaître deux éléments communs que sont le driver et le logiciel d’application.
Le logiciel d’application (ou l’application principale) est le code réalisé pour permettre à l’utilisateur de piloter la chaîne d’instrumentation, analyser, sauvegarder et présenter les données.
Le driver est le programme qui fait le lien entre le logiciel d’application et le matériel. Il est chargé de traduire les commandes LabVIEW pour les rendre compréhensibles par la carte ou l’instrument. Il facilite le travail des développeurs en évitant une programmation fastidieuse et spécifique dans les registres bas niveau de la carte. Voici quelques exemples :
Au début des années 1990 le consortium VXIplug&play Systems Alliance a développé la spécification du logiciel d’E/S VISA, pour Virtual Instrumentation Software Architecture. VISA définit des fonctions d’entrées/sorties standard pour la programmation d'instruments. Ces fonctions :
Par exemple, un programme développé sur PC Windows pour piloter un oscilloscope en liaison GPIB sera identique à un programme développé sous Linux pour le piloter par une liaison série.
Les drivers « LabVIEW Plug & Play » et « IVI » utilisent la puissante librairie d’entrées / sorties de VISA VISA I/O.
L’API du driver VISA, Virtual Instrumentation Software Architecture, installe sous LabVIEW une bibliothèque de fonctions constituées de VIs et de propriétés.
Dans la réalité, seulement 6 fonctions sont nécessaires pour écrire la très grande majorité des drivers : Ouverture, fermeture, temps d'attente, lecture, écriture et paramètrage.
Ouverture, Fermeture de la communication et Timeout
Ces trois fonctions (ouverture, fermeture et timeout) sont disponibles dans la palette VISA avancée. Ce sont les trois paramètres de base de la communication avec un instrument de mesure :
1. Un driver commence toujours par un VISA Open qui permet d’ouvrir une session sur le périphérique spécifié, à faire une seule fois en début de programme ;
2. La fonction d’ouverture est toujours suivie par la configuration du TimeOut, qui est le temps d’attente maximum lors d’une interrogation sur l’instrument, par défaut 10 secondes. Elle est disponible au travers d’une propriété ;
3. Le code du driver se termine toujours par un VISA Close qui permet de fermer la session sur le périphérique (à faire une seule fois uniquement en fin de programme).
Écriture des données dans l’instrument
4. Pour écrire des données dans l’instrument, on utilise VI VISA Write. Nous utiliserons uniquement la communication basée sur des messages, c’est-à-dire avec l’envoi de chaînes de caractères ASCII, et pas celle basée sur l’écriture de registre.
Lecture des données dans l’instrument
5. Pour la lecture des données retournées par l’instrument, on utilise VI VISA Read. Il est très important de comprendre que cette fonction retourne les données contenues dans le buffer dès qu’une de ces 3 conditions est présente :
Paramétrage du port série
6. Il faut configurer les paramètres du port série de l’ordinateur pour être en adéquation avec la configuration du protocole de l’instrument, via la fonction VISA Configure Serial Port.vi de la sous-palette Série. En effet, la communication série autorise des options de paramétrages, comme le baud rate, le nombre de bits de données, la parité, le timeout mais également l’activation et la définition du type de caractères de fin de communication.
Nom de la ressource VISA
L’API VISA est une interface capable d’appeler automatiquement les fonctions bas niveau de communication appropriées, grâce à un seul paramètre Nom de la Ressource VISA.
Nom de la Ressource VISA |
Exemple |
Description du BUS |
GPIB ::adresse ::INSTR |
GPIB |
|
Alias VISA |
Série, ALIAS configuré dans MAX. |
|
TCPIP ::adresse ::INSTR |
LXI sur le LAN Ethernet |
Dans cet exemple, nous allons illustrer la lecture du nom d’indentification d’un appareil. L’appareil est à l’adresse GPIB 12 sur le bus et il répond « 73 octets » à la commande « *IDN ? » :
Dans cet exemple, nous allons illustrer la lecture du nom d’indentification d’un appareil sur le bus série. Le port série utilisé sera le port « COM2 », les réponses de l’instrument seront formatées avec un caractère de fin de communication :
L’encapsulation dans un VI LabVIEW des fonctions de pilotage d’instrument permet de réaliser un driver d’instrument. Dans ces exemples simples, nous avons mis en évidence la facilité avec laquelle la palette VISA permet de piloter un instrument. Cependant, et comme toujours, facilité ne veut pas dire qu’il n’y a aucune règle à suivre.
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
Pour ajouter un commentaire ici, vous devez être inscrit. Si vous êtes déjà inscrit, connectez-vous. Dans le cas contraire, inscrivez-vous puis connectez-vous.