SCPI Explained - 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 major problem.
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 Standard is available for download free of charge.
Today, SCPI is supported by the largest manufacturers of programmable instruments including brands such as Agilent, Fluke, Keithley, and Tektronix.
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 oscilloscopes.
SCPI commands are in human-readable text format. Because of this, SCPI commands can be sent easily using any programming language including C, C++, VB.net, etc. In addition, SCPI is supported by Test Application Software such as Lab View and HP/Keysight VEE.
What SCPI is Not...
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.