Summary: In this lesson, you will learn about VISA. Virtual Instrument Software Architecture (VISA) is the lower layer of functions in the LabVIEW instrument driver VIs that communicates with the driver software.
In 1993, National Instruments joined with GenRad, Racal Instruments, Tektronix, and Wavetek to form the VXIplug&play Systems Alliance. The goals of the alliance are to ensure multivendor interoperability for VXI systems and to reduce the development time for an operational system.
A key part of these goals was to develop a new standard for instrument drivers, soft front panels, and I/O interface software. The term VXIplug&play has come to indicate the conformity of hardware and software to these standards.
In directing their efforts toward software standardization, VXIplug&play members identified the following set of guiding principles:
VISA is the VXIplug&play I/O software language that is the basis for the software standardization efforts of the VXIplug&play Systems Alliance. VISA by itself does not provide instrumentation programming capability. It is a high-level API that calls in low-level drivers. VISA can control VXI, GPIB, serial, or computer-based instruments and makes the appropriate driver calls depending on the type of instrument used. When debugging VISA problems, remember this hierarchy. An apparent VISA problem could be an installation problem with one of the drivers that VISA calls.
In LabVIEW, VISA is a single library of functions you use to
communicate with GPIB, serial, VXI, and computer-based
instruments. You do not need to use separate I/O palettes to
program an instrument. For example, some instruments give you
a choice for the type of interface. If the LabVIEW instrument
driver were written with functions on the Functions>>All
Functions>>Instrument I/O>>GPIB palette, those
instrument driver VIs would not work for the instrument with
the serial port interface. VISA solves this problem by
providing a single set of functions that work for any type of
interface. Therefore, all LabVIEW instrument drivers use VISA
as the I/O language.
The functions you can use with a resource are operations. The resource also has variables, or attributes, that contain information related to the resource. The following terminology is similar to that used for instrument driver VIs:
The instrument descriptor is similar to a telephone number, the resource is similar to the person with whom you want to speak, and the session is similar to the telephone line. Each call uses its own line, and crossing these lines results in an error. The table shows the proper syntax for the instrument descriptor.
| Interface | Syntax |
|---|---|
| Asynchronous serial | ASRL[board][::INSTR] |
| GPIB | GPIB[board]::primary
address[::secondary address][::INSTR] |
| VXI instrument through embedded or MXIbus controller | VXI[board]::VXI logical address[::INSTR] |
| GPIB-VXI controller | GPIB-VXI[board][::GPIB-VXI primary address]::VXI logical address[::INSTR] |
You can use an alias you assign in MAX instead of the
instrument descriptor. (Mac OS) Edit the
visaconf.ini file to assign a VISA
alias. (UNIX) Use the
visaconf utility.
If you choose not to use the Instrument I/O
Assistant to automatically generate code for you, you
can still write a VI to communicate with the instrument. The
most commonly used VISA communication functions are the
VISA Write and VISA Read
functions. Most instruments require you to send information in
the form of a command or query before you can read information
back from the instrument. Therefore, the VISA
Write function is usually followed by a VISA
Read function.
"A full introductory course on programming with LabVIEW."