Specifications
5
Commands for Programmable Instrumentation (SCPI). This defined set of 
commands for controlling instruments uses ASCII characters, providing some 
basic standardization and consistency to the commands used to control 
instruments. For example, when you want to measure a DC voltage, the 
standard SCPI command is “MEASURE:VOLTAGE:DC?”.
In 1993, the VXIplug&play Systems Alliance created specifications for instrument 
drivers called VXIplug&play drivers. Unlike SCPI, VXIplug&play drivers do not 
specify how to control specific instruments; instead, they specify some common 
aspects of an instrument driver. By using a driver, you can access the instrument 
by calling a subroutine in your programming language instead of having to format 
and send an ASCII string as you do with SCPI. With ASCII, you have to create and 
send the instrument the syntax “
MEASURE:VOLTAGE:DC?
”, then read back a 
string, and build it into a variable. With a driver you can merely call a function called 
MeasureDCVoltage( ) and pass it a variable to return the measured voltage. 
Although you still need to be syntactically correct in your calls to the instrument 
driver, making calls to a subroutine in your programming language is less error 
prone. If you have been programming to instruments without a driver, then you are 
probably all too familiar with hunting around the programming guide to find the right 
SCPI command and exact syntax. 
You also have to deal with an I/O library to 
format and send the strings, and then build the response string into a variable.
Why IVI?
The VXIplug&play drivers do not provide a common programming interface. That 
means programming a Keithley DMM using VXIplug&play still differs from 
programming an Agilent DMM. For example, the instrument driver interface for one 
may be ke2000_read while another may be hp34401_get or something even 
farther afield. Without consistency across instruments manufactured by different 
vendors, many programmers still spent a lot of time learning each individual driver.
To carry VXIplug&play drivers a step (or two) further, in 1998 a group of end users, 
instrument vendors, software vendors, system suppliers, and system integrators 
joined together to form a consortium called the Interchangeable Virtual Instruments 
(IVI) Foundation. If you look at the membership, it’s clear that many of the 
foundation members are competitors. But all agreed on the need to promote 
specifications for programming test instruments that provide better performance, 
reduce the cost of program development and maintenance, and simplify 
interchangeability.
For example, for any IVI driver developed for a DMM, the measurement command 
is IviDmmMeasurement.Read, regardless of the vendor. Once you learn how to 
program the commands specified by IVI for the instrument class, you can use any 
vendor’s instrument and not need to relearn the commands. Also commands that 
are common to all drivers, such as Initialize and Close, are identical regardless of 










