No part of this manual may be reproduced
in any form or by any means (including
electronic storage and retrieval or translation into a foreign language) without prior
agreement and written consent from Agilent Technologies, Inc. as governed by
United States and international copyright
laws.
Trademarks
Microsoft®, MS-DOS®, Windows®, Windows 2000®, and Windows XP® are U.S.
registered trademarks of Microsoft Corporation.
Adobe®, Acrobat®, and the Acrobat
Logo® are trademarks of Adobe Systems
Incorporated.
Manual Part Number
Version 05.15.0000
Edition
July 31, 2008
Available in electronic format only
Agilent Technologies, Inc.
1900 Garden of the Gods Road
Colorado Springs, CO 80907 USA
Warranty
The material contained in this document is provided “as is,” and is subject to being changed, without notice,
in future editions. Further, to the maximum extent permitted by applicable
law, Agilent disclaims all warranties,
either express or implied, with regard
to this manual and any information
contained herein, including but not
limited to the implied warranties of
merchantability and fitness for a particular purpose. Agilent shall not be
liable for errors or for incidental or
consequential damages in connection
with the furnishing, use, or performance of this document or of any
information contained herein. Should
Agilent and the user have a separate
written agreement with warranty
terms covering the material in this
document that conflict with these
terms, the warranty terms in the separate agreement shall control.
Technology Licenses
The hardware and/or software described in
this document are furnished under a
license and may be used or copied only in
accordance with the terms of such license.
Restricted Rights Legend
agency regulation or contract clause. Use,
duplication or disclosure of Software is
subject to Agilent Technologies’ standard
commercial license terms, and non-DOD
Departments and Agencies of the U.S. Government will receive no greater than
Restricted Rights as defined in FAR
52.227-19(c)(1-2) (June 1987). U.S. Government users will receive no greater than
Limited Rights as defined in FAR 52.227-14
(June 1987) or DFAR 252.227-7015 (b)(2)
(November 1995), as applicable in any
technical data.
Safety Notices
CAUTION
A CAUTION notice denotes a hazard. It calls attention to an operating procedure, practice, or the like
that, if not correctly performed or
adhered to, could result in damage
to the product or loss of important
data. Do not proceed beyond a
CAUTION notice until the indicated
conditions are fully understood and
met.
WARNING
A WARNING notice denotes a
hazard. It calls attention to an
operating procedure, practice, or
the like that, if not correctly performed or adhered to, could result
in personal injury or death. Do not
proceed beyond a WARNING
notice until the indicated conditions are fully understood and met.
If software is for use in the performance of
a U.S. Government prime contract or subcontract, Software is delivered and
licensed as “Commercial computer software” as defined in DFAR 252.227-7014
(June 1995), or as a “commercial item” as
defined in FAR 2.101(a) or as “Restricted
computer software” as defined in FAR
52.227-19 (June 1987) or any equivalent
In This Book
This book is your guide to programming the 5000 Series oscilloscopes:
Table 1InfiniiVision 5000 Series Oscilloscope Models
changes in the latest version of oscilloscope software.
• Chapter 2, "Setting Up" on page 27, describes the steps you must take
before you can program the oscilloscope.
• Chapter 3, "Getting Started" on page 37, gives a general overview of
oscilloscope program structure and shows how to program the
oscilloscope using a few simple examples.
• Chapter 4, "Commands Quick Reference" on page 51, is a brief listing of
the 5000 Series oscilloscope commands and syntax.
The next chapters provide reference information:
• Chapter 5, "Commands by Subsystem" on page 89, describes the set of
commands that belong to an individual subsystem and explains the
function of each command. Command arguments and syntax are
described. Some command descriptions have example code.
• Chapter 6, "Commands A- Z" on page 477, contains an alphabetical
listing of all command elements.
• Chapter 7, "Obsolete and Discontinued Commands" on page 501,
describes obsolete commands which still work but have been replaced
by newer commands and discontinued commands which are no longer
supported.
• Chapter 8, "Error Messages" on page 545, lists the instrument error
messages that can occur while programming the oscilloscope.
The command descriptions in this reference show upper and lowercase
characters. For example, :AUToscale indicates that the entire command
name is :AUTOSCALE. The short form, :AUT, is also accepted by the
oscilloscope.
Then, there are chapters that describe programming topics and conceptual
information in more detail:
• Chapter 9, "Status Reporting" on page 553, describes the oscilloscope's
status registers and how to check the status of the instrument.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide3
• Chapter 10, "Synchronizing Acquisitions" on page 575, describes how to
wait for acquisitions to complete before querying measurement results
or performing other operations with the captured data.
• Chapter 11, "More About Oscilloscope Commands" on page 585, contains
additional information about oscilloscope programming commands.
Finally, there is a chapter that contains programming examples:
• Chapter 12, "Programming Examples" on page 607.
See Also• For more information on using the SICL, VISA, and VISA COM libraries
in general, see the documentation that comes with the Agilent IO
Libraries Suite.
• For information on controller PC interface configuration, see the
documentation for the interface card used (for example, the Agilent
82350A GPIB interface).
• For information on oscilloscope front-panel operation, see the User's
Guide.
• For detailed connectivity information, refer to the Agilent Technologies
USB/LAN/GPIB Connectivity Guide. For a printable electronic copy of
the Connectivity Guide, direct your Web browser to "www.agilent.com"
and search for "Connectivity Guide".
• For the latest versions of this and other manuals, see:
"http://www.agilent.com/find/5000manual"
4Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Contents
1 What's New
2 Setting Up
In This Book3
What's New in Version 5.1520
What's New in Version 5.1022
What's New in Version 5.0023
What's New in Version 4.1025
Version 4.00 at Introduction26
Step 1. Install Agilent IO Libraries Suite software28
Step 2. Connect and set up the oscilloscope29
Using the USB (Device) Interface29
Using the LAN Interface29
Using the GPIB Interface30
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide5
Programming the Oscilloscope40
Referencing the IO Library40
Opening the Oscilloscope Connection via the IO Library41
Initializing the Interface and the Oscilloscope41
Using :AUToscale to Automate Oscilloscope Setup42
Using Other Oscilloscope Setup Commands42
Capturing Data with the :DIGitize Command43
Reading Query Responses from the Oscilloscope45
Reading Query Results into String Variables46
Reading Query Results into Numeric Variables46
Reading Definite-Length Block Query Response Data46
Sending Multiple Queries and Reading Results47
Checking Instrument Status48
Other Ways of Sending Commands49
Tel ne t S oc ke ts49
Sending SCPI Commands Using Browser Web Control49
Program Message Syntax 587
Command Tree591
Duplicate Mnemonics601
Tree Traversal Rules and Multiple Commands601
Query Return Values604
All Oscilloscope Commands Are Sequential605
12 Programming Examples
SICL Examples608
SICL Example in C608
SICL Example in Visual Basic617
VISA Examples626
VISA Example in C626
VISA Example in Visual Basic635
VISA Example in C#645
VISA Example in Visual Basic .NET659
16Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Index
VISA COM Examples672
VISA COM Example in Visual Basic672
VISA COM Example in C#682
VISA COM Example in Visual Basic .NET693
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide17
18Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Agilent InfiniiVision 5000 Series Oscilloscopes
Programmer's Guide
1
What's New
What's New in Version 5.15 20
What's New in Version 5.10 22
What's New in Version 5.00 23
What's New in Version 4.10 25
Version 4.00 at Introduction 26
A
19
1What's New
What's New in Version 5.15
New features in version 5.15 of the InfiniiVision 5000 Series oscilloscope
software are:
• Waveform math can be performed using channels 3 and 4, and there is
a new ADD operator.
• Ratio of AC RMS values measurement.
• Analog channel impedance protection lock.
More detailed descriptions of the new and changed commands appear
below.
New Commands
CommandDescription
:FUNCtion:GOFT:OPERation (see page 219)Selects the math operation for the internal g(t)
source that can be used as the input to the FFT,
INTegrate, DIFFerentiate, and SQRT functions.
:FUNCtion:GOFT:SOURce1 (see page 220)Selects the first input channel for the g(t)
source.
:FUNCtion:GOFT:SOURce2 (see page 221)Selects the second input channel for the g(t)
source.
:FUNCtion:SOURce1 (see page 227)Selects the first source for the ADD, SUBTract,
and MULTiply arithmetic operations or the
single source for the FFT, INTegrate,
DIFFerentiate, and SQRT functions.
:FUNCtion:SOURce2 (see page 228)Selects the second input channel for the ADD,
SUBTract, and MULTiply arithmetic operations.
:MEASure:VRATio (see page 291)Measures and returns the ratio of AC RMS
values of the specified sources expressed in
dB.
:SYSTem:PROTection:LOCK (see page 339)Disables/enables the fifty ohm input
impedance setting.
20Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Changed
Commands
Obsolete
Commands
What's New1
CommandDifferences
:ACQuire:COUNt (see page 157)The :ACQuire:COUNt 1 command has been
deprecated. The AVERage acquisition type with
a count of 1 is functionally equivalent to the
HRESolution acquisition type; however, you
should select the high-resolution acquisition
mode with the :ACQuire:TYPE HRESolution
command instead.
:FUNCtion:OPERation (see page 223)The ADD parameter is new, and now that
waveform math can be performed using
channels 3 and 4, this command selects the
operation only.
:FUNCtion:WINDow (see page 230)You can now select the Blackman-Harris FFT
24Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
What's New in Version 4.10
New features in version 4.10 of the InfiniiVision 5000 Series oscilloscope
software are:
• The square root waveform math function.
• Several new hardcopy printer drivers.
More detailed descriptions of the new and changed commands appear
below.
Changed
Commands
CommandDifferences
:FUNCtion:OPERation (see page 223)You can now select the SQRT (square root)
:HARDcopy:PDRiver (see page 522)You can now select the new DJPR0kx50,
What's New1
waveform math function.
DJ55xx, PS470, and LJFastraster printer
drivers.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide25
1What's New
Version 4.00 at Introduction
The Agilent InfiniiVision 5000 Series oscilloscopes were introduced with
version 4.00 of oscilloscope operating software. The command set is
similar to the 6000 Series oscilloscopes (and the 54620/54640 Series
oscilloscopes before them) except that digital channels, rear-panel 10 Mhz
reference BNC input/output, and serial bus triggering/decode features are
not present.
26Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Agilent InfiniiVision 5000 Series Oscilloscopes
Programmer's Guide
2
Setting Up
Step 1. Install Agilent IO Libraries Suite software 28
Step 2. Connect and set up the oscilloscope 29
Step 3. Verify the oscilloscope connection 31
This chapter explains how to install the Agilent IO Libraries Suite
software, connect the oscilloscope to the controller PC, set up the
oscilloscope, and verify the oscilloscope connection.
A
27
2Setting Up
Step 1. Install Agilent IO Libraries Suite software
Insert the Automation-Ready CD that was shipped with your oscilloscope
into the controller PC's CD-ROM drive, and follow its installation
instructions.
You can also download the Agilent IO Libraries Suite software from the
web at:
• "http://www.agilent.com/find/iolib"
28Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Step 2. Connect and set up the oscilloscope
The 5000 Series oscilloscope has three different interfaces you can use for
programming: USB (device), LAN, or GPIB.
All three interfaces are "live" by default, but you can turn them off if
desired. To access these settings press the Utility key on the front panel,
then press the I/O softkey, then press the Control softkey.
86%
Setting Up2
'(9,&(
+267
121$8720',;
Figure 1Control Connectors on Rear Panel
Using the USB (Device) Interface
1 Connect a USB cable from the controller PC's USB port to the "USB
DEVICE" port on the back of the oscilloscope.
This is a USB 2.0 high-speed port.
2 On the oscilloscope, verify that the controller interface is enabled:
a Press the Utility button.
b Using the softkeys, press I/O and Control.
c Ensure the box next to USB is selected (). If not (), use the
Entry knob to select USB; then, press the Control softkey again.
/$1
*3,%
Using the LAN Interface
1 If the controller PC isn't already connected to the local area network
(LAN), do that first.
2 Get the oscilloscope's network parameters (hostname, domain, IP
address, subnet mask, gateway IP, DNS IP, etc.) from your network
administrator.
3 Connect the oscilloscope to the local area network (LAN) by inserting
LAN cable into the "LAN" port on the back of the oscilloscope.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide29
2Setting Up
4 On the oscilloscope, verify that the controller interface is enabled:
a Press the Utility button.
b Using the softkeys, press I/O and Control.
c Ensure the box next to LAN is selected (). If not (), use the
Entry knob to select LAN; then, press the Control softkey again.
5 Configure the oscilloscope's LAN interface:
a Press the Configure softkey until "LAN" is selected.
b Press the LAN Settings softkey.
c Press the Addresses softkey. Use the IP Options softkey and the
Entry knob to select DHCP, AutoIP, or netBIOS. Use the Modify
softkey (and the other softkeys and the Entry knob) to enter the IP
Address, Subnet Mask, Gateway IP, and DNS IP values. When you are
done, press the return (up arrow) softkey.
d Press the Domain softkey. Use the Modify softkey (and the other
softkeys and the Entry knob) to enter the Host name and the
Domain name. When you are done, press the return (up arrow)
softkey.
Using the GPIB Interface
1 Connect a GPIB cable from the controller PC's GPIB interface to the
"GPIB" port on the back of the oscilloscope.
2 On the oscilloscope, verify that the controller interface is enabled:
a Press the Utility button.
b Using the softkeys, press I/O and Control.
c Use the Entry knob to select "GPIB"; then, press the Control softkey
again.
Ensure the box next to GPIB is selected (). If not (), use the
Entry knob to select GPIB; then, press the Control softkey again.
3 Configure the oscilloscope's GPIB interface:
a Press the Configure softkey until "GPIB" is selected.
b Use the Entry knob to select the Address value.
30Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Step 3. Verify the oscilloscope connection
1 On the controller PC, click on the Agilent IO Control icon in the
taskbar and choose Agilent Connection Expert from the popup menu.
2 In the Agilent Connection Expert application, instruments connected to
the controller's USB and GPIB interfaces should automatically appear.
(You can click Refresh All to update the list of instruments on these
interfaces.)
Setting Up2
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide31
2Setting Up
You must manually add instruments on LAN interfaces:
a Right-click on the LAN interface, choose Add Instrument from the
popup menu
b If the oscilloscope is on the same subnet, select it, and click OK.
32Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Setting Up2
Otherwise, if the instrument is not on the same subnet, click Add
Address.
iIn the next dialog, select either Hostname or IP address, and
enter the oscilloscope's hostname or IP address.
ii Click Test Connection.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide33
2Setting Up
iii If the instrument is successfully opened, click OK to close the
dialog. If the instrument is not opened successfully, go back and
verify the LAN connections and the oscilloscope setup.
34Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Setting Up2
3 Test some commands on the instrument:
a Right- click on the instrument and choose Send Commands To This
Instrument from the popup menu.
b In the Agilent Interactive IO application, enter commands in the
Command field and press Send Command, Read Response, or
Send&Read.
c Choose Connect>Exit from the menu to exit the Agilent Interactive
IO application.
4 In the Agilent Connection Expert application, choose File>Exit from the
menu to exit the application.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide35
2Setting Up
36Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Agilent InfiniiVision 5000 Series Oscilloscopes
Programmer's Guide
3
Getting Started
Basic Oscilloscope Program Structure 38
Programming the Oscilloscope 40
Other Ways of Sending Commands 49
This chapter gives you an overview of programming the 5000 Series
oscilloscopes. It describes basic oscilloscope program structure and shows
how to program the oscilloscope using a few simple examples.
The getting started examples show how to send oscilloscope setup, data
capture, and query commands, and they show how to read query results.
NOTE
Language for Program Examples
The programming examples in this guide are written in Visual Basic using the Agilent VISA
COM library.
A
37
3Getting Started
Basic Oscilloscope Program Structure
The following figure shows the basic structure of every program you will
write for the oscilloscope.
Initializing
To ensure consistent, repeatable performance, you need to start the
program, controller, and oscilloscope in a known state. Without correct
initialization, your program may run correctly in one instance and not in
another. This might be due to changes made in configuration by previous
program runs or from the front panel of the oscilloscope.
• Program initialization defines and initializes variables, allocates
memory, or tests system configuration.
• Controller initialization ensures that the interface to the oscilloscope is
properly set up and ready for data transfer.
• Oscilloscope initialization sets the channel configuration, channel labels,
threshold voltages, trigger specification, trigger mode, timebase, and
acquisition type.
Capturing Data
Once you initialize the oscilloscope, you can begin capturing data for
analysis. Remember that while the oscilloscope is responding to commands
from the controller, it is not performing acquisitions. Also, when you
change the oscilloscope configuration, any data already captured will most
likely be rendered.
38Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
To collect data, you use the :DIGitize command. This command clears the
waveform buffers and starts the acquisition process. Acquisition continues
until acquisition memory is full, then stops. The acquired data is displayed
by the oscilloscope, and the captured data can be measured, stored in
trace memory in the oscilloscope, or transferred to the controller for
further analysis. Any additional commands sent while :DIGitize is working
are buffered until :DIGitize is complete.
You could also put the oscilloscope into run mode, then use a wait loop in
your program to ensure that the oscilloscope has completed at least one
acquisition before you make a measurement. Agilent does not recommend
this because the needed length of the wait loop may vary, causing your
program to fail. :DIGitize, on the other hand, ensures that data capture is
complete. Also, :DIGitize, when complete, stops the acquisition process so
that all measurements are on displayed data, not on a constantly changing
data set.
Analyzing Captured Data
Getting Started3
After the oscilloscope has completed an acquisition, you can find out more
about the data, either by using the oscilloscope measurements or by
transferring the data to the controller for manipulation by your program.
Built- in measurements include: frequency, duty cycle, period, positive
pulse width, and negative pulse width.
Using the :WAVeform commands, you can transfer the data to your
controller. You may want to display the data, compare it to a known good
measurement, or simply check logic patterns at various time intervals in
the acquisition.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide39
3Getting Started
Programming the Oscilloscope
• "Referencing the IO Library" on page 40
• "Opening the Oscilloscope Connection via the IO Library" on page 41
• "Using :AUToscale to Automate Oscilloscope Setup" on page 42
• "Using Other Oscilloscope Setup Commands" on page 42
• "Capturing Data with the :DIGitize Command" on page 43
• "Reading Query Responses from the Oscilloscope" on page 45
• "Reading Query Results into String Variables" on page 46
• "Reading Query Results into Numeric Variables" on page 46
• "Sending Multiple Queries and Reading Results" on page 47
• "Checking Instrument Status" on page 48
Referencing the IO Library
No matter which instrument programming library you use (SICL, VISA, or
VISA COM), you must reference the library from your program.
In C/C++, you must tell the compiler where to find the include and library
files (see the Agilent IO Libraries Suite documentation for more
information).
To reference the Agilent VISA COM library in Visual Basic for Applications
(VBA, which comes with Microsoft Office products like Excel):
1 Choose Tools>References... from the main menu.
2 In the References dialog, check the "VISA COM 3.0 Type Library".
40Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
3 Click OK.
To reference the Agilent VISA COM library in Microsoft Visual Basic 6.0:
1 Choose Project>References... from the main menu.
2 In the References dialog, check the "VISA COM 3.0 Type Library".
3 Click OK.
Opening the Oscilloscope Connection via the IO Library
PC controllers communicate with the oscilloscope by sending and receiving
messages over a remote interface. Once you have opened a connection to
the oscilloscope over the remote interface, programming instructions
normally appear as ASCII character strings embedded inside write
statements of the programing language. Read statements are used to read
query responses from the oscilloscope.
For example, when using the Agilent VISA COM library in Visual Basic
(after opening the connection to the instrument using the
ResourceManager object's Open method), the FormattedIO488 object's
WriteString, WriteNumber, WriteList, or WriteIEEEBlock methods are used
for sending commands and queries. After a query is sent, the response is
read using the ReadString, ReadNumber, ReadList, or ReadIEEEBlock
methods.
Getting Started3
The following Visual Basic statements open the connection and send a
command that turns on the oscilloscope's label display.
Dim myMgr As VisaComLib.ResourceManager
Dim myScope As VisaComLib.FormattedIO488
Set myMgr = New VisaComLib.ResourceManager
Set myScope = New VisaComLib.FormattedIO488
' Open the connection to the oscilloscope. Get the VISA Address from the
' Agilent Connection Expert (installed with Agilent IO Libraries Suite).
Set myScope.IO = myMgr.Open("<VISA Address>")
' Send a command.
myScope.WriteString ":DISPlay:LABel ON"
The ":DISPLAY:LABEL ON" in the above example is called a program
message. Program messages are explained in more detail in "Program
Message Syntax" on page 587.
Initializing the Interface and the Oscilloscope
To make sure the bus and all appropriate interfaces are in a known state,
begin every program with an initialization statement. When using the
Agilent VISA COM library, you can use the resource session object's Clear
method to clears the interface buffer:
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide41
3Getting Started
Dim myMgr As VisaComLib.ResourceManager
Dim myScope As VisaComLib.FormattedIO488
Set myMgr = New VisaComLib.ResourceManager
Set myScope = New VisaComLib.FormattedIO488
' Open the connection to the oscilloscope. Get the VISA Address from the
' Agilent Connection Expert (installed with Agilent IO Libraries Suite).
Set myScope.IO = myMgr.Open("<VISA Address>")
' Clear the interface buffer.
myScope.IO.Clear
When you are using GPIB, CLEAR also resets the oscilloscope's parser. The
parser is the program which reads in the instructions which you send it.
After clearing the interface, initialize the instrument to a preset state:
myScope.WriteString "*RST"
NOTE
Information for Initializing the Instrument
The actual commands and syntax for initializing the instrument are discussed in "Common
(*) Commands" on page 91.
Refer to the Agilent IO Libraries Suite documentation for information on initializing the
interface.
Using :AUToscale to Automate Oscilloscope Setup
The :AUToscale command performs a very useful function for unknown
waveforms by setting up the vertical channel, time base, and trigger level
of the instrument.
The syntax for the autoscale command is:
myScope.WriteString ":AUToscale"
Using Other Oscilloscope Setup Commands
A typical oscilloscope setup would set the vertical range and offset voltage,
the horizontal range, delay time, delay reference, trigger mode, trigger
level, and slope. An example of the commands that might be sent to the
oscilloscope are:
42Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Getting Started3
Vertical is set to 16 V full- scale (2 V/div) with center of screen at 1 V and
probe attenuation set to 10. This example sets the time base at 1 ms
full- scale (100 ms/div) with a delay of 100 µs.
Example Oscilloscope Setup Code
This program demonstrates the basic command structure used to program
the oscilloscope.
' Initialize the instrument interface to a known state.
myScope.IO.Clear
' Initialize the instrument to a preset state.
myScope.WriteString "*RST"
' Set the time base mode to normal with the horizontal time at
' 50 ms/div with 0 s of delay referenced at the center of the
' graticule.
myScope.WriteString ":TIMebase:RANGe 5E-4"' Time base to 50 us/div.
myScope.WriteString ":TIMebase:DELay 0"' Delay to zero.
myScope.WriteString ":TIMebase:REFerence CENTer"' Display ref. at
' center.
' Set the vertical range to 1.6 volts full scale with center screen
' at -0.4 volts with 10:1 probe attenuation and DC coupling.
myScope.WriteString ":CHANnel1:PROBe 10"' Probe attenuation
myScope.WriteString ":CHANnel1:RANGe 1.6"' Vertical range
myScope.WriteString ":CHANnel1:OFFSet -.4"' Offset to -0.4.
myScope.WriteString ":CHANnel1:COUPling DC"' Coupling to DC.
' Configure the instrument to trigger at -0.4 volts with normal
' triggering.
myScope.WriteString ":TRIGger:SWEep NORMal"' Normal triggering.
myScope.WriteString ":TRIGger:LEVel -.4"' Trigger level to -0.4.
myScope.WriteString ":TRIGger:SLOPe POSitive" ' Trigger on pos. slope.
' Configure the instrument for normal acquisition.
myScope.WriteString ":ACQuire:TYPE NORMal"' Normal acquisition.
Capturing Data with the :DIGitize Command
The :DIGitize command captures data that meets the specifications set up
by the :ACQuire subsystem. When the digitize process is complete, the
acquisition is stopped. The captured data can then be measured by the
instrument or transferred to the controller for further analysis. The
captured data consists of two parts: the waveform data record, and the
preamble.
' to 10:1.
' 1.6 V full scale.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide43
3Getting Started
NOTE
NOTE
Ensure New Data is Collected
When you change the oscilloscope configuration, the waveform buffers are cleared. Before
doing a measurement, send the :DIGitize command to the oscilloscope to ensure new data
has been collected.
When you send the :DIGitize command to the oscilloscope, the specified
channel signal is digitized with the current :ACQuire parameters. To obtain
waveform data, you must specify the :WAVeform parameters for the
SOURce channel, the FORMat type, and the number of POINts prior to
sending the :WAVeform:DATA? query.
Set :TIMebase:MODE to NORMal when using :DIGitize
:TIMebase:MODE must be set to NORMal to perform a :DIGitize command or to perform any
:WAVeform subsystem query. A "Settings conflict" error message will be returned if these
commands are executed when MODE is set to ROLL, XY, or DELayed. Sending the *RST
(reset) command will also set the time base mode to normal.
The number of data points comprising a waveform varies according to the
number requested in the :ACQuire subsystem. The :ACQuire subsystem
determines the number of data points, type of acquisition, and number of
averages used by the :DIGitize command. This allows you to specify exactly
what the digitized information contains.
The following program example shows a typical setup:
This setup places the instrument into the averaged mode with eight
averages. This means that when the :DIGitize command is received, the
command will execute until the signal has been averaged at least eight
times.
After receiving the :WAVeform:DATA? query, the instrument will start
passing the waveform information.
Digitized waveforms are passed from the instrument to the controller by
sending a numerical representation of each digitized point. The format of
the numerical representation is controlled with the :WAVeform:FORMat
command and may be selected as BYTE, WORD, or ASCii.
44Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Getting Started3
The easiest method of transferring a digitized waveform depends on data
structures, formatting available and I/O capabilities. You must scale the
integers to determine the voltage value of each point. These integers are
passed starting with the left most point on the instrument's display.
For more information, see the waveform subsystem commands and
corresponding program code examples in ":WAVeform Commands" on
page 442.
NOTE
Aborting a Digitize Operation Over the Programming Interface
When using the programming interface, you can abort a digitize operation by sending a
Device Clear over the bus (for example, myScope.IO.Clear).
Reading Query Responses from the Oscilloscope
After receiving a query (command header followed by a question mark),
the instrument interrogates the requested function and places the answer
in its output queue. The answer remains in the output queue until it is
read or another command is issued. When read, the answer is transmitted
across the interface to the designated listener (typically a controller).
The statement for reading a query response message from an instrument's
output queue typically has a format specification for handling the response
message.
When using the VISA COM library in Visual Basic, you use different read
methods (ReadString, ReadNumber, ReadList, or ReadIEEEBlock) for the
various query response formats. For example, to read the result of the
query command :CHANnel1:COUPling? you would execute the statements:
myScope.WriteString ":CHANnel1:COUPling?"
Dim strQueryResult As String
strQueryResult = myScope.ReadString
This reads the current setting for the channel one coupling into the string
variable strQueryResult.
All results for queries (sent in one program message) must be read before
another program message is sent.
Sending another command before reading the result of the query clears
the output buffer and the current response. This also causes an error to
be placed in the error queue.
Executing a read statement before sending a query causes the controller to
wait indefinitely.
The format specification for handling response messages depends on the
programming language.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide45
3Getting Started
Reading Query Results into String Variables
The output of the instrument may be numeric or character data depending
on what is queried. Refer to the specific command descriptions in
"Commands by Subsystem" on page 89 for the formats and types of data
returned from queries.
NOTE
Express String Variables Using Exact Syntax
In Visual Basic, string variables are case sensitive and must be expressed exactly the same
each time they are used.
The following example shows numeric data being returned to a string
variable:
myScope.WriteString ":CHANnel1:RANGe?"
Dim strQueryResult As String
strQueryResult = myScope.ReadString
MsgBox "Range (string):" + strQueryResult
After running this program, the controller displays:
Range (string): +40.0E+00
Reading Query Results into Numeric Variables
The following example shows numeric data being returned to a numeric
variable:
myScope.WriteString ":CHANnel1:RANGe?"
Dim varQueryResult As Variant
strQueryResult = myScope.ReadNumber
MsgBox "Range (variant):" + CStr(varQueryResult)
After running this program, the controller displays:
Range (variant): 40
Reading Definite-Length Block Query Response Data
Definite- length block query response data allows any type of
device-dependent data to be transmitted over the system interface as a
series of 8- bit binary data bytes. This is particularly useful for sending
large quantities of data or 8- bit extended ASCII codes. The syntax is a
pound sign (#) followed by a non-zero digit representing the number of
digits in the decimal integer. After the non-zero digit is the decimal
integer that states the number of 8-bit data bytes being sent. This is
followed by the actual data.
For example, for transmitting 1000 bytes of data, the syntax would be:
46Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Getting Started3
S
E
/TLADQN
AXSDRNEC@S@SDQLHM@SNQ
/TLADQNE#XSDR
NAD5Q@MRLHSSDC
%HFHSR
5G@S'NKKNV
"BST@K%@S@
Figure 2Definite-length block response data
The "8" states the number of digits that follow, and "00001000" states the
number of bytes to be transmitted.
The VISA COM library's ReadIEEEBlock and WriteIEEEBlock methods
understand the definite- length block syntax, so you can simply use
variables that contain the data:
' Read oscilloscope setup using ":SYSTem:SETup?" query.
myScope.WriteString ":SYSTem:SETup?"
Dim varQueryResult As Variant
varQueryResult = myScope.ReadIEEEBlock(BinaryType_UI1)
' Write learn string back to oscilloscope using ":SYSTem:SETup" command:
myScope.WriteIEEEBlock ":SYSTem:SETup ", varQueryResult
Sending Multiple Queries and Reading Results
You can send multiple queries to the instrument within a single command
string, but you must also read them back as a single query result. This can
be accomplished by reading them back into a single string variable,
multiple string variables, or multiple numeric variables.
For example, to read the :TIMebase:RANGe?;DELay? query result into a
single string variable, you could use the commands:
myScope.WriteString ":TIMebase:RANGe?;DELay?"
Dim strQueryResult As String
strQueryResult = myScope.ReadString
MsgBox "Timebase range; delay:" + strQueryResult
When you read the result of multiple queries into a single string variable,
each response is separated by a semicolon. For example, the output of the
previous example would be:
To read the :TIMebase:RANGe?;DELay? query result into multiple string
variables, you could use the ReadList method to read the query results
into a string array variable using the commands:
myScope.WriteString ":TIMebase:RANGe?;DELay?"
Dim strResults() As String
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide47
To read the :TIMebase:RANGe?;DELay? query result into multiple numeric
variables, you could use the ReadList method to read the query results
into a variant array variable using the commands:
myScope.WriteString ":TIMebase:RANGe?;DELay?"
Dim varResults() As Variant
varResults() = myScope.ReadList
MsgBox "Timebase range: " + FormatNumber(varResults(0) * 1000, 4) + _
Status registers track the current status of the instrument. By checking
the instrument status, you can find out whether an operation has been
completed, whether the instrument is receiving triggers, and more.
For more information, see "Status Reporting" on page 553 which explains
how to check the status of the instrument.
48Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Other Ways of Sending Commands
Standard Commands for Programmable Instrumentation (SCPI) can be sent
via a Telnet socket or through the Browser Web Control.
Telnet Sockets
The following information is provided for programmers who wish to
control the oscilloscope with SCPI commands in a Telnet session.
To connect to the oscilloscope via a telnet socket, issue the following
command:
telnet <hostname> 5024
where <hostname> is the hostname of the oscilloscope. This will give you a
command line with prompt.
For a command line without a prompt, use port 5025. For example:
Getting Started3
telnet <hostname> 5025
Sending SCPI Commands Using Browser Web Control
To send SCPI commands using the Browser Web Control feature, establish
a connection to the oscilloscope via LAN as described in the 5000 Series Oscilloscopes User's Guide. When you make the connection to the
oscilloscope via LAN and the instrument's welcome page is displayed,
select the Browser Web Control tab, then select the Remote Programming link.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide49
3Getting Started
50Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Agilent InfiniiVision 5000 Series Oscilloscopes
Programmer's Guide
4
Commands Quick Reference
Command Summary 52
Syntax Elements 85
A
51
4Commands Quick Reference
Command Summary
Table 2Common (*) Commands Summary
CommandQueryOptions and Query Returns
*CLS (see page 95)n/an/a
*ESE <mask> (see
page 96)
n/a*ESR? (see page 98)<status> ::= 0 to 255; an integer
n/a*IDN? (see page 98)AGILENT TECHNOLOGIES,<model>,
n/a*LRN? (see page 101)<learn_string> ::= current
*ESE? (see page 97)<mask> ::= 0 to 255; an integer
in NR1 format:
Bit Weight Name Enables
--- ------ ---- ---------7128PONPower On
664URQUser Request
532CMECommand Error
416EXEExecution Error
38DDEDev. Dependent Error
24QYEQuery Error
12RQLRequest Control
01OPCOperation Complete
in NR1 format
<serial number>,X.XX.XX
<model> ::= the model number of
the instrument
<serial number> ::= the serial
number of the instrument
<X.XX.XX> ::= the software
revision of the instrument
instrument setup as a block of
data in IEEE 488.2 # format
*OPC (see page 102)*OPC? (see page 102)ASCII "1" is placed in the output
queue when all pending device
operations have completed.
52Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Commands Quick Reference4
Table 2Common (*) Commands Summary (continued)
CommandQueryOptions and Query Returns
n/a*OPT? (see page 103)<return_value> ::= 0,0,<license
<range> ::= the full-scale
vertical axis value in NR3
format.
The range for ADD, SUBT, MULT is
8E-6 to 800E+3. The range for the
INTegrate function is 8E-9 to
400E+3.
The range for the DIFFerentiate
function is 80E-3 to 8.0E12
(depends on current sweep speed).
The range for the FFT function is
8 to 800 dBV.
4Commands Quick Reference
Table 9:FUNCtion Commands Summary (continued)
CommandQueryOptions and Query Returns
:FUNCtion:REFerence
<level> (see
page 225)
:FUNCtion:SCALe
<scale
value>[<suffix>] (see
page 226)
:FUNCtion:SOURce1
<source> (see
page 227)
:FUNCtion:SOURce2
<source> (see
page 228)
:FUNCtion:REFerence?
(see page 225)
:FUNCtion:SCALe? (see
page 226)
:FUNCtion:SOURce1?
(see page 227)
:FUNCtion:SOURce2?
(see page 228)
<level> ::= the current reference
level in NR3 format.
The range of legal values is from
400.0 dBV to +400.0 dBV
(depending on current range
value).
<scale value> ::= integer in NR1
format
<suffix> ::= {V | dB}
<source> ::= {CHANnel<n> | GOFT}
<n> ::= {1 | 2 | 3 | 4} for 4ch
models
<n> ::= {1 | 2} for 2ch models
GOFT is only for FFT, INTegrate,
DIFFerentiate, and SQRT
operations.
<mode> ::= {IIC | SPI | CAN | LIN
| FLEXray | UART}
:SBUS:SPI:WIDTh
<word_width> (see
page 327)
:SBUS:UART:BASE
<base> (see page 328)
n/a:SBUS:UART:COUNt:ERRo
:SBUS:UART:COUNt:RESe
t (see page 330)
n/a:SBUS:UART:COUNt:RXFR
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide71
:SBUS:SPI:WIDTh? (see
page 327)
:SBUS:UART:BASE? (see
page 328)
r? (see page 329)
n/an/a
ames? (see page 331)
<word_width> ::= integer 4-16 in
NR1 format
<base> ::= {ASCii | BINary | HEX}
<frame_count> ::= integer in NR1
format
<frame_count> ::= integer in NR1
format
4Commands Quick Reference
Table 1 5 :SBUS Commands Summary (continued)
CommandQueryOptions and Query Returns
n/a:SBUS:UART:COUNt:TXFR
ames? (see page 332)
:SBUS:UART:FRAMing
<value> (see
page 333)
:SBUS:UART:FRAMing?
(see page 333)
<frame_count> ::= integer in NR1
format
<value> ::= {OFF | <decimal> |
<nondecimal>}
<decimal> ::= 8-bit integer from
0-255 (0x00-0xff)
<nondecimal> ::= #Hnn where n ::=
{0,..,9 | A,..,F} for hexadecimal
<nondecimal> ::= #Bnn...n where n
::= {0 | 1} for binary
Table 1 6 :SYSTem Commands Summary
CommandQueryOptions and Query Returns
:SYSTem:DATE <date>
(see page 335)
:SYSTem:DATE? (see
page 335)
<date> ::= <year>,<month>,<day>
<year> ::= 4-digit year in NR1
format
<month> ::= {1,..,12 | JANuary |
FEBruary | MARch | APRil | MAY |
JUNe | JULy | AUGust | SEPtember
| OCTober | NOVember | DECember}
<day> ::= {1,..31}
:TRIGger:GLITch:LEVel
<level> [<source>]
(see page 391)
:TRIGger:GLITch:POLar
ity <polarity> (see
page 392)
:TRIGger:GLITch:QUALi
fier <qualifier> (see
page 393)
:TRIGger:GLITch:RANGe
<greater than
time>[suffix], <less
than time>[suffix]
(see page 394)
:TRIGger:GLITch:LEVel
? (see page 391)
:TRIGger:GLITch:POLar
ity? (see page 392)
:TRIGger:GLITch:QUALi
fier? (see page 393)
:TRIGger:GLITch:RANGe
? (see page 394)
For internal triggers, <level>
::= .75 x full-scale voltage from
center screen in NR3 format.
For external triggers, <level>
::= 2 volts with probe
attenuation at 1:1 in NR3 format.
<source> ::= {CHANnel<n> |
EXTernal}
<n> ::= 1-2 or 1-4 in NR1 format
<polarity> ::= {POSitive |
NEGative}
<qualifier> ::= {GREaterthan |
LESSthan | RANGe}
<greater than time> ::= start
time from 10 ns to 9.99 seconds
in NR3 format
<less than time> ::= stop time
from 15 ns to 10 seconds in NR3
format
[suffix] ::= {s | ms | us | ns |
ps}
:TRIGger:GLITch:SOURc
e <source> (see
page 395)
:TRIGger:GLITch:SOURc
e? (see page 395)
<source> ::= {CHANnel<n> |
EXTernal}
<n> ::= 1-2 or 1-4 in NR1 format
Table 2 3 :TRIGger:IIC Commands Summary
CommandQueryOptions and Query Returns
:TRIGger:IIC:PATTern:
ADDRess <value> (see
page 397)
:TRIGger:IIC:PATTern:
DATA <value> (see
page 398)
:TRIGger:IIC:PATTern:
DATa2 <value> (see
page 399)
:TRIGger:IIC:PATTern:
ADDRess? (see
page 397)
:TRIGger:IIC:PATTern:
DATA? (see page 398)
:TRIGger:IIC:PATTern:
DATa2? (see page 399)
<value> ::= integer or <string>
<string> ::= "0xnn" n ::= {0,..,9
| A,..,F}
<value> ::= integer or <string>
<string> ::= "0xnn" n ::= {0,..,9
| A,..,F}
<value> ::= integer or <string>
<string> ::= "0xnn" n ::= {0,..,9
| A,..,F}
78Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
<count> ::= an integer from 1 to
65536 in NR1 format
n/a:WAVeform:DATA? (see
page 451)
:WAVeform:FORMat
<value> (see
page 453)
:WAVeform:FORMat?
(see page 453)
<binary block length bytes>,
<binary data>
For example, to transmit 1000
bytes of data, the syntax would
be: #800001000<1000 bytes of
data><NL>
8 is the number of digits that
follow
00001000 is the number of bytes
to be transmitted
<1000 bytes of data> is the
actual data
<value> ::= {WORD | BYTE | ASCII}
82Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Commands Quick Reference4
Table 2 7 :WAVeform Commands Summary (continued)
CommandQueryOptions and Query Returns
:WAVeform:POINts
<# points> (see
page 454)
:WAVeform:POINts:MODE
<points_mode> (see
page 456)
n/a:WAVeform:PREamble?
:WAVeform:POINts?
(see page 454)
:WAVeform:POINts:MODE
? (see page 456)
(see page 458)
<# points> ::= {100 | 250 | 500 |
1000 | <points_mode>} if waveform
points mode is NORMal
<# points> ::= {100 | 250 | 500 |
1000 | 2000 ... 8000000 in 1-2-5
sequence | <points_mode>} if
waveform points mode is MAXimum
or RAW
<return_value> ::= x-increment
in the current preamble in NR3
format
<return_value> ::= x-origin
value in the current preamble in
NR3 format
<return_value> ::= 0
(x-reference value in the current
preamble in NR1 format)
<return_value> ::= y-increment
value in the current preamble in
NR3 format
n/a:WAVeform:YORigin?
(see page 475)
n/a:WAVeform:YREFerence?
(see page 476)
84Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
<return_value> ::= y-origin in
the current preamble in NR3
format
<return_value> ::= y-reference
value in the current preamble in
NR1 format
Syntax Elements
• "Number Format" on page 85
• "<NL> (Line Terminator)" on page 85
• "[ ] (Optional Syntax Terms)" on page 85
• "{ } (Braces)" on page 85
• "::= (Defined As)" on page 85
• "< > (Angle Brackets)" on page 86
• "... (Ellipsis)" on page 86
• "n,..,p (Value Ranges)" on page 86
• "d (Digits)" on page 86
• "Quoted ASCII String" on page 86
• "Definite- Length Block Response Data" on page 86
Commands Quick Reference4
Number Format
NR1 specifies integer data.
NR3 specifies exponential data in floating point format (for example,
-1.0E-3).
<NL> (Line Terminator)
<NL> = new line or linefeed (ASCII decimal 10).
The line terminator, or a leading colon, will send the parser to the "root"
of the command tree.
[ ] (Optional Syntax Terms)
Items enclosed in square brackets, [ ], are optional.
{ } (Braces)
When several items are enclosed by braces, { }, only one of these elements
may be selected. Vertical line ( | ) indicates "or". For example, {ON | OFF}
indicates that only ON or OFF may be selected, not both.
::= (Defined As)
::= means "defined as".
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide85
4Commands Quick Reference
For example, <A> ::= <B> indicates that <A> can be replaced by <B> in any
statement containing <A>.
< > (Angle Brackets)
< > Angle brackets enclose words or characters that symbolize a program
code parameter or an interface command.
... (Ellipsis)
... An ellipsis (trailing dots) indicates that the preceding element may be
repeated one or more times.
n,..,p (Value Ranges)
n,..,p ::= all integers between n and p inclusive.
d (Digits)
d ::= A single ASCII numeric character 0 - 9.
Quoted ASCII String
A quoted ASCII string is a string delimited by either double quotes (") or
single quotes ('). Some command parameters require a quoted ASCII
string. For example, when using the Agilent VISA COM library in Visual
Basic, the command:
myScope.WriteString ":CHANNEL1:LABEL 'One'"
has a quoted ASCII string of:
'One'
In order to read quoted ASCII strings from query return values, some
programming languages require special handling or syntax.
Definite-Length Block Response Data
Definite- length block response data allows any type of device-dependent
data to be transmitted over the system interface as a series of 8- bit binary
data bytes. This is particularly useful for sending large quantities of data
or 8- bit extended ASCII codes. This syntax is a pound sign (#) followed by
a non- zero digit representing the number of digits in the decimal integer.
After the non-zero digit is the decimal integer that states the number of
8- bit data bytes being sent. This is followed by the actual data.
For example, for transmitting 1000 bytes of data, the syntax would be
86Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Commands Quick Reference4
#800001000<1000 bytes of data> <NL>
8 is the number of digits that follow
00001000 is the number of bytes to be transmitted
<1000 bytes of data> is the actual data
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide87
4Commands Quick Reference
88Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Agilent InfiniiVision 5000 Series Oscilloscopes
Programmer's Guide
5
Commands by Subsystem
SubsystemDescription
"Common (*) Commands" on page 91Commands defined by IEEE 488.2 standard that
are common to all instruments.
"Root (:) Commands" on page 116Control many of the basic functions of the
oscilloscope and reside at the root level of the
command tree.
":ACQuire Commands" on page 153Set the parameters for acquiring and storing
data.
":CALibrate Commands" on page 167Utility commands for determining the state of
the calibration factor protection switch.
":CHANnel<n> Commands" on page 175Control all oscilloscope functions associated
with individual analog channels or groups of
channels.
":DISPlay Commands" on page 194Control how waveforms, graticule, and text are
displayed and written on the screen.
":EXTernal Trigger Commands" on page 204Control the input characteristics of the external
trigger input.
":FUNCtion Commands" on page 214Control functions in the measurement/storage
module.
":HARDcopy Commands" on page 231Set and query the selection of hardcopy device
and formatting options.
":MARKer Commands" on page 241Set and query the settings of X-axis markers
(X1 and X2 cursors) and the Y-axis markers (Y1
and Y2 cursors).
":MEASure Commands" on page 252Select automatic measurements to be made
and control time markers.
":RECall Commands" on page 297Recall previously saved oscilloscope setups
and traces.
":SAVE Commands" on page 302Save oscilloscope setups and traces, screen
images, and data.
A
89
5Commands by Subsystem
SubsystemDescription
":SBUS Commands" on page 316Control oscilloscope functions associated with
":SYSTem Commands" on page 334Control basic system functions of the
":TIMebase Commands" on page 343Control all horizontal sweep functions.
":TRIGger Commands" on page 354Control the trigger modes and parameters for
":WAVeform Commands" on page 442Provide access to waveform data.
Command TypesThree types of commands are used:
• Common (*) Commands — See "Introduction to Common (*)
Commands" on page 93 for more information.
• Root Level (:) Commands — See "Introduction to Root (:) Commands"
on page 118 for more information.
the serial decode bus.
oscilloscope.
each trigger type.
• Subsystem Commands — Subsystem commands are grouped together
under a common node of the "Command Tree" on page 591, such as the
:TIMebase commands. Only one subsystem may be selected at any given
time. When the instrument is initially turned on, the command parser is
set to the root of the command tree; therefore, no subsystem is
selected.
90Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Commands by Subsystem5
Common (*) Commands
Commands defined by IEEE 488.2 standard that are common to all
instruments. See "Introduction to Common (*) Commands" on page 93.
Table 2 8 Common (*) Commands Summary
CommandQueryOptions and Query Returns
*CLS (see page 95)n/an/a
*ESE <mask> (see
page 96)
n/a*ESR? (see page 98)<status> ::= 0 to 255; an integer
n/a*IDN? (see page 98)AGILENT TECHNOLOGIES,<model>,
n/a*LRN? (see page 101)<learn_string> ::= current
*ESE? (see page 97)<mask> ::= 0 to 255; an integer
in NR1 format:
Bit Weight Name Enables
--- ------ ---- ---------7128PONPower On
664URQUser Request
532CMECommand Error
416EXEExecution Error
38DDEDev. Dependent Error
24QYEQuery Error
12RQLRequest Control
01OPCOperation Complete
in NR1 format
<serial number>,X.XX.XX
<model> ::= the model number of
the instrument
<serial number> ::= the serial
number of the instrument
<X.XX.XX> ::= the software
revision of the instrument
instrument setup as a block of
data in IEEE 488.2 # format
*OPC (see page 102)*OPC? (see page 102)ASCII "1" is placed in the output
queue when all pending device
operations have completed.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide91
5Commands by Subsystem
Table 2 8 Common (*) Commands Summary (continued)
CommandQueryOptions and Query Returns
n/a*OPT? (see page 103)<return_value> ::= 0,0,<license
n/a*TST? (see page 114)<result> ::= 0 or non-zero value;
an integer in NR1 format
*WAI (see page 115)n/an/a
Introduction to
Common (*)
Commands
The common commands are defined by the IEEE 488.2 standard. They are
implemented by all instruments that comply with the IEEE 488.2 standard.
They provide some of the basic instrument functions, such as instrument
identification and reset, reading the instrument setup, and determining
how status is read and cleared.
Common commands can be received and processed by the instrument
whether they are sent over the interface as separate program messages or
within other program messages. If an instrument subsystem has been
selected and a common command is received by the instrument, the
instrument remains in the selected subsystem. For example, if the program
message ":ACQuire:TYPE AVERage; *CLS; COUNt 256" is received by the
instrument, the instrument sets the acquire type, then clears the status
information and sets the average count.
In contrast, if a root level command or some other subsystem command is
within the program message, you must re-enter the original subsystem
after the command. For example, the program message ":ACQuire:TYPE
AVERage; :AUToscale; :ACQuire:COUNt 256" sets the acquire type,
completes the autoscale, then sets the acquire count. In this example,
:ACQuire must be sent again after the :AUToscale command in order to
re- enter the ACQuire subsystem and set the count.
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide93
5Commands by Subsystem
NOTE
Each of the status registers has an enable (mask) register. By setting the bits in the enable
register, you can select the status information you want to use.
94Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
*CLS (Clear Status)
(see page 586)
Commands by Subsystem5
Command Syntax
NOTE
See Also• "Introduction to Common (*) Commands" on page 93
*CLS
The *CLS common command clears the status data structures, the
device-defined error queue, and the Request-for-OPC flag.
If the *CLS command immediately follows a program message terminator, the output queue
and the MAV (message available) bit are cleared.
• "*STB (Read Status Byte)" on page 111
• "*ESE (Standard Event Status Enable)" on page 96
• "*ESR (Standard Event Status Register)" on page 98
• "*SRE (Service Request Enable)" on page 109
• ":SYSTem:ERRor" on page 337
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide95
5Commands by Subsystem
*ESE (Standard Event Status Enable)
(see page 586)
Command Syntax
*ESE <mask_argument>
<mask_argument> ::= integer from 0 to 255
The *ESE common command sets the bits in the Standard Event Status
Enable Register. The Standard Event Status Enable Register contains a
mask value for the bits to be enabled in the Standard Event Status
Register. A "1" in the Standard Event Status Enable Register enables the
corresponding bit in the Standard Event Status Register. A zero disables
the bit.
321854(;(''(4<(54/23&&0(
(65"
(6(
(6("
6WDQGDUG(YHQW
6WDWXV5HJLVWHU
6WDQGDUG(YHQW
6WDWXV(QDEOH
0DVN5HJLVWHU
25
7R(6%ELWLQ
6WDWXV%\WH
5HJLVWHU
Table 2 9 Standard Event Status Enable (ESE)
BitNameDescriptionWhen Set (1 = High = True), Enables:
7PONPower OnEvent when an OFF to ON transition occurs.
6URQUser RequestEvent when a front-panel key is pressed.
5CMECommand ErrorEvent when a command error is detected.
4EXEExecution ErrorEvent when an execution error is detected.
3DDEDevice Dependent ErrorEvent when a device-dependent error is detected.
2QYEQuery ErrorEvent when a query error is detected.
96Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Table 2 9 Standard Event Status Enable (ESE) (continued)
BitNameDescriptionWhen Set (1 = High = True), Enables:
1RQLRequest ControlEvent when the device is requesting control. (Not
0OPCOperation CompleteEvent when an operation is complete.
Query Syntax*ESE?
The *ESE? query returns the current contents of the Standard Event
Status Enable Register.
Commands by Subsystem5
used.)
Return Format
See Also• "Introduction to Common (*) Commands" on page 93
<mask_argument><NL>
<mask_argument> ::= 0,..,255; an integer in NR1 format.
• "*ESR (Standard Event Status Register)" on page 98
• "*OPC (Operation Complete)" on page 102
• "*CLS (Clear Status)" on page 95
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide97
5Commands by Subsystem
*ESR (Standard Event Status Register)
(see page 586)
Query Syntax
*ESR?
The *ESR? query returns the contents of the Standard Event Status
Register. When you read the Event Status Register, the value returned is
the total bit weights of all of the bits that are high at the time you read
the byte. Reading the register clears the Event Status Register.
The following table shows bit weight, name, and condition for each bit.
321854(;(''(4<(54/23&&0(
25
(65"
(6(
(6("
6WDQGDUG(YHQW
6WDWXV5HJLVWHU
6WDQGDUG(YHQW
6WDWXV(QDEOH
0DVN5HJLVWHU
7R(6%ELWLQ
6WDWXV%\WH
5HJLVWHU
Table 3 0 Standard Event Status Register (ESR)
BitNameDescriptionWhen Set (1 = High = True), Indicates:
7PONPower OnAn OFF to ON transition has occurred.
6URQUser RequestA front-panel key has been pressed.
5CMECommand ErrorA command error has been detected.
4EXEExecution ErrorAn execution error has been detected.
3DDEDevice Dependent ErrorA device-dependent error has been detected.
2QYEQuery ErrorA query error has been detected.
98Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide
Table 3 0 Standard Event Status Register (ESR) (continued)
BitNameDescriptionWhen Set (1 = High = True), Indicates:
1RQLRequest ControlThe device is requesting control. (Not used.)
0OPCOperation CompleteOperation is complete.
Return Format<status><NL>
<status> ::= 0,..,255; an integer in NR1 format.
Commands by Subsystem5
NOTE
See Also• "Introduction to Common (*) Commands" on page 93
Reading the Standard Event Status Register clears it. High or 1 indicates the bit is true.
• "*ESE (Standard Event Status Enable)" on page 96
• "*OPC (Operation Complete)" on page 102
• "*CLS (Clear Status)" on page 95
• ":SYSTem:ERRor" on page 337
Agilent InfiniiVision 5000 Series Oscilloscopes Programmer's Guide99
5Commands by Subsystem
*IDN (Identification Number)
(see page 586)
Query Syntax
Return Format
See Also• "Introduction to Common (*) Commands" on page 93
*IDN?
The *IDN? query identifies the instrument type and software version.