This manual contains reference information for programming the open hardware/open source EEZ Bench Box 3 (BB3) that includes STM32F7 MCU board and various EEZ DIB peripheral modules over the remote interface using the SCPI programming language.
The SCPI (Standard Commands for Programmable Instruments, often pronounced “skippy”) is an open standard freely available on the IVI Foundation web pages. The current version is SCPI 1999.0.
SCPI is a pure software standard, and can be used over many communication interfaces. SCPI communications are ASCII text, and therefore can be supported in programs written in almost any computer language, such as C, C++, etc.
The physical communications link is not defined by SCPI. It was originally created with the IEEE 488 (GPIB) environment in mind, but it can also be used with RS-232 (serial), Ethernet, USB, VXIbus, HiSLIP, etc. The BB3 supports Serial (via USB) and Ethernet communication.
The application software that uses SCPI commands is called a Controller and that in a SCPI enabled device – such as the BB3 – is called an Instrument.
Please note that IEEE 488 standard documents are not freely available, and when it’s mentioned in this manual we do so only for reference purposes. Those who with to research the GPIB for better understanding or possible modification/improvement of the BB3 remote control may wish to purchase standards documents from the IEEE.
1.1. About SCPI
The SCPI 1999.0 standard document says (Section 1.3) the goal of SCPI is to reduce Automatic Test Equipment (ATE) program development time. SCPI does this goal by providing a consistent programming environment for instrument control and data usage. This is achieved by use of defined program messages, instrument responses, and data formats across all SCPI instruments, regardless of manufacturer.
A consistent program environment uses the same commands and parameters to control instruments that have the same function.
SCPI programming consistency is both vertical and horizontal. Vertical programming consistency defines program messages within an instrument class. An example of vertical consistency is using the same command for reading DC voltage from different multimeters supporting SCPI. Horizontal consistency uses the same command to control similar functions across instrument classes. For example, the trigger command would be the same for trigger functions found in conforming counters, oscilloscopes, function generators, etc.
A key to consistent programming is the reduction of multiple ways to control similar instrument functions. The philosophy of SCPI is that the same instrument functions are to be controlled by the same SCPI commands. To simplify learning, SCPI uses industry-standard names, and terms that are manufacturer and customer supported.
SCPI is designed to be expanded with new defined commands in the future without causing programming problems. As new instruments are introduced, the intent is to maintain program compatibility with existing SCPI instruments.
- Wikipedia SCPI
- Technopedia Standard Commands For Programmable Instruments (SCPI)
- Wikipedia IEEE-488
- Keysight (ex. Agilent) Developing a SCPI command set
- NI (National Instrument) GPIB Hardware and Software Specifications
- Open source SCPI device library
- Keysight (ex. Agilent) Application Note 1465-29
- Keysight (ex. Agilent) Command Expert
Test SCPI commands on the Web simulator (please note that it cannot work with Firefox in private mode)