Мы используем файлы cookie.
Продолжая использовать сайт, вы даете свое согласие на работу с этими файлами.
Virtual Instrument Software Architecture

Virtual Instrument Software Architecture

Подписчиков: 0, рейтинг: 0

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…). À 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…).

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.

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

Liens externes


Новое сообщение