Example SCPI code

The following sections contain SCPI command sequences for a performing a variety of tasks.  These tasks are not specific to any particular programming language.

Hardware Configuration

:SYSTem:VSA:HARDware:DISCover

:SYSTem:VSA:HARDware:CONFiguration:ADD "DualSa","TCPIP0::hostname01::inst0::INSTR","TCPIP0::hostname02::inst0::INSTR"

:SYSTem:VSA:HARDware:CONFiguration:CATalog?

:SYST:VSA:HARD:CONF:SEL "DualSa"

:SYST:VSA:HARD:CONF:SEL?

The instrument connection strings are case sensitive and must match exactly what is shown in the Discovered Instruments dialog.

Querying Summary Tables and Trace Data

:MMEM:LOAD:DEMO "C:\Program Files\Agilent\89600 Software 15.0\89600 VSA Software\Help\Signals\802_11n\80211n-MCS15-40MHz-GF.htm"

:INIT:CONT 0

:INIT:IMM;*OPC?

:FORMat:DATA ASC

:TRAC1:DATA:NAME?           // "IQ Meas1"

:TRAC1:DATA?                // Returns comma separated X,Y data for constellation in Trace A.

                            //   -0.780095100402832,0.465920984745026,...

:FORMat:DATA REAL64

:TRAC1:DATA?                // Binary data formatted as an IEEE 488.2 binary block array of X,Y data for

                            // constellation in Trace A in the format:

                            //   #Nnnnn<byte><byte>...

:TRACe4:DATA:NAME?          // "OFDM Error Summary1"

:TRACe4:DATA:TABLe:COUNt?   // 65

:TRACe4:DATA:TABLe:NAME?    // Returns the name of the items listed in the data table

                            // "Ch1EVM","Ch2EVM","EVM","Ch1EVMPeak","Ch2EVMPeak","EVMPeak","Ch1PilotEVM",...

:TRACe4:DATA:TABLe:VALue? "EVM" // 0.831055700778961

Working with Markers

:INIT:IMM;*OPC?

TRACe1:MARKer1:MAX

TRACe1:MARKer1:Y?

TRACe1:MARKer1:X?

TRACe1:MARKer2:MAX

TRACe1:MARKer2:DOWN

TRAC:MARK2:TYPE DELTA

Trace 3D Mapping Styles (Spectrogram, Cumulative History, Digital Persistence)

TRAC1:SPECtrogram:STYle?       // OFF

TRAC1:SPECtrogram:STYle DEC    // Enable Digital Persistence on Trace A

TRAC2:SPECtrogram:STYle?       // OFF

TRAC2:SPECtrogram:STYle SPEC   // Enable Spectrogram on Trace B

TRACe:ADD

TRACe:COUNt?                   // 3

TRACe3:DATA:NAME?              // "No Data"

TRACe3:DATA:NAME "Spectrum1"

TRAC3:SPECtrogram:STYle SUM    // Enable Cumulative History on Trace C

DISPlay:LAYout 3,1             // Set the window layout to 3 rows and 1 column

INIT:CONT 1

Recording and Playback

:INPut:DATA HW

:INPut:RECording:LENGth?

:INPut:RECording:LENGth:MAXimum:TIME?

:INPut:RECording:LENGth:MAXimum?

:INPut:RECording:LENGth:MAXimum 1

:INPut:RECording:LENGth:EXTRa?

:INPut:RECording:LENGth:EXTRa 1

:INITiate:RECording:IMMediate;

:INITiate:RECording:WAIT? 30000  // Return 0 if the recording has not completed before the specified timeout (30 sec) 

                                 // Return 1 if the recording has completed successfully

:INIT:REC:IMM;WAIT? 30000        // Equivalent to previous 2 lines using abbreviated SCPI syntax

:INPut:RECording:PLAY:LOOP 1

:INITiate:RESume

:MMEM:STORe:RECording "C:\Users\YourUserName\Documents\Agilent\89600B VSA\Signal01.sdf","sdf",1,1,1