Virtual Instrument Software Architecture
Virtual Instrument Software Architecture (VISA) – jeden ze standardów wspomagających komunikację komputerów PC z urządzeniami laboratoryjnymi (zasilacze, generatory przebiegów) i pomiarowymi (multimetry, oscyloskopy itp). Jest to standard zaimplementowany w sprzęcie i sterownikach wielu różnych firm produkujących urządzenia pomiarowe, takich jak Agilent Technologies, Rigol, Anritsu, Bustec, Keysight Technologies, Kikusui, National Instruments, Rohde & Schwarz i Tektronix.
Sposób realizacji
Biblioteki VISA prezentują swoje funkcje przez standardowe mechanizmy wywoływania funkcji z bibliotek systemowych – w przypadku Windows jest to API języka C poprzez biblioteki DLL – visa32.dll oraz poprzez wywołania w technologii Component Object Model (COM). Istnieją również implementacje standardu VISA w postaci klas środowiska .NET – jedna z nich jest rozwijana przez IVI Foundation, inna dostępna również do darmowego pobrania implementacja została utworzona przez firmę National Instruments (NI VISA), jeszcze inna przez firmę AGILENT. Co do zasady biblioteki te powinny być wymienne i aplikacje powinny móc w identyczny sposób korzystać z każdej z wymienionych implementacji.
Oprócz wymienionych implementacji w postaci bibliotek z wywołaniami języka C, wywołaniami COM i klasami .NET są mniej lub bardziej zaawansowane implementacji standardu dla mniej popularnych języków programowania.
Historia
Pierwsza wersja standardu powstała w 1995 roku. Początkowo standard był utrzymywany przez VXIplug&play Systems Alliance. Obecnie (od 2006r) standard jest rozwijany przez IVI Foundation jako część rodziny standardów związanych ze sprzętem pomiarowym i laboratoryjnym.
Główne funkcje
Standard VISA nie obejmuje całego obszaru komunikacji z urządzeniami – nie obejmuje np. sposobu fizycznego podłączenia urządzeń, nie obejmuje również języka komend którymi można sterować urządzeniami pomiarowymi. Natomiast stanowi bazę dla zestawiania sesji z urządzeniami pomiarowymi, adresowania urządzeń podłączonych do komputera (bezpośrednio lub przez sieć LAN), jak również umożliwia prostą wirtualizację zasobów (jakim jest sprzęt laboratoryjny) – dzięki czemu dwie lub więcej aplikacje mogą korzystać z jednego fizycznego urządzenia. Na przykład dwa różne programy zainstalowane na komputerze mogą pobierać wyniki pomiaru napięcia przez miernik napięcia. Jeden z tych programów może wyświetlać wartości dla użytkownika, a drugi równolegle zapisywać wyniki pomiarów do pliku.
Zarządzanie zasobami i wirtualizacja
Głównymi funkcjami oferowanymi przez VISA są: zarządzanie zasobami (podłączone bezpośrednio i przez sieć urządzenia) oraz nawiązywanie połączeń, trzymanie sesji, zlecanie urządzeniom pracy w trybie synchronicznym i asynchronicznym.
Każde urządzenie w standardzie VISA otrzymuje swój unikalny adres – zawierający sposób podłączenia / kod producenta sprzętu i (zwykle) końcówkę INSTR oznaczającą urządzenie pomiarowe / laboratoryjne. Przykładowe adresy:
USB0::0x1AB1::0x04CE::DS1ZA170401761::INSTR – urządzenie podłączone przez USB
TCPIP0::192.168.0.100::INSTR – urządzenie podłączone przez sieć LAN
GPIB0::0x04CE::DS1ZA170401761::INSTR – podłączone przez IEEE-488
Nawiązywanie połączeń i utrzymywanie sesji
Z urządzeniami tymi można nawiązać sesję – dwa główne typy sesji to MessageBasedSession oraz RegisterBasedSession (dostępne są również inne odnoszące się do poszczególnych sposobów podłączenia urządzeń – PXISession, SerialSession TcpipSession itp). MessageBasedSession to trwałe (na poziomie logicznym) połączenie z urządzeniem w ramach którego można do urządzenia wysyłać rozkazy i odbierać dane.
Relacja do innych standardów
Specyfikacja VISA nie obejmuje sposobów fizycznego podłączenia sprzętu pomiarowego – obejmują je standardy takie jak USBTMC, IEEE-488, HSLiP, GPBIB. Jednak sposoby podłączenia muszą mieć swoje odzwierciedlenie w adresowaniu VISA.
Specyfikacja VISA nie obejmuje tego jakie rozkazy są wysyłane i jakie rozkazy są zwracane. To zagadnienie obejmuje najczęściej standard SCPI lub sterowniki IVI.
Sposób użycia w aplikacjach użytkownika
Prawie nigdy standard VISA nie jest używany samodzielnie, lecz jako jeden z komponentów przy tworzeniu aplikacji pomiarowej. Przykładowo – zakładamy, że sterowniki USB są zainstalowane w systemie. Programista w kodzie aplikacji odwołuje się do nich poprzez VISA – tworząc połączenie z lokalnie podłączonym przez port USB oscyloskopem:
MessageBasedSession mb=ResourceManager.GetLocalManager(). Open("USB0::0x1AB1::0x04CE::DS1ZA170401761::INSTR")
Od tej chwili może odwołać się do obiektu mb i za pomocą niego wysłać do oscyloskopu komendę dokonania pomiaru – sama komenda jest już objęta innym standardem – SCPI:
mb.Write(":MEASURE:VOLTAGE:DC?");
string s=mb.Read()
Często programiści nie muszą wprost odwoływać się do obiektów VISA – na przykład w przypadku sterowników IVI obsługa standardu VISA jest ukryta w impementacji tych ostatnich.
Zobacz też
- Standard Commands for Programmable Instruments (SCPI)
- Interchangeable Virtual Instrument (IVI)
- HiSLIP
- USBTMC
- IEEE-488 (GPIB)
Bibliografia
- „VPP-4.3: The VISA Library” Specification document, June 19, 2014, Revision 5.4- http://www.ivifoundation.org/docs/vpp43_2014-06-19.pdf –
- „What is VISA” – National Instruments VISA product specifications – http://www.ni.com/visa/
- „Your Guide to Getting Started with IVI Drivers” Revision 1.2 © Copyright IVI Foundation, 2012 – http://www.ivifoundation.org/downloads/IVI-GSG-CurrentVersion.pdf –
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.