Virtual Instrument Software Architecture
Virtual Instrument Software Architecture, appelé généralement VISA, est une interface de programmation largement utilisée dans le domaine de l'instrumentation et l'industrie du test et de la mesure. VISA permet de communiquer avec des instruments de mesure depuis un ordinateur.
Le logiciel Standard Instrument Control Library avait été développé par Agilent Technologies pour rendre la programmation des instruments indépendantes de l’interface physique utilisée (bus GPIB, RS-232, USB[1]…). À partir de cela fut développé VISA, sous l’impulsion de National Instruments. Actuellement, la plupart des pilotes d’instruments sont écrits avec VISA. Des programmeurs avancés peuvent toutefois écrire leurs propres pilotes, en utilisant des commandes de niveau inférieur (comme SCPI), dans des cas d’exigences plus importantes (vitesse de fonctionnement optimisée, utilisation de fonctions d’instruments non gérés par les pilotes disponibles…)[2].
Implémentations logicielles
PyVISA en langage Python, est une implémentation en logiciel libre du protocole, il gère les interfaces GPIB, RS232, Ethernet ou USB pour se connecter aux instruments, et ne nécessite que de préciser l'interface pour se connecter et les instructions qui sont envoyés à l'instrument, la partie de gestion de l'interface est transparente pour le script qui l'utilise[3].
Exemple de code pilotant un générateur de courant/tension Keysight B2900. Le programme établit la communication avec l'appareil, identifie celui-ci (et retourne l'identification à l'écran), et ordonne à l'appareil d'émettre une tonalité à 440 Hz pendant une seconde.
import visa
rm = visa.ResourceManager()
b2900 = rm.get_instrument('TCPIP0::A-B2902A-41271.local::hislip0::INSTR') #Adresse de l'instrument, connecté en Ethernet, sur le réseau local
msg = b2900.ask('*IDN?')
print(msg)
b2900.write(':SYST:BEEP:STAT ON')
b2900.write(':SYST:BEEP 440,1')
Annexes
Notes et références
- (en) « Universal Serial Bus Test and Measurement Class Specification (USBTMC) » [PDF], .
- « Commandes natives ou pilotes d’instrument : que choisir ? », sur mesures.com, .
- (en) « pyvisa », sur github.com.
Liens externes
- (en) « IVI Specifications », sur IVI Foundation, spécifications de la norme.