What is SCPI?
In the early days of programmable
instruments, each manufacturer created their own language for controlling
their equipment remotely. Few manufacturers would share the same language
or syntax. Even equipment made by the same manufacturer often used a
completely different language from their other equipment.
As programmable instruments became more
powerful, so the control languages had to become more complex. For a
customer building integrated testing systems and control software, the
overhead of learning how to control each piece of equipment had become a
The SCPI Consortium
The SCPI (Standard Commands for Programmable
Instruments) Consortium evolved to standardize the control language used
between programmable instruments. Its aim is to promote a common language
and syntax suitable for all programmable instruments. The SCPI Consortium
meet once a year to consider modifications to the SCPI Standard. The SCPI
Standard is downloadable free of charge - see the links.
Today, SCPI is supported by most of the
manufacturers of programmable instruments including Agilent (HP),
Tektronix, Keithley, Fluke, and Racal.
But what is SCPI?
The SCPI Standard specifies the command structure and
syntax to be used for controlling programmable instruments via a
communications link, such as GPIB, RS232, USB, VXIbus etc. SCPI also
includes standard command sets for different “classes” of instruments,
e.g. electrical sources, and measurement devices such as DMMs and
SCPI commands are in human-readable ASCII format. Because
of this, SCPI commands can be sent easily using any programming language
including C, C++, Visual Basic, etc. In addition, SCPI is supported by
Test Application Software such as Lab View and HP VEE.
What SCPI is
SCPI does not define the physical method of
communication – whilst originally developed for GPIB
(IEEE488.2)-based equipment, SCPI is now also used for communication
via RS232, USB, LAN connections and other interfaces.
In addition, SCPI does not tell you what your command set should
be. Rather, it defines some basic commands that you must support. It
also defines some common command sets for similar classes
of instruments. You can choose to support one or more of these
classes according to the type of your instrument. If your instrument
does not match any particular class, you can still claim
SCPI-compliancy, as long as you support the base SCPI commands.