VISA , Virtual Instrument Software Architecture , este o interfață I/O standardizată [1] de testare și măsurare utilizată pe scară largă pentru controlul instrumentelor de la un computer personal. Suportă interfețe IEEE-488 (GPIB), VXI , RS-232 și USB pentru dispozitive de măsurare [2] . O implementare VISA (cum ar fi NI VISA) este o bibliotecă de funcții pentru C , Visual Basic și G , care unifică accesul la toate dispozitivele de măsurare, indiferent de protocolul și hardware-ul utilizat (de exemplu, indiferent de modelul adaptorului GPIB).
Interfața VISA presupune comunicarea cu dispozitivul sub forma unui „cerere-răspuns” [3] . Calculatorul trimite o comandă de solicitare specifică dispozitivului (de exemplu, o solicitare de a efectua o măsurare a unei mărimi fizice) și așteaptă un răspuns (de exemplu, un raport de stare sau rezultatele măsurătorii) de la dispozitiv. Interfața acceptă, de asemenea, caracteristici specifice magistralei, de exemplu, atunci când lucrați cu GPIB, comunicarea poate fi inițiată și de dispozitiv folosind o întrerupere , iar pentru RS-232, puteți configura rata de biți , numărul de biți din cadrul de date. , etc.
VISA a fost dezvoltat de National Instruments la mijlocul anilor 1990 pentru a automatiza măsurătorile folosind așa-numitele „ Instrumente virtuale ” (VI). Folosit în principal în produsele software ale companiei, cum ar fi LabVIEW , LabWindows și Measurement Studio. Deși interfața VISA este standardizată, cea mai frecvent utilizată implementare proprietară este de la National Instruments. Această bibliotecă poate fi descărcată gratuit de pe site-ul companiei după înregistrare, există versiuni pentru Linux , Mac OS , Windows . Pachetul de bibliotecă include, de asemenea, mai multe instrumente software, cum ar fi NI Spy , un program pentru înregistrarea accesului la biblioteca NI VISA.
PyVISA este un wrapper pentru biblioteca NI VISA care oferă o interfață cu limbajul de programare Python . Autori Biblioteca Torsten Bronger, Aachen , Germania și Gregor Thalhammer, Innsbruck , Austria ; publicat sub licența gratuită MIT . Biblioteca vă permite să utilizați toată comoditatea și flexibilitatea limbajului de programare Python de nivel înalt pentru dezvoltarea rapidă a sistemelor de colectare și procesare a datelor din echipamentele de măsurare într-un laborator științific.
PyVISA oferă funcții de nivel înalt pentru interogarea dispozitivelor și lucrul cu matrice de date.
Mai jos este un exemplu de utilizare a PyVISA pentru a obține spectrul și a măsura puterea radiației laser care intră în analizatorul optic de spectru Agilent 86142 .
În primul rând, trebuie să importați biblioteca PyVISA (numită viza în cod ). Pentru fiecare instrument se creează o clasă de instrument , care are metode de citire/trimitere a datelor ( citire , scrie , cere , cere_valori ...).
viza de import . get_instrument_list () # Vezi toate instrumentele disponibile OSA = viza . instrument ( "GPIB::02::INSTR" )Interogați și identificați instrumentul utilizând standardul SCPI „*IDN?”
OSA . ask ( "*IDN?" ) # Returnează modelul dispozitivului cu adresa GPIB::02 OSA . timeout = 40 # Așteptați până la 40 de secunde pentru un răspuns de la dispozitivObținerea spectrului curent ca o matrice în variabila de urmărire:
OSA . scrieți ( "CALC1:AVER:STAT ON" ) # Activați medierea măsurătorii OSA . scrieți ( "CALC1:AVER:COUN 9" ) # Media se face pe 9 spectre OSA . ask ( "INIT; *OPC?" ) # Începeți măsurarea și așteptați să se termine, după care dispozitivul va returna "+1" urma = OSA . ask_for_values ( "TRACE? TRA" ) # Introduceți spectrul în variabila de urmărireSetarea unui marker de putere pe un spectru și sondarea valorii acestuia:
OSA . scrieți ( "CALC:MARK1:MAX" ) # Setați markerul la un vârf în puterea spectrului = OSA . ask ( "CALC:MARK1:Y?" ) # Citiți valoarea puterii laserului wl = OSA . întrebați ( "CALC:MARK1:X?" ) # Citiți lungimea de undă laser