Agilent 54600-Series Oscilloscopes: Programmer's Guide

Download as pdf or txt
Download as pdf or txt
You are on page 1of 98

Programmer’s Guide

Publication number 54600-97032


April 2001

This guide contains programming information for the following


Agilent oscilloscope models:
54600
54601
54602
54603
54610
54615
54616

For Safety information, Warranties, and Regulatory


information, see the pages behind the Index.

© Copyright Agilent Technologies 1995-1996, 2001


All Rights Reserved

Agilent 54600-Series
Oscilloscopes
Programming the Oscilloscope

When you attach an interface module to the rear of the Agilent 54600-
Series Oscilloscopes, the oscilloscope becomes programmable. That is,
you can hook a controller (such as a PC or workstation) to the
oscilloscope, and write programs on that controller to automate
oscilloscope setup and data capture. Both GPIB (also known as
IEEE-488) and RS-232-C interfaces are available.
The following figure shows the basic structure of every program you
will write for the oscilloscope.

Initialize
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 (either GPIB or RS-232) is properly setup and ready
for data transfer.
· Oscilloscope initialization sets the channel, trigger, timebase, and
acquisition subsystems for the desired measurement.

ii
Capture
Once you initialize the oscilloscope, you can begin capturing data for
measurement. 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 is most likely invalid.
To collect data, you use the DIGITIZE command. This command
clears the waveform buffers and starts the acquisition process.
Acquisition continues until the criteria, such as number of averages,
completion criteria, and number of points is satisfied. Once the
criteria is satisfied, the acquisition process is stopped. The acquired
data is displayed by the oscilloscope, and the captured data can be
measured, stored in 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 start the oscilloscope running, then use a wait loop in
your program to ensure that the oscilloscope has completed at least
one acquisition before you make a measurement. This is not
recommended, 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 a constantly changing data set.

Analyze
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 IEEE standard parametric
measurements (such as Vpp, frequency, pulse width) or the
positioning and reading of voltage and time markers.
Using the WAVEFORM commands, you can transfer the data to your
controller for special analysis, if desired.

iii
In This Book

The Agilent 54600-Series Oscilloscopes Programmer’s Guide is your


introduction to programming the Agilent 54600-Series Oscilloscopes using an
instrument controller. This book, with the online Agilent 54600-Series
Oscilloscopes Programmer’s Reference, provides a comprehensive
description of the oscilloscope’s programmatic interface. The Programmer’s
Reference is supplied as a Microsoft Windows Help file on a 3.5" diskette.
To program the Agilent 54600-Series Oscilloscope, you need an interface
module, such as the Agilent 54650A or 54651A. You also need an instrument
controller that supports either the IEEE-488 or RS-232-C interface
standards, and a programming language capable of communicating with these
interfaces. You can also use the Agilent 54655A/56A Test Automation Module
and the Agilent 54658A/59B Measurement/Storage Module.
Chapter 1 gives a general overview of oscilloscope programming.
Chapter 2 shows a simple program, explains its operation, and
discusses considerations for data types.
Chapter 3 discusses the general considerations for programming the
instrument over an GPIB interface.
Chapter 4 discusses the general considerations for programming the
instrument over an RS-232-C interface.
Chapter 5 describes conventions used in representing syntax of
commands throughout this book and in the online Agilent 54600-Series
Oscilloscopes Programmer’s Reference, and gives an overview of the
command set.
Chapter 6 discusses the oscilloscope status registers and how to use
them in your programs.
Chapter 7 tells how to install the Agilent 54600-Series Oscilloscopes
Programmer’s Reference online help file in Microsoft Windows, and
explains help file navigation.
Chapter 8 lists all the commands and queries available for
programming the oscilloscope.

iv
For information on oscilloscope 1 Introduction to Programming
operation, see the Agilent 54600-Series
Oscilloscopes User and Service Guide.
For information on interface 2 Programming Getting Started
configuration, see the documentation for
the oscilloscope and the interface card
used in your controller (for example, the 3 Programming over GPIB
82341C interface for IBM PC-compatible
computers).
4 Programming over RS-232-C

Programming and
5 Documentation Conventions

6 Status Reporting

Installing and Using the


7 Programmer’s Reference

8 Programmer’s Quick Reference

Index

v
vi
Contents

1 Introduction to Programming
Talking to the Instrument 1–3
Program Message Syntax 1–4
Combining Commands from the Same Subsystem 1–7
Duplicate Mnemonics 1–7
Query Command 1–8
Program Header Options 1–9
Program Data Syntax Rules 1–10
Program Message Terminator 1–12
Selecting Multiple Subsystems 1–12

2 Programming Getting Started


Initialization 2–3
Autoscale 2–4
Setting Up the Instrument 2–4
Example Program 2–5
Using the DIGitize Command 2–6
Receiving Information from the Instrument 2–8
String Variables 2–9
Numeric Variables 2–10
Definite-Length Block Response Data 2–11
Multiple Queries 2–12
Instrument Status 2–12

3 Programming over GPIB


Interface Capabilities 3–3
Command and data concepts 3–3
Addressing 3–4
Communicating over the bus 3–5
Lockout 3–6
Bus Commands 3–6

4 Programming over RS-232-C


Interface Operation 4–3
Cables 4–3

Contents–1
Contents

Minimum three-wire interface with software protocol 4–4


Extended interface with hardware handshake 4–5
Configuring the Interface 4–7
Interface Capabilities 4–8
Communicating over the RS-232-C bus 4–9
Lockout Command 4–10

5 Programming and Documentation Conventions


Command Set Organization 5–3
The Command Tree 5–6
Truncation Rules 5–10
Infinity Representation 5–11
Sequential and Overlapped Commands 5–11
Response Generation 5–11
Notation Conventions and Definitions 5–12
Program Examples 5–13

6 Status Reporting
Serial Poll 6–6

7 Installing and Using the Programmer’s Reference


To install the help file under Microsoft Windows 7–3
To get updated help and program files via the Internet 7–4
To start the help file 7–5
To navigate through the help file 7–6

8 Programmer’s Quick Reference


Conventions 8–3
Suffix Multipliers 8–3
Commands and Queries 8–4

Index

Contents–2
1

Introduction to Programming
Introduction to Programming

Chapters 1 and 2 introduce the basics for remote programming of an


oscilloscope. The programming instructions in this manual conform to
the IEEE 488.2 Standard Digital Interface for Programmable
Instrumentation. The programming instructions provide the means of
remote control.
To program the Agilent 54600-series oscilloscope you must add either
an GPIB (for example, Agilent 54650A) or RS-232-C (for example,
Agilent 54651A) interface to the rear panel.
You can perform the following basic operations with a controller and
an oscilloscope:
· Set up the instrument.
· Make measurements.
· Get data (waveform, measurements, configuration) from the
oscilloscope.
· Send information (pixel image, configurations) to the oscilloscope.
Other tasks are accomplished by combining these basic functions.

Languages for Program Examples

The programming examples for individual commands in this manual are written
in Agilent BASIC, C, or SICL C.

1–2
Introduction to Programming
Talking to the Instrument

Talking to the Instrument


Computers acting as controllers communicate with the instrument by
sending and receiving messages over a remote interface. Instructions for
programming normally appear as ASCII character strings embedded inside
the output statements of a “host” language available on your controller. The
input statements of the host language are used to read in responses from the
oscilloscope.
For example, Agilent BASIC uses the OUTPUT statement for sending
commands and queries. After a query is sent, the response is usually read in
using the ENTER statement.
Messages are placed on the bus using an output command and passing the
device address, program message, and terminator. Passing the device address
ensures that the program message is sent to the correct interface and
instrument.
The following Agilent BASIC statement sends a command which sets the
bandwidth limit of channel 1 on:
OUTPUT < device address > ;":CHANNEL1:BWLIMIT ON"<terminator>
The < device address > represents the address of the device being
programmed. Each of the other parts of the above statement are explained in
the following pages.

1–3
Introduction to Programming
Program Message Syntax

Program Message Syntax


To program the instrument remotely, you must understand the command
format and structure expected by the instrument. The IEEE 488.2 syntax
rules govern how individual elements such as headers, separators, program
data, and terminators may be grouped together to form complete
instructions. Syntax definitions are also given to show how query responses
are formatted. The figure below shows the main syntactical parts of a typical
program statement.
Figure 1–1

Program Message Syntax

Output Command
The output command is entirely dependent on the programming language.
Throughout this manual, Agilent BASIC is used in most examples of
individual commands. If you are using other languages, you will need to find
the equivalents of Agilent BASIC commands like OUTPUT, ENTER, and
CLEAR in order to convert the examples. The instructions listed in this
manual are always shown between quotation marks in the example programs.

Device Address
The location where the device address must be specified is also dependent
on the programming language you are using. In some languages, this may be
specified outside the output command. In Agilent BASIC, this is always
specified after the keyword OUTPUT. The examples in this manual assume
the oscilloscope is at device address 707. When writing programs, the address
varies according to how the bus is configured.

1–4
Introduction to Programming
Program Message Syntax

Instructions
Instructions (both commands and queries) normally appear as a string
embedded in a statement of your host language, such as BASIC, Pascal, or C.
The only time a parameter is not meant to be expressed as a string is when
the instruction’s syntax definition specifies <block data>, such as learnstring.
There are only a few instructions which use block data.
Instructions are composed of two main parts:
· The header, which specifies the command or query to be sent.
· The program data, which provide additional information needed to clarify
the meaning of the instruction.

Instruction Header
The instruction header is one or more mnemonics separated by colons (:)
that represent the operation to be performed by the instrument. The
command tree in chapter 5 illustrates how all the mnemonics can be joined
together to form a complete header (see chapter 5, “Programming and
Documentation Conventions”).
The example in figure 1 is a command. Queries are indicated by adding a
question mark (?) to the end of the header. Many instructions can be used as
either commands or queries, depending on whether or not you have included
the question mark. The command and query forms of an instruction usually
have different program data. Many queries do not use any program data.

White Space (Separator)


White space is used to separate the instruction header from the program
data. If the instruction does not require any program data parameters, you do
not need to include any white space. In this manual, white space is defined as
one or more spaces. ASCII defines a space to be character 32 (in decimal).

Program Data
Program data are used to clarify the meaning of the command or query. They
provide necessary information, such as whether a function should be on or
off, or which waveform is to be displayed. Each instruction’s syntax definition
shows the program data, as well as the values they accept. The section
“Program Data Syntax Rules” in this chapter has all of the general rules about
acceptable values.
When there is more than one data parameter, they are separated by
commas (,). Spaces can be added around the commas to improve readability.

1–5
Introduction to Programming
Program Message Syntax

Header Types
There are three types of headers:
· Simple Command headers.
· Compound Command headers.
· Common Command headers.
Simple Command Header Simple command headers contain a single
mnemonic. AUTOSCALE and DIGITIZE are examples of simple
command headers typically used in this instrument. The syntax is:
<program mnemonic><terminator>
Simple command headers must occur at the beginning of a program message;
if not, they must be preceded by a colon.
When program data must be included with the simple command header (for
example, :DIGITIZE CHAN1), white space is added to separate the data from
the header. The syntax is:
<program mnemonic><separator><program data><terminator>

Compound Command Header Compound command headers are a


combination of two program mnemonics. The first mnemonic selects the
subsystem, and the second mnemonic selects the function within that
subsystem. The mnemonics within the compound message are separated
by colons. For example:
To execute a single function within a subsystem:
:<subsystem>:<function><separator><program data><terminator>
(For example :CHANNEL1:BWLIMIT ON)
Common Command Header Common command headers control IEEE
488.2 functions within the instrument (such as clear status). Their
syntax is:
*<command header><terminator>
No space or separator is allowed between the asterisk (*) and the command
header. *CLS is an example of a common command header.

1–6
Introduction to Programming
Combining Commands from the Same Subsystem

Combining Commands from the Same Subsystem


To execute more than one function within the same subsystem a semi-colon
(;) is used to separate the functions:
:<subsystem>:<function><separator><data>;
<function><separator><data><terminator>
(For example :CHANNEL1:COUPLING DC;BWLIMIT ON)

Duplicate Mnemonics
Identical function mnemonics can be used for more than one subsystem. For
example, the function mnemonic RANGE may be used to change the vertical
range or to change the horizontal range:
:CHANNEL1:RANGE .4
sets the vertical range of channel 1 to 0.4 volts full scale.
:TIMEBASE:RANGE 1
sets the horizontal time base to 1 second full scale.
CHANNEL1 and TIMEBASE are subsystem selectors and determine which
range is being modified.

1–7
Introduction to Programming
Query Command

Query Command
Command headers immediately followed by a question mark (?) are queries.
After receiving a query, 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 bus to the designated listener (typically a controller).
For example, the query :TIMEBASE:RANGE? places the current time base
setting in the output queue. In Agilent BASIC, the controller input statement:
ENTER < device address > ;Range
passes the value across the bus to the controller and places it in the variable
Range.
Query commands are used to find out how the instrument is currently
configured. They are also used to get results of measurements made by the
instrument. For example, the command :MEASURE:RISETIME? instructs the
instrument to measure the rise time of your waveform and places the result
in the output queue.
The output queue must be read before the next program message is sent. For
example, when you send the query :MEASURE:RISETIME? you must follow
that query with an input statement. In Agilent BASIC, this is usually done
with an ENTER statement immediately followed by a variable name. This
statement reads the result of the query and places the result in a specified
variable.

Read the Query Result First

Sending another command or query before reading the result of a query causes
the output buffer to be cleared and the current response to be lost. This also
generates a query interrupted error in the error queue.

1–8
Introduction to Programming
Program Header Options

Program Header Options


Program headers can be sent using any combination of uppercase or
lowercase ASCII characters. Instrument responses, however, are always
returned in uppercase.
Program command and query headers may be sent in either long form
(complete spelling), short form (abbreviated spelling), or any combination of
long form and short form.
TIMEBASE:DELAY 1US - long form
TIM:DEL 1US - short form
Programs written in long form are easily read and are almost
self-documenting. The short form syntax conserves the amount of controller
memory needed for program storage and reduces the amount of I/O activity.

Command Syntax Programming Rules

The rules for the short form syntax are shown in chapter 5, “Programming and
Documentation Conventions.”

1–9
Introduction to Programming
Program Data Syntax Rules

Program Data Syntax Rules


Program data is used to convey a variety of types of parameter information
related to the command header. At least one space must separate the
command header or query header from the program data.
<program mnemonic><separator><data><terminator>
When a program mnemonic or query has multiple program data a comma
separates sequential program data.
<program mnemonic><separator><data>,<data><terminator>
For example, :MEASURE:TVOLT 1.0V,2 has two program data: 1.0V and 2.
There are two main types of program data which are used in commands:
character and numeric program data.

Character Program Data


Character program data is used to convey parameter information as alpha or
alphanumeric strings. For example, the :TIMEBASE:MODE command can be
set to normal, delayed, XY, or ROLL. The character program data in this case
may be NORMAL, DELAYED, XY, or ROLL. The command
:TIMEBASE:MODE DELAYED sets the time base mode to delayed.
The available mnemonics for character program data are always included
with the instruction’s syntax definition. When sending commands, either the
long form or short form (if one exists) may be used. Upper-case and
lower-case letters may be mixed freely. When receiving query responses,
upper-case letters are used exclusively.

Numeric Program Data


Some command headers require program data to be expressed numerically.
For example, :TIMEBASE:RANGE requires the desired full scale range to be
expressed numerically.
For numeric program data, you have the option of using exponential notation
or using suffix multipliers to indicate the numeric value. The following
numbers are all equal:
28 = 0.28E2 = 280e-1 = 28000m = 0.028K = 28e-3K.
When a syntax definition specifies that a number is an integer, that means
that the number should be whole. Any fractional part would be ignored,
truncating the number. Numeric data parameters which accept fractional
values are called real numbers.

1–10
Introduction to Programming
Program Data Syntax Rules

All numbers are expected to be strings of ASCII characters. Thus, when


sending the number 9, you would send a byte representing the ASCII code for
the character “9” (which is 57). A three-digit number like 102 would take up
three bytes (ASCII codes 49, 48, and 50). This is taken care of automatically
when you include the entire instruction in a string.

Embedded Strings
Embedded strings contain groups of alphanumeric characters which are
treated as a unit of data by the oscilloscope. For example, the line of text
written to the advisory line of the instrument with the :SYSTEM:DSP
command:
:SYSTEM:DSP"This is a message."
Embedded strings may be delimited with either single (’) or double (")
quotes. These strings are case-sensitive and spaces act as legal characters
just like any other character.

1–11
Introduction to Programming
Program Message Terminator

Program Message Terminator


The program instructions within a data message are executed after the
program message terminator is received. The terminator may be either an NL
(New Line) character, an EOI (End-Or-Identify) asserted in the GPIB
interface, or a combination of the two. Asserting the EOI sets the EOI control
line low on the last byte of the data message. The NL character is an ASCII
linefeed (decimal 10).

New Line Terminator Functions

The NL (New Line) terminator has the same function as an EOS (End Of String)
and EOT (End Of Text) terminator.

Selecting Multiple Subsystems


You can send multiple program commands and program queries for different
subsystems on the same line by separating each command with a semicolon.
The colon following the semicolon enables you to enter a new subsystem. For
example:
<program mnemonic><data>;:<program mnemonic><data><terminator>

:CHANNEL1:RANGE 0.4;:TIMEBASE:RANGE 1

Combining Compound and Simple Commands

Multiple commands may be any combination of compound and simple


commands.

1–12
2

Programming Getting Started


Programming Getting Started

This chapter explains how to set up the instrument, how to retrieve


setup information and measurement results, how to digitize a
waveform, and how to pass data to the controller.

Languages for Programming Examples

The programming examples in this guide are written in Agilent BASIC, C, or


SICL C.

2–2
Programming Getting Started
Initialization

Initialization
To make sure the bus and all appropriate interfaces are in a known state,
begin every program with an initialization statement. Agilent BASIC provides
a CLEAR command which clears the interface buffer:
CLEAR 707 ! initializes the interface of the instrument
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:
OUTPUT 707;"*RST" ! initializes the instrument to a preset
state.

Information for Initializing the Instrument

The actual commands and syntax for initializing the instrument are discussed in
the common commands section of the online Agilent 54600-Series
Oscilloscopes Programmer’s Reference.

Refer to your controller manual and programming language reference manual


for information on initializing the interface.

2–3
Programming Getting Started
Autoscale

Autoscale
The AUTOSCALE feature performs a very useful function on unknown
waveforms by setting up the vertical channel, time base, and trigger level of
the instrument.
The syntax for the autoscale function is:
:AUTOSCALE<terminator>

Setting Up the Instrument


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. A typical example of the commands sent to the oscilloscope are:
:CHANNEL1:PROBE X10;RANGE 16;OFFSET 1.00<terminator>
:TIMEBASE:MODE NORMAL;RANGE 1E-3;DELAY 100E-6<terminator>
This example sets the time base at 1 ms full-scale (100ms/div) with delay of
100 ms. Vertical is set to 16V full-scale (2 V/div) with center of screen at 1V
and probe attenuation set to 10.

2–4
Programming Getting Started
Example Program

Example Program
This program demonstrates the basic command structure used to program
the oscilloscope.

10 CLEAR 707 ! Initialize instrument interface


20 OUTPUT 707;"*RST" ! Initialize inst to preset state
30 OUTPUT 707;":TIMEBASE:RANGE 5E-4" ! Time base to 50 us/div
40 OUTPUT 707;":TIMEBASE:DELAY 0" ! Delay to zero
50 OUTPUT 707;":TIMEBASE:REFERENCE CENTER" ! Display reference at center
60 OUTPUT 707;":CHANNEL1:PROBE X10" ! Probe attenuation to 10:1
70 OUTPUT 707;":CHANNEL1:RANGE 1.6" ! Vertical range to 1.6 V full scale
80 OUTPUT 707;":CHANNEL1:OFFSET -.4" ! Offset to -0.4
90 OUTPUT 707;":CHANNEL1:COUPLING DC" ! Coupling to DC
100 OUTPUT 707;":TRIGGER:MODE NORMAL" ! Normal triggering
110 OUTPUT 707;":TRIGGER:LEVEL -.4" ! Trigger level to -0.4
120 OUTPUT 707;":TRIGGER:SLOPE POSITIVE" ! Trigger on positive slope
130 OUTPUT 707;":ACQUIRE:TYPE NORMAL" ! Normal acquisition
140 OUTPUT 707;":DISPLAY:GRID OFF" ! Grid off
150 END

· Line 10 initializes the instrument interface to a known state.


· Line 20 initializes the instrument to a preset state.
· Lines 30 through 50 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.
· Lines 60 through 90 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.
· Lines 100 through 120 configure the instrument to trigger at -0.4 volts
with normal triggering.
· Line 130 configures the instrument for normal acquisition.
· Line 140 turns the grid off.

2–5
Programming Getting Started
Using the DIGitize Command

Using the DIGitize Command


The DIGitize command is a macro that captures data satisfying 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.

Ensure New Data is Collected

After changing the oscilloscope configuration, the waveform buffers are


cleared. Before doing a measurement, the DIGitize command should be sent 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
waveform data 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 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.

2–6
Programming Getting Started
Using the DIGitize Command

The following program example shows a typical setup:


OUTPUT 707;":ACQUIRE:TYPE AVERAGE"<terminator>
OUTPUT 707;":ACQUIRE:COMPLETE 100"<terminator>
OUTPUT 707;":WAVEFORM:SOURCE CHANNEL1"<terminator>
OUTPUT 707;":WAVEFORM:FORMAT BYTE"<terminator>
OUTPUT 707;":ACQUIRE:COUNT 8"<terminator>
OUTPUT 707;":WAVEFORM:POINTS 500"<terminator>
OUTPUT 707;":DIGITIZE CHANNEL1"<terminator>
OUTPUT 707;":WAVEFORM:DATA?"<terminator>

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 when addressed to talk.
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.
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 leftmost point on the instrument’s display. For more
information, see the waveform subsystem commands and corresponding
program code examples in the online Agilent 54600-Series Oscilloscopes
Programmer’s Reference.

Aborting a Digitize Operation Over GPIB

When using GPIB, a digitize operation may be aborted by sending a Device


Clear over the bus (CLEAR 707).

2–7
Programming Getting Started
Receiving Information from the Instrument

Receiving Information from the Instrument


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 input
statement for receiving a response message from an instrument’s output
queue typically has two parameters; the device address, and a format
specification for handling the response message. For example, to read the
result of the query command :CHANNEL1:COUPLING? you would execute
the Agilent BASIC statement:
ENTER <device address> ;Setting$
where <device address> represents the address of your device. This would
enter the current setting for the channel one coupling in the string variable
Setting$.
All results for queries sent in a program message must be read before another
program message is sent. For example, when you send the query
:MEASURE:RISETIME?, you must follow that query with an input statement.
In Agilent BASIC, this is usually done with an ENTER statement.
Sending another command before reading the result of the query causes the
output buffer to be cleared and the current response to be lost. This also
causes an error to be placed in the error queue.
Executing an input statement before sending a query causes the controller to
wait indefinitely.
The format specification for handling response messages is dependent on
both the controller and the programming language.

2–8
Programming Getting Started
String Variables

String Variables
The output of the instrument may be numeric or character data depending
on what is queried. Refer to the specific commands for the formats and types
of data returned from queries.

Express String Variables Using Exact Syntax

In Agilent BASIC, string variables are case sensitive and must be expressed
exactly the same each time they are used.

Address Varies According to Configuration

For the example programs in the help file, assume that the device being
programmed is at device address 707. The actual address varies according to
how you have configured the bus for your own application.

The following example shows the data being returned to a string variable:
10 DIM Rang$[30]
20 OUTPUT 707;":CHANNEL1:RANGE?"
30 ENTER 707;Rang$
40 PRINT Rang$
50 END
After running this program, the controller displays:
+8.00000E-01

2–9
Programming Getting Started
Numeric Variables

Numeric Variables
The following example shows the data being returned to a numeric variable:
10 OUTPUT 707;":CHANNEL1:RANGE?"
20 ENTER 707;Rang
30 PRINT Rang
40 END
After running this program, the controller displays:
.8

2–10
Programming Getting Started
Definite-Length Block Response Data

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. 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 4000 bytes of data, the syntax would be:

The “8” states the number of digits that follow, and “00004000” states the
number of bytes to be transmitted.

2–11
Programming Getting Started
Multiple Queries

Multiple Queries
You can send multiple queries to the instrument within a single program
message, but you must also read them back within a single program message.
This can be accomplished by either reading them back into a string variable
or into multiple numeric variables. For example, you could read the result of
the query :TIMEBASE:RANGE?;DELAY? into the string variable Results$
with the command:
ENTER 707;Results$
When you read the result of multiple queries into string variables, each
response is separated by a semicolon. For example, the response of the query
:TIMEBASE:RANGE?;DELAY? would be:
<range_value>; <delay_value>
Use the following program message to read the query
:TIMEBASE:RANGE?;DELAY? into multiple numeric variables:
ENTER 707;Result1,Result2

Instrument Status
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. Chapter
6, “Status Reporting” explains how to check the status of the instrument.

2–12
3

Programming over GPIB


Programming over GPIB

This section describes the GPIB interface functions and some general
concepts. In general, these functions are defined by IEEE 488.1. They
deal with general interface management issues, as well as messages
which can be sent over the interface as interface commands.
For more information on connecting the controller to the oscilloscope,
see the documentation for the GPIB interface card you are using.

3–2
Programming over GPIB
Interface Capabilities

Interface Capabilities
The interface capabilities of the oscilloscope, as defined by IEEE 488.1, are
SH1, AH1, T5, L4, SR1, RL1, PP0, DC1, DT1, C0, and E2.

Command and data concepts


The interface has two modes of operation:
· command mode
· data mode
The bus is in the command mode when the ATN line is true. The command
mode is used to send talk and listen addresses and various bus commands,
such as a group execute trigger (GET).
The bus is in the data mode when the ATN line is false. The data mode is
used to convey device-dependent messages across the bus. The
device-dependent messages include all of the instrument commands and
responses.

3–3
Programming over GPIB
Addressing

Addressing
Set the instrument address by using the front panel controls on the
oscilloscope after the GPIB interface has been installed on the rear panel of
the oscilloscope.
1 Press Print/Utility , then press the I/O Menu softkey.
2 Press the Inst Addr softkey to select the instrument address. Increment
the address by successively pressing the Inst Addr softkey. The address
can also be incremented or decremented by turning the knob closest to
the Cursors key.

· Each device on the GPIB resides at a particular address, ranging from 0 to


30.
· The active controller specifies which devices talk and which listen.
· An instrument may be talk addressed, listen addressed, or unaddressed by
the controller.
If the controller addresses the instrument to talk, the instrument remains
configured to talk until it receives an interface clear message (IFC), another
instrument’s talk address (OTA), its own listen address (MLA), or a universal
untalk command (UNT).
If the controller addresses the instrument to listen, the instrument remains
configured to listen until it receives an interface clear message (IFC), its own
talk address (MTA), or a universal unlisten command (UNL).

3–4
Programming over GPIB
Communicating over the bus

Communicating over the bus


Since GPIB can address multiple devices through the same interface card,
the device address passed with the program message must include not only
the correct interface select code, but also the correct instrument address.

Interface Select Code (Selects Interface)


Each interface card has a unique interface select code. This code is used by
the controller to direct commands and communications to the proper
interface. The default is typically “7” for GPIB controllers.

Instrument Address (Selects Instrument)


Each instrument on an GPIB must have a unique instrument address
between decimal 0 and 30. The device address passed with the program
message must include not only the correct instrument address, but also the
correct interface select code.
DEVICE ADDRESS = (Interface Select Code * 100) + (Instrument Address)
For example, if the instrument address for the oscilloscope is 4 and the
interface select code is 7, when the program message is passed, the routine
performs its function on the instrument at device address 704.
For the oscilloscope, the instrument address is typically set to

Oscilloscope Device Address

The examples in this manual and in the online Agilent 54600-Series


Oscilloscopes Programmer’s Reference assume the oscilloscope is at device
address 707.

See the documentation for your GPIB interface card for more information on
select codes and addresses.

3–5
Programming over GPIB
Lockout

Lockout
You can use the SYSTem:LOCK ON command to disable front-panel control
while a program is running. By default, the instrument accepts and executes
bus commands, and the front panel is entirely active.

Restore Front-Panel Control

Cycling power also restores front panel control.

With GPIB, the instrument is placed in the lockout mode by sending the local
lockout command (LLO). The instrument can be returned to local by
sending the go-to-local command (GTL) to the instrument.

Bus Commands
The following commands are IEEE 488.1 bus commands (ATN true). IEEE
488.2 defines many of the actions which are taken when these commands are
received by the instrument.

Device Clear
The device clear (DCL) or selected device clear (SDC) commands clear the
input and output buffers, reset the parser, and clear any pending commands.
If either of these commands is sent during a digitize operation, the digitize
operation is aborted.

Interface Clear (IFC)


The interface clear (IFC) command halts all bus activity. This includes
unaddressing all listeners and the talker, disabling serial poll on all devices,
and returning control to the system controller.

3–6
4

Programming over RS-232-C


Programming over RS-232-C

This section describes the interface functions and some general


concepts of the RS-232-C. The RS-232-C interface on this instrument
is Hewlett-Packard’s implementation of EIA Recommended Standard
RS-232-C, “Interface Between Data Terminal Equipment and Data
Communications Equipment Employing Serial Binary Data
Interchange.” With this interface, data is sent one bit at a time and
characters are not synchronized with preceding or subsequent data
characters. Each character is sent as a complete entity without
relationship to other events.

IEEE 488.2 Operates with IEEE 488.1 or RS-232-C

IEEE 488.2 is designed to work with IEEE 488.1 as the physical interface. When
RS-232-C is used as the physical interface, as much of IEEE 488.2 is retained as
the hardware differences will allow. No IEEE 488.1 messages such as DCL, GET,
and END are available.

4–2
Programming over RS-232-C
Interface Operation

Interface Operation
The oscilloscope can be programmed with a controller over RS-232-C using
either a minimum three-wire or extended hardwire interface. The operation
and exact connections for these interfaces are described in more detail in the
following sections. When you are programming the oscilloscope over
RS-232-C with a controller, you are normally operating directly between two
DTE (Data Terminal Equipment) devices as compared to operating between
a DTE device and a DCE (Data Communications Equipment) device.
When operating directly between two RS-232-C devices, certain
considerations must be taken into account. For three-wire operation, an
XON/XOFF software handshake must be used to handle handshaking
between the devices. For extended hardwire operation, handshaking may be
handled either with XON/XOFF or by manipulating the CTS and RTS lines of
the oscilloscope. For both three-wire and extended hardwire operation, the
DCD and DSR inputs to the oscilloscope must remain high for proper
operation.
With extended hardwire operation, a high on the CTS input allows the
oscilloscope to send data and a low on this line disables the oscilloscope data
transmission. Likewise, a high on the RTS line allows the controller to send
data and a low on this line signals a request for the controller to disable data
transmission. Since three-wire operation has no control over the CTS input,
internal pull-up resistors in the oscilloscope ensure that this line remains high
for proper three-wire operation.

Cables
Selecting a cable for the RS-232-C interface is dependent on your specific
application. The following paragraphs describe which lines of the oscilloscope
are used to control the operation of the RS-232-C bus relative to the
oscilloscope. To locate the proper cable for your application, refer to the
reference manual for your controller. This manual should address the exact
method your controller uses to operate over the RS-232-C bus.

4–3
Programming over RS-232-C
Minimum three-wire interface with software protocol

Minimum three-wire interface with software protocol


With a three-wire interface, the software (as compared to interface
hardware) controls the data flow between the oscilloscope and the controller.
This provides a much simpler connection between devices since you can
ignore hardware handshake requirements. The oscilloscope uses the
following connections on its RS-232-C interface for three-wire
communication:
· Pin 7 SGND (Signal Ground)
· Pin 2 TD (Transmit Data from oscilloscope)
· Pin 3 RD (Receive Data into oscilloscope)
The TD (Transmit Data) line from the oscilloscope must connect to the RD
(Receive Data) line on the controller. Likewise, the RD line from the
oscilloscope must connect to the TD line on the controller. Internal pull-up
resistors in the oscilloscope ensure the DCD, DSR, and CTS lines remain high
when you are using a three-wire interface.

No Hardware Means to Control Data Flow

The three-wire interface provides no hardware means to control data flow


between the controller and the oscilloscope. XON/OFF protocol is the only
means to control this data flow.

4–4
Programming over RS-232-C
Extended interface with hardware handshake

Extended interface with hardware handshake


With the extended interface, both the software and the hardware can control
the data flow between the oscilloscope and the controller. This allows you to
have more control of data flow between devices. The oscilloscope uses the
following connections on its RS-232-C interface for extended interface
communication (on a 25-pin connector):
· Pin 7 SGND (Signal Ground)
· Pin 2 TD (Transmit Data from oscilloscope)
· Pin 3 RD (Receive Data into oscilloscope)
The additional lines you use depends on your controller’s implementation of
the extended hardwire interface.
· Pin 4 RTS (Request To Send) is an output from the oscilloscope which can
be used to control incoming data flow.
· Pin 5 CTS (Clear To Send) is an input to the oscilloscope which controls
data flow from the oscilloscope.
· Pin 6 DSR (Data Set Ready) is an input to the oscilloscope which controls
data flow from the oscilloscope within two bytes.
· Pin 8 DCD (Data Carrier Detect) is an input to the oscilloscope which
controls data flow from the oscilloscope within two bytes.
· Pin 20 DTR (Data Terminal Ready) is an output from the oscilloscope
which is enabled as long as the oscilloscope is turned on.

4–5
Programming over RS-232-C
Extended interface with hardware handshake

The TD (Transmit Data) line from the oscilloscope must connect to the RD
(Receive Data) line on the controller. Likewise, the RD line from the
oscilloscope must connect to the TD line on the controller.
The RTS (Request To Send) line is an output from the oscilloscope which
can be used to control incoming data flow. A high on the RTS line allows the
controller to send data, and a low on this line signals a request for the
controller to disable data transmission.
The CTS (Clear To Send), DSR (Data Set Ready), and DCD (Data Carrier
Detect) lines are inputs to the oscilloscope which control data flow from the
oscilloscope (Pin 2). Internal pull-up resistors in the oscilloscope assure the
DCD and DSR lines remain high when they are not connected.
If DCD or DSR are connected to the controller, the controller must keep
these lines and the CTS line high to enable the oscilloscope to send data to
the controller. A low on any one of these lines will disable the oscilloscope
data transmission. Dropping the CTS line low during data transmission will
stop oscilloscope data transmission immediately. Dropping either the DSR or
DCD line low during data transmission will stop oscilloscope data
transmission, but as many as two additional bytes may be transmitted from
the oscilloscope.

4–6
Programming over RS-232-C
Configuring the Interface

Configuring the Interface


Set the baud rate and handshake protocol by using the front panel controls
on the oscilloscope after the RS-232-C interface has been installed on the
rear panel of the oscilloscope.
1 Press Print/Utility , then press the I/O Menu softkey.
2 To change the baud rate, press the Baud Rate softkey until the desired baud
rate is displayed.
3 To change the handshake protocol, toggle the Handshake softkey until the
desired protocol is displayed.

4–7
Programming over RS-232-C
Interface Capabilities

Interface Capabilities
The baud rate, stop bits, parity, handshake protocol, and data bits must be
configured exactly the same for both the controller and the oscilloscope to
properly communicate over the RS-232-C bus. The oscilloscope’s RS-232-C
interface capabilities are as follows:
· Baud Rate: 1200, 2400, 9600, or 19,200
· Stop Bits: 1
· Parity: None
· Protocol: DTR or XON/XOFF
· Data Bits: 8

Protocol
DTR (Data Terminal Ready) With a three-wire interface, selecting
DTR for the handshake protocol does not allow the sending or receiving
device to control data flow. No control over the data flow increases the
possibility of missing data or transferring incomplete data.
With an extended hardwire interface, selecting DTR allows a hardware
handshake to occur. With hardware handshake, hardware signals control data
flow.
XON/XOFF XON/XOFF stands for Transmit On/Transmit Off. With this
mode the receiver (controller or oscilloscope) controls data flow and can
request that the sender (oscilloscope or controller) stop data flow. By
sending XOFF (ASCII 17) over its transmit data line, the receiver
requests that the sender disables data transmission. A subsequent XON
(ASCII 19) allows the sending device to resume data transmission.
A controller sending data to the oscilloscope should send no more than 32
bytes of data after an XOFF.
The oscilloscope will not send any data after an XOFF is received until an
XON is received.

4–8
Programming over RS-232-C
Communicating over the RS-232-C bus

Data Bits
Data bits are the number of bits sent and received per character that
represent the binary code of that character.
Information is stored in bytes (8 bits at a time) in the oscilloscope. Data can
be sent and received just as it is stored, without the need to convert the data.

Communicating over the RS-232-C bus


Each RS-232-C interface card has its own interface select code. This code is
used by the controller to direct commands and communications to the proper
interface. Unlike GPIB, which allows multiple devices to be connected
through a single interface card, RS-232-C is only connected between two
devices at a time through the same interface card. Because of this, only the
interface code is required for the device address.
Generally, the interface select code can be any decimal value between 0 and
31, except for those interface codes which are reserved by the controller for
internal peripherals and other internal interfaces. This value can be selected
through switches on the interface card. For more information, refer to the
reference manual for your interface card or controller.
For example, if your RS-232-C interface select code is 20, the device address
required to communicate over the RS-232-C bus is 20.

4–9
Programming over RS-232-C
Lockout Command

Lockout Command
To lockout the front panel controls use the system command LOCK. When
this function is on, all controls (except the power switch) are entirely locked
out. Local control can only be restored by sending the command
:SYSTEM:LOCK OFF.

Restoring Local Control

Cycling the power will also restore local control, but this will also reset certain
RS-232-C states.

4–10
5

Programming and Documentation


Conventions
Programming and Documentation
Conventions

This chapter covers conventions which are used in programming the


instrument, as well as conventions used in the online
Agilent 54600-Series Oscilloscopes Programmer’s Reference and
the remainder of this manual. This chapter also contains a detailed
description of the command tree and command tree traversal.

5–2
Programming and Documentation Conventions
Command Set Organization

Command Set Organization


The command set is divided into common commands, root level commands
and sets of subsystem commands. Each of the groups of commands is
described in the Agilent 54600-Series Oscilloscopes Programmer’s
Reference, which is supplied as an online help file for Microsoft Windows.
See chapter 8 for information on installing and using the help file.
The commands are shown using upper and lowercase letters. As an example,
AUToscale indicates that the entire command name is AUTOSCALE. To
speed up the transfer, the short form AUT is also accepted by the
oscilloscope. Each command listing contains a description of the command
and its arguments and the command syntax. Some commands have a
programming example.
The subsystems are listed below:
SYSTem controls some basic functions of the oscilloscope.
ACQuire sets the parameters for acquiring and storing data.
CHANnel controls all oscilloscope functions associated with individual
channels or groups of channels.
DISPlay controls how waveforms, graticule, and text are displayed and
written on the screen.
FUNCtion controls functions in the Measurement/Storage Module.
MASK controls the waveform monitoring test function available when using
the Measurement/Storage Module.
MEASure selects the automatic measurements to be made and controls
time markers.
SEQuence controls the automated testing functions when using the Test
Automation Module.
TIMebase controls all horizontal sweep functions.
TRACe controls features used with trace memories.
TRIGger controls the trigger modes and parameters for each trigger type.
EXTernal Trigger defines the conditions for an external trigger. These
commands only appear on the Agilent 54610, 54615, and 54616 Oscilloscopes.
WAVeform provides access to waveform data.

5–3
Programming and Documentation Conventions
Command Set Organization

Table 5-1

Alphabetic Command Cross-Reference

Command Subsystem Command Subsystem Command Subsystem


Where Used Where Used Where Used
ALL MEASure *ESR Common NEXT SEQuence
ASTore Root level NREJect TRIGger
AUToscale Root level FAILmode MASK NUMBer MASK
FALLtime MEASure NWIDth MEASure
BLANk Root level FIELd TRIGger
BWLimit CHANnel FORMat WAVeform OFFSet CHANnel
BYTeorder WAVeform FREQuency MEASure OFFSet EXTernal trigger 2
OFFSet FUNCtion
CENTer FUNCtion GRID DISPlay *OPC Common
CLEAR TRACe OPERation FUNCtion
*CLS Common HOLDoff TRIGger *OPT Common
COLumn DISPlay OPTMode TRIGger
COMPlete ACQuire *IDN Common OVERshoot MEASure
CONNect DISPlay INCRement MASK
COUNt ACQuire INPut CHANnel 1 PALette DISPlay 3
COUPling CHANnel INPut EXTernal trigger 1 PEAKs FUNCtion
COUPling EXTernal trigger 1 INVerse DISPlay PERiod MEASure
COUPling TRIGger INVert CHANnel PHASe MEASure
CREATE MASK PIXel DISPlay
KEY SYSTem PMODe CHANnel 1
DATA DISPlay PMODe EXTernal trigger 1
DATA MASK LEVel TRIGger POINts ACQuire
DATA TRACe LINE DISPlay POINts WAVeform
DATA WAVeform LINE TRIGger POLarity TRIGger
DEFine MEASure LOCK SYSTem POSTfailure MASK
DELay MEASure LOWer MEASure PREamble WAVeform
DELay TIMebase *LRN Common PREShoot MEASure
DESTination MASK PREVious SEQuence
DIGitize Root level MATH CHANnel PRINt Root level
DITHer Root level MENU Root level PROBe CHANnel
DSP SYSTem MERGe Root level PROBe EXTernal trigger 1
DUTycycle MEASure MODE TIMebase PROTect CHANnel 1
MODE TRACe PROTect EXTernal trigger 1
ERASe Root level MODE TRIGger PROTect SEQuence
ERRor SYSTem MOVE FUNCtion PSTArt MEASure
*ESE Common PSTOp MEASure
PWIDth MEASure
1
These commands are used by the Agilent 54610, 54615, and 54616 only.
2
These commands are used by the Agilent 54610 only.
3
This command is used only by the Agilent 54616C.

5–4
Programming and Documentation Conventions
Command Set Organization

Command Subsystem Command Subsystem Command Subsystem


Where Used Where Used Where Used
RANGe CHANnel *STB Common VSTOp MEASure
RANGe FUNCtion STEP SEQuence VTIMe MEASure
RANGe TIMebase STOP Root level VTOP MEASure
*RCL Common
REFerence FUNCtion TDELta MEASure *WAI Common
REFerence TIMebase TER Root level WINDow FUNCtion
REJect TRIGger TEST MASK
RESet SEQuence TEST? SEQuence XINCrement WAVeform
RISetime MEASure TEXT DISPlay XORigin WAVeform
ROW DISPlay THResholds MEASure XREFerence WAVeform
*RST Common TOLerance MASK
RUN Root level *TRG Common YINCrement WAVeform
*TST Common YORigin WAVeform
*SAV Common TSTArt MEASure YREFerence WAVeform
SAVE MASK TSTOp MEASure
SAVE TRACe TVHFrej TRIGger
SCRatch MEASure TVMode TRIGger
SET100 MEASure TVOLt MEASure
SET360 MEASure TYPE ACQuire
SETup ACQuire TYPE WAVeform
SETup CHANnel
SETup DISPlay UPPer MEASure
SETup EXTernal trigger 1
SETup SEQuence VAMPlitude MEASure
SETup SYSTem VAUToscale Root level
SETup TIMebase VAVerage MEASure
SETup TRIGger VBASe MEASure
SHOW MEASure VDELta MEASure
SKEW CHANnel 1 VERNier CHANnel
SKEW EXTernal trigger 2 VERNier TIMebase 4
SLOPe TRIGger VIEW FUNCtion
SOURce DISPlay VIEW Root level
SOURce FUNCtion VIR TRIGger
SOURce MEASure VMAX MEASure
SOURce TRIGger VMIN MEASure
SOURce WAVeform VPP MEASure
SPAN FUNCtion VPSTart MEASure
*SRE Common VPSTop MEASure
STANdard TRIGger VRMS MEASure
STATistics MASK VSTArt MEASure
STATus Root level
1
These commands are used by the Agilent 54610, 54615, and 54616 only.
2
These commands are used by the Agilent 54610 only.
4
These commands are used by all oscilloscope models except Agilent 54615 and 54616.

5–5
Programming and Documentation Conventions
The Command Tree

The Command Tree


The command tree shows all of the commands and the relationship of the
commands to each other. The IEEE 488.2 common commands are not listed
as part of the command tree since they do not affect the position of the
parser within the tree. When a program message terminator (<NL>, linefeed
- ASCII decimal 10) or a leading colon (:) is sent to the instrument, the parser
is set to the “root” of the command tree.

Command Types
The commands for this instrument can be placed into three types:
· Common commands
· Root level commands
· Subsystem commands
Common Commands The common commands are the commands
defined by IEEE 488.2. These commands control some functions that are
common to all IEEE 488.2 instruments.
Common commands are independent of the tree, and do not affect the
position of the parser within the tree. These commands differ from root level
commands in that root level commands place the parser back at the root of
the command tree.
Example:
*RST

Root Level Commands The root level commands control many of the
basic functions of the instrument. These commands reside at the root of
the command tree. Root level commands are always parsable if they
occur at the beginning of a program message, or are preceded by a colon.
Example:
:AUTOSCALE

5–6
Programming and Documentation Conventions
The Command Tree

: (root)

*CLS ASTore SYSTem: ACQuire: CHANnel<n>: DISPlay: FUNCtion: MASK:


*ESE AUToscale
*ESR BLANk DSP COMPlete BWLimit COLumn CENTer CREATe
*IDN DIGitize ERRor COUNt COUPling CONNect MOVE DATA
*LRN DITHer KEY POINts INPut * DATA OFFSet DESTination
*OPC ERASe LOCK SETup INVert GRID OPERation FAILmode
*OPT MENU SETup TYPE MATH INVerse PEAKs INCRement
*RCL MERGe OFFSet LINE RANGe NUMBer
*RST PRINt PMODe * PALette *** REFerence POSTfailure
*SAV RUN PROBe PIXel SOURce SAVE
*SRE STATus PROTect * ROW SPAN STATistics
*STB STOP RANGe SETup VIEW
*TRG TER SETup SOURce WINDow
*TST VAUToscale SKEW * TEXT
*WAI VIEW VERNier
54600S12.CDR
Common
Commands
(IEEE 488.2)

MEASure: SEQuence: TIMebase: TRACe: TRIGger: EXTernal: * WAVeform:


ALL TDELta
NEXT DELay CLEAR COUPling BYTeorder
DEFine THREsholds
PREVious MODE DATA FIELd DATA
DELay TSTArt COUPling
PROTect RANGe MODE HOLDoff FORMat
DUTYcycle TSTOp INPut
RESet REFerence LEVel POINts
FALLtime TVOLt OFFSet **
SETup SETup LINE PREamble
FREQuency UPPer PMODe
STEP VERNier MODE SOURce
LOWer VAMPlitude PROBe
NWIDth VAVerage NREJect PROTect TYPE
OVERshoot VBASe OPTMode SETup XINCrement
PERiod VDELta POLarity SKEW ** XORigin
PHASe VMAX REJect XREFerence
PREShoot VMIN SETup YINCrement
PSTArt VPP SLOPe YORigin
PSTOp VPSTArt SOURce YREFerence
PWIDth VPSTOp STANdard
RISetime VRMS TVHFrej * 54610/15/16 only
SCRatch VSTArt TVMode ** 54610 only
SET100 VIR *** 54616C only
54600S13.CDR

5–7
Programming and Documentation Conventions
The Command Tree

Subsystem Commands
Subsystem commands are grouped together under a common node of the
command tree, 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.

Tree Traversal Rules


Command headers are created by traversing down the command tree. A legal
command header from the command tree would be :CHANNEL1:RANGE.
This is called a compound header. A compound header is a header made of
two or more mnemonics separated by colons. The mnemonic created
contains no spaces. The following rules apply to traversing the tree:
· A leading colon or a <program message terminator> (either an <NL> or
EOI true on the last byte) places the parser at the root of the command
tree. A leading colon is a colon that is the first character of a program
header.
· Executing a subsystem command places you in that subsystem until a
leading colon or a <program message terminator> is found. In the
Command Tree, use the last mnemonic in the compound header as a
reference point (for example, RANGE). Then find the last colon above that
mnemonic (CHANNEL<n>). That is the point where the parser resides.
Any command below that point can be sent within the current program
message without sending the mnemonics that appear above them (for
example, OFFSET).

5–8
Programming and Documentation Conventions
The Command Tree

Examples
The OUTPUT statements in the examples are written using Agilent BASIC
5.0. The quoted string is placed on the bus, followed by a carriage return and
linefeed (CRLF).

Example 1 OUTPUT 707;":CHANNEL1:RANGE 0.5 ;OFFSET 0"


The colon between CHANNEL1 and RANGE is necessary because
CHANNEL1:RANGE is a compound command. The semicolon between the
RANGE command and the OFFSET command is the required program
message unit separator. The OFFSET command does not need CHANNEL1
preceding it, since the CHANNEL1:RANGE command sets the parser to the
CHANNEL1 node in the tree.

Example 2 OUTPUT 707;":TIMEBASE:REFERENCE CENTER ; DELAY 0.00001"


or
OUTPUT 707;":TIMEBASE:REFERENCE CENTER"
OUTPUT 707;":TIMEBASE:DELAY 0.00001"
In the first line of example 2, the “subsystem selector” is implied for the
DELAY command in the compound command. The DELAY command must be
in the same program message as the REFERENCE command, since the
program message terminator places the parser back at the root of the
command tree.
A second way to send these commands is by placing TIMEBASE: before the
DELAY command as shown in the second part of example 2.
Example 3:
OUTPUT 707;":TIMEBASE:REFERENCE CENTER ; :CHANNEL1:OFFSET ’0’"
The leading colon before CHANNEL1 tells the parser to go back to the root of
the command tree. The parser can then see the CHANNEL1:OFFSET
command.

5–9
Programming and Documentation Conventions
Truncation Rules

Truncation Rules
The truncation rule for the mnemonics used in headers and alpha arguments
is:
The mnemonic is the first four characters of the keyword unless:
The fourth character is a vowel, then the mnemonic is the first
three characters of the keyword.
This rule is not used if the length of the keyword is exactly four
characters.
Some examples of how the truncation rule is applied to various commands
are shown in the following table.

Mnemonic Truncation

Long Form Short Form


RANGE RANG
PATTERN PATT
TIMEBASE TIM
DELAY DEL
TYPE TYPE

5–10
Programming and Documentation Conventions
Infinity Representation

Infinity Representation
The representation of infinity is 9.9E+37. This is also the value returned
when a measurement cannot be made.

Sequential and Overlapped Commands


IEEE 488.2 distinguishes between sequential and overlapped commands.
Sequential commands finish their task before the execution of the next
command starts. Overlapped commands run concurrently. Commands
following an overlapped command may be started before the overlapped
command is completed. All of the commands are sequential.

Response Generation
As defined by IEEE 488.2, query responses may be buffered for the following
conditions:
· When the query is parsed by the instrument.
· When the controller addresses the instrument to talk so that it may read
the response.
The responses to a query are buffered when the query is parsed.

5–11
Programming and Documentation Conventions
Notation Conventions and Definitions

Notation Conventions and Definitions


The following conventions and definitions are used in this manual and the
online Agilent 54600-Series Oscilloscopes Programmer’s Reference in
descriptions of remote operation:

Conventions
< > Angle brackets enclose words or characters that symbolize a program code
parameter or an interface command.
::= “is defined as.” For example, <A> ::= <B> indicates that <A> can be
replaced by <B> in any statement containing <A>.
| “or.” Indicates a choice of one element from a list. For example, <A> | <B>
indicates <A> or <B>, but not both.
... An ellipsis (trailing dots) indicates that the preceding element may be
repeated one or more times.
[ ] Square brackets indicate that the enclosed items are optional.

{ } When several items are enclosed by braces, one, and only one of these
elements must be selected.

Definitions
d ::= A single ASCII numeric character, 0-9.

n ::= A single ASCII non-zero, numeric character, 1-9.

<NL> ::= Newline or Linefeed (ASCII decimal 10).

<sp> ::= <white space>

<white space> 0 through 32 (decimal) except linefeed (decimal 10). The nominal value is 32
::= (the space character).

5–12
Programming and Documentation Conventions
Program Examples

Program Examples
The program examples given for commands in the online
Agilent 54600-Series Oscilloscopes Programmer’s Reference were written
using the Agilent BASIC for Windows, C, and SICL C programming languages.
The programs always assume the oscillscope is at address 7 and the interface
is at address 7 for a program address of 707. If a printer is used, it is always
assumed to be at address 701.
In these examples, give special attention to the ways in which the command
or query can be sent. The way the instrument is set up to respond to a
command or query has no bearing on how you send the command or query.
That is, the command or query can be sent using the long form or short form,
if a short form exists for that command. You can send the command or query
using upper case (capital) letters or lower case (small) letters. Also, the data
can be sent using almost any form you wish. If you are sending a timebase
range value of 100 ms, that value could be sent using a decimal (.1), or an
exponential (1e-1 or 1.0E-1), or a suffix (100 ms or 100MS).
As an example, set the sweep speed to 100 ms by sending one of the
following:
· Commands in long form using the decimal format.
OUTPUT 707;":CHANNEL1:RANGE .1"

· Commands in short form using an exponential format.


OUTPUT 707;":CHAN1:RANG 1E-1"

· Commands using lower case letters, short forms, and a suffix.


OUTPUT 707;":chan1:rang 100 mV"

Including the Colon Is Optional

In these examples, the colon as the first character of the command is optional.
The space between RANGE and the argument is required.

5–13
5–14
6

Status Reporting
Status Reporting

IEEE 488.2 defines data structures, commands, and common bit


definitions for status reporting on the interface. There are also
instrument-defined structures and bits.
The bits in the status byte act as summary bits for the data structures
residing behind them. In the case of queues, the summary bit is set if
the queue is not empty. For registers, the summary bit is set if any
enabled bit in the event register is set. The events are enabled with
the corresponding event enable register. Events captured by an event
register remain set until the register is read or cleared. Registers are
read with their associated commands. The *CLS command clears all
event registers and all queues except the output queue. If *CLS is sent
immediately following a program message terminator, the output
queue is also cleared.

6–2
Status Reporting

Figure 6–1

Status Reporting Data Structures

6–3
Status Reporting

Bit Definitions
MAV - message available. Indicates whether there is a response in the
output queue.
ESB - event status bit. Indicates if any of the conditions in the
Standard Event Status Register are set and enabled.
MSS - master summary status. Indicates whether the device has a
reason for requesting service. This bit is returned for the *STB? query.
RQS - request service. Indicates if the device is requesting service.
This bit is returned during a serial poll. RQS is set to 0 after it is read via
a serial poll (MSS is not reset by *STB?).
URQ - user request. Indicates whether a front-panel key has been
pressed.
CME - command error. Indicates whether the parser detected an
error.
EXE - execution error. Indicates whether a parameter was out of
range, or inconsistent with the current settings.
DDE - device specific error. Indicates whether the device was unable
to complete an operation for device dependent reasons.
QYE - query error. Indicates whether the protocol for queries has
been violated.
RQC - request control. Indicates whether the device is requesting
control. The logic analyzer never requests control.
OPC - operation complete. Indicates whether the device has
completed all pending operations.
TRG - trigger. Indicates whether a trigger has been received.

6–4
Status Reporting

Operation Complete (*OPC)


The IEEE 488.2 structure provides one technique which can be used to find
out if any operation is finished. The *OPC command, when sent to the
instrument after the operation of interest, sets the OPC bit in the Standard
Event Status Register when all pending device operations have finished. If
the OPC bit and the RQS bit have been enabled, a service request is
generated.
OUTPUT 707;"*SRE 32 ; *ESE 1" !enables OPC service request
OUTPUT 707;":DIG CHAN1 ; *OPC" !initiates data acquisition,
!and
!generates a SRQ when the
!acquisition is complete

Trigger Bit (TER)


The Trigger (TER) bit indicates if the device has received a trigger. The TRG
event register will stay set after receiving a trigger until it is cleared by
reading it or using the *CLS command. If your application needs to detect
multiple triggers, the TER event register must be cleared after each one.
If you are using the Service Request to interrupt a program or controller
operation when the trigger bit is set, then you must clear the event register
after each time it has been set.
OUTPUT 707;"*SRE 32" ! enables event status register.
! the next trigger will generate an SRQ.
OUTPUT 707;"*ESE 2" ! enables event status register
OUTPUT 707;":TER?" ! queries the TRG event register, thus
ENTER 707;A$ ! clearing it.
! the next trigger can now generate an
! SRQ

Status Byte
If the device is requesting service (RQS set), and the controller serial polls
the device, the RQS bit is cleared. The MSS bit (read with *STB?) is not
cleared by reading it. The status byte is not cleared when read, except for the
RQS bit.

6–5
Status Reporting
Serial Poll

Serial Poll
This oscilloscope supports the IEEE 488.1 serial poll feature. When a serial
poll of the instrument is requested, the RQS bit is returned on bit 6 of the
status byte.

Using Serial Poll


The service request can used by conducting a serial poll of all instruments on
the bus. For this procedure, assume that there are two instruments on the
bus: an oscilloscope at address 7 and a printer at address 1. It is assumed that
you are operating on Interface Select Code 7.
The program command for serial poll using Agilent BASIC is
Stat=SPOLL(707). The address 707 is the address of the oscilloscope in this
example. The command for checking the printer is Stat=SPOLL(701)
because the address of that instrument is 01 on bus address 7. This command
reads the contents of the GPIB Status Register into the variable called Stat.
At that time bit 6 of the variable Stat can be tested to see if it is set (bit 6=1).
The serial poll operation can be conducted in the following manner:
1 Enable interrupts on the bus. This allows the controller to “see” the
SRQ line.
2 If the SRQ line is high (some instrument is requesting service) then
check the instrument at address 1 to see if bit 6 of its status register is
high.
3 Disable interrupts on the bus.
4 To check whether bit 6 of an instrument’s status register is high, use
the following command line.
IF BIT (Stat, 6) then
5 If bit 6 of the instrument at address 1 is not high, then check the
instrument at address 7 to see if bit 6 of its status register is high.
6 As soon as the instrument with status bit 6 high is found, check the
rest of the status bits to determine what is required.
The SPOLL(707) command causes much more to happen on the bus than
simply reading the register. This command clears the bus, automatically
addresses the talker and listener, sends SPE (serial poll enable) and SPD
(serial poll disable) bus commands, and reads the data. For more information
about serial poll, refer to your controller manual and programming language
reference manuals.

6–6
Status Reporting
Serial Poll

After the serial poll is completed, the RQS bit in the oscilloscope Status Byte
Register is reset if it was set. Once a bit in the Status Byte Register is set, it
remains set until the status is cleared with a *CLS command, or the
instrument is reset. If these bits do not get reset, they cannot generate
another SRQ.

6–7
6–8
7

Installing and Using the


Programmer’s Reference
Installing and Using the Programmer’s
Reference

The Programmer’s Reference is supplied as an online help file


readable with the Microsoft Windows help viewer. Sample programs
for the oscilloscopes are included in the Examples subdirectory.
This chapter explains how to install the help file on your system,
discusses the text and program files, and explains how you can get the
programs and help file via the Internet.

7–2
Installing and Using the Programmer’s Reference
To install the help file under Microsoft Windows

To install the help file under Microsoft Windows


The help file requires Microsoft Windows 95/98/NT running on an
IBM-compatible PC. The file uses the Microsoft Windows help viewer,
WINHELP.EXE.
2 Insert the 3.5" floppy disk labeled “54600/01/02/03/10/15/16
1
Programmer’s Reference with Example Programs” into the floppy
disk drive of your PC.
2 Select Start | Run from the Program Manager, then type in the
following:
<drive>:\setup.exe
where <drive> is your floppy disk drive letter.
3 Follow the instructions on-screen to complete the installation.
The installer copies the help file to a directory named c:\Program
Files\Agilent 54600-Series Programmer’s Reference.
You can choose a different directory if desired. It also creates a Program
Manager group and icon that you can use to open the help file with the
Microsoft Windows help viewer.

7–3
Installing and Using the Programmer’s Reference
To get updated help and program files via the Internet

To get updated help and program files via the Internet


The latest versions of the help and example program files are available via
the internet using your web browser or using ftp software.
· Log on to your Internet service.
Using your web
browser 1 To connect using your web browser, type the following on the
address line in your internet browser:
ftp://ftp.cos.agilent.com/dist/hp54600/hp54600

2 Check the README.TXT file for more information on the files in this
directory.

Using an ftp
application 1 To connect using an ftp application, a sample set of commands might
be as follows:
$ ftp ftp.cos.agilent.com
Name: anonymous
Password: <your email address>

2 Change to the directory containing 54600 help files.


ftp> cd dist/hp54600/hp54600

3 Get sample programs or updated help files from the directory as


desired.
For example, if you want the latest version of the Agilent 54600-Series
Oscilloscopes Programmer’s Reference online help file, you set the
transfer mode to binary and get the file:
ftp> binary
ftp> get 54600.hlp

4 Check the README.TXT file for more information on the files in this
directory.
If you have trouble making the connection, or need more information
on ftp, see your network administrator.

7–4
Installing and Using the Programmer’s Reference
To start the help file

To start the help file


· To open the help file under Microsoft Windows, double-click the
“Programmer’s Reference” icon in the “Agilent 54600-Series
Oscilloscopes Programmer’s Reference” program group in the
Program Manager.
The help file requires the program WINHELP.EXE for Microsoft
Windows95/98/NT. The properties for the Program Manager icon are set to
expect this file in the Windows directory.

7–5
Installing and Using the Programmer’s Reference
To navigate through the help file

To navigate through the help file


· Navigate through the help file by clicking on highlighted text and
buttons.
See your Microsoft Windows documentation for more information, or select
Help | How to Use Help in the Help window.

7–6
8

Programmer’s Quick Reference


Introduction

The Programmer’s Quick Reference provides the commands and


queries with their corresponding arguments and returned formats for
the Agilent 54600-Series Oscilloscopes. The arguments for each
command list the minimum argument required. The part of the
command or query listed in uppercase letters refers to the short form
of that command or query. The long form is the combination of the
uppercase and lowercase letters. Any optional parameters are listed at
the end of each parameter listing.
This quick reference lists commands for the following Agilent
oscilloscope models:
54600
54601
54602
54603
54610
54615
54616

8–2
Programmer’s Quick Reference
Conventions

Conventions
The following conventions used in this guide include:
<> Indicates that words or characters enclosed in angular
brackets symbolize a program code parameter or an
GPIB command.
::= "is defined as." <A>::= <B> indicates that <A> can be replaced by <B>
in any statement containing <A>.
| "or" Indicates a choice of one element from a list. For
example, <A> | <B> indicates <A> or <B> but not both.
... Indicates that the element preceding the ellipses may
be repeated one or more times.
[] Indicates that the bracketed items are optional.
{} Indicates that when items are enclosed by braces,
one, and only one of the elements may be selected.
{N,..,P} Indicates selection of one integer between N and P
inclusive.

Suffix Multipliers
The following suffix multipliers are available for arguments.
EX :: = 1E18 M :: = 1E-3
PE :: = 1E15 U :: = 1E-6
T :: = 1E12 N :: = 1E-9
G :: = 1E9 P :: = 1E-12
MA :: = 1E6 F :: = 1E-15
K :: = 1E3 A :: = 1E-18

For more information regarding specific commands or queries, please refer to


the online Agilent 54600-Series Oscilloscopes Programmer’s Reference.

8–3
Programmer’s Quick Reference
Commands and Queries

Commands and Queries


The following tables facilitate easy access to each command and query for
the Agilent 54600-Series Oscilloscopes. The commands and queries are
divided into separate categories with each entry alphabetized.
The arguments for each command list the minimum argument required. The
part of the command or query listed in uppercase letters refers to the short
form of that command or query. The long form is the combination of the
uppercase and lowercase letters.
These commands also show specific information about how the command
operates on a particular oscilloscope model. For additional information, refer
to the online Agilent 54600-Series Oscilloscopes Programmer’s Reference.

8–4
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:ACQuire:COMPlete :ACQuire:COMPlete? <complete_argument> ::= 0 to 100; an integer in NR1 format
<complete_argument>
:ACQuire:COUNt :ACQuire:COUNT? <count_argument> ::= 8, 64, or 256; an integer in NR1 format
<count_argument>
n/a :ACQuire:POINts? For all models except 54615/16:
1 to 4000; an integer in NR1 format.
For the 54615/16:
1 to 5000; an integer in NR1 format.
n/a :ACQuire:SETup? ACQuire:TYPE{NORM | AVER | PEAK};
COUNt<count_argument>;
(8, 64, or 256; an integer in NR1 format);
POINts<points_argument>;
For all models except 54615/16:
1 to 4000; an integer in NR1 format.
For the 54615/16:
1 to 5000; an integer in NR1 format.
COMPlete<complete_argument>
0 to 100; an integer in NR1 format
:ACQuire:TYPE :ACQuire:TYPE? <acq_type> ::= {NORMal | AVERage | PEAK}
<acq_type>
:ASTore n/a n/a
:AUToscale n/a n/a
:BLANk n/a <display> ::=
<display> {CHAN <n> | PMEM{1 | 2}} for the 54600/01/02/03/15/16
{CHAN <n> | PMEM{1 | 2} | EXTernal} for the 54610
<n> ::=
1 or 2; an integer in NR1 format for the 54600/03/10/15/16
1, 2, 3, or 4; an integer in NR1 format for the 54601/02
:CHANnel<n>:BWLimit :CHANnel<n>:BWLimit? {ON | OFF}
{ON | OFF} <n> ::= 1 or 2; an integer in NR1 format
:CHANnel<n>:COUPling :CHANnel<n>:COUPling? {AC | DC | GND}
{AC | DC | GND} <n> ::=
1 or 2; an integer in NR1 format for 54600/03/10/15/16
1, 2, 3 or 4; an integer in NR1 format for the 54601/02
:CHANnel<n>:INPut :CHANnel<n>:INPut? {FIFTy | ONEMeg}
{FIFTy | ONEMeg} <n> ::= 1 or 2; an integer in NR1 format
:CHANnel<n>:INVert :CHANnel<n>:INVert? {ON | OFF}
{ON | OFF} <n> ::= 1 or 2; an integer in NR1 format
:CHANnel:MATH :CHANnel:MATH? {OFF | PLUS | SUBTract}
{OFF | PLUS | SUBTract}
:CHANnel<n>:OFFSet :CHANnel<n>:OFFSet? <offset_argument> ::= offset value in volts in <NR3> format.
<offset_argument> <n> ::=
1 or 2; an integer in NR1 format for 54600/03/10/15/16
1, 2, 3 or 4; an integer in NR1 format for the 54601/02
:CHANnel<n>:PMODe :CHANnel<n>:PMODe? {AUT | MAN}
{AUTo | MANual} <n> ::= 1 or 2; an integer in NR1 format

8–5
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:CHANnel<n>:PROBe :CHANnel<n>:PROBe? <attenuation> ::=
<attenuation> X1, X10, X100 for 51600/01/02/03
X1, X10, X20, X100 for the 54610/15/16
<n> ::=
1 or 2; an integer in NR1 format for 54600/03/10/15/16
1, 2, 3 or 4; an integer in NR1 format for the 54601/02
:CHANnel<n>:PROTect :CHANnel<n>:PROTect? {OFF | ON}
{OFF | ON} <n> ::= 1 or 2; an integer in NR1 format
:CHANnel<n>:RANGe :CHANnel<n>:RANGe? <range_argument> ::= Full-scale range value for channels 1 or 2 in
<range_argument> NR3 format, and {LOW | HIGH} for channels 3 or 4.
n/a :CHANnel<n>:SETup? For 54600/01/02/03 channels 1 and 2:
CHANnel<n>:RANGe <range>; OFFSet <offset>; COUPling {AC | DC |
GND}; BWLimit {ON | OFF}; INVert {ON | OFF}; VERNier {ON | OFF};
PROBe {X1 | X10 | X100}

For 54610/15/16 channel 1:


CHANnel1:RANGe <range>; OFFSet <offset>; COUPling {AC | DC |
GND}; BWLimit {ON | OFF}; INVert {ON | OFF}; VERNier {ON | OFF};
PROBe {X1 | X10 | X20 | X100}; PMODe {AUT | MAN}; INPut {FIFTy |
ONEMeg}; PROTect {OFF | ON}

For 54610/15/16 channel 2:


CHANnel2:RANGe <range>; OFFSet <offset>; COUPling {AC | DC |
GND}; BWLimit {ON | OFF}; INVert {ON | OFF}; VERNier {ON | OFF};
PROBe {X1 | X10 | X20 | X100}; PMODe {AUT | MAN}; INPut {FIFTy |
ONEMeg}; PROTect {OFF | ON}; SKEW <skew_value>

For 54601/02 channels 3 or 4:


CHANnel<n>:RANGe {HIGH | LOW}; OFFSet <offset>; COUPling {DC |
GND}; PROBe {X1 | X10 | X100}
:CHANnel2:SKEW :CHANnel2:SKEW? <skew_argument> ::= the skew value in seconds in <NR3> format
<skew_argument>
:CHANnel<n>:VERNier :CHANnel<n>:VERNier? {ON | OFF}
{ON | OFF}
*CLS n/a n/a
:DIGitize n/a n/a
CHANnel<n>,
[CHANnel<n>]
:DITHer :DITHer? {ON | OFF}
{ON | OFF}
:DISPLAY:COLumn :DISPLAY:COLumn? <number> ::= 0 through 63; an integer in NR1 format
<number>
:DISPlay:CONNect :DISPlay:CONNect? {ON | OFF}
{ON | OFF}
:DISPlay:DATA :DISPlay:DATA? <binary block_data> ::= 16256 bytes of data in IEEE 488.2 # format
<binary block_data>

8–6
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:DISPlay:GRID :DISPlay:GRID? {ON | OFF | SIMPle | TV}
{ON | OFF | SIMPle | TV}
:DISPlay:INVerse :DISPlay:INVerse? {ON | OFF}
{ON | OFF}
:DISPlay:LINE n/a <string> ::= any series of ASCII characters enclosed in quotation marks
<string>
:DISPlay:PALette :DISPlay:PALette? <palette_number> ::= 0 through 6; an integer in NR1 format
<palette_number>
:DISPlay:PIXel :DISPlay:PIXel? <x>,<y> For 54616C:
<x>, <y>, <intensity> <x> ::= x coordinate of the pixel to be set; an integer (0 to 500) in NR1
format
<y> ::= y coordinate of the pixel to be set; an integer (0 to 275) in NR1
format
<intensity> (comand) ::= an integer in NR1 format:
0 to clear pixel
1 to light pixel in autostore plane
2 to light pixel in graticule plane
<intensity> (query) ::= an integer in NR1 format:
0 for pixel off
1 for autostore and any text on
2 for any waveforms on
3 for autostore and any text on, and any waveform on

For all other models:


<x> ::= x coordinate of the pixel to be set; an integer (0 to 511) in NR1
format
<y> ::= y coordinate of the pixel to be set; an integer (0 to 303) in NR1
format
<intensity> (command) ::= an integer in NR1 format:
0 to clear pixel
1 for half-bright
2 for full-bright
other value to clear pixel
<intensity> (query) ::= an integer in NR1 format:
0 for pixel off
1 for pixel with half-bright on
2 for pixel with full-bright on
3 for pixel with both half-bright and full-bright on
:DISPlay:ROW :DISPlay:ROW? <row number> ::= 1...20; an integer in NR1 format
<row number>

8–7
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


n/a :DISPlay:SETup? :DISPlay:ROW <row_number>;
<row_number> ::= 1...20; an integer in NR1 format
COLumn <column_number>;
<column_number> ::= 0...63; an integer in NR1 format
INVerse <inverse>;
<inverse> ::= {ON | OFF}
GRID <grid>;
<grid> ::= {ON | OFF}
SOURce <source>;
<source> ::= {PMEMory1 | PMEMory2}
CONNect <connect_status>
<connect_status> ::= {ON | OFF}
PALette <palette_number> (54616C only)
<palette_number> ::= 0...6; an integer in NR1 format
:DISPlay:SOURce :DISPlay:SOURce? <value> ::= {PMEMory1 | PMEMory2}
<value>
:DISPlay:TEXT BLANk n/a n/a
:ERASe n/a <value> ::= {PMEMory1 | PMEMory2}
<value>
*ESE *ESE? <mask_argument> ::= 0...255; an integer in NR1 format
<mask_argument>
Bit Weight Enables
7 128 NOT USED
6 64 URQ - User Request
5 32 CME - Command Error
4 16 EXE - Execution Error
3 8 DDE - Device Dependent Error
2 4 QYE - Query Error
1 2 TRG - Trigger Query
0 1 OPC - Operation Complete
n/a *ESR? <status> ::= 0...255; an integer in NR1 format
:EXTernal:COUPling :EXTernal:COUPling? {DC | AC | GND}
{DC | AC | GND}
:EXTernal:INPut :EXTernal:INPut? {FIFTy | ONEMEG}
{FIFTy | ONEMEG}
:EXTernal:OFFSet :EXTernal:OFFSet? <offset_argument> ::= offset value in volts in NR3 format
<offset_argument>
:EXTernal:PMODe :EXTernal:PMODe? {AUTo | MANual}
{AUTo | MANual}
:EXTernal:PROBe :EXTernal:PROBe? <attenuation> ::= {X1 | X10 | X20 | X100} for the 54610/15/16
<attenuation>
:EXTernal:PROTect :EXTernal:PROTect? {OFF | ON}
{OFF | ON}

8–8
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


n/a :EXTernal:SETup? For the 54610:
EXTernal:OFFSet <offset_value>; COUPling {DC | AC | GND};
PROBe {X1 | X10 | X20 | X100}; PMODe {AUTo | MANual};
INPut {FIFTy | ONEMeg}; PROTect {OFF | ON}; SKEW <skew_value>

For the 54615/16:


EXTernal:COUPling {DC | AC | GND}; PROBe {X1 | X10 | X20 | X100};
PMODe {AUTo | MANual}; INPut {FIFTy | ONEMeg}; PROTect {OFF | ON}
:EXTernal:SKEW :EXTernal:SKEW? <skew_value> ::= external trigger skew value in seconds in NR3 format
<skew_value>
:FUNCtion2:CENTer :FUNCtion2:CENTer? <frequency> ::= the current center frequency in NR3 format.
<frequency> The range of legal values is from 0 Hz to 10.00 GHz.
:FUNCtion2:MOVE n/a n/a
{LEFT)
:FUNCtion<N>:OFFSet :FUNCtion<N>:OFFSet? <offset> ::= the value at center screen in NR3 format.
<offset> The range of legal values is +-10 times the current sensitivity of the
selected function.
<N> ::= 1 or 2
:FUNCtion<N>:OPERation :FUNCtion<N>:OPERation? <operation> ::=
<operation> {ADD | SUBTract | MULTiply} for :FUNCtion1:OPERation
{INTegrate | DIFFerentiate | FFT} for :FUNCtion2:OPERation
<N> ::= 1 or 2
n/a :FUNCtion2:PEAKs? <measurement> ::= {FREQ1 | DB1 | FREQ2 | DB2}.
{FREQ1 | DB1 | FREQ2 | The measurement is the value of the peak specified in NR3 format.
DB2}
:FUNCtion<N>:RANGe :FUNCtion<N>:RANGe? <range> ::= the full-scale vertical axis value in NR3 format.
<range> The range for FUNCtion1 is 8E-6 to 8E+6.
The range for the INTegrate function is 8E-9 to 400E+3.
The range for the DIFFerentiate function is 8E-6 to 1.6E11.
The range for the FFT function is 8 to 400 dB/div.
<N> ::= 1 or 2
:FUNCtion2:REFerence :FUNCtion2:REFerence? <level> ::= the current reference level in NR3 format.
<level> The range of legal values is from -160.0 dBV to +240.0 dBV in
increments of 2.5 dBV.
:FUNCtion2:SOURce :FUNCtion2:SOURce? {CHANnel1 | CHANnel2 | FUNCtion1}.
{CHANnel1 | CHANnel2 | The current reference level value is in NR3 format. The range of
FUNCtion1} legal values is from -160.0 dBV to +240.0 dBV in increments of 2.5 dBV.
:FUNCtion2:SPAN :FUNCtion2:SPAN? <span> ::= the current frequency span in NR3 format.
<span> Legal values are 1.221 Hz to 9.766 Ghz
:FUNCtion<N>:VIEW :FUNCtion<N>:VIEW? {ON | OFF}
{ON | OFF} <N> ::= 1 or 2
:FUNCtion2:WINDow n/a {RECTangular | HANNing | FLATtop | EXPonent}
{RECTangular | HANNing |
FLATtop | EXPonent}

8–9
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


n/a *IDN? HEWLETT-PACKARD,<model>, 0, X.X
<model> ::= the model number of the instrument
<X.X> ::= the software revision of the instrument
n/a *LRN? <learn_string> ::= a maximum of 218 bytes of data in IEEE 488.2 # format
:MASK:CREATe n/a n/a
:MASK:DATA :MASK:DATA? <header> ::= block header that contains the ASCII characters
#8000998
and is sent prior to the data.
<mask_data> ::= 998 bytes of data that represent the currently
selected
mask template.
:MASK:DESTination :MASK:DESTination? {TRACe | PRINter}
{TRACe | PRINter}
:MASK:FAILmode :MASK:FAILmode? {IN | OUT}
{IN | OUT}
:MASK:INCRement :MASK:INCRement? {ON | OFF}
{ON | OFF}
:MASK:NUMBer :MASK:NUMBer? <number> ::= memory (1 or 2)
<number>
:MASK:POSTfailure :MASK:POSTfailure? {RUN | STOP}
{RUN | STOP}
:MASK:SAVE :MASK:SAVE? {ON | OFF}
{ON | OFF}
n/a :MASK:STATistics? <compares, failures, failure %> ::=
current number of mask tests performed
number of failures detected
percentage of failures
:MASK:TEST :MASK:TEST? {ON | OFF}
{ON | OFF}
:MASK:TOLerance :MASK:TOLerance? <value> ::= the tolerance used when creating a mask template.
<value> The entered value can be from 0.00 to 20.0 percent.
n/a :MEASure:ALL? <value list> ::=
<FREQ result>, <PERIOD result>, <+ WID result>, <- WID result>,
<RISE result>, <FALL result>, <VPP result>, <DUTY CYCLE result>,
<VRMS result>, <VMAX result>, <VMIN result>, <VTOP result>,
<VBASE result>, <VAVG result>, <VAMP result>, <Vovershoot result>,
<Vpreshoot result>
<result> ::= individual measurement results in NR3 format
:MEASure:DEFine DELay :MEASure:DEFine? DELay <edgeN> ::= the edge selection for channels 1 and 2.
<edge1>,<edge2> N is the selected edge number (1 to 5).
:MEASure:DELay :MEASure:DELay? <return_value> ::= floating point number delay time in seconds in NR3
format
:MEASure:DUTYcycle :MEASure: DUTYcycle? <return_value> ::= ratio of positive pulse width to period in NR3 format

8–10
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:MEASure:FALLtime :MEASure:FALLtime? <return_value> ::= time in seconds between the 10% and 90% voltage
levels in NR3 format
:MEASure:FREQuency :MEASure:FREQuency? <return_value> ::= frequency in Hertz in NR3 format
:MEASure:LOWer :MEASure:LOWer? <voltage> ::= the user-defined lower threshold in volts in NR3 format
<voltage>
:MEASure:NWIDth :MEASure:NWIDth? <return_value> ::= negative pulse width in seconds in NR3 format
:MEASure:OVERshoot :MEASure:OVERshoot? <voltage> ::= the percent of the overshoot of the selected waveform in
NR3 format
:MEASure:PERiod :MEASure:PERiod? <return_value> ::= waveform period in seconds in NR3 format
:MEASure:PHASe :MEASure:PHASe? <return_value> ::= the phase angle value in degrees in NR3 format
:MEASure:PREShoot :MEASure:PREShoot? <return_value> ::= the percent of preshoot of the selected waveform in
NR3 format
:MEASure:PSTArt :MEASure:PSTArt? <value> ::= the relative position of time marker 1 in degrees in NR3
<value> format
:MEASure:PSTOp :MEASure:PSTOp? <value> ::= the relative position of time marker 2 in degrees in NR3
<value> format
:MEASure:PWIDth :MEASure:PWIDth? <return_value> ::= width of positive pulse in seconds in NR3 format
:MEASure:RISEtime :MEASure: RISEtime? <return_value> ::= rise time in seconds in NR3 format
:MEASure:SCRatch n/a n/a
:MEASure:SET100 n/a n/a
:MEASure:SET360 n/a n/a
:MEASure:SHOW :MEASure:SHOW? {ON | OFF}
{ON | OFF}
:MEASure:SOURce :MEASure:SOURce? <n> ::=
CHANnel <n> 1 or 2; an integer in NR1 format for 54600/03/10/15/16
1, 2, 3 or 4; an integer in NR1 format for the 54601/02
n/a :MEASure:TDELta? <return_value> ::= time difference in seconds between start and stop
markers in NR3 format
:MEASure:THResholds :MEASure:THResholds? {T1090 | T2080 | VOLTage}
{T1090 | T2080 | VOLTage}
:MEASure:TSTArt :MEASure:TSTArt? <value> ::= time at the start marker in seconds in NR3 format
<value>
:MEASure:TSTOp :MEASure:TSTOp? <value> ::= time at the stop marker in seconds in NR3 format
<value>
n/a :MEASure:TVOLt <tvolt_argument> ::= positive or negative voltage level that the
<tvolt_argument>, waveform
<slope><occurrence> must cross.
<slope> ::= direction of the waveform when <tvolt_argument> is
crossed.
<occurrence> ::= number of crossings to be reported.
<return_value> ::= time in seconds of specified voltage crossing in
NR3 format

8–11
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:MEASure:UPPer :MEASure:UPPer? <voltage> ::= the user-defined upper threshold in volts in NR3 format
<voltage>
:MEASure:VAMPlitude :MEASure:VAMPlitude? <return_value> ::= the amplitude of the selected waveform in volts in
NR3 format
:MEASure:VAVerage :MEASure:VAVerage? <return_value> ::= calculated average voltage in NR3 format
:MEASure:VBASe :MEASure:VBASe? <base_voltage> ::= voltage at the base of the selected waveform in
NR3 format
n/a :MEASure:VDELta? <return_value> ::= delta V value in volts in NR3 format
:MEASure:VMAX :MEASure:VMAX? <return_value> ::= maximum voltage of the selected waveform in NR3
format
:MEASure:VMIN :MEASure:VMIN? <return_value> ::= minimum voltage of the selected waveform in NR3
format
:MEASure:VPP :MEASure:VPP? <return_value> ::= voltage peak to peak in NR3 format
:MEASure:VPSTArt :MEASure:VPSTArt? <value> ::= the relative position of voltage marker 1 in percent in NR3
<value> format
:MEASure:VPSTOp :MEASure:VPSTOp? <value> ::= the relative position of voltage marker 2 in percent in NR3
<value> format
:MEASure:VRMS :MEASure:VRMS? <return_value> ::= calculated dc RMS voltage in NR3 format
:MEASURE:VSTArt :MEASure:VSTArt? <vstart_argument> ::= voltage value for VMarker 1 in NR3 format
<vstart_argument> <return_value> ::= voltage at VMarker 1 in NR3 format
:MEASure:VSTOp :MEASure:VSTOp? <vstop_argument> ::= voltage value for VMarker 2 in NR3 format
<vstop_argument> <return_value> ::= voltage at VMarker 2 in NR3 format
n/a :MEASure:VTIMe <vtime_argument> ::= displayed time from trigger in seconds in NR3
<vtime_argument> format
<return_value> ::= voltage at the specified time in NR3 format
:MEASure:VTOP :MEASure:VTOP? <return_value> ::= voltage at the top of the waveform in NR3 format

8–12
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:MENU :MENU? <integer> ::= the following:
<integer> Menu Number
No menu selected 0
Channel 1 1
Channel 2 2
Channel 3 (54601/02) 3
External Trigger (54610/15/16) 3
Channel 4 (54601/02) 4
Math 5
Trigger source 6
Trigger mode 7
Trigger slope 8
Main/delayed (horizontal) 9
Time measurements 10
Voltage measurements 11
Cursors 12
Trace 13
Setup 14
Display 15
Utility/Print 16
:MERGe n/a <pixel memory> ::= {PMEMory1 | PMEMory2}
<pixel memory>
*OPC *OPC? ASCII "1" is placed in the output queue when all pending device
operations have completed.
n/a *OPT? n identifies the module and option pairing.
X.X identifies the module software revision.
Module: No Opt. 005 With Opt. 005
Basic Interface 0,X.X 50,X.X
Test Automation 1,X.X 51,X.X
Measurement/Storage 2,X.X 52,X.X
n/a :PRINt? [enhancement] [enhancement] ::= [HIRes [,PCLColor]]
HIRes ::= contains both half-bright and full-bright display information
PCLColor ::= color DeskJet selection only on 54616C
*RCL n/a <value> ::= {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 }
<value>
*RST n/a See reset values in the online Programmer’s Reference.
:RUN n/a n/a
*SAV n/a <value> ::= {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 }
<value>
:SEQuence:NEXT n/a n/a
:SEQuence:PREVious n/a n/a
:SEQuence:PROTect :SEQuence:PROTect? <protect> ::= {ON | OFF}, which reports the status of the protection.
{ON | OFF}
:SEQuence:RESet n/a n/a

8–13
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:SEQuence:SETup :SEQuence:SETup? MASK ::= an individual mask sent to the setup string.
{MASK | STEP}, <number>, {MASK | STEP}, <number> STEP ::= an individual step sent to the setup string.
<header> <setup_string> <number> ::= the mask number or step number sent to the setup string.
<header> ::= the type of setup to be sent or returned:
For individual masks, ::= #800001000.
For individual steps, ::= #800000244.
For whole sequences, ::= #800064122.
<setup_string> ::= the setup string to be sent:
For individual masks, := 1000-byte string.
For individual steps, ::= 244-byte string.
For whole sequences, ::= 64122-byte string.
:SEQuence:STEP :SEQuence:STEP? <number> ::= an integer from 1 to 100 in NR1 format
<number>
n/a :SEQuence:TEST? <result> ::= an integer from 0 to 3 in NR1 format:
0 = pass
1 = fail minimum limit line
2 = fail maximum limit line
3 = fail both minimum and maximum limit lines
*SRE *SRE? <mask> ::= sum of all bits that are set, 0,...,255; an integer in NR1
<mask> format. <mask> ::= following values:
Bit Weight Enables
7 128 Not Used
6 64 RQS - Request Service
5 32 ESB - Event Status Bit
4 16 MAV - Message Available
3 8 Not used
2 4 Not used
1 2 Not used
0 1 Not used
n/a :STATus? {ON | OFF}
<display> <display> ::=
{CHANnel <n> | PMEMory{1 | 2}} for the 54600/01/02/03/15/16
{CHANnel <n> | PMEMory{1 | 2} | EXTernal} for the 54610
<n> ::=
1 or 2; an integer in NR1 format for the 54600/03/10/15/16
1, 2, 3, or 4; an integer in NR1 format for the 54601/02
n/a *STB? <value> ::= 0,...,255; an integer in NR1 format, as shown in the following:

Bit Weight Name Condition


7 128 ---- NOT USED
6 64 RQS/MS 0 = instrument has no reason for service
1= instrument is requesting service
5 32 ESB 0 = no event status conditions occurred
1 = enabled event status condition occurred
4 16 MAV 0 = no output messages are ready
1 = an output message is ready
3 8 ---- 0 = not used
2 4 ---- 0 = not used
1 2 ---- 0 = not used
0 1 ---- 0 = not used

8–14
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:STOP n/a n/a
:SYSTem:DSP n/a <string> ::= quoted ASCII string
<string>
n/a :SYSTem:ERRor? <error> ::= an integer error code
See error values in the online Programmer’s Reference.
:SYSTem:KEY :SYSTem:KEY? <key_code> ::= -1 to 16, or 19 to 50; an integer
<key_code> See key code values in the online Programmer’s Reference.
:SYSTem:LOCK :SYSTem:LOCK? <value> ::= {ON | OFF}
<value>
:SYSTem:SETup :SYSTem:SETup? <setup_data> ::= a maximum of 218 bytes of data in IEEE 488.2 # format.
<setup_data>
n/a :TER? <return_value> ::= 0 or 1
:TIMebase:DELay :TIMebase:DELay? <delay_value> ::= time from trigger to display reference in seconds.
<delay_value> The display reference is left or center in NR3 format.
:TIMebase:MODE :TIMebase:MODE? <value> ::= {NORMal | DELayed | XY | ROLL}
<value>
:TIMebase:RANGe :TIMebase:RANGe? <range_value> ::= the following values in NR3 format:
<range_value> 50 ns through 50 s for 54603
20 ns through 50 s for 54600/01/02
10 ns through 50 s for 54610/15/16
:TIMebase:REFerence :TIMebase:REFerence? <return_value> ::= {LEFT | CENTer} for Normal or Delayed modes.
{LEFT | CENTer} <return_value> ::= {CENTer | RIGHt} for ROLL mode.
n/a :TIMebase:SETup? For all models except the 54615/16:
TIMebase:MODE {NORM | DEL | XY};RANGe <range>;
DELay <delay>;REF {LEFT | CENT};VERN {ON | OFF}
For the 54615/16:
TIMebase:MODE {NORM | DEL | XY};RANGe <range>;
DELay <delay>;REF {LEFT | CENT}
<range> ::= the following values in NR3 format:
50 ns through 50 s for 54603
20 ns through 50 s for 54600/01/02
10 ns through 50 s for 54610/15/16
<delay> ::= time from trigger to delay reference in seconds in NR3
format
:TIMebase:VERNier :TIMebase:VERNier? {ON | OFF}
{ON | OFF}
:TRACe:CLEAR n/a <N> ::= the trace memory number (1 to 100)
<N>
:TRACe:DATA :TRACe:DATA? <N> <N> ::= the trace memory number (1 to 100).
<N>,<trace_data> <header> ::= the 10-byte block header that contains the ASCII
characters
#8000nnnnn and is sent prior to the data. (nnnnn is the number of
bytes in the data string.)
<trace_data> ::= a maximum of 16,342 bytes of data, setup, and label
information that represents the current trace.

8–15
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:TRACe:MODE :TRACe:MODE? <N> <N> ::= 1 to 100
<N> {ON | OFF} <return_state> ::= {ON | OFF}
:TRACe:SAVE n/a <N> ::= the trace memory number (1 to 100).
<N>
*TRG n/a n/a
:TRIGger:COUPling :TRIGger:COUPling? {AC | DC}
{AC | DC}
:TRIGger:FIELd :TRIGger:FIELd? {ALTernate | ONE | TWO | VERTical}
{ALTernate | ONE | TWO |
VERTical}
:TRIGger:HOLDoff :TRIGger:HOLDoff? <holdoff_time> ::= the holdoff time value in seconds in NR3 format.
<holdoff_time>
:TRIGger:LEVel :TRIGger:LEVel? <return_value> ::= the trigger level in volts in NR3 format.
<level_argument>
:TRIGger:LINE :TRIGger:LINE? <line_number> ::= integer in NR1 format.
<line_number>
:TRIGger:MODE :TRIGger:MODE? {AUTLevel | AUTO | NORMal | SINGle | TV}
{AUTLevel | AUTO |
NORMal | SINGle | TV}
:TRIGger:NREJect :TRIGger:NREJect? {OFF | ON}
{OFF | ON}
:TRIGger:OPTMode :TRIGger:OPTMode? {LINE | FIELD1 | FIELD2 | VERTical | ALLLINES | ALLFLDS}
{LINE | FIELD1 | FIELD2 |
VERTical |
ALLLINES | ALLFLDS}
:TRIGger:POLarity :TRIGger:POLarity? {POS | NEG}
{POSitive | NEGative}
:TRIGger:REJect :TRIGger:REJect? {OFF | LF | HF}
{OFF | LF | HF}
n/a :TRIGger:SETup? TRIG:MODE {AUTL | AUTO | NORM | SING | TV}; SOURCE <source>;
LEVEL <level>; HOLD <time>; SLOPE {POS | NEG}; COUP {AC | DC};
REJ {OFF | LF | HF}; NREJ {ON | OFF}; POL {POS | NEG}; TVMODE
<tvmode>;
TVHF {ON | OFF}

<level> ::= trigger level in volts in NR3 format


<time> ::= holdoff time value in seconds in NR3 format
<source> ::=
{CHAN{1 | 2} | EXT | LINE} for 54600/03/10/15/16
{CHAN{1 | 2 | 3 | 4} | LINE} for 54601/02
<tvmode>::=
{FIELD1 | FIELD2 | LINE} for 54600/01/03
{FIELD1 | FIELD2 | LINE | VERT} for 54602/10/15/16
:TRIGger:SLOPe :TRIGger:SLOPe? {NEG | POS}
{NEGative | POSitive}

8–16
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


:TRIGger:SOURce :TRIGger:SOURce? <source> ::=
<source> {CHANnel1 | CHANnel2 | EXTernal | LINE} for 54600/03/10/15/16
{CHANnel1 | CHANnel2 | CHANnel3 | CHANnel4} for 54601/02
:TRIGger:STANdard :TRIGger:STANdard? {GENeric | NTSC | PAL | SECam}
{GENeric | NTSC | PAL |
PALM | SECam}
:TRIGger:TVHFrej :TRIGger:TVHFrej? {OFF | ON}
{OFF | ON}
:TRIGger:TVMode :TRIGger:TVMode? <mode> ::=
<mode> {LINE | FIELD1 | FIELD2} for 54600/01/03/15/16
{LINE | FIELD1 | FIELD2 | VERTical} for 54602/10
:TRIGger:VIR :TRIGger:VIR? {ON | OFF}
{ON | OFF}
n/a *TST? <result> ::= 0 or non-zero value; an integer in NR1 format
0 indicates the test passed.
Non-zero indicates the test failed.
:VAUToscale n/a n/a
:VIEW n/a <display> ::=
<display> {CHANnel <n> | PMEMory{1 | 2}} for the 54600/01/02/03/15/16
{CHANnel <n> | PMEMory{1 | 2} | EXTernal} for the 54610
<n> ::=
1 or 2; an integer in NR1 format for the 54600/03/10/15/16
1, 2, 3, or 4; an integer in NR1 format for the 54601/02
*WAI n/a n/a
:WAVeform:BYTeorder :WAVeform:BYTeorder? <value> ::= {LSBFirst | MSBFirst}
<value>
:WAVeform:DATA :WAVeform:DATA? <binary block length bytes>, <binary data>
<binary block data in #
format> For example, to transmit 4000 bytes of data, the syntax would be:
#800004000<4000 bytes of data><NL>
8 is the number of digits that follow
00004000 is the number of bytes to be transmitted
<4000 bytes of data> is the actual data
:WAVeform:FORMat :WAVeform:FORMat? <value> ::= {ASC | WORD | BYTE}
<value>
:WAVeform:POINts :WAVeform:POINts? <value> ::= integer {100 | 200 | 250 | 400 | 500 | 800 | 1000 | 2000 | 4000 |
<value> 5000}
in NR1 format

8–17
Programmer’s Quick Reference
Commands and Queries

Command Query Options and Query Returns


n/a :WAVeform:PREamble? <preamble_block> ::= <format NR1>, <type NR1>, <points NR1>,
<count NR1>, <xincrement NR3>, <xorigin NR3>, <xreference NR1>,
<yincrement NR3>, <yorigin NR3>, <yreference NR1>

<format> ::= an integer in NR1 format:


0 for ASCii format
1 for BYTE format
2 for WORD format
<type> ::= an integer in NR1 format:
0 for AVERage type
1 for NORMal type
2 for PEAK detect type
<count> ::= an integer in NR1 format:
1, always 1 and is present for compatibility
:WAVeform:SOURce :WAVeform:SOURce? <n> ::=
CHANnel <n> {1 | 2} for the 54600/03/10/15/16
{1 | 2 | 3 | 4} for the 54601/02
n/a :WAVeform:TYPE? <return_mode> ::= {NORMal | PEAK | AVERage}
n/a :WAVeform:XINCrement? <return_value> ::= x-increment in the current preamble in NR3 format
n/a :WAVeform:XORigin? <return_value> ::= x-origin value in the current preamble in NR3 format
n/a :WAVeform:XREFerence? <return_value> ::= x-reference value in the current preamble in NR1
format
n/a :WAVeform:YINCrement? <return_value> ::= y-increment value in the current preamble in NR3
format
n/a :WAVeform:YORigin? <return_value> ::= y-origin in the current preamble in NR3 format
n/a :WAVeform:YREFerence? <return_value>::= y-reference value in the current preamble in NR1
format

8–18
Index

A D I
Addressing, 3–4 to 3–5 Data bits, 4–8 to 4–9 IEEE 488.1, 4–2
alpha argument, 5–10 8-Bit mode, 4–9 IEEE 488.2, 4–2, 5–6
Arguments, 1–5 Data Carrier Detect (DCD), 4–6 Standard, 1–2
Data Communications Equipment, 4–3 Infinity Representation, 5–11
B Data Set Ready (DSR), 4–6 Initialization, 2–3
BASIC, 1–3 Data Terminal Equipment, 4–3 Instruction headers, 1–5
Baud rate, 4–7 to 4–8 Data Terminal Ready (DTR), 4–5, 4–8 Instruction syntax, 1–4
Block data, 1–5, 2–11 DCE, 4–3 Instructions, 1–4
DDE - device specific error, 6–4 Instrument address
C Definite-length block response data, 2–11 GPIB, 3–5
Cable Device address, 1–4 Interface Capabilities, 3–3
RS-232-C, 4–3 GPIB, 3–5 RS-232-C, 4–8
carriage return, 5–9 DIGitize Command, 2–6 Interface select code
Character data, 1–10 documentation conventions, 5–2 GPIB, 3–5
Character program data, 1–10 DTE, 4–3
Clear To Send (CTS), 4–6 DTR (Data Terminal Ready), 4–8 L
CME - command error, 6–4 Duplicate mnemonics, 1–7 leading colon, 5–8 to 5–9
Combining commands, 1–7 linefeed, 5–6
Command, 1–5 E linefeed (CRLF), 5–9
Common Commands, 5–6 Embedded strings, 1–3, 1–5, 1–11 lockout, 3–6
Lockout, 4–10 Enter statement, 1–3 Lockout command, 4–10
Root Level Commands, 5–6 EOI, 1–12 Long form, 1–9
Subsystem Commands, 5–8 ESB - event status bit, 6–4 Lowercase, 1–9
Command structure, 2–5 Example Program, 2–5
Command Tree, 5–6 to 5–9 EXE - execution error, 6–4 M
Command Types, 5–6 Exponents, 1–10 MAV - message available, 6–4
Common command header, 1–6 mnemonic, 5–10
common commands, 5–6 F MSS - master summary status, 6–4
Communication, 1–3 Fractional values, 1–10 Multiple numeric variables, 2–12
Compound command header, 1–6 Multiple program commands, 1–12
compound header, 5–8 G Multiple program data, 1–10
Controllers, 1–3 GPIB, 3–5 Multiple queries, 2–12
conventions, 5–2 Addressing, 3–4 to 3–5 Multiple subsystems, 1–12

H N
Handshake, 4–7 NL, 1–12, 5–6
Headers, 1–5 to 1–6, 5–10 Notation Conventions and Definitions, 5–12
Host language, 1–5 Numeric data, 1–10
Numeric program data, 1–10
Numeric variables, 2–10

Index–1
Index

O S
OPC - operation complete, 6–4 Separator, 1–5
Operation Complete, 6–5 Sequential commands, 5–11
Output command, 1–4 Serial Poll, 6–6 to 6–7
OUTPUT statement, 1–3 707, 2–9
Overlapped Commands, 5–11 Short form, 1–9
Simple command header, 1–6
P Spaces, 1–5
Parallel Poll, 6–6 Status, 2–12
Parameters, 1–5 Status Byte, 6–5
Parity, 4–8 Status registers, 2–12
Parser, 2–3 Status Reporting, 6–2
Program data, 1–5, 1–10 Stop bits, 4–8
Program example, 2–5 String variables, 2–9
program message, 5–9 Subsystem commands, 5–6
Program message syntax, 1–4
Program message terminator, 1–12, 5–8 T
program message unit separator, 5–9 Talking to the instrument, 1–3
Program syntax, 1–4 Terminator, 1–12
programming conventions, 5–2 Three-wire Interface, 4–4
Protocol, 4–8 Transmit Data (TD), 4–4, 4–6
DTR (Data Terminal Ready), 4–8 Transmit On/Transmit Off, 4–8
XON/XOFF, 4–8 TRG - trigger, 6–4
Trigger Bit, 6–5
Q Truncation Rules, 5–10
Query, 1–5, 1–8
Query command, 1–8 U
Query response, 2–8 Uppercase, 1–9
query responses, 5–11 URQ - user request, 6–4
Question mark, 1–8
QYE - query error, 6–4 W
White space, 1–5
R
Receive Data (RD), 4–4, 4–6 X
Request To Send (RTS), 4–6 XON/XOFF, 4–8
Response data, 2–11
Response Generation, 5–11
Root Level commands, 5–6
RQC - request control, 6–4
RQS - request service, 6–4
RS-232-C, 4–2
Baud rate, 4–7
Handshake, 4–7
Protocol, 4–7

Index–2
© Copyright Agilent Safety · Service instructions are for Safety Symbols
Technologies 1995-1996, 2001 This apparatus has been trained service personnel. To
All Rights Reserved. designed and tested in avoid dangerous electric
accordance with IEC shock, do not perform any
Instruction manual symbol:
Publication 1010, Safety service unless qualified to do
Microsoft is a registered the product is marked with
Requirements for Measuring so. Do not attempt internal
trademark of Microsoft this symbol when it is
Apparatus, and has been service or adjustment unless
Corporation. necessary for you to refer to
supplied in a safe condition. another person, capable of
the instruction manual in
This is a Safety Class I rendering first aid and
order to protect against
Reproduction, adaptation, or instrument (provided with resuscitation, is present.
damage to the product.
translation without prior terminal for protective · If you energize this
written permission is earthing). Before applying instrument by an auto
prohibited, except as allowed power, verify that the correct transformer (for voltage
under the copyright laws. safety precautions are taken reduction), make sure the
(see the following warnings). common terminal is Hazardous voltage symbol.
Restricted Rights Legend. In addition, note the external connected to the earth
Use, duplication or disclosure markings on the instrument terminal of the power source.
by the U.S. Government is that are described under
"Safety Symbols."
· Whenever it is likely that
subject to restrictions as set the ground protection is
forth in subparagraph (c) (1) Earth terminal symbol: Used
impaired, you must make the to indicate a circuit common
(ii) of the Rights in Technical Warning
instrument inoperative and connected to grounded
Data and Computer Software · Before turning on the secure it against any
clause at DFARS chassis.
instrument, you must connect unintended operation.
252.227-7013 for DOD the protective earth terminal
agencies, and subparagraphs of the instrument to the
· Do not operate the
WARNING
instrument in the presence of
(c) (1) and (c) (2) of the protective conductor of the
flammable gasses or fumes. The Warning sign denotes a
Commercial Computer (mains) power cord. The
Operation of any electrical hazard. It calls attention to a
Software Restricted Rights mains plug shall only be
instrument in such an procedure, practice, or the
clause at FAR 52.227-19 for inserted in a socket outlet
environment constitutes a like, which, if not correctly
other agencies. provided with a protective
definite safety hazard. performed or adhered to,
Agilent Technologies earth contact. You must not
· Do not install substitute could result in personal
negate the protective action
3000 Hanover Street Palo parts or perform any injury. Do not proceed
by using an extension cord
Alto, California 94304 U.S.A. unauthorized modification to beyond a Warning sign until
(power cable) without a
the instrument. the indicated conditions are
protective conductor
Document Warranty fully understood and met.
(grounding). Grounding one · Capacitors inside the
The information contained in conductor of a two-conductor instrument may retain a
this document is subject to outlet is not sufficient CAUTION
charge even if the instrument
change without notice. protection. is disconnected from its The Caution sign denotes a
Agilent Technologies · Only fuses with the source of supply.
makes no warranty of any hazard. It calls attention to
kind with regard to this
required rated current, · Use caution when exposing an operating procedure,
voltage, and specified type or handling the CRT. practice, or the like, which, if
material, including, but (normal blow, time delay,
not limited to, the implied Handling or replacing the not correctly performed or
etc.) should be used. Do not CRT shall be done only by adhered to, could result in
warranties of use repaired fuses or
merchantability or fitness qualified maintenance damage to or destruction of
short-circuited fuseholders. personnel. part or all of the product. Do
for a particular purpose. To do so could cause a shock not proceed beyond a
Agilent Technologies shall or fire hazard. Caution symbol until the
not be liable for errors indicated conditions are fully
contained herein or for understood or met.
damages in connection with
the furnishing, performance,
or use of this material.

Agilent Technologies
P.O. Box 2197
1900 Garden of the Gods Road
Colorado Springs, CO 80901
Product Warranty No other warranty is About this edition
This Agilent Technologies expressed or implied. This is the first edition of the
product has a warranty Agilent Technologies Agilent 54600-Series
against defects in material specifically disclaims the Oscilloscopes Programmer’s
and workmanship for a period implied warranties of Guide.
of three years from date of merchantability or fitness
shipment. During the for a particular purpose.
Publication number
warranty period, Agilent 54600-97032, April 2001
Technologies will, at its Exclusive Remedies
option, either repair or The remedies provided herein Printed in USA.
replace products that prove are the buyer’s sole and
to be defective. exclusive remedies. Agilent Print history is as follows:
For warranty service or Technologies shall not be 54600-97032, April 2001
repair, this product must be liable for any direct, indirect,
special, incidental, or 54600-97017, July 1996
returned to a service facility
designated by Agilent consequential damages, 54600-97015, October 1996
Technologies. whether based on contract, 54600-97014, April 1995
For products returned to tort, or any other legal theory.
Agilent Technologies for New editions are complete
warranty service, the Buyer Assistance revisions of the manual. Many
shall prepay shipping charges Product maintenance product updates do not
to Agilent Technologies and agreements and other require manual changes; and,
Agilent Technologies shall customer assistance conversely, manual
pay shipping charges to agreements are available for corrections may be done
return the product to the Agilent Technologies without accompanying
Buyer. However, the Buyer products. product changes. Therefore,
shall pay all shipping charges, For any assistance, contact do not expect a one-to-one
duties, and taxes for products your nearest Agilent correspondence between
returned to Agilent Technologies Sales Office. product updates and manual
Technologies from another updates.
country. Certification
Agilent Technologies Agilent Technologies certifies
warrants that its software and that this product met its
firmware designated by published specifications at
Agilent Technologies for use the time of shipment from the
with an instrument will factory. Agilent Technologies
execute its programming further certifies that its
instructions when properly calibration measurements are
installed on that instrument. traceable to the United States
Agilent Technologies does National Institute of
not warrant that the Standards and Technology, to
operation of the instrument the extent allowed by the
software, or firmware will be Institute’s calibration facility,
uninterrupted or error free. and to the calibration
facilities of other
Limitation of Warranty International Standards
The foregoing warranty shall Organization members.
not apply to defects resulting
from improper or inadequate
maintenance by the Buyer,
Buyer-supplied software or
interfacing, unauthorized
modification or misuse,
operation outside of the
environmental specifications
for the product, or improper
site preparation or
maintenance.

You might also like