RIGOL is a registered trademark of RIGOL (SUZHOU) TECHNOLOGIES INC.
Publication Number
PGA26103-1110
Software Version
00.00.00.04.00
Software upgrade might change or add product features. Please acquire the latest version of the manual
from RIGOL website or contact RIGOL to upgrade the software.
Notices
RIGOL products are covered by P.R.C. and foreign patents, issued and pending.
RIGOL reserves the right to modify or change parts of or all the specifications and pricing policies at
the company’s sole decision.
Information in this publication replaces all previously relea sed materials.
Information in this publication is subject to change without notice.
RIGOL shall not be liable for either incidental or consequential losses in connection with the furnishing,
use, or performance of this manual, as well as any information contained.
Any part of this document is forbidden to be copied, photocopied, or rearranged without prior written
approval of RIGOL.
Product Certification
RIGOL guarantees that this product conforms to the national and industrial standards in China as well as
the ISO9001:2015 standard a nd the ISO14001:2015 standard. Other international standard conformance
certifications are in progress.
ContactUs
If you have any problem or requirement when using our products o r this manual, please contact RIGOL.
E-mail: service@rigol.com
Website: www.rigol.com
MSO8000 Programming Guide I
RIGOL
Max.
Bandwidth
No. of
Channels
No. of Function/Arbitrary
Channels
16 (Required to purchase
the probe)
16 (Required to purchase
the probe)
16 (Required to purchase
the probe)
Tip
RIGOL
Document Overview
This manual is your guide to programming RIGOL MSO8000 series digital oscilloscope. MSO8000 series
can communicate with the PC via the USB, LAN, or GPIB (requiring to work with RIGOL's US B -GPIB
interface converter) interface.
Main Topics in this Manual:
Chapter 1 SCPI Command Overview
This chapter introduces the syntax, symbols, paramet ers, and abbreviation rules of the SCPI commands.
Chapter 2 Command System
This chapter introduces the syntax, function, parameters, and descriptions of each command.
Chapter 3 Programming Examples
This chapter illustrates how to control the MSO8000 series digital oscilloscope by programming in Excel,
LabVIEW, Visual Basic, and Visual C+ +.
For the latest version of this manual, download it from the official website of
(www.rigol.com).
Format Conventions in this Manual:
1. Key
The key on the front panel is denoted by the format of "Key Name (Bold) + Text Box" in the manual.
For example, Utility denotes the "Utility" key.
2. Menu
The menu items are denoted by the format of "Menu Wo rd (Bold) + Char acter Shading". F or example,
System denotes the "System" menu item under Utility.
3. Operation Procedures:
"" denotes the next step of operation. For example, Utility System denotes that first press
Utility, and then press the System softkey.
Content Conventions in this Manual:
MSO8000 series includes the following models. Unless otherw ise specified, this manual takes MSO8104 as
an example to illustrate the functions and operation methods of MSO8000 series.
Model
Analog
Analog
Waveform Generator
No. of Digital Channels
MSO8064 600 MHz 4 2 (Opt.)
MSO8104 1 GHz 4 2 (Opt.)
MSO8204 2 GHz 4 2 (Opt.)
II MSO8000 Programming Guide
Contents RIGOL
Contents
Guaranty and Declaration ......................................................................................................... I
Document Overview ................................................................................................................. II
LabVIEW Programming Example ................................................................................................ 3-7
Visual Basic Programming Example .......................................................................................... 3-11
Visual C++ Programming Example ........................................................................................... 3-13
MSO8000 Programming GuideIX
Chapter 1 SCPI Command Overview RIGOL
Chapter 1 SCPI Command Overview
SCPI (Standard Commands for Programmable Instruments) is a standardized instrument programming
language that is built upon the existing standard IEEE 488.1 and IEEE 488.2 and conforms to various
standards, such as the floating point operation rule in IEEE 754 standard, ISO 646 7-bit coded character set
for information interchange (equivalent to ASCII programming). The SCPI commands provide a hierarchical
tree structure, and consist of multiple subsystems. Each command subsystem consists of one root keyword
and one or more sub-keywords.
Contents in this cha pter:
Syntax
Symbol Description
Parameter Type
Command Abbreviation
Syntax
The command line usually starts with a colon; the keywords are separated by colons, and following the
keywords are the parameter settings available. The command endi ng with a quotation mark indicates
querying a certain function. The keywords of the command and the first parameter is separated by a space.
For example,
:ACQuire:TYPE <type>
:ACQuire:TYPE?
ACQuire is the root keyword of the command, and TYPE is the second-level keyword. The command line
starts with a colon, and different levels of keywords are also separated by colons. <type> indicates a
settable parameter. The command ending with a quotation mark indicates querying a certain function. The
command keywords ":ACQuire:TYPE" and the parameter <type> are separated by a space.
In some commands with parameters, "," is often used to separate multiple parameters. For example,
:SYSTem:DATE <year>,<month>,<day>.
Symbol Description
The following symbols are not sent with the commands.
1.Braces { }
The contents enclosed in the braces are parameter options. Parameters are usually separated by the
vertical bar "|". When using the command, you must select one of the parameters.
2.Vertical Bar |
The vertical bar is used to separate multiple parameters. When using the command, you must select
one of the parameters.
3.Square Brackets [ ]
The contents in the square brackets can be omitted.
4.Angle Brackets < >
The parameter enclosed in the angle brackets must be replaced by an effective value.
MSO8000 Programming Guide1-1
RIGOLChapter 1 SCPI Command Overview
Parameter Type
1. Bool
The parameter can be set to ON, OFF, 1, or 0. For example,
:SYSTem:BEEPer <bool>
:SYSTem:BEEPer?
Wherein,
<bool> can be set to {{1|ON}|{0|OFF}}.
The query returns 1 or 0.
2. Discrete
The parameter can be any of the values listed. For example,
:ACQuire:TYPE <type>
:ACQuire:TYPE?
Wherein,
<type> can be set to NORMal, AVERages, or PEAK.
The query returns NORM, AVER, or PEAK.
3. Integer
Unless otherwise specified, the parameter can be any integer (NR1 format) within the effective value
range.
Note: Do not set the parameter to a decimal, otherwise, errors will occur.
For example,
:DISPlay:GBRig htnes s <bri g htne ss >
:DISPlay:GBRightness?
Wherein, <brightness> can be set to an integer ranging from 1 to 100.
The query returns a n i nteger ranging from 1 to 100.
4. Real
The parameter can be any real number within the effective value range, and this command accepts
parameter input in decimal (NR2 format) and scientific notation (NR3 format). For example,
:TRIGger:TIMeout:TIME <time>
:TRIGger:TIMeout:TIME?
Wherein, <time> can be set to any real number ranging from 1.6E-8 (i.g. 16 ns) to 1E+1 (i.g. 10 s).
The query returns a real number in scientific notation.
5. ASCII String
The parameter can be the combinations of ASCII characters.
For example,
:SYSTem:OPTion:INSTall <license>
Wherein, <license> can be set to
MSO8000-PWR@3AEBC07E6C31F82B78A1C401DC2E3AC2CC9431B57F60D1E1CB712F8682C93609A6
05F8577BFDE920373062BE226289A27C134E2C91BF80CB00F8011AC181FD40.
Command Abbreviation
All the commands are case-insensitive. They can all be in upper case or in lower case. If abbreviation is
used, you must input a ll the capital letters in the command. For example,
:DISPlay:GBRightness?
can be abbreviated as
:DISP:GBR?
1-2 MSO8000 Programming Guide
Chapter 2 Command System RIGOL
Chapter 2 Command System
This chapter introduces the syntax, functions, parameters, and usage of each MSO8000 command. For this
oscilloscope, only CH1 is enabled by default.
1. Unless otherwise specified, the descriptions in this manual all take MSO8104 as an example.
2. For the par ameter setting command (tim e, frequency, amplitude, etc.), the digital osci lloscope can only
recognize the numbers, unable to recognize the unit sent together with them. The unit of the
parameter is a default o ne. F or the default units of v arious parameters, r efer to the d escriptions f or the
specified command.
:AUToscale
Description Enables the wavef orm auto setting function. The oscilloscope will automatically adjust the
vertical scale, horizontal time base, and trigg er mode according to the input signal to
realize optimal waveform display . This command functions the same as the AUTO key on
Remarks When the AUTO function is disabled, this command is invalid. For details, refer
to :SYSTem:AUToscale.
When the pass/fail test is enabled, the AUTO function runs normally , but the pass/fail
test function is forced to be disabled.
When the waveform recording function is enabled or the recorded waveforms are
played back, the AUTO function runs normally, but the recording or playing function is
:CLEar
Description
Clears all the wavef or ms on the s creen . This command functions the same as the CLEAR
:RUN
:STOP
Syntax :RUN
Description The :RUN command starts the oscilloscope and the :STOP command stops the
oscilloscope. This command functions the sam e as the RUN/STOP key on the front
Remarks
When the waveform r ecording function is enabled, the RUN/STOP key on the front panel
2-2 MSO8000 Programming Guide
Chapter 2 Command System RIGOL
Syntax
:SINGle
the :TRIGger:SWEep SINGle command.
force.
Syntax
:TFORce
the same as the FORCE key in the trigger control area of the front panel.
:SINGle
Description Sets the trigger mode of the oscilloscope to "Single". This command functions the same as
either of the following two operation: press SINGLE on the front panel; or send
Remarks In the single trigger mode, the oscilloscope performs a single trigger when the trigger
conditions are met and then it stops.
When the waveform recording function is enabled or the recorded waveforms are
played back, this command is invalid.
For the single trigger, you can use the
:TFORce command to generate one trigger by
:TFORce
Description Generates a trigger signal forcibly. This command is only applicable to the normal and
single trigger modes (refer to the
:TRIGger:SWEep command). This command functions
MSO8000 Programming Guide2-3
RIGOLChapter 2 Command System
:ACQuire:AVERages?
Description
Sets or queries the number of averages in the average acquisition mode.
Name
Type
Range
Default
<count>
Integer
2n (n is an integer, and its range is from 1 to 16)
2
waveform to the waveform changes.
Format
:ACQuire:AVERages? /*The query returns 128.*/
:ACQuire:MDEPth?
points that can be stored through the sampling in a single trigger). The default unit is pts.
Name
Type
Range
Default
6|1e7|2.5e7|5e7|1e8|1.25e8|2.5e8|5e8}
:ACQuire Commands
The :ACQuire commands are used to set the memory depth of the oscilloscope, the acquisition mode, the
average times, as well as query the current sample rate.
Sets or queries the acquisition mode of the oscilloscope.
Name
Type
Range
Default
<type>
Discrete
{NORMal|AVERages|PEAK|HRESolution}
NORMal
resolution. Greater nu mber o f a verages can lower the nois e an d in c rease th e vertical
digital converter is greater than the storage rate of the sample storage.
Format
:ACQuire:TYPE? /*The query returns AVER.*/
Remarks When "AUTO" is selected, the oscilloscope selects the memory depth automatically
according to the current sample rate.
The maximum memory depth for the single c hannel is 50 0 M; the maxi mum memory
depth for the dual-channel is 250 M; and the maximum memory depth for the
Return
Example
The query returns the memory depth in scientific notation.
:ACQuire:MDEPth 1M /*Sets the memory depth to 1M.*/
:ACQuire:TYPE
Syntax :ACQuire:TYPE <type>
Parameter
Remarks NORMal: In this mode, the oscilloscope samples the signal at a specified fixed time
interval to rebuild the waveform. For most of the waveforms, using this mode can
produce the optimal display effects.
AVERages: In this mode, the oscilloscope averages the waveforms from multiple
samples to reduce the random noise of the input signal and improve the vertical
resolution; while at the same time, it will slow the response of the displayed
waveform to the waveform changes.
PEAK: indicates the peak detection. In this mode, the oscilloscope samples the
maximum and minimum value of the signal at the fixed sampling interval to acquire
the signal envelope or the narrow pulses that might be lost. In this mode, signal
aliasing can be prevented, but the noise displayed would be larger.
HRESolution: the oscillo scope averages the neighbouring points of the sampled
waveform to reduce the random noise on the input signal and display smoother
waveform on the screen. This mode is usually used when the sample rate of the
Return
Example
The query returns NORM, AVER, PEAK, or HRES.
:ACQuire:TYPE AVERages /*Sets the acquisition mode to AVERages.*/
MSO8000 Programming Guide2-5
RIGOLChapter 2 Command System
Syntax
:ACQuire:SRATe?
Description
Queries the current sample rate. The default unit is Sa/s.
The formula below des cribes the relations hip among sample rate, memory depth, and
direction. For MSO8000, the number of grids in the hor izontal direction is 10.
Remarks Sample rate indicates the frequency of the signal sampling, i.g. the number of
waveform points sampled per second.
waveform length:
memory depth = sample rate x waveform length
Wherein, the memory dep th is set by the
length is obtained by multiplying the horizontal time base (set by
:TIMebase[:MAIN]:SCALe command) by the number of grids in the horizontal
the
:ACQuire:MDEPth command. The wav eform
Return
The query returns the sample rate in scientific notation.
:ACQuire:LA:SRATe?
Return
The query returns the sample rate in scientific notation.
:ACQuire:LA:MDEPth?
Return
The query returns the memory depth in scientific notation.
:ACQuire:AALias
Syntax :ACQuire:AALias <bool>
Description Enables or disables the anti-aliasing function of the oscilloscope; or queries the on/off
Parameter
Return
Example
2-6 MSO8000 Programming Guide
The query returns 1 or 0.
:ACQuire:AALias ON /*Enables the anti-aliasing function.*/
Chapter 2 Command System RIGOL
:BUS<n>:MODE?
Description
Sets or queries the decoding type of the specified decoding bus.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
FLEXray|M1553}
installed, can the command is available.
Format
:BUS1:MODE? /*The query returns SPI.*/
:BUS<n> Commands
The : BUS<n> commands are used to execute the decoding-related settings and operations.
Remarks Except P ARallel, all the other decodings are options. Only when the specified option is
Return
Example
MSO8000 Programming Guide2-7
The query returns PAR, RS232, SPI, IIC, IIS, LIN , CAN, FLEX, or M1553.
:BUS1:MODE SPI /*Se ts the type of the decod ing bus to SPI.*/
PARallel
RIGOLChapter 2 Command System
:BUS<n>:DISPlay?
the specified decoding bus.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
<bool>
Bool
{{1|ON}|{0|OFF}}
0|OFF
Format
:BUS1:DISPlay? /*The query returns 1.*/
:BUS<n>:FORMat?
Description
Sets or queries the display format of decoding data of the specified decoding bus.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
<fmt>
Discrete
{HEX|ASCii|DEC|BIN}
ASCii
Remarks
HEX indicates Hexadecimal; DEC indicates Decima l; BIN indicates Binary.
Format
:BUS1:FORMat? /*The query returns HEX.*/
:BUS<n>:EVENt?
status of the specified decoding bus event table.
Name
Type
Range
Default
<bool>
Bool
{{1|ON}|{0|OFF}}
0|OFF
Remarks
Before using the command, enable the specified decoding bus.
Format
:BUS1:EVENt? /*The query returns 1.*/
:BUS<n>:DISPlay
Syntax :BUS<n>:DISPlay <bool>
Description Enables or disables the specified decoding b us; or queries the on/off display status of
Parameter
Return
Example
The query returns 1 or 0.
:BUS1:DISPlay ON /*Enables the decoding bus.*/
:BUS<n>:FORMat
Syntax :BUS<n>:FORMat <fmt>
Parameter
Return
Example
The query returns HEX, ASC, DEC, or BIN.
:BUS1:FORMat HEX /*Sets the display format of the bus to HEX.*/
:BUS<n>:EVENt
Syntax :BUS<n>:EVENt <bool>
Description Enables or disables the event table of the specified decoding bus; or queries the on/off
Parameter
<n> Discrete {1|2|3|4} ——
Return
Example
2-8 MSO8000 Programming Guide
The query returns 1 or 0.
:BUS1:EVENt ON /*Enables the event table of the specified decoding bus.*/
Chapter 2 Command System RIGOL
:BUS<n>:EVENt:FORMat?
Description
Sets or queries the display format of the specified decoding bus event table.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
<format>
Discrete
{HEX|ASCii|DEC|BIN}
ASCii
Remarks
HEX indicates Hexadecimal; DEC indicates Decima l; BIN indicates Binary.
Format
:BUS1:EVENt:FORMat? /*The query returns HEX.*/
:BUS<n>:EVENt:VIEW?
Description
Sets or queries the data page of the specified decoding bus event table.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
<packet>
Discrete
{PACKets|DETails|PAYLoad}
PACKets
changed accordingly.
Format
:BUS1:EVENt:VIEW? /*The query returns DET.*/
:BUS<n>:LABel?
of the label of the specified decoding bus.
:BUS<n>:EVENt:FORMat
Syntax :BUS<n>:EVENt:FORMat <format>
Parameter
Return
Example
The query returns HEX, ASC, DEC, or BIN.
:BUS1:EVENt:FORMat HEX
/*Sets the display format of the specified decoding bus event table to HEX.*/
:BUS<n>:EVENt:VIEW
Syntax :BUS<n>:EVENt:VIEW <packet>
Parameter
Remarks
PACKets: displays time, data, and error information in the specified event table.
DETails: displays the detailed data of the specified row in the event table.
PAYLoad: displays all the data of the specified column in the event table.
When different views are selected, the export format of the data list will be
Return
Example
The query returns PACK, DET, or PAYL.
:BUS1:EVENt:VIEW DETails /*Sets the data page of the decoding bus event table
to DETails.*/
:BUS<n>:LABel
Syntax :BUS<n>:LABel <bool>
Description Enables or disables the label of the specified decoding bus; or queries the on/off status
MSO8000 Programming Guide2-9
RIGOLChapter 2 Command System
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
<bool>
Bool
{{1|ON}|{0|OFF}}
0|OFF Remarks
Before using the command, enable the specified decoding bus.
Format
:BUS1:LABel? /*The query returns 1.*/
Syntax
:BUS<n>:DATA?
Description
Reads the data in the decoding event table.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
list.
Syntax
:BUS<n>:EEXPort
Description
Exports the decoding information in the specified decoding bus event table in CSV form.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
with the filename 123.csv.*/
Parameter
Return
Example
The query returns 1 or 0.
:BUS1:LABel ON /*Enables the label of the specified decoding bus.*/
:BUS<n>:DATA?
Parameter
Return
Format
The query returns the data in the decoding event table with the following formats .
#9000000072PAL,
Time,Data,,
-1us,0,,
-990.3ns,1,,
-503.2ns,0,,
9.2ns,1,,
497.2ns,0,
Wherein, "#9000000072" is the TMC data block header, which is followed by the data
in the event table. The 9-digit data following #9 in the data block header indicates
the number of bytes of the effective data. "PAL" indicates the decoding type. The
available decoding type can also be RS232, I2C, SPI, or CAN. The data are sep arated
by commas, and will automatically go to the next l ine according to the line length
limit in the decoding list. The data value is related to the numeral system that you
have set.
Note: You can save all the data (except TMC data block header and decoding type,
e.g. #9000000072PAL)
as the "*.csv" file and view the data in the form of a
:BUS<n>:EEXPort
Parameter
Example :BUS1:EEXPort C:/123.csv
/*Exports the decoding information in the bus event table to the local Disk C,
2-10 MSO8000 Programming Guide
Chapter 2 Command System RIGOL
:BUS<n>:POSition?
Description
Sets or queries the vertical position of the bus on the screen.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
channel offset
Format
:BUS1:POSition? /*The query returns 200.*/
:BUS<n>:THReshold? <typ e >
Description
Sets or queries the threshold of the specified decoding source.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
(5×VerticalScale–OFFSet)
SI|LIN|CAN|CANSub1}
For SPI decoding, only when the MOSI source is enabled, can you set the threshold.
Format
:BUS1:THReshold? PAL /*The query returns 2.400000E0.*/
:BUS<n>:POSition
Syntax :BUS<n>:POSition <pos>
Parameter
Related to the
Return
Example
<pos> Integer -167 to +217
The query returns a n i nteger ranging from -1 67 to +217.
:BUS1:POSition 200 /*Se ts the vertical position of the bus to 200.*/
:BUS<n>:THReshold
Syntax :BUS<n>:THReshold <value>,<type>
Parameter
<value> Real
<type> Discrete
Remarks For VerticalScale, refer to the :CHANnel<n>:SCALe command. For OFFSet, refer to
:CHANnel<n>:OFFSet command.
the
(-5×VerticalScale–OFFSet) to
{PAL|TX|RX|SCL|SDA|CS|CLK|MISO|MO
0
——
For RS232 decoding, only when the Rx source is enabled, can you set the threshold.
Return
The query returns the threshold of t he specified decod ing source in scient ific notation.
Example :BUS1:THReshold 2.4,PAL /*Sets the threshold of the PAL decoding source to 2.4 V.*/
MSO8000 Programming Guide2-11
RIGOLChapter 2 Command System
:BUS<n>:PARallel:CLK?
Description
Sets or queries the clock source of the Parallel decoding.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
OFF}
Format
D15, CHAN1, CHAN2, CHAN3, CHAN4, or OFF.
:BUS1:PARallel:CLK? /*The query returns D0.*/
:BUS<n>:PARallel:SLOPe?
decoding on the data channel.
Name
Type
Range
Default
<n>
Discrete
{1|2|3|4}
——
<slope>
Discrete
{POSitive|NEGative|BOTH}
POSitive
jumps during the de coding.
Format
:BUS<n>:PARallel
The :BUS<n>:PARallel commands are used to set relevant parameters for Parallel decoding.