HOME

TheInfoList



OR:

The Standard Commands for Programmable Instruments (SCPI; often pronounced "skippy") defines a standard for syntax and commands to use in controlling programmable test and measurement devices, such as
automatic test equipment Automatic test equipment or automated test equipment (ATE) is any apparatus that performs tests on a device, known as the device under test (DUT), equipment under test (EUT) or unit under test (UUT), using automation to quickly perform measure ...
and electronic test equipment.SCPI-1999 Specification; SCPI Consortium.
/ref>


Overview

SCPI was defined as an additional layer on top of the specification "Standard Codes, Formats, Protocols, and Common Commands". The standard specifies a common
syntax In linguistics, syntax ( ) is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure (constituenc ...
,
command Command may refer to: Computing * Command (computing), a statement in a computer language * command (Unix), a Unix command * COMMAND.COM, the default operating system shell and command-line interpreter for DOS * Command key, a modifier key on A ...
structure, and data formats, to be used with all instruments. It introduced generic commands (such as CONFigure and MEASure) that could be used with any instrument. These commands are grouped into subsystems. SCPI also defines several classes of instruments. For example, any controllable
power supply A power supply is an electrical device that supplies electric power to an electrical load. The main purpose of a power supply is to convert electric current from a source to the correct voltage, electric current, current, and frequency to power ...
would implement the same DCPSUPPLY base functionality class. Instrument classes specify which subsystems they implement, as well as any instrument-specific features. The physical hardware communications link (physical layer) is not defined by SCPI. While it was originally created for the IEEE-488.1 (GPIB) bus, SCPI can also be used with RS-232, RS-422, RS-485,
USB Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
,
Ethernet Ethernet ( ) is a family of wired computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 198 ...
, VXIbus, HiSLIP, etc. SCPI commands are
ASCII ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
textual strings, which are sent to the instrument over the physical layer. Commands are a series of one or more keywords, many of which take parameters. In the specification, keywords are written CONFigure: The entire keyword can be used, or it can be abbreviated to just the uppercase portion. Responses to query commands are typically ASCII strings. However, for bulk data, binary formats can be used. The SCPI specification consists of four volumes: Volume 1: "Syntax and Style", Volume 2: "Command Reference", Volume 3: "Data Interchange Format", Volume 4: "Instrument Classes". The specification was originally released as non-free printed manuals, then later as one free
PDF Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
file that includes all four volumes.


SCPI history

First released in 1990, SCPI originated as an additional layer for IEEE-488. IEEE-488.1 specified the physical and electrical bus, and IEEE-488.2 specified protocol and data format, but neither specified instrument commands. Different manufacturers, and even different models, of the same type of instrument would use different command sets. SCPI created a standard which could be common across all manufacturers and models. It requires use of the IEEE-488.2 data formats, but does not mandate the IEEE-488.1 bus. In 2002-2003, the ''SCPI Consortium'' voted to become part of the ''IVI Foundation'' (Interchangeable Virtual Instruments).


IEEE 488.2 history

In 1987,
IEEE The Institute of Electrical and Electronics Engineers (IEEE) is an American 501(c)(3) organization, 501(c)(3) public charity professional organization for electrical engineering, electronics engineering, and other related disciplines. The IEEE ...
introduced IEEE 488.2-1987 specification "''Standard Codes, Formats, Protocols, and Common Commands''", it was later revised in 1992 as IEEE 488.2-1992. While IEEE 488.2 provided a device-independent syntax, there was still no standard for instrument-specific commands. Commands to control the same class of instrument, e.g., multimeters, would vary between manufacturers and even models. The United States Air Force, and later Hewlett-Packard, recognized this problem. In 1989, HP developed their TML language which was the forerunner to SCPI. The IEC developed their own standards in parallel with the IEEE, with IEC 60625-2-1993 (IEC 625). In 2004, the IEEE and IEC combined their respective standards into a "dual logo" IEEE/IEC standard IEC 60488-2-2004,'' Part 2: Codes, Formats, Protocols and Common Commands'', replaces IEEE 488.2-1992 and IEC 60625-2-1993.


Command syntax

SCPI commands to an instrument may either perform a ''set'' operation (e.g. switching a power supply on) or a ''query'' operation (e.g. reading a voltage). Queries are issued to an instrument by appending a question-mark to the end of a command. Some commands can be used for both setting and querying an instrument. For example, the data-acquisition mode of an instrument could be set by using the ACQuire:MODe command or it could be queried by using the ACQuire:MODe? command. Some commands can both set and query an instrument at once. For example, the *CAL? command runs a self-calibration routine on some equipment, and then returns the results of the calibration. Similar commands are grouped into a hierarchy or "tree" structure. For example, any instruction to read a measurement from an instrument will begin with "MEASure". Specific sub-commands within the hierarchy are nested with a colon (:) character. For example, the command to "Measure a DC voltage" would take the form MEASure:VOLTage:DC?, and the command to "Measure an AC current" would take the form MEASure:CURRent:AC?. :MEASure :VOLTage :DC? :AC? :CURRent :DC? :AC? ...


Case

Though the command syntax above shows commands in mixed case, SCPI is not case sensitive. :For example, for VOLTage, all of the following are valid representations:VOLTAGE, voltage, Voltage, VoLtAgE.


Abbreviating commands

The command syntax shows some characters in a mixture of upper and lower case. Abbreviating the command to only sending the upper case has the same meaning as sending the upper and lower case command. :For example, the command “SYSTem:COMMunicate:SERial:BAUD 2400” would set an RS-232 serial communications interface to 2400 bit/s. This could also alternatively be abbreviated “SYST:COMM:SER:BAUD 2400”. The query command “SYSTem:COMMunicate:SERial:BAUD?” or “SYST:COMM:SER:BAUD?” would instruct the instrument to report its current baud rate. The only valid commands are the short form and long form of each command, all other subset variations are invalid. :For example, for COMMunicate, only COMM (short form) and COMMUNICATE (long form) are valid, but COM, COMMUN, COMMUNIC subsets are invalid, also appended letters are invalid too, such as COMMUNICATED.


Concatenating commands

Multiple commands can be issued to an instrument in a single string. They are made of simple commands separated by a semicolon character (;). :For example, the command to "Measure a DC voltage then measure an AC current" would be issued as MEASure:VOLTage:DC?;:MEASure:CURRent:AC?. Simple commands which start with a colon (:) are interpreted with respect to the root of the command tree. Otherwise, they refer implicitly to the last node of the previous command (unless they already begin with an asterisk). For example, :SOURce:FREQuency:STARt 100;STOP 200 is a shorthand for the message :SOURce:FREQuency:STARt 100;:SOURce:FREQuency:STOP 200


Arguments

Some commands accept or require one or more additional arguments. Arguments are given after the command, and are separated from the command using a space. For example, the command to set the trigger mode of an instrument to "normal" may be given as "TRIGger:MODe NORMal". Here, the word "NORMal" is used as the argument to the "TRIGger:MODe" command. When multiple arguments are provided, the arguments are written as a comma-separated list. For example, a query command that performs an AC Volts measurement on a digital multimeter, using the meter's 10 VRMS measurement range, and displaying the measured voltage value with 4-1/2 digits of resolution, would be written as "MEASure:VOLTage:AC? 10,4".


Integer arguments

For commands that accept
integer An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
arguments, values may be specified in multiple computer number formats: decimal, hexadecimal, octal, binary. The last three formats are defined by IEEE 488.2, which SCPI is based upon.
Decimal The decimal numeral system (also called the base-ten positional numeral system and denary or decanary) is the standard system for denoting integer and non-integer numbers. It is the extension to non-integer numbers (''decimal fractions'') of th ...
numbers (
radix In a positional numeral system, the radix (radices) or base is the number of unique digits, including the digit zero, used to represent numbers. For example, for the decimal system (the most common system in use today) the radix is ten, becaus ...
10) aren't prefixed,
hexadecimal Hexadecimal (also known as base-16 or simply hex) is a Numeral system#Positional systems in detail, positional numeral system that represents numbers using a radix (base) of sixteen. Unlike the decimal system representing numbers using ten symbo ...
numbers (radix 16) are prefixed with # H or #h,
octal Octal (base 8) is a numeral system with eight as the base. In the decimal system, each place is a power of ten. For example: : \mathbf_ = \mathbf \times 10^1 + \mathbf \times 10^0 In the octal system, each place is a power of eight. For ex ...
numbers (radix 8) with # Q or # q, and binary numbers (radix 2) with # B or #b. Hexadecimal digits may use either
uppercase Letter case is the distinction between the letters that are in larger uppercase or capitals (more formally ''#Majuscule, majuscule'') and smaller lowercase (more formally ''#Minuscule, minuscule'') in the written representation of certain langua ...
letters (ABCDEF), or
lowercase Letter case is the distinction between the letters that are in larger uppercase or capitals (more formally ''majuscule'') and smaller lowercase (more formally '' minuscule'') in the written representation of certain languages. The writing system ...
letters (abcdef), or mixed case letters (aBcDeF). For octal, the letter " Q" was chosen instead of the letter " O" to minimize the visual confusion with the number " 0" (zero). The following argument examples are numerically equivalent: * Decimal: 26 * Hexadecimal: #H1A or #h1a * Octal: #Q32 or #q32 * Binary: #B11010 or #b11010


488.2 commands

Since SCPI was defined as an additional layer on top of the IEEE 488.2 specification, a SCPI compliant device should recognize various 488.2 commands too. These commands might also be known unofficially as asterisk commands (or star commands), because they start with the
asterisk The asterisk ( ), from Late Latin , from Ancient Greek , , "little star", is a Typography, typographical symbol. It is so called because it resembles a conventional image of a star (heraldry), heraldic star. Computer scientists and Mathematici ...
* character. According to section 4.1.1 of Volume 1 of SCPI, all SCPI devices must implement the following 488.2 commands. In the real world some low-end devices may only support a subset of these 488.2 commands, or may even accept the commands but not perform any operation. A user should check the official programmers manual for each device before assuming all of these 488.2 commands are supported. * *CLS * *ESE * *ESE? * *ESR? * *IDN? * *OPC * *OPC? * *RST * *SRE * *SRE? * *STB? * *TST? * *WAI According to section 4.1.2 of Volume 1 of SCPI, all other 488.2 commands not listed above are considered optional and not required by SCPI. * *AAD * *CAL? * *DDT * *DDT? * *DLF * *DMC * *EMC * *EMC? * *GMC? * *IST? * *LMC? * *LRN? * *OPT? * *PCB * *PMC * *PRE * *PRE? * *PSC * *PSC? * *PUD * *PUD? * *RCL * *RDT * *RDT? * *SAV * *TRG * *RMC * *SDS


See also

* IEEE-488 (GPIB) * Virtual Instrument Software Architecture (VISA) * Instrument driver *
List of TCP and UDP port numbers This is a list of TCP and UDP port numbers used by protocols for operation of network applications. The Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) only need one Port (computer networking), port for Duplex (telecommuni ...
- scpi-raw on TCP port 5025 and UDP port 5025


References


External links

{{Commonscat
SCPI Organization
official website ;Specifications
SCPI-1999, Volume 1-4
819 page PDF file, free download ''(doesn't include asterisk (*) commands, because they are specified in IEEE 488.2 & IEC 60488-2)''
IEEE 488.2-1992
254 page PDF file, cost
USD$54
in 2025 ''(superseded by IEEE/IEC 60488-2-2004)''
IEEE/IEC 60488-2-2004
264 page PDF file, cost
USD$388
in 2025


Programming Manual Examples

;Multimeters
Tektronix DMM6500
1202 page PDF file. ;Oscilloscopes
Keysight InfiniiVision Families
1896 page PDF file.
Rohde-Schwarz MXO 4 Series
848 page PDF file.
Tektronix MSO 4/5/6 Families
2050 page PDF file. Electronic engineering Electronics standards Input/output Electronic test equipment