Background

NI-VISA

Background

The history of instrumentation reached a milestone with the ability to communicate with an instrument from a computer. Controlling instruments programmably brought a great deal of power and flexibility with the capability to control devices faster and more accurately without the need for human supervision. Over time, application development environments such as LabVIEW and LabWindows/CVI eased the task of programming and increased productivity, but instrumentation system developers were still faced with the details of programming the instrument or the device interface bus.

Instrument programmers require a software architecture that exports the capabilities of the devices, not just the interface bus. In addition, the architecture needs to be consistent across the devices and interface buses. The VISA library realizes these goals. It results in a simpler model to understand, reduces the number of functions the user needs to learn, and significantly reduces the time and effort involved in programming different interfaces. Instead of using a different Application Programming Interface (API) devoted to each interface bus, you can use the VISA API whether your system uses an Ethernet, GPIB, GPIB-VXI, VXI, PXI, or Serial controller.

Finally, most instruments export a specific set of commands to which they will respond. These commands are often primitive functions of the device and require several commands to group them together so that the device can perform common tasks. As a result, communicating directly with the device may require much overhead in the form of multiple commands to do task A, do task B, and so on. By driving the formation of the VXIplug&play Systems Alliance and the IVI Foundation, National Instruments has spearheaded standards for higher-level instrument drivers that use VISA. This makes it easier for the vendors of instruments to create the instrument drivers themselves, so that instrumentation system developers do not have to learn the primitive command sets of each device.