Keysight Infiniium Oscilloscopes Programmer's Guide Prog

Infiniium_prog_guide

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 1782

DownloadKeysight Infiniium Oscilloscopes Programmer's Guide Prog
Open PDF In BrowserView PDF
Keysight Infiniium Oscilloscopes

Programmer's
Guide

Notices
© Keysight Technologies, Inc. 2007-2018

U.S. Government Rights

No part of this manual may be reproduced in
any form or by any means (including
electronic storage and retrieval or
translation into a foreign language) without
prior agreement and written consent from
Keysight Technologies, Inc. as governed by
United States and international copyright
laws.

The Software is "commercial computer
software," as defined by Federal Acquisition
Regulation ("FAR") 2.101. Pursuant to FAR
12.212 and 27.405-3 and Department of
Defense FAR Supplement ("DFARS")
227.7202, the U.S. government acquires
commercial computer software under the
same terms by which the software is
customarily provided to the public.
Accordingly, Keysight provides the Software
to U.S. government customers under its
standard commercial license, which is
embodied in its End User License Agreement
(EULA), a copy of which can be found at
www.keysight.com/find/sweula. The
license set forth in the EULA represents the
exclusive authority by which the U.S.
government may use, modify, distribute, or
disclose the Software. The EULA and the
license set forth therein, does not require or
permit, among other things, that Keysight:
(1) Furnish technical information related to
commercial computer software or
commercial computer software
documentation that is not customarily
provided to the public; or (2) Relinquish to,
or otherwise provide, the government rights
in excess of these rights customarily
provided to the public to use, modify,
reproduce, release, perform, display, or
disclose commercial computer software or
commercial computer software
documentation. No additional government
requirements beyond those set forth in the
EULA shall apply, except to the extent that
those terms, rights, or licenses are explicitly
required from all providers of commercial
computer software pursuant to the FAR and
the DFARS and are set forth specifically in
writing elsewhere in the EULA. Keysight
shall be under no obligation to update,
revise or otherwise modify the Software.
With respect to any technical data as
defined by FAR 2.101, pursuant to FAR
12.211 and 27.404.2 and DFARS 227.7102,
the U.S. government acquires no greater
than Limited Rights as defined in FAR 27.401
or DFAR 227.7103-5 (c), as applicable in any
technical data.

Revision
Version 06.20.00701

Ed ition
April 2018
Available in electronic format only
Published by:
Keysight Technologies, Inc.
1900 Garden of the Gods Road
Colorado Springs, CO 80907 USA

Warranty
The material contained in this document is
provided "as is," and is subject to being
changed, without notice, in future ed itions.
Further, to the maximum extent permitted
by applicable law, Keysight d isclaims all
warranties, either express or implied, with
regard to this manual and any information
contained herein, includ ing but not limited
to the implied warranties of
merchantability and fitness for a particular
purpose. Keysight shall not be liable for
errors or for incidental or consequential
damages in connection with the furnishing,
use, or performance of this document or of
any information contained herein. Should
Keysight and the user have a separate
written agreement with warranty terms
covering the material in this document that
conflict with these terms, the warranty
terms in the separate agreement shall
control.

Technology License
The hardware and/or software described in
this document are furnished under a license
and may be used or copied only in
accordance with the terms of such license.

2

Safety Notices
CAUTION
A CAUTION notice denotes a hazard.
It calls attention to an operating
procedure, practice, or the like that,
if not correctly performed or
adhered to, could result in damage
to the product or loss of important
data. Do not proceed beyond a
CAUTION notice until the indicated
conditions are fully understood and
met.

WARNING
A WARNING notice denotes a
hazard. It calls attention to an
operating procedure, practice, or
the like that, if not correctly
performed or adhered to, could
resul t in personal injury or death.
Do not proceed beyond a WARNING
notice until the ind icated
cond itions are fully understood and
met.

Keysight Infiniium Oscilloscopes Programmer's Guide

In This Book
This book is your guide to programming Infiniium oscilloscopes that have the 5.00
or greater, next-generation user interface software. Supported models include:
•

9000 Series and 9000H Series oscilloscopes.

•

S-Series oscilloscopes.

•

90000A Series oscilloscopes.

•

90000 X-Series oscilloscopes.

•

V-Series oscilloscopes.

•

90000 Q-Series oscilloscopes.

•

Z-Series oscilloscopes.

•

N8900A Infiniium Offline oscilloscope analysis software.

In this book, Chapter 1, “What's New,” starting on page 43, describes
programming command changes in the latest version of oscilloscope software.
Chapter 2, “Setting Up,” starting on page 91, describes the steps you must take
before you can control the oscilloscope with remote programs.
The next several chapters give you an introduction to programming the
oscilloscopes, along with necessary conceptual information. These chapters
describe basic program communications, interface, syntax, data types, and status
reporting:
•

Chapter 3, “Introduction to Programming,” starting on page 99

•

Chapter 4, “Sequential (Blocking) vs. Overlapped Commands,” starting on page
135

•

Chapter 5, “LAN, USB, and GPIB Interfaces,” starting on page 137

•

Chapter 6, “Message Communication and System Functions,” starting on page
149

•

Chapter 7, “Status Reporting,” starting on page 153

•

Chapter 8, “Remote Acquisition Synchronization,” starting on page 183

•

Chapter 9, “Programming Conventions,” starting on page 201

The next chapters describe the commands used to program the oscilloscopes.
Each chapter describes the set of commands that belong to an individual
subsystem, and explains the function of each command.
•

Chapter 10, “Acquire Commands,” starting on page 209

•

Chapter 11, “Analyze Commands,” starting on page 243

•

Chapter 12, “Bus Commands,” starting on page 287

•

Chapter 13, “Calibration Commands,” starting on page 299

•

Chapter 14, “Channel Commands,” starting on page 311

•

Chapter 15, “Common Commands,” starting on page 413

•

Chapter 16, “Digital Commands,” starting on page 437

Keysight Infiniium Oscilloscopes Programmer's Guide

3

•

Chapter 17, “Disk Commands,” starting on page 443

•

Chapter 18, “Display Commands,” starting on page 461

•

Chapter 19, “Function Commands,” starting on page 505

•

Chapter 20, “Hardcopy Commands,” starting on page 565

•

Chapter 21, “Histogram Commands,” starting on page 571

•

Chapter 22, “Hosted Commands,” starting on page 585

•

Chapter 23, “InfiniiScan (ISCan) Commands,” starting on page 611

•

Chapter 24, “Limit Test Commands,” starting on page 633

•

Chapter 25, “Lister Commands,” starting on page 643

•

Chapter 26, “Marker Commands,” starting on page 647

•

Chapter 27, “Mask Test Commands,” starting on page 667

•

Chapter 28, “Measure Commands,” starting on page 735

•

Chapter 29, “Pod Commands,” starting on page 1009

•

Chapter 30, “Root Level Commands,” starting on page 1015

•

Chapter 31, “Serial Bus Commands,” starting on page 1053

•

Chapter 32, “Self-Test Commands,” starting on page 1131

•

Chapter 33, “Serial Data Equalization Commands,” starting on page 1135

•

Chapter 34, “System Commands,” starting on page 1181

•

Chapter 35, “Time Base Commands,” starting on page 1201

•

Chapter 36, “Trigger Commands,” starting on page 1215

•

Chapter 37, “Waveform Commands,” starting on page 1415

•

Chapter 38, “Waveform Memory Commands,” starting on page 1479

•

Chapter 39, “Xtalk (Crosstalk Analysis) Commands,” starting on page 1493

Chapter 40, “Obsolete and Discontinued Commands,” starting on page 1531,
describes obsolete (deprecated) commands that still work but have been replaced
by newer commands, and lists discontinued commands that are no longer
supported.
Chapter 41, “Error Messages,” starting on page 1579, describes error messages.
Chapter 42, “Sample Programs,” starting on page 1591, shows example programs
in various languages using the VISA COM, VISA, and SICL libraries.
Finally, Chapter 43, “Reference,” starting on page 1727, contains file format
descriptions.
See Also

4

•

For more information on using the SICL, VISA, and VISA COM libraries in
general, see the documentation that comes with the Keysight IO Libraries
Suite.

•

For information on controller PC interface configuration, see the
documentation for the interface card used (for example, the Keysight 82350A
GPIB interface).

Keysight Infiniium Oscilloscopes Programmer's Guide

•

For information on oscilloscope front-panel operation, see the User's Guide.

•

For detailed connectivity information, refer to the Keysight Technologies
USB/LAN/GPIB Connectivity Guide. For a printable electronic copy of the
Connectivity Guide, direct your Web browser to www.keysight.com and search
for "Connectivity Guide".

•

For the latest versions of this and other manuals, see:
http://www.keysight.com/find/Infiniium-manuals

Keysight Infiniium Oscilloscopes Programmer's Guide

5

6

Keysight Infiniium Oscilloscopes Programmer's Guide

Contents
In This Book / 3

1 What's New
What's New in Version 6.20 / 44
What's New in Version 6.10 / 47
What's New in Version 6.00 / 49
What's New in Version 5.75 / 53
What's New in Version 5.70 / 54
What's New in Version 5.60 / 57
What's New in Version 5.52 / 60
What's New in Version 5.51 / 61
What's New in Version 5.50 / 62
What's New in Version 5.30 / 68
What's New in Version 5.20 / 70
What's New in Version 5.10 / 72
What's New in Version 5.00 / 73
What's New in Version 4.60 / 77
What's New in Version 4.50 / 78
What's New in Version 4.30 / 79
What's New in Version 4.20 / 80
What's New in Version 4.10 / 81
What's New in Version 4.00 / 82
What's New in Version 3.50 / 83
What's New in Version 3.20 / 85
What's New in Version 3.11 / 86
What's New in Version 3.10 / 87

Keysight Infiniium Oscilloscopes Programmer's Guide

7

2 Setting Up
Step 1. Install Keysight IO Libraries Suite software / 92
Step 2. Connect and set up the oscilloscope / 93
Using the USB (Device) Interface / 93
Using the LAN Interface / 93
Step 3. Verify the oscilloscope connection / 94

3 Introduction to Programming
Communicating with the Oscilloscope / 101
Instructions / 102
Instruction Header / 103
White Space (Separator) / 104
Braces / 105
Ellipsis / 106
Square Brackets / 107
Command and Query Sources / 108
Program Data / 109
Header Types / 110
Simple Command Header / 110
Compound Command Header / 110
Combining Commands in the Same Subsystem / 111
Common Command Header / 111
Duplicate Mnemonics / 111
Query Headers / 112
Program Header Options / 113
Character Program Data / 114
Numeric Program Data / 115
Embedded Strings / 116
Program Message Terminator / 117
Common Commands within a Subsystem / 118
Selecting Multiple Subsystems / 119
Programming Getting Started / 120
Referencing the IO Library / 121

8

Keysight Infiniium Oscilloscopes Programmer's Guide

Opening the Oscilloscope Connection via the IO Library / 122
Initializing the Interface and the Oscilloscope / 123
Autoscale / 123
Setting Up the Oscilloscope / 124
Example Program / 125
Using the DIGitize Command / 126
Receiving Information from the Oscilloscope / 128
String Variable Example / 129
Numeric Variable Example / 130
Definite-Length Block Response Data / 131
Multiple Queries / 132
Oscilloscope Status / 133

4 Sequential (Blocking) vs. Overlapped Commands
5 LAN, USB, and GPIB Interfaces
LAN Interface Connector / 138
GPIB Interface Connector / 139
Default Startup Conditions / 140
Interface Capabilities / 141
GPIB Command and Data Concepts / 142
Communicating Over the GPIB Interface / 143
Interface Select Code / 143
Oscilloscope Address / 143
Communicating Over the LAN Interface / 144
Communicating via Telnet and Sockets / 145
Telnet / 145
Sockets / 145
Bus Commands / 147
Device Clear / 147
Group Execute Trigger / 147
Interface Clear / 147

Keysight Infiniium Oscilloscopes Programmer's Guide

9

6 Message Communication and System Functions
Protocols / 150
Functional Elements / 150
Protocol Overview / 150
Protocol Operation / 151
Protocol Exceptions / 151
Suffix Multiplier / 151
Suffix Unit / 152

7 Status Reporting
Status Reporting Data Structures / 156
Status Byte Register / 158
Service Request Enable Register / 160
Message Event Register / 161
Trigger Event Register / 162
Standard Event Status Register / 163
Standard Event Status Enable Register / 164
Operation Status Register / 165
Operation Status Enable Register / 166
Mask Test Event Register / 167
Mask Test Event Enable Register / 168
Acquisition Done Event Register / 169
Process Done Event Register / 170
Trigger Armed Event Register / 171
Auto Trigger Event Register / 172
Error Queue / 173
Output Queue / 174
Message Queue / 175
Clearing Registers and Queues / 176
Example: Checking for Armed Status / 178

8 Remote Acquisition Synchronization
Programming Flow / 184
Setting Up the Oscilloscope / 185

10

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquiring a Waveform / 186
Retrieving Results / 187
Acquisition Synchronization / 188
Blocking Synchronization / 188
Polling Synchronization With Timeout / 188
Example: Blocking and Polling Synchronization / 189
Single Shot Device Under Test (DUT) / 198
Averaging Acquisition Synchronization / 199

9 Programming Conventions
Truncation Rule / 202
The Command Tree / 203
Command Types / 203
Tree Traversal Rules / 203
Tree Traversal Examples / 204
Infinity Representation / 206
Response Generation / 207
EOI / 208

10 Acquire Commands
:ACQuire:AVERage / 211
:ACQuire[:AVERage]:COUNt / 212
:ACQuire:BANDwidth / 213
:ACQuire:BANDwidth:FRAMe? / 215
:ACQuire:BANDwidth:TESTLIMITS? / 216
:ACQuire:COMPlete / 217
:ACQuire:COMPlete:STATe / 219
:ACQuire:HRESolution / 220
:ACQuire:INTerpolate / 222
:ACQuire:MODE / 223
:ACQuire:POINts[:ANALog] — Memory depth / 225
:ACQuire:POINts:AUTO / 227
:ACQuire:POINts:DIGital? / 228
:ACQuire:POINts:TESTLIMITS? / 229
:ACQuire:REDGe — RealEdge Channel Inputs (90000 Q-Series, Z-Series) / 230
:ACQuire:RESPonse (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 231
:ACQuire:SEGMented:AUToplay / 232
:ACQuire:SEGMented:COUNt / 233
Keysight Infiniium Oscilloscopes Programmer's Guide

11

:ACQuire:SEGMented:INDex / 234
:ACQuire:SEGMented:PLAY / 235
:ACQuire:SEGMented:PRATe / 236
:ACQuire:SEGMented:TTAGs / 237
:ACQuire:SRATe[:ANALog] — Analog Sample Rate / 238
:ACQuire:SRATe[:ANALog]:AUTO / 239
:ACQuire:SRATe:DIGital — Digital Channels Sample Rate / 240
:ACQuire:SRATe:DIGital:AUTO / 241
:ACQuire:SRATe:TESTLIMITS? / 242

11 Analyze Commands
:ANALyze:AEDGes / 245
:ANALyze:CLOCk / 246
:ANALyze:CLOCk:METHod / 247
:ANALyze:CLOCk:METHod:ALIGn / 250
:ANALyze:CLOCk:METHod:DEEMphasis / 252
:ANALyze:CLOCk:METHod:EDGE / 253
:ANALyze:CLOCk:METHod:IDLe / 255
:ANALyze:CLOCk:METHod:JTF / 256
:ANALyze:CLOCk:METHod:OJTF / 259
:ANALyze:CLOCk:METHod:PLLTrack / 262
:ANALyze:CLOCk:METHod:SKEW / 263
:ANALyze:CLOCk:METHod:SOURce / 264
:ANALyze:CLOCk:VERTical / 265
:ANALyze:CLOCk:VERTical:OFFSet / 266
:ANALyze:CLOCk:VERTical:RANGe / 267
:ANALyze:SIGNal:DATarate / 268
:ANALyze:SIGNal:SYMBolrate / 270
:ANALyze:SIGNal:MIXer:CABLeloss / 272
:ANALyze:SIGNal:MMWave:CALibrate / 273
:ANALyze:SIGNal:MMWave:CFRequency / 274
:ANALyze:SIGNal:MMWave:CONNect / 275
:ANALyze:SIGNal:MMWave:LOADdress / 276
:ANALyze:SIGNal:MMWave:MBANdwidth / 277
:ANALyze:SIGNal:PATTern:CLEar / 278
:ANALyze:SIGNal:PATTern:LOAD / 279
:ANALyze:SIGNal:PATTern:PLENgth / 280
:ANALyze:SIGNal:PATTern:SMAP / 281
:ANALyze:SIGNal:TYPE / 282
:ANALyze:VIEW / 285

12

Keysight Infiniium Oscilloscopes Programmer's Guide

12 Bus Commands
:BUS:B:TYPE / 288
:BUS:BIT / 290
:BUS:BITS / 291
:BUS:CLEar / 292
:BUS:CLOCk / 293
:BUS:CLOCk:SLOPe / 294
:BUS:DISPlay / 295
:BUS:LABel / 296
:BUS:READout / 297

13 Calibration Commands
:CALibrate:DATE? / 301
:CALibrate:OUTPut / 302
:CALibrate:OUTPut:AUX / 304
:CALibrate:OUTPut:AUX:RTIMe / 305
:CALibrate:OUTPut:CAL / 306
:CALibrate:SKEW / 307
:CALibrate:STATus? / 308
:CALibrate:TEMP? / 309

14 Channel Commands
:CHANnel:BWLimit (9000 Series, 9000H Series, S-Series) / 314
:CHANnel:COMMonmode / 315
:CHANnel:DIFFerential / 316
:CHANnel:DIFFerential:SKEW / 317
:CHANnel:DISPlay / 318
:CHANnel:DISPlay:AUTO / 319
:CHANnel:DISPlay:OFFSet / 321
:CHANnel:DISPlay:RANGe / 323
:CHANnel:DISPlay:SCALe / 325
:CHANnel:INPut / 327
:CHANnel:INVert / 328
:CHANnel:ISIM:APPLy / 329
:CHANnel:ISIM:BANDwidth / 330
:CHANnel:ISIM:BWLimit / 332
:CHANnel:ISIM:BWLimit:TYPE / 334
:CHANnel:ISIM:CONVolve / 335
:CHANnel:ISIM:CORRection / 336
:CHANnel:ISIM:DEConvolve / 338
:CHANnel:ISIM:DELay / 339

Keysight Infiniium Oscilloscopes Programmer's Guide

13

:CHANnel:ISIM:NORMalize / 340
:CHANnel:ISIM:PEXTraction / 341
:CHANnel:ISIM:SPAN / 343
:CHANnel:ISIM:STATe / 344
:CHANnel:LABel / 345
:CHANnel:OFFSet / 346
:CHANnel:PROBe / 347
:CHANnel:PROBe:ACCAL / 348
:CHANnel:PROBe:ATTenuation / 349
:CHANnel:PROBe:AUTozero / 350
:CHANnel:PROBe:COUPling / 351
:CHANnel:PROBe:EADapter / 352
:CHANnel:PROBe:ECOupling / 355
:CHANnel:PROBe:EXTernal / 356
:CHANnel:PROBe:EXTernal:GAIN / 357
:CHANnel:PROBe:EXTernal:OFFSet / 358
:CHANnel:PROBe:EXTernal:UNITs / 359
:CHANnel:PROBe:GAIN / 360
:CHANnel:PROBe:HEAD:ADD / 361
:CHANnel:PROBe:HEAD:DELete ALL / 362
:CHANnel:PROBe:HEAD:SELect / 363
:CHANnel:PROBe:HEAD:VTERm / 364
:CHANnel:PROBe:ID? / 365
:CHANnel:PROBe:INFO? / 366
:CHANnel:PROBe:MODE / 367
:CHANnel:PROBe:PRECprobe:BANDwidth / 368
:CHANnel:PROBe:PRECprobe:CALibration / 369
:CHANnel:PROBe:PRECprobe:DELay / 370
:CHANnel:PROBe:PRECprobe:MODE / 371
:CHANnel:PROBe:PRECprobe:ZSRC / 372
:CHANnel:PROBe:PRIMary (9000 Series, 9000H Series, S-Series) / 374
:CHANnel:PROBe:SKEW / 375
:CHANnel:PROBe:STYPe / 376
:CHANnel:RANGe / 377
:CHANnel:SCALe / 378
:CHANnel:SIMulation:AMPLitude / 379
:CHANnel:SIMulation:DATA:LENGth / 380
:CHANnel:SIMulation:DATA:ODD / 381
:CHANnel:SIMulation:DATA:PAM / 382
:CHANnel:SIMulation:DATA:RESeed / 383
:CHANnel:SIMulation:DATA:SELection / 384
:CHANnel:SIMulation:DRATe / 385
14

Keysight Infiniium Oscilloscopes Programmer's Guide

:CHANnel:SIMulation:FILTer:ISIM:ADDRess / 386
:CHANnel:SIMulation:FILTer:ISIM:PEXTraction / 387
:CHANnel:SIMulation:FILTer:SELection / 388
:CHANnel:SIMulation:FLOad:ADDRess / 389
:CHANnel:SIMulation:FLOad:LOOP / 390
:CHANnel:SIMulation:FREQuency / 391
:CHANnel:SIMulation:FUNCtion:SELection / 392
:CHANnel:SIMulation:FUNCtion:SQUare:DCYCle / 393
:CHANnel:SIMulation:FUNCtion:SQUare:FTIMe / 394
:CHANnel:SIMulation:FUNCtion:SQUare:RTIMe / 395
:CHANnel:SIMulation:JITTer / 396
:CHANnel:SIMulation:JITTer:ABUJ / 397
:CHANnel:SIMulation:JITTer:PERiodic:ENABle / 398
:CHANnel:SIMulation:JITTer:PERiodic:FREQuency / 399
:CHANnel:SIMulation:JITTer:PERiodic:MAGNitude / 400
:CHANnel:SIMulation:JITTer:PERiodic:SHAPe / 401
:CHANnel:SIMulation:JITTer:RANDom / 402
:CHANnel:SIMulation:NOISe / 403
:CHANnel:SIMulation:NOISe:BWLimit / 404
:CHANnel:SIMulation:NOISe:PERiodic:ENABle / 405
:CHANnel:SIMulation:NOISe:PERiodic:FREQuency / 406
:CHANnel:SIMulation:NOISe:PERiodic:MAGNitude / 407
:CHANnel:SIMulation:NOISe:PERiodic:SHAPe / 408
:CHANnel:SIMulation:NOISe:RANDom / 409
:CHANnel:SIMulation:OFFSet / 410
:CHANnel:SIMulation:WAVeform / 411
:CHANnel:UNITs / 412

15 Common Commands
*CLS — Clear Status / 415
*ESE — Event Status Enable / 416
*ESR? — Event Status Register / 418
*IDN? — Identification Number / 419
*LRN? — Learn / 420
*OPC — Operation Complete / 422
*OPT? — Option / 423
*PSC — Power-on Status Clear / 426
*RCL — Recall / 427
*RST — Reset / 428
*SAV — Save / 429
*SRE — Service Request Enable / 430

Keysight Infiniium Oscilloscopes Programmer's Guide

15

*STB? — Status Byte / 432
*TRG — Trigger / 434
*TST? — Test / 435
*WAI — Wait / 436

16 Digital Commands
:DIGital:DISPlay / 438
:DIGital:LABel / 439
:DIGital:SIZE / 440
:DIGital:THReshold / 441

17 Disk Commands
:DISK:CDIRectory / 444
:DISK:COPY / 445
:DISK:DELete / 446
:DISK:DIRectory? / 447
:DISK:LOAD / 448
:DISK:MDIRectory / 449
:DISK:PWD? / 450
:DISK:SAVE:COMPosite / 451
:DISK:SAVE:IMAGe / 452
:DISK:SAVE:JITTer / 453
:DISK:SAVE:LISTing / 454
:DISK:SAVE:MEASurements / 455
:DISK:SAVE:PRECprobe / 456
:DISK:SAVE:SETup / 457
:DISK:SAVE:WAVeform / 458
:DISK:SEGMented / 460

18 Display Commands
:DISPlay:BOOKmark:DELete / 463
:DISPlay:BOOKmark:SET / 464
:DISPlay:BOOKmark:VERTical? / 466
:DISPlay:BOOKmark:XPOSition / 467
:DISPlay:BOOKmark:YPOSition / 468
:DISPlay:CGRade / 469
:DISPlay:CGRade:LEVels? / 471
:DISPlay:CGRade:SCHeme / 473
:DISPlay:CONNect / 475
:DISPlay:DATA? / 476
:DISPlay:GRATicule / 477

16

Keysight Infiniium Oscilloscopes Programmer's Guide

:DISPlay:GRATicule:AREA:STATe / 478
:DISPlay:GRATicule:INTensity / 479
:DISPlay:GRATicule:NUMBer / 480
:DISPlay:GRATicule:SETGrat / 481
:DISPlay:ISIM:GCOunt / 482
:DISPlay:ISIM:SELectgraph / 483
:DISPlay:ISIM:SOURce / 484
:DISPlay:JITTer:GCOunt / 485
:DISPlay:JITTer:SELectgraph / 486
:DISPlay:JITTer:THReshold / 488
:DISPlay:LABel / 489
:DISPlay:LAYout / 490
:DISPlay:MAIN / 491
:DISPlay:NOISe:LEVel / 492
:DISPlay:PERSistence / 493
:DISPlay:PROPortion / 495
:DISPlay:PROPortion:RESults / 496
:DISPlay:PRECprobe:GCOunt / 497
:DISPlay:PRECprobe:SELectgraph / 498
:DISPlay:PRECprobe:SOURce / 499
:DISPlay:SCOLor / 500
:DISPlay:STATus:COLumn / 502
:DISPlay:STATus:ROW / 503
:DISPlay:WINDow:MAXimize / 504

19 Function Commands
:FUNCtion? / 508
:FUNCtion:ABSolute / 509
:FUNCtion:ADD / 510
:FUNCtion:ADEMod / 511
:FUNCtion:AVERage / 512
:FUNCtion:COMMonmode / 513
:FUNCtion:DELay — Delay / 514
:FUNCtion:DIFF — Differentiate / 515
:FUNCtion:DISPlay / 516
:FUNCtion:DIVide / 517
:FUNCtion:FFT:DETector:POINts / 518
:FUNCtion:FFT:DETector:TYPE / 519
:FUNCtion:FFT:FREQuency / 520
:FUNCtion:FFT:REFerence / 521
:FUNCtion:FFT:RESolution / 522

Keysight Infiniium Oscilloscopes Programmer's Guide

17

:FUNCtion:FFT:SPAN / 524
:FUNCtion:FFT:STOP / 525
:FUNCtion:FFT:TDELay / 526
:FUNCtion:FFT:VUNits / 527
:FUNCtion:FFT:WINDow / 528
:FUNCtion:FFTMagnitude / 530
:FUNCtion:FFTPhase / 531
:FUNCtion:GATing — Gating / 532
:FUNCtion:GATing:STARt — Gating window start time / 533
:FUNCtion:GATing:STOP — Gating window stop time / 534
:FUNCtion:HIGHpass / 535
:FUNCtion:HORizontal / 536
:FUNCtion:HORizontal:POSition / 537
:FUNCtion:HORizontal:RANGe / 539
:FUNCtion:INTegrate / 541
:FUNCtion:INVert / 542
:FUNCtion:LOWPass / 543
:FUNCtion:MAGNify / 544
:FUNCtion:MATLab / 545
:FUNCtion:MATLab:CONTrol / 546
:FUNCtion:MATLab:OPERator / 547
:FUNCtion:MAXimum / 548
:FUNCtion:MHIStogram / 549
:FUNCtion:MINimum / 550
:FUNCtion:MLOG / 551
:FUNCtion:MTRend / 552
:FUNCtion:MULTiply / 553
:FUNCtion:OFFSet / 554
:FUNCtion:RANGe / 555
:FUNCtion:SMOoth / 556
:FUNCtion:SQRT / 557
:FUNCtion:SQUare / 558
:FUNCtion:SUBTract / 559
:FUNCtion:VERSus / 560
:FUNCtion:VERTical / 561
:FUNCtion:VERTical:OFFSet / 562
:FUNCtion:VERTical:RANGe / 563

20 Hardcopy Commands
:HARDcopy:AREA / 566
:HARDcopy:DPRinter / 567

18

Keysight Infiniium Oscilloscopes Programmer's Guide

:HARDcopy:FACTors / 568
:HARDcopy:IMAGe / 569
:HARDcopy:PRINters? / 570

21 Histogram Commands
:HISTogram:AXIS / 573
:HISTogram:HORizontal:BINS / 574
:HISTogram:MEASurement:BINS / 575
:HISTogram:MODE / 576
:HISTogram:SCALe:SIZE / 577
:HISTogram:VERTical:BINS / 578
:HISTogram:WINDow:DEFault / 579
:HISTogram:WINDow:SOURce / 580
:HISTogram:WINDow:LLIMit / 581
:HISTogram:WINDow:RLIMit / 582
:HISTogram:WINDow:BLIMit / 583
:HISTogram:WINDow:TLIMit / 584

22 Hosted Commands
:HOSTed:CALibrate:CALibrate / 587
:HOSTed:CALibrate:CHANnel / 588
:HOSTed:CALibrate:DESKew:CHANnels / 589
:HOSTed:CALibrate:DESKew:FRAMes / 590
:HOSTed:CALibrate:DESKew:SIGNals / 591
:HOSTed:CALibrate:DESKew:ZERO / 592
:HOSTed:CALibrate:LEVel / 593
:HOSTed:CALibrate:PROMpt / 595
:HOSTed:CALibrate:STATus:CHANnels? / 596
:HOSTed:CALibrate:STATus:FRAMes? / 597
:HOSTed:CALibrate:STATus:LEVel? / 598
:HOSTed:CALibrate:STATus:SIGNals? / 599
:HOSTed:CALibrate:TREF:DETect / 600
:HOSTed:FOLLower:ACHannels? / 601
:HOSTed:FOLLower:CONFigure / 602
:HOSTed:FOLLower:CONNect / 603
:HOSTed:FOLLower:DISConnect / 604
:HOSTed:LEADer:ACHannels? / 605
:HOSTed:LEADer:CONFigure / 606
:HOSTed:LEADer:CONNect / 607
:HOSTed:LEADer:DISConnect / 608
:HOSTed:NCONnected? / 609

Keysight Infiniium Oscilloscopes Programmer's Guide

19

:HOSTed:PERiodic / 610

23 InfiniiScan (ISCan) Commands
:ISCan:DELay / 612
:ISCan:MEASurement:FAIL / 613
:ISCan:MEASurement:LLIMit / 614
:ISCan:MEASurement / 615
:ISCan:MEASurement:ULIMit / 616
:ISCan:MODE / 617
:ISCan:NONMonotonic:EDGE / 618
:ISCan:NONMonotonic:HYSTeresis / 619
:ISCan:NONMonotonic:SOURce / 620
:ISCan:RUNT:HYSTeresis / 621
:ISCan:RUNT:LLEVel / 622
:ISCan:RUNT:SOURce / 623
:ISCan:RUNT:ULEVel / 624
:ISCan:SERial:PATTern / 625
:ISCan:SERial:SOURce / 626
:ISCan:ZONE:HIDE / 627
:ISCan:ZONE:SOURce / 628
:ISCan:ZONE:MODE / 629
:ISCan:ZONE:PLACement / 630
:ISCan:ZONE:SOURce / 631
:ISCan:ZONE:STATe / 632

24 Limit Test Commands
:LTESt:ADDStats / 634
:LTESt:FAIL / 635
:LTESt:LLIMit — Lower Limit / 637
:LTESt:MEASurement / 638
:LTESt:RESults? / 639
:LTESt:RUMode:SOFailure / 640
:LTESt:TEST / 641
:LTESt:ULIMit — Upper Limit / 642

25 Lister Commands
:LISTer:DATA? / 644
:LISTer:DISPlay / 645

26 Marker Commands
:MARKer:CURSor? / 648

20

Keysight Infiniium Oscilloscopes Programmer's Guide

:MARKer:DELTa / 649
:MARKer:MEASurement:MEASurement / 650
:MARKer:MODE / 651
:MARKer:TSTArt / 652
:MARKer:TSTOp / 653
:MARKer:VSTArt / 654
:MARKer:VSTOp / 655
:MARKer:X1Position / 656
:MARKer:X2Position / 657
:MARKer:X1Y1source / 658
:MARKer:X2Y2source / 660
:MARKer:XDELta? / 662
:MARKer:Y1Position / 663
:MARKer:Y2Position / 664
:MARKer:YDELta? / 665

27 Mask Test Commands
:MTESt:ALIGn / 669
:MTESt:AlignFIT / 670
:MTESt:AMASk:CREate / 672
:MTESt:AMASk:SOURce / 673
:MTESt:AMASk:SAVE / 675
:MTESt:AMASk:UNITs / 676
:MTESt:AMASk:XDELta / 677
:MTESt:AMASk:YDELta / 678
:MTESt:AUTO / 679
:MTESt:AVERage / 680
:MTESt:AVERage:COUNt / 681
:MTESt:COUNt:FAILures? / 682
:MTESt:COUNt:FUI? / 683
:MTESt:COUNt:FWAVeforms? / 684
:MTESt:COUNt:MARGin:FAILures? / 685
:MTESt:COUNt:SUI? / 686
:MTESt:COUNt:UI? / 687
:MTESt:COUNt:WAVeforms? / 688
:MTESt:DELete / 689
:MTESt:ENABle / 690
:MTESt:FOLDing (Clock Recovery software only) / 691
:MTESt:FOLDing:BITS / 693
:MTESt:FOLDing:COUNt:UI? / 695
:MTESt:FOLDing:COUNt:WAVeforms? / 697

Keysight Infiniium Oscilloscopes Programmer's Guide

21

:MTESt:FOLDing:FAST / 699
:MTESt:FOLDing:POSition / 701
:MTESt:FOLDing:SCALe / 703
:MTESt:FOLDing:TPOSition / 705
:MTESt:FOLDing:TSCale / 707
:MTESt:HAMPlitude / 709
:MTESt:IMPedance / 710
:MTESt:INVert / 711
:MTESt:LAMPlitude / 712
:MTESt:LOAD / 713
:MTESt:MARGin:AUTO:HITS / 714
:MTESt:MARGin:AUTO:HRATio / 715
:MTESt:MARGin:AUTO:METHod / 716
:MTESt:MARGin:METHod / 717
:MTESt:MARGin:PERCent / 718
:MTESt:MARGin:STATe / 719
:MTESt:NREGions? / 720
:MTESt:PROBe:IMPedance? / 721
:MTESt:RUMode / 722
:MTESt:RUMode:SOFailure / 723
:MTESt:SCALe:BIND / 724
:MTESt:SCALe:X1 / 725
:MTESt:SCALe:XDELta / 726
:MTESt:SCALe:Y1 / 727
:MTESt:SCALe:Y2 / 728
:MTESt:SOURce / 729
:MTESt:STARt / 730
:MTESt:STOP / 731
:MTESt:STIMe / 732
:MTESt:TITLe? / 733
:MTESt:TRIGger:SOURce / 734

28 Measure Commands
:MEASure:AREA / 745
:MEASure:BER / 747
:MEASure:BERPeracq / 748
:MEASure:BINTerval / 749
:MEASure:BPERiod / 750
:MEASure:BWIDth / 751
:MEASure:CDRRate / 752
:MEASure:CGRade:CROSsing / 753

22

Keysight Infiniium Oscilloscopes Programmer's Guide

:MEASure:CGRade:DCDistortion / 754
:MEASure:CGRade:EHEight / 755
:MEASure:CGRade:EWIDth / 757
:MEASure:CGRade:EWINdow / 759
:MEASure:CGRade:JITTer / 761
:MEASure:CGRade:OLEVel / 762
:MEASure:CGRade:QFACtor / 763
:MEASure:CGRade:ZLEVel / 764
:MEASure:CHARge (9000 Series, 9000H Series, S-Series) / 765
:MEASure:CLEar / 766
:MEASure:CROSsing / 767
:MEASure:CTCDutycycle / 768
:MEASure:CTCJitter / 770
:MEASure:CTCNwidth / 772
:MEASure:CTCPwidth / 774
:MEASure:DATarate / 776
:MEASure:DEEMphasis / 778
:MEASure:DELTatime / 780
:MEASure:DELTatime:DEFine / 782
:MEASure:DUTYcycle / 784
:MEASure:EDGE / 785
:MEASure:ERATio / 786
:MEASure:ETOedge / 787
:MEASure:FALLtime / 789
:MEASure:FFT:CPOWer / 791
:MEASure:FFT:DFRequency / 792
:MEASure:FFT:DMAGnitude / 794
:MEASure:FFT:FREQuency / 796
:MEASure:FFT:MAGNitude / 798
:MEASure:FFT:OBW / 800
:MEASure:FFT:PSD / 801
:MEASure:FREQuency / 802
:MEASure:HISTogram:FWHM / 804
:MEASure:HISTogram:HITS / 805
:MEASure:HISTogram:M1S / 806
:MEASure:HISTogram:M2S / 807
:MEASure:HISTogram:M3S / 808
:MEASure:HISTogram:MAX / 809
:MEASure:HISTogram:MEAN / 810
:MEASure:HISTogram:MEDian / 811
:MEASure:HISTogram:MIN / 812
:MEASure:HISTogram:MODE / 813
Keysight Infiniium Oscilloscopes Programmer's Guide

23

:MEASure:HISTogram:PEAK / 814
:MEASure:HISTogram:PP / 815
:MEASure:HISTogram:RESolution / 816
:MEASure:HISTogram:STDDev / 817
:MEASure:HOLDtime / 818
:MEASure:JITTer:HISTogram / 820
:MEASure:JITTer:MEASurement / 821
:MEASure:JITTer:SPECtrum / 822
:MEASure:JITTer:SPECtrum:HORizontal / 823
:MEASure:JITTer:SPECtrum:HORizontal:POSition / 824
:MEASure:JITTer:SPECtrum:HORizontal:RANGe / 825
:MEASure:JITTer:SPECtrum:RESolution / 826
:MEASure:JITTer:SPECtrum:VERTical / 827
:MEASure:JITTer:SPECtrum:VERTical:OFFSet / 828
:MEASure:JITTer:SPECtrum:VERTical:RANGe / 829
:MEASure:JITTer:SPECtrum:VERTical:TYPE / 830
:MEASure:JITTer:SPECtrum:WINDow / 831
:MEASure:JITTer:TRENd / 832
:MEASure:JITTer:TRENd:SMOoth / 833
:MEASure:JITTer:TRENd:SMOoth:POINts / 834
:MEASure:JITTer:TRENd:VERTical / 835
:MEASure:JITTer:TRENd:VERTical:OFFSet / 836
:MEASure:JITTer:TRENd:VERTical:RANGe / 837
:MEASure:NAME / 838
:MEASure:NCJitter / 839
:MEASure:NOISe / 841
:MEASure:NOISe:ALL? / 843
:MEASure:NOISe:BANDwidth / 845
:MEASure:NOISe:LOCation / 846
:MEASure:NOISe:METHod / 847
:MEASure:NOISe:REPort / 848
:MEASure:NOISe:RN / 849
:MEASure:NOISe:SCOPe:RN / 850
:MEASure:NOISe:STATe / 851
:MEASure:NOISe:UNITs / 852
:MEASure:NPERiod / 853
:MEASure:NPULses / 854
:MEASure:NUI / 855
:MEASure:NWIDth / 856
:MEASure:OMAMplitude / 857
:MEASure:OPOWer / 858
:MEASure:OVERshoot / 859
24

Keysight Infiniium Oscilloscopes Programmer's Guide

:MEASure:PAM:ELEVel / 861
:MEASure:PAM:EOJ / 863
:MEASure:PAM:ESKew / 864
:MEASure:PAM:EYE:ELMethod / 866
:MEASure:PAM:EYE:ESTiming / 867
:MEASure:PAM:EYE:PPERcent / 868
:MEASure:PAM:EYE:TIME:LTDefinition / 869
:MEASure:PAM:J4U / 870
:MEASure:PAM:JRMS / 871
:MEASure:PAM:LEVel / 872
:MEASure:PAM:LRMS / 874
:MEASure:PAM:LTHickness / 876
:MEASure:PAMPlitude / 878
:MEASure:PBASe / 879
:MEASure:PERiod / 880
:MEASure:PHASe / 882
:MEASure:PPContrast / 884
:MEASure:PPULses / 885
:MEASure:PREShoot / 886
:MEASure:PTOP / 888
:MEASure:PWIDth / 889
:MEASure:QUALifier:CONDition / 890
:MEASure:QUALifier:SOURce / 891
:MEASure:QUALifier:STATe / 892
:MEASure:RESults? / 893
:MEASure:RISetime / 896
:MEASure:RJDJ:ALL? / 898
:MEASure:RJDJ:APLength? / 900
:MEASure:RJDJ:BANDwidth / 901
:MEASure:RJDJ:BER / 902
:MEASure:RJDJ:CLOCk / 904
:MEASure:RJDJ:EDGE / 905
:MEASure:RJDJ:INTerpolate / 906
:MEASure:RJDJ:METHod / 907
:MEASure:RJDJ:MODe / 908
:MEASure:RJDJ:PAMThreshold / 909
:MEASure:RJDJ:PLENgth / 910
:MEASure:RJDJ:REPort / 911
:MEASure:RJDJ:RJ / 912
:MEASure:RJDJ:SCOPe:RJ / 913
:MEASure:RJDJ:SOURce / 914
:MEASure:RJDJ:STATe / 915
Keysight Infiniium Oscilloscopes Programmer's Guide

25

:MEASure:RJDJ:TJRJDJ? / 916
:MEASure:RJDJ:UNITs / 918
:MEASure:SCRatch / 919
:MEASure:SENDvalid / 920
:MEASure:SER / 921
:MEASure:SERPeracq / 922
:MEASure:SETuptime / 923
:MEASure:SLEWrate / 925
:MEASure:SOURce / 927
:MEASure:STATistics / 928
:MEASure:TEDGe / 929
:MEASure:THResholds:ABSolute / 930
:MEASure:THResholds:DISPlay / 931
:MEASure:THResholds:GENauto / 932
:MEASure:THResholds:GENeral:ABSolute / 933
:MEASure:THResholds:GENeral:HYSTeresis / 935
:MEASure:THResholds:GENeral:METHod / 937
:MEASure:THResholds:GENeral:PAMCustom / 939
:MEASure:THResholds:GENeral:PAMAutomatic / 941
:MEASure:THResholds:GENeral:PERCent / 943
:MEASure:THResholds:GENeral:TOPBase:ABSolute / 945
:MEASure:THResholds:GENeral:TOPBase:METHod / 947
:MEASure:THResholds:HYSTeresis / 948
:MEASure:THResholds:METHod / 950
:MEASure:THResholds:PERCent / 951
:MEASure:THResholds:RFALl:ABSolute / 952
:MEASure:THResholds:RFALl:METHod / 954
:MEASure:THResholds:RFALl:PAMAutomatic / 956
:MEASure:THResholds:RFALl:PERCent / 958
:MEASure:THResholds:RFALl:TOPBase:ABSolute / 960
:MEASure:THResholds:RFALl:TOPBase:METHod / 962
:MEASure:THResholds:SERial:ABSolute / 963
:MEASure:THResholds:SERial:HYSTeresis / 965
:MEASure:THResholds:SERial:METHod / 967
:MEASure:THResholds:SERial:PERCent / 968
:MEASure:THResholds:SERial:TOPBase:ABSolute / 970
:MEASure:THResholds:SERial:TOPBase:METHod / 972
:MEASure:THResholds:TOPBase:ABSolute / 973
:MEASure:THResholds:TOPBase:METHod / 974
:MEASure:TIEClock2 / 975
:MEASure:TIEData2 / 977
:MEASure:TIEFilter:SHAPe / 979
26

Keysight Infiniium Oscilloscopes Programmer's Guide

:MEASure:TIEFilter:STARt / 980
:MEASure:TIEFilter:STATe / 981
:MEASure:TIEFilter:STOP / 982
:MEASure:TIEFilter:TYPE / 983
:MEASure:TMAX / 984
:MEASure:TMIN / 985
:MEASure:TVOLt / 986
:MEASure:UITouijitter / 988
:MEASure:UNITinterval / 989
:MEASure:VAMPlitude / 991
:MEASure:VAVerage / 992
:MEASure:VBASe / 993
:MEASure:VLOWer / 994
:MEASure:VMAX / 995
:MEASure:VMIDdle / 996
:MEASure:VMIN / 997
:MEASure:VOVershoot / 998
:MEASure:VPP / 999
:MEASure:VPReshoot / 1000
:MEASure:VRMS / 1001
:MEASure:VTIMe / 1003
:MEASure:VTOP / 1004
:MEASure:VUPPer / 1005
:MEASure:WINDow / 1006
:MEASurement:NAME / 1007
:MEASurement:SOURce / 1008

29 Pod Commands
:POD:DISPlay / 1010
:POD:PSKew / 1011
:POD:THReshold / 1012

30 Root Level Commands
:ADER? — Acquisition Done Event Register / 1017
:AER? — Arm Event Register / 1018
:ASTate? / 1019
:ATER? — Auto Trigger Event Register / 1020
:AUToscale / 1021
:AUToscale:CHANnels / 1022
:AUToscale:PLACement / 1023
:AUToscale:VERTical / 1024

Keysight Infiniium Oscilloscopes Programmer's Guide

27

:BEEP / 1025
:BLANk / 1026
:CDISplay / 1027
:DIGitize / 1028
:DISable DIGital / 1030
:ENABle DIGital / 1031
:MODel? / 1032
:MTEEnable — Mask Test Enable Register / 1033
:MTERegister? — Mask Test Event Register / 1034
:OPEEnable — Operation Status Enable / 1035
:OPERegister? — Operation Status Register / 1036
:OVLRegister? / 1037
:PDER? — Processing Done Event Register / 1038
:PRINt / 1039
:RECall:SETup / 1040
:RSTate? / 1041
:RUN / 1042
:SERial — Serial Number / 1043
:SINGle / 1044
:STATus? / 1045
:STOP / 1047
:STORe:JITTer / 1048
:STORe:SETup / 1049
:STORe:WAVeform / 1050
:TERegister? — Trigger Event Register / 1051
:VIEW / 1052

31 Serial Bus Commands
General :SBUS Commands / 1054
:SBUS[:DISPlay] / 1055
:SBUS:MODE / 1056
:SBUS:CAN Commands / 1057
:SBUS:CAN:FDSPoint / 1058
:SBUS:CAN:SAMPlepoint / 1059
:SBUS:CAN:SIGNal:BAUDrate / 1060
:SBUS:CAN:SIGNal:DEFinition / 1061
:SBUS:CAN:SIGNal:FDBaudrate / 1062
:SBUS:CAN:SOURce / 1063
:SBUS:CAN:TRIGger (9000 Series, 9000H Series, S-Series) / 1064
:SBUS:CAN:TRIGger:PATTern:DATA (9000 Series, 9000H Series, S-Series) / 1067

28

Keysight Infiniium Oscilloscopes Programmer's Guide

:SBUS:CAN:TRIGger:PATTern:DATA:LENGth (9000 Series, 9000H Series,
S-Series) / 1068
:SBUS:CAN:TRIGger:PATTern:ID (9000 Series, 9000H Series, S-Series) / 1070
:SBUS:CAN:TRIGger:PATTern:ID:MODE (9000 Series, 9000H Series,
S-Series) / 1071
:SBUS:CAN:TYPE / 1072
:SBUS:FLEXray Commands / 1073
:SBUS:FLEXray:BAUDrate / 1074
:SBUS:FLEXray:CHANnel / 1075
:SBUS:FLEXray:SOURce / 1076
:SBUS:FLEXray:TRIGger / 1077
:SBUS:FLEXray:TRIGger:ERRor:TYPE / 1078
:SBUS:FLEXray:TRIGger:FRAMe:CCBase / 1079
:SBUS:FLEXray:TRIGger:FRAMe:CCRepetition / 1080
:SBUS:FLEXray:TRIGger:FRAMe:ID / 1081
:SBUS:FLEXray:TRIGger:FRAMe:TYPE / 1082
:SBUS:GENRaw Commands / 1083
:SBUS:GENRaw:SOURce / 1084
:SBUS:GENRaw:WSIZe / 1085
:SBUS:HS Commands / 1086
:SBUS:HS:DESCramble / 1087
:SBUS:HS:FORMat / 1088
:SBUS:HS:IDLE / 1089
:SBUS:HS:SOURce / 1090
:SBUS:IIC Commands / 1091
:SBUS:IIC:ASIZe / 1092
:SBUS:IIC:SOURce:CLOCk / 1093
:SBUS:IIC:SOURce:DATA / 1094
:SBUS:IIC:TRIGger:PATTern:ADDRess (9000 Series, 9000H Series, S-Series) / 1095
:SBUS:IIC:TRIGger:PATTern:DATA (9000 Series, 9000H Series, S-Series) / 1097
:SBUS:IIC:TRIGger:TYPE (9000 Series, 9000H Series, S-Series) / 1098
:SBUS:LIN Commands / 1100
:SBUS:LIN:SAMPlepoint / 1101
:SBUS:LIN:SIGNal:BAUDrate / 1102
:SBUS:LIN:SOURce / 1103
:SBUS:LIN:STANdard / 1104
:SBUS:LIN:TRIGger / 1105
:SBUS:LIN:TRIGger:ID / 1106
:SBUS:LIN:TRIGger:PATTern:DATA / 1107
:SBUS:LIN:TRIGger:PATTern:DATA:LENGth / 1108
Keysight Infiniium Oscilloscopes Programmer's Guide

29

:SBUS:SPI Commands / 1109
:SBUS:SPI:BITorder / 1110
:SBUS:SPI:CLOCk:SLOPe / 1111
:SBUS:SPI:CLOCk:TIMeout / 1112
:SBUS:SPI:FRAMe:STATe / 1113
:SBUS:SPI:SOURce:CLOCk / 1114
:SBUS:SPI:SOURce:DATA / 1116
:SBUS:SPI:SOURce:FRAMe / 1118
:SBUS:SPI:SOURce:MISO / 1119
:SBUS:SPI:SOURce:MOSI / 1120
:SBUS:SPI:TRIGger:PATTern:DATA (9000 Series, 9000H Series, S-Series) / 1122
:SBUS:SPI:TRIGger:PATTern:WIDTh (9000 Series, 9000H Series, S-Series) / 1124
:SBUS:SPI:TRIGger:TYPE (9000 Series, 9000H Series, S-Series) / 1126
:SBUS:SPI:TYPE / 1128
:SBUS:SPI:WIDTh / 1129

32 Self-Test Commands
:SELFtest:CANCel / 1132
:SELFtest:SCOPETEST / 1133

33 Serial Data Equalization Commands
:SPRocessing:CTLequalizer:ACGain / 1137
:SPRocessing:CTLequalizer:DCGain / 1138
:SPRocessing:CTLequalizer:DISPlay / 1139
:SPRocessing:CTLequalizer:NUMPoles / 1140
:SPRocessing:CTLequalizer:P1 / 1141
:SPRocessing:CTLequalizer:P2 / 1142
:SPRocessing:CTLequalizer:P3 / 1143
:SPRocessing:CTLequalizer:RATe / 1144
:SPRocessing:CTLequalizer:SOURce / 1145
:SPRocessing:CTLequalizer:VERTical / 1146
:SPRocessing:CTLequalizer:VERTical:OFFSet / 1147
:SPRocessing:CTLequalizer:VERTical:RANGe / 1148
:SPRocessing:CTLequalizer:Z1 / 1149
:SPRocessing:CTLequalizer:Z2 / 1150
:SPRocessing:DFEQualizer:NTAPs / 1151
:SPRocessing:DFEQualizer:SOURce / 1152
:SPRocessing:DFEQualizer:STATe / 1153
:SPRocessing:DFEQualizer:TAP / 1154
:SPRocessing:DFEQualizer:TAP:AUTomatic / 1155
:SPRocessing:DFEQualizer:TAP:DELay / 1156

30

Keysight Infiniium Oscilloscopes Programmer's Guide

:SPRocessing:DFEQualizer:TAP:GAIN / 1157
:SPRocessing:DFEQualizer:TAP:LTARget / 1158
:SPRocessing:DFEQualizer:TAP:MAX / 1159
:SPRocessing:DFEQualizer:TAP:MIN / 1160
:SPRocessing:DFEQualizer:TAP:NORMalize / 1161
:SPRocessing:DFEQualizer:TAP:UTARget / 1162
:SPRocessing:DFEQualizer:TAP:WIDTh / 1163
:SPRocessing:FFEQualizer:BANDwidth / 1164
:SPRocessing:FFEQualizer:BWMode / 1165
:SPRocessing:FFEQualizer:DISPlay / 1166
:SPRocessing:FFEQualizer:NPRecursor / 1167
:SPRocessing:FFEQualizer:NTAPs / 1168
:SPRocessing:FFEQualizer:RATe / 1169
:SPRocessing:FFEQualizer:SOURce / 1170
:SPRocessing:FFEQualizer:TAP / 1171
:SPRocessing:FFEQualizer:TAP:AUTomatic / 1172
:SPRocessing:FFEQualizer:TAP:DELay / 1173
:SPRocessing:FFEQualizer:TAP:WIDTh / 1174
:SPRocessing:FFEQualizer:TDELay / 1175
:SPRocessing:FFEQualizer:TDMode / 1176
:SPRocessing:FFEQualizer:VERTical / 1177
:SPRocessing:FFEQualizer:VERTical:OFFSet / 1178
:SPRocessing:FFEQualizer:VERTical:RANGe / 1179

34 System Commands
:SYSTem:DATE / 1182
:SYSTem:DEBug / 1183
:SYSTem:DONTtabmeas / 1185
:SYSTem:DSP / 1186
:SYSTem:ERRor? / 1187
:SYSTem:GUI / 1188
:SYSTem:HEADer / 1189
:SYSTem:HLED (90000 Q-Series, S-Series, V-Series, Z-Series) / 1190
:SYSTem:LOCK / 1191
:SYSTem:LONGform / 1192
:SYSTem:MENU? / 1193
:SYSTem:PERSona / 1194
:SYSTem:PRESet / 1195
:SYSTem:SETup / 1197
:SYSTem:TIME / 1199

Keysight Infiniium Oscilloscopes Programmer's Guide

31

35 Time Base Commands
:TIMebase:POSition / 1202
:TIMebase:RANGe / 1203
:TIMebase:REFClock / 1204
:TIMebase:REFerence / 1205
:TIMebase:REFerence:PERCent / 1206
:TIMebase:ROLL:ENABLE / 1207
:TIMebase:SCALe / 1208
:TIMebase:VIEW / 1209
:TIMebase:WINDow:DELay / 1210
:TIMebase:WINDow:POSition / 1211
:TIMebase:WINDow:RANGe / 1212
:TIMebase:WINDow:SCALe / 1213

36 Trigger Commands
General Trigger Commands / 1217
:TRIGger:AND:ENABle / 1218
:TRIGger:AND:SOURce / 1219
:TRIGger:HOLDoff / 1220
:TRIGger:HOLDoff:MAX / 1221
:TRIGger:HOLDoff:MIN / 1222
:TRIGger:HOLDoff:MODE / 1223
:TRIGger:HTHReshold / 1224
:TRIGger:HYSTeresis / 1225
:TRIGger:LEVel / 1226
:TRIGger:LEVel:FIFTy / 1227
:TRIGger:LTHReshold / 1228
:TRIGger:MODE / 1229
:TRIGger:SWEep / 1231
Comm Trigger Commands / 1232
:TRIGger:COMM:BWIDth / 1233
:TRIGger:COMM:ENCode / 1234
:TRIGger:COMM:PATTern / 1235
:TRIGger:COMM:POLarity / 1236
:TRIGger:COMM:SOURce / 1237
Delay Trigger Commands / 1238
:TRIGger:DELay:ARM:SOURce / 1239
:TRIGger:DELay:ARM:SLOPe / 1240
:TRIGger:DELay:EDELay:COUNt / 1241
:TRIGger:DELay:EDELay:SOURce / 1242

32

Keysight Infiniium Oscilloscopes Programmer's Guide

:TRIGger:DELay:EDELay:SLOPe / 1243
:TRIGger:DELay:MODE / 1244
:TRIGger:DELay:TDELay:TIME / 1245
:TRIGger:DELay:TRIGger:SOURce / 1246
:TRIGger:DELay:TRIGger:SLOPe / 1247
Edge Trigger Commands / 1248
:TRIGger:EDGE:COUPling (9000 Series, 9000H Series, S-Series) / 1249
:TRIGger:EDGE:SLOPe / 1250
:TRIGger:EDGE:SOURce / 1251
GBSerial Trigger Commands / 1252
:TRIGger:GBSerial:CLOCk (V-Series with HWST Option) / 1253
:TRIGger:GBSerial:CLOCk:FREQuency (V-Series with HWST Option) / 1254
:TRIGger:GBSerial:DRATe (V-Series with HWST Option) / 1256
:TRIGger:GBSerial:MODE (V-Series with HWST Option) / 1258
:TRIGger:GBSerial:PATTern (V-Series with HWST Option) / 1259
:TRIGger:GBSerial:POLarity (V-Series with HWST Option) / 1260
:TRIGger:GBSerial:PRBS (V-Series with HWST Option) / 1261
:TRIGger:GBSerial:SOURce (V-Series with HWST Option) / 1262
Glitch Trigger Commands / 1263
:TRIGger:GLITch:POLarity / 1264
:TRIGger:GLITch:SOURce / 1265
:TRIGger:GLITch:WIDTh / 1266
Pattern Trigger Commands / 1267
:TRIGger:PATTern:CONDition / 1268
:TRIGger:PATTern:LOGic / 1269
Pulse Width Trigger Commands / 1270
:TRIGger:PWIDth:DIRection / 1271
:TRIGger:PWIDth:POLarity / 1272
:TRIGger:PWIDth:SOURce / 1273
:TRIGger:PWIDth:TPOint / 1274
:TRIGger:PWIDth:WIDTh / 1275
Runt Trigger Commands / 1276
:TRIGger:RUNT:POLarity / 1277
:TRIGger:RUNT:QUALified / 1278
:TRIGger:RUNT:SOURce / 1279
:TRIGger:RUNT:TIME / 1280
Sequence Trigger Commands / 1281
:TRIGger:SEQuence:TERM1 (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 1282

Keysight Infiniium Oscilloscopes Programmer's Guide

33

:TRIGger:SEQuence:TERM2 (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 1283
:TRIGger:SEQuence:RESet:ENABle (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1284
:TRIGger:SEQuence:RESet:TYPE (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1285
:TRIGger:SEQuence:RESet:EVENt (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1286
:TRIGger:SEQuence:RESet:TIME (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1287
:TRIGger:SEQuence:WAIT:ENABle (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1288
:TRIGger:SEQuence:WAIT:TIME (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1289
Setup and Hold Trigger Commands / 1290
:TRIGger:SHOLd:CSOurce / 1291
:TRIGger:SHOLd:CSOurce:EDGE / 1292
:TRIGger:SHOLd:DSOurce / 1293
:TRIGger:SHOLd:HoldTIMe (HTIMe) / 1294
:TRIGger:SHOLd:MODE / 1295
:TRIGger:SHOLd:SetupTIMe / 1296
State Trigger Commands / 1297
:TRIGger:STATe:CLOCk / 1298
:TRIGger:STATe:LOGic / 1299
:TRIGger:STATe:LTYPe / 1300
:TRIGger:STATe:SLOPe / 1301
Timeout Trigger Commands / 1302
:TRIGger:TIMeout:CONDition / 1303
:TRIGger:TIMeout:SOURce / 1304
:TRIGger:TIMeout:TIME / 1305
Transition Trigger Commands / 1306
:TRIGger:TRANsition:DIRection / 1307
:TRIGger:TRANsition:SOURce / 1308
:TRIGger:TRANsition:TIME / 1309
:TRIGger:TRANsition:TYPE / 1310
TV Trigger Commands / 1311
:TRIGger:TV:LINE / 1312
:TRIGger:TV:MODE / 1313
:TRIGger:TV:POLarity / 1314
:TRIGger:TV:SOURce / 1315

34

Keysight Infiniium Oscilloscopes Programmer's Guide

:TRIGger:TV:STANdard / 1316
:TRIGger:TV:UDTV:ENUMber / 1317
:TRIGger:TV:UDTV:HSYNc / 1318
:TRIGger:TV:UDTV:HTIMe / 1319
:TRIGger:TV:UDTV:PGTHan / 1320
:TRIGger:TV:UDTV:POLarity / 1321
Window Trigger Commands / 1322
:TRIGger:WINDow:CONDition / 1323
:TRIGger:WINDow:SOURce / 1324
:TRIGger:WINDow:TIME / 1325
:TRIGger:WINDow:TPOint / 1326
Ad vanced Comm Trigger Commands /
:TRIGger:ADVanced:COMM:BWIDth
:TRIGger:ADVanced:COMM:ENCode
:TRIGger:ADVanced:COMM:LEVel /
:TRIGger:ADVanced:COMM:PATTern
:TRIGger:ADVanced:COMM:POLarity
:TRIGger:ADVanced:COMM:SOURce

1327
/ 1328
/ 1329
1330
/ 1331
/ 1332
/ 1333

Ad vanced Pattern Trigger Commands / 1334
:TRIGger:ADVanced:PATTern:CONDition / 1336
:TRIGger:ADVanced:PATTern:LOGic / 1337
:TRIGger:ADVanced:PATTern:THReshold:LEVel / 1338
:TRIGger:ADVanced:PATTern:THReshold:POD / 1339
Ad vanced State Trigger Commands / 1340
:TRIGger:ADVanced:STATe:CLOCk / 1341
:TRIGger:ADVanced:STATe:LOGic / 1342
:TRIGger:ADVanced:STATe:LTYPe / 1343
:TRIGger:ADVanced:STATe:SLOPe / 1344
:TRIGger:ADVanced:STATe:THReshold:LEVel / 1345
Ad vanced Delay By Event Trigger Commands / 1346
:TRIGger:ADVanced:DELay:EDLY:ARM:SOURce / 1348
:TRIGger:ADVanced:DELay:EDLY:ARM:SLOPe / 1349
:TRIGger:ADVanced:DELay:EDLY:EVENt:DELay / 1350
:TRIGger:ADVanced:DELay:EDLY:EVENt:SOURce / 1351
:TRIGger:ADVanced:DELay:EDLY:EVENt:SLOPe / 1352
:TRIGger:ADVanced:DELay:EDLY:TRIGger:SOURce / 1353
:TRIGger:ADVanced:DELay:EDLY:TRIGger:SLOPe / 1354
Ad vanced Delay By Time Trigger Commands / 1355
:TRIGger:ADVanced:DELay:TDLY:ARM:SOURce / 1357

Keysight Infiniium Oscilloscopes Programmer's Guide

35

:TRIGger:ADVanced:DELay:TDLY:ARM:SLOPe / 1358
:TRIGger:ADVanced:DELay:TDLY:DELay / 1359
:TRIGger:ADVanced:DELay:TDLY:TRIGger:SOURce / 1360
:TRIGger:ADVanced:DELay:TDLY:TRIGger:SLOPe / 1361
Ad vanced Standard TV Trigger Commands / 1362
:TRIGger:ADVanced:TV:STV:FIELd / 1364
:TRIGger:ADVanced:TV:STV:LINE / 1365
:TRIGger:ADVanced:TV:STV:SOURce / 1366
:TRIGger:ADVanced:TV:STV:SPOLarity / 1367
Ad vanced User Defined TV Mode and Commands / 1368
:TRIGger:ADVanced:TV:UDTV:ENUMber / 1370
:TRIGger:ADVanced:TV:UDTV:PGTHan / 1371
:TRIGger:ADVanced:TV:UDTV:POLarity / 1372
:TRIGger:ADVanced:TV:UDTV:SOURce / 1373
Ad vanced Violation Trigger Modes / 1374
:TRIGger:ADVanced:VIOLation:MODE / 1375
Ad vanced Pulse Width Violation Trigger Commands / 1376
:TRIGger:ADVanced:VIOLation:PWIDth:DIRection / 1378
:TRIGger:ADVanced:VIOLation:PWIDth:POLarity / 1379
:TRIGger:ADVanced:VIOLation:PWIDth:SOURce / 1380
:TRIGger:ADVanced:VIOLation:PWIDth:WIDTh / 1381
Ad vanced Setup Violation Trigger Commands / 1382
:TRIGger:ADVanced:VIOLation:SETup:MODE / 1385
:TRIGger:ADVanced:VIOLation:SETup:SETup:CSOurce / 1386
:TRIGger:ADVanced:VIOLation:SETup:SETup:CSOurce:LEVel / 1387
:TRIGger:ADVanced:VIOLation:SETup:SETup:CSOurce:EDGE / 1388
:TRIGger:ADVanced:VIOLation:SETup:SETup:DSOurce / 1389
:TRIGger:ADVanced:VIOLation:SETup:SETup:DSOurce:HTHReshold / 1390
:TRIGger:ADVanced:VIOLation:SETup:SETup:DSOurce:LTHReshold / 1391
:TRIGger:ADVanced:VIOLation:SETup:SETup:TIME / 1392
:TRIGger:ADVanced:VIOLation:SETup:HOLD:CSOurce / 1393
:TRIGger:ADVanced:VIOLation:SETup:HOLD:CSOurce:LEVel / 1394
:TRIGger:ADVanced:VIOLation:SETup:HOLD:CSOurce:EDGE / 1395
:TRIGger:ADVanced:VIOLation:SETup:HOLD:DSOurce / 1396
:TRIGger:ADVanced:VIOLation:SETup:HOLD:DSOurce:HTHReshold / 1397
:TRIGger:ADVanced:VIOLation:SETup:HOLD:DSOurce:LTHReshold / 1398
:TRIGger:ADVanced:VIOLation:SETup:HOLD:TIME / 1399
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:CSOurce / 1400
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:CSOurce:LEVel / 1401
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:CSOurce:EDGE / 1402
36

Keysight Infiniium Oscilloscopes Programmer's Guide

:TRIGger:ADVanced:VIOLation:SETup:SHOLd:DSOurce / 1403
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:DSOurce:HTHReshold / 1404
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:DSOurce:LTHReshold / 1405
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:SetupTIMe (STIMe) / 1406
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:HoldTIMe (HTIMe) / 1407
Ad vanced Transition Violation Trigger Commands / 1408
:TRIGger:ADVanced:VIOLation:TRANsition / 1409
:TRIGger:ADVanced:VIOLation:TRANsition:SOURce / 1410
:TRIGger:ADVanced:VIOLation:TRANsition:SOURce:HTHReshold / 1411
:TRIGger:ADVanced:VIOLation:TRANsition:SOURce:LTHReshold / 1412
:TRIGger:ADVanced:VIOLation:TRANsition:TYPE / 1413

37 Waveform Commands
:WAVeform:BANDpass? / 1418
:WAVeform:BYTeorder / 1419
:WAVeform:CGRade:HEIGht? / 1420
:WAVeform:CGRade:WIDTh? / 1421
:WAVeform:COMPlete? / 1422
:WAVeform:COUNt? / 1423
:WAVeform:COUPling? / 1424
:WAVeform:DATA? / 1425
:WAVeform:FORMat / 1447
:WAVeform:POINts? / 1450
:WAVeform:PREamble? / 1451
:WAVeform:SEGMented:ALL / 1455
:WAVeform:SEGMented:COUNt? / 1456
:WAVeform:SEGMented:TTAG? / 1457
:WAVeform:SEGMented:XLISt? / 1458
:WAVeform:SOURce / 1459
:WAVeform:STReaming / 1461
:WAVeform:TYPE? / 1462
:WAVeform:VIEW / 1463
:WAVeform:XDISplay? / 1466
:WAVeform:XINCrement? / 1467
:WAVeform:XORigin? / 1468
:WAVeform:XRANge? / 1469
:WAVeform:XREFerence? / 1470
:WAVeform:XUNits? / 1471
:WAVeform:YDISplay? / 1472
:WAVeform:YINCrement? / 1473
:WAVeform:YORigin? / 1474

Keysight Infiniium Oscilloscopes Programmer's Guide

37

:WAVeform:YRANge? / 1475
:WAVeform:YREFerence? / 1476
:WAVeform:YUNits? / 1477

38 Waveform Memory Commands
:WMEMory:TIETimebase / 1480
:WMEMory:CLEar / 1481
:WMEMory:DISPlay / 1482
:WMEMory:LOAD / 1483
:WMEMory:SAVE / 1484
:WMEMory:SEGMented:COUNt? / 1485
:WMEMory:SEGMented:INDex / 1486
:WMEMory:SEGMented:PLAY / 1487
:WMEMory:XOFFset / 1488
:WMEMory:XRANge / 1489
:WMEMory:YOFFset / 1490
:WMEMory:YRANge / 1491

39 Xtalk (Crosstalk Analysis) Commands
:XTALk:ENABle / 1495
:XTALk:PAADeskew / 1497
:XTALk:PAIFilter / 1498
:XTALk:PAISi / 1499
:XTALk:PASLimit / 1500
:XTALk:PAXFilter / 1501
:XTALk:PAXSi / 1502
:XTALk:PJADeskew / 1503
:XTALk:PJIFilter / 1504
:XTALk:PJISi / 1505
:XTALk:PJSLimit / 1506
:XTALk:PJXFilter / 1507
:XTALk:PJXSi / 1508
:XTALk:RESults? / 1509
:XTALk:SAADeskew / 1511
:XTALk:SAIFilter / 1512
:XTALk:SAISi / 1513
:XTALk:SASLimit / 1514
:XTALk:SAXFilter / 1515
:XTALk:SAXSi / 1516
:XTALk:AENable / 1517
:XTALk:ENABle / 1518

38

Keysight Infiniium Oscilloscopes Programmer's Guide

:XTALk:IAGGressor / 1519
:XTALk:IVICtim / 1520
:XTALk:PAUTo / 1521
:XTALk:PLENgth / 1522
:XTALk:PTYPe / 1523
:XTALk:RIDeal / 1524
:XTALk:RISI / 1525
:XTALk:ROTHer / 1526
:XTALk:SOURce / 1527
:XTALk:STYPe / 1528

40 Obsolete and Discontinued Commands
:ANALyze:CLOCk:METHod:PAM:B03 / 1535
:ANALyze:CLOCk:METHod:PAM:B12 / 1537
:ANALyze:CLOCk:METHod:PAM:NONSymmetric / 1539
:DISPlay:COLumn / 1541
:DISPlay:LINE / 1542
:DISPlay:ROW / 1543
:DISPlay:STRing / 1544
:DISPlay:TAB / 1545
:DISPlay:TEXT / 1546
:HOSTed:CALibrate:ALIGn (MultiScope) / 1547
:MEASure:CLOCk / 1548
:MEASure:CLOCk:METHod / 1549
:MEASure:CLOCk:METHod (deprecated) / 1551
:MEASure:CLOCk:METHod:ALIGn / 1553
:MEASure:CLOCk:METHod:DEEMphasis / 1555
:MEASure:CLOCk:METHod:EDGE / 1556
:MEASure:CLOCk:METHod:JTF / 1558
:MEASure:CLOCk:METHod:OJTF / 1560
:MEASure:CLOCk:METHod:PLLTrack / 1562
:MEASure:CLOCk:METHod:SOURce / 1563
:MEASure:CLOCk:VERTical / 1564
:MEASure:CLOCk:VERTical:OFFSet / 1565
:MEASure:CLOCk:VERTical:RANGe / 1566
:MEASure:DDPWS — Data Dependent Pulse Width Shrinkage / 1567
:MEASure:FFT:PEAK1 / 1569
:MEASure:FFT:PEAK2 / 1570
:MEASure:FFT:THReshold / 1571
:MEASure:JITTer:STATistics / 1572
:MEASure:TIEData / 1573

Keysight Infiniium Oscilloscopes Programmer's Guide

39

:MTESt:FOLDing:COUNt? / 1575
:SPRocessing:CTLequalizer:ZERo / 1577

41 Error Messages
Error Queue / 1580
Error Numbers / 1581
Command Error / 1582
Execution Error / 1583
Device- or Oscilloscope-Specific Error / 1584
Query Error / 1585
List of Error Messages / 1586

42 Sample Programs
VISA COM Examples / 1592
VISA COM Example in Visual Basic / 1592
VISA COM Example in C# / 1603
VISA COM Example in Visual Basic .NET / 1613
VISA COM Example in Python / 1622
VISA Examples / 1630
VISA Example in C / 1630
VISA Example in Visual Basic / 1639
VISA Example in C# / 1649
VISA Example in Visual Basic .NET / 1661
VISA Example in Python (PyVISA 1.5 and older) / 1673
VISA Example in Python (PyVISA 1.6 and newer) / 1679
SICL Examples / 1687
SICL Example in C / 1687
SICL Example in Visual Basic / 1696
SCPI.NET Examples / 1706
SCPI.NET Example in C# / 1706
SCPI.NET Example in Visual Basic .NET / 1713
SCPI.NET Example in IronPython / 1720

43 Reference
HDF5 Example / 1728
CSV and TSV Header Format / 1729

40

Keysight Infiniium Oscilloscopes Programmer's Guide

BIN Header Format / 1731
File Header / 1731
Waveform Header / 1731
Waveform Data Header / 1733
Example Program for Reading Binary Data / 1733

Index

Keysight Infiniium Oscilloscopes Programmer's Guide

41

42

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

1 What's New
What's New in Version 6.20
What's New in Version 6.10
What's New in Version 6.00
What's New in Version 5.75
What's New in Version 5.70
What's New in Version 5.60
What's New in Version 5.52
What's New in Version 5.51
What's New in Version 5.50
What's New in Version 5.30
What's New in Version 5.20
What's New in Version 5.10
What's New in Version 5.00
What's New in Version 4.60
What's New in Version 4.50
What's New in Version 4.30
What's New in Version 4.20
What's New in Version 4.10
What's New in Version 4.00
What's New in Version 3.50
What's New in Version 3.20
What's New in Version 3.11
What's New in Version 3.10

/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/

44
47
49
53
54
57
60
61
62
68
70
72
73
77
78
79
80
81
82
83
85
86
87

43

1

What's New

What's New in Version 6.20
New command descriptions for Version 6.20 of the Infiniium oscilloscope software
appear below.
New Commands

44

Command

Description

:ANALyze:CLOCk:METHod:IDLE
(see page 255)

This command lets you specify the number of additional clocks
output by the clock recovery PLL for situations where valid data
can occur during electrical idles.

:ANALyze:SIGNal:PATTern:CLEa
r (see page 278)

Clears a loaded pattern file.

:ANALyze:SIGNal:PATTern:LOA
D (see page 279)

Loads a pattern file from which pattern lengths and patterns are
determined.

:ANALyze:SIGNal:PATTern:PLE
Ngth (see page 280)

Specifies a pattern length or that the oscilloscope determine the
pattern length automatically.

:ANALyze:SIGNal:PATTern:SMA
P (see page 281)

For PAM-4 signal types, specifies whether the symbol map is
gray-coded or uncoded.

:MEASure:JITTer:SPECtrum:RE
Solution? (see page 826)

This query returns the resolution band width of the measurement
analysis spectrum FFT.

:MEASure:PAM:EOJ (see
page 863)

When the signal type is PAM-4, this command installs a
PRBS13Q even-odd jitter (EOJ) measurement into the user
interface's measurement Results pane. The query returns the
measured PRBS13Q even-odd jitter (EOJ) value.

:MEASure:PAM:J4U (see
page 870)

When the signal type is PAM-4, this command installs a
PRBS13Q J4u measurement into the user interface's
measurement Results pane. The query returns the measured
PRBS13Q J4u value.

:MEASure:PAM:JRMS (see
page 871)

When the signal type is PAM-4, this command installs a
PRBS13Q Jrms measurement into the user interface's
measurement Results pane. The query returns the measured
PRBS13Q Jrms value.

:SBUS:GENRaw:SOURce
(see page 1084)

Sets the source for the Generic Raw signal.

:SBUS:GENRaw:WSIZe
(see page 1085)

Sets the Generic Raw protocol decode word size.

:SPRocessing:DFEQualizer:TAP:
NORMalize (see page 1161)

Specifies whether the Normalize DC Gain setting is ON or OFF.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Changed
Commands

Command

Description

:ACQuire:HRESolution (see
page 220)

On S-Series oscilloscopes only, the BITF11, BITF12, BITF13,
BITF14, BITF15, and BITF16 options have been added to force the
specified number of bits of vertical resolution.

:ANALyze:SIGNal:TYPE (see
page 282)

NRZ has been added as a signal type. With this selection, you are
able to specify pattern lengths and patterns so that you can make
BER measurements on NRZ signals (:MEASure:BER and
:MEASure:BERPeracq).

:BUS:B:TYPE (see
page 288)

Added support for new PCI4 (PCI Express Gen4) and SENT (Single
Edge Nibble Transmission) protocols.

:MARKer:MODE (see
page 651)

Now returns ICON when Track RF markers are used???.

:MEASure:BER (see page 747)

Now works with the NRZ signal type (as well as the PAM signal
type). Pattern length parameters have been removed from this
command because pattern lengths and patterns are now specified
using the :ANALyze:SIGNal:PATTern:* commands.

:MEASure:BERPeracq (see
page 748)

Now works with the NRZ signal type (as well as the PAM signal
type). Pattern length parameters have been removed from this
command because pattern lengths and patterns are now specified
using the :ANALyze:SIGNal:PATTern:* commands.

:MEASure:FFT:DFRequency
(see page 792)

The command and query now include peak number and level
parameters.

:MEASure:FFT:DMAGnitude
(see page 794)

The command and query now include peak number and level
parameters.

:MEASure:FFT:FREQuency (see
page 796)

The command and query now include peak number and level
parameters.

:MEASure:FFT:MAGNitude (see
page 798)

The command and query now include peak number and level
parameters.

:MEASure:RESults? (see
page 893)

There is now an AORDered option for returning the results
according to the order in which measurements were added
(ignoring any front panel graphical user interface (GUI) reordering)
or a GORDered option for returning the results according to the
order they appear on the display (even after front panel GUI
reordering). Not specifying any option is the same as using the
AORDered option.

:MEASure:SER (see page 921)

Pattern length parameters have been removed from this
command because pattern lengths and patterns are now specified
using the :ANALyze:SIGNal:PATTern:* commands.

:MEASure:SERPeracq (see
page 922)

Pattern length parameters have been removed from this
command because pattern lengths and patterns are now specified
using the :ANALyze:SIGNal:PATTern:* commands.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

45

1

What's New

Obsolete
Commands

Command

Description

:SBUS:MODE (see
page 1056)

Added the GENRaw mode option.

:SYSTem:GUI (see page 1188)

The LOCK parameter has been added and the query return value is
now a string (ON, OFF, or LOCK) instead of the previous 1 or 0
return values.

:TRIGger:ADVanced:PATTern:C
ONDition (see page 1336)

The OR parameter has been added.

:TRIGger:PATTern:CONDition
(see page 1268)

The OR parameter has been added.

:WAVeform:SEGMented:COUNt
? (see page 1456)

The signal that is queried for the count is the signal set by the
:WAVeform:SOURce command. If you query the COUNt while the
segmented acquisition is occurring, it will return the number of
segments acquired so far.

:WAVeform:SEGMented:TTAG?
(see page 1456)

The signal that is queried for the time tag is the signal set by the
:WAVeform:SOURce command.

Obsolete Command

Current Command Equivalent

Behavior Differences

:MEASure:FFT:PEAK1 (see
page 1569)

:MEASure:FFT:DFRequency
(see page 792)

:MEASure:FFT:PEAK2 (see
page 1570)

:MEASure:FFT:DMAGnitude
(see page 794)

Peak numbers and threshold
levels are now specified in the
:MEASure:FFT:DFRequency and
:MEASure:FFT:DMAGnitude
command/query parameters.

:MEASure:FFT:THReshold (see
page 1571)

Discontinued
Commands

46

Discontinued Command

Current Command Equivalent

Comments

:SPRocessing:FFEQualizer:TAP:
PLENgth

:ANALyze:SIGNal:PATTern:*

Pattern lengths and patterns
are now specified using the
:ANALyze:SIGNal:PATTern:*
commands.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 6.10
New command descriptions for Version 6.10 of the Infiniium oscilloscope software
appear below.
New Commands
Command

Description

:ANALyze:CLOCk:METHod:SKE
W (see page 263)

When clock recovery is being performed on a PAM-4 signal type,
this command can be used to to center the eye opening at the
clock locations by shifting the clocks relative to the data.

:DISPlay:JITTer:THReshold (see
page 488)

When the ":MEASure:RJDJ:PAMThreshold ALL" command
specifies that all PAM-4 thresholds are measured, this command
specifies whether a certain threshold level or ALL threshold levels
should be displayed in the jitter graphs.

:DISPlay:NOISe:LEVel (see
page 492)

Specifies which of the noise graphs to display.

:HOSTed:NCONnected? (see
page 609)

Returns a number that indicates whether in hosted mode, and if in
hosted mode, the number of hosted oscilloscope frames
connected.

:MARKer:DELTa (see
page 649)

Turns on or off the check box to display deltas on the screen (as
opposed to the deltas in the results area and remote queries).

:MEASure:PAM:EYE:ELMethod
(see page 866)

Selects the basis for determining the location of an eye's center
on the waveform.

:MEASure:PAM:EYE:ESTiming
(see page 867)

Configures the timing for sampling the data.

:MEASure:PAM:EYE:PPERcent
(see page 868)

Defines the timespan over which an eye's amplitude level is
measured.

:MEASure:PAM:EYE:TIME:LTDefi
nition (see page 869)

Specifies the method used to locate the time at which to measure
an eye's level.

:MEASure:HISTogram:FWHM
(see page 804)

The command installs a Full-Width at Half Max histogram
measurement into the user interface's measurement Results
pane. The query returns the measured histogram Full-Width at
Half Max value.

:MEASure:RJDJ:PAMThreshold
(see page 909)

Specifies which PAM thresholds to measure for PAM-4 signals.

:MEASure:THResholds:DISPlay
(see page 931)

When the source is a PAM-4 signal type, this command turns on
or off the display of the PAM-4 measurement thresholds.

Keysight Infiniium Oscilloscopes Programmer's Guide

47

1

What's New

Changed
Commands

Obsolete
Commands

48

Command

Description

:ANALyze:SIGNal:TYPE (see
page 282)

CPHY has been added as a signal type.

:BUS:B:TYPE (see
page 288)

Added support for new CPHY (MIPI C-PHY), BRR (BroadR-Reach),
SPW (SpaceWire), and MAN (Manchester) protocols.

:CALibrate:OUTPut (see
page 302)

Added the PRBS7, PRBS15, and PRBS31 options for the Infiniium
90000 X-Series, V-Series, 90000 Q-Series, and Z-Series
oscilloscopes.

:CHANnel:PROBe:EADapter
(see page 352)

Added the CUR0002VA and CUR002VA options for use with the
E2697A or N5449A high impedance adapters.

:DISK:SAVE:WAVeform (see
page 458)

Added the MATlab format for saving waveforms to MATLAB (.mat)
data format files.

:MEASure:RJDJ:ALL? (see
page 898)

Jitter analysis is supported on PAM-4 signals. When the
":MEASure:RJDJ:PAMThreshold ALL" command setting has been
made, the query results include values for multiple threshold
levels; otherwise, the query results are for the specific threshold
level specified in the :MEASure:RJDJ:PAMThreshold command.

:MEASure:RJDJ:TJRJDJ? (see
page 916)

Jitter analysis is supported on PAM-4 signals. When the
":MEASure:RJDJ:PAMThreshold ALL" command setting has been
made, the query results include values for multiple threshold
levels; otherwise, the query results are for the specific threshold
level specified in the :MEASure:RJDJ:PAMThreshold command.

:MEASure:THResholds:GENeral
:PAMCustom (see page 939)

Added an optional  value at the end of the command
parameters.

Obsolete Command

Current Command Equivalent

Behavior Differences

:ANALyze:CLOCk:METHod:PAM:
B03 (see page 1535)

None

The command works and as
before, but changing its default
(ON) is not necessary.

:ANALyze:CLOCk:METHod:PAM:
B12 (see page 1537)

None

The command works and as
before, but changing its default
(ON) is not necessary.

:ANALyze:CLOCk:METHod:PAM:
NONSymmetric (see
page 1539)

None

The command works and as
before, but changing its default
(OFF) is not necessary.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 6.00
New command descriptions for Version 6.00 of the Infiniium oscilloscope software
appear below.
New Commands
Command

Description

:ACQuire:SEGMented:AUToplay
(see page 232)

Specifies whether segments are automatically played after a
segmented memory acquisition.

:CALibrate:OUTPut:AUX (see
page 304)

Enables or disables signal output on the oscilloscope's Aux Out
connector.

:CALibrate:OUTPut:AUX:RTIMe
(see page 305)

Specifies the speed of the Aux Out signal's rise time.

:CALibrate:OUTPut:CAL (see
page 306)

Enables or disables signal output on the oscilloscope's Cal Out
connector.

:CHANnel:SIMulation:AMP
Litude (see page 379)

Specifies the amplitude of the simulated waveform.

:CHANnel:SIMulation:DATA
:LENGth (see page 380)

Specifies the length exponent of the simulated waveform's PRBS
sequence (for the DATA simulated waveform type).

:CHANnel:SIMulation:DATA
:ODD (see page 381)

Sets the PRBS "odd" control (for the DATA simulated waveform
type).

:CHANnel:SIMulation:DATA
:PAM (see page 382)

Specifies the number of symbols (or levels) in the PAM signal
(when the DATA simulated waveform type is selected and the PAM
signal type is selected).

:CHANnel:SIMulation:DATA
:RESeed (see page 383)

Specifies whether to reseed the PRBS generator(s) (for the DATA
simulated waveform type).

:CHANnel:SIMulation:DATA
:SELection (see page 384)

Specifies whether the simulated PRBS waveform is a Non Return
to Zero (NRZ) signal or a Pulse Amplitude Modulation (PAM)
signal (for the DATA simulated waveform type).

:CHANnel:SIMulation:DRAT
e (see page 385)

Specifies the data rate of the simulated waveform (for the DATA
simulated waveform type).

:CHANnel:SIMulation:FILTe
r:ISIM:ADDRess (see
page 386)

Specifies the path of an InfiniiSim transfer function file (when an
InfiniiiSim filter is selected).

:CHANnel:SIMulation:FILTe
r:ISIM:PEXTraction (see
page 387)

Specifies the port extraction method for a 4-port InfiniiSim
transfer function file.

:CHANnel:SIMulation:FILTe
r:SELection (see page 388)

Sets the filter type.

:CHANnel:SIMulation:FLOa
d:ADDRess (see page 389)

Specifies the full path string of a .wfm file to use as the simulated
waveform (for the FILE simulated waveform type).

Keysight Infiniium Oscilloscopes Programmer's Guide

49

1

50

What's New

Command

Description

:CHANnel:SIMulation:FLOa
d:LOOP (see page 390)

Specifies whether the simulated waveform should repeat from the
beginning of the file when reaching the end of the file (for the FILE
simulated waveform type).

:CHANnel:SIMulation:FREQ
uency (see page 391)

Specifies the frequency of the simulated waveform (for the CLOCk
or FUNCtion simulated waveform types).

:CHANnel:SIMulation:FUN
Ction:SELection (see
page 392)

Specifies the simulated waveform function type (for the FUNCtion
simulated waveform type).

:CHANnel:SIMulation:FUN
Ction:SQUare:DCYCle (see
page 393)

Specifies the square wave's duty cycle high time percent value
(when the FUNCtion simulated waveform type is selected and the
SQUare function is selected).

:CHANnel:SIMulation:FUN
Ction:SQUare:FTIMe (see
page 394)

Specifies the square wave's high-to-low transition time (when the
FUNCtion simulated waveform type is selected and the SQUare
function is selected).

:CHANnel:SIMulation:FUN
Ction:SQUare:RTIMe (see
page 395)

Specifies the square wave's low-to-high transition time (when the
FUNCtion simulated waveform type is selected and the SQUare
function is selected).

:CHANnel:SIMulation:JITTe
r (see page 396)

Turns all simulated waveform jitter off or on while saving the
values.

:CHANnel:SIMulation:JITTe
r:ABUJ (see page 397)

Specifies the amount of Aperiodic Bounded Uniform Jitter (ABUJ)
to apply to the simulated waveform.

:CHANnel:SIMulation:JITTe
r:PERiodic:ENABle (see
page 398)

Turns the periodic jitter for the simulated waveform on or off.

:CHANnel:SIMulation:JITTe
r:PERiodic:FREQuency
(see page 399)

Specifies the frequency of the periodic jitter applied to the
simulated waveform.

:CHANnel:SIMulation:JITTe
r:PERiodic:MAGNitude
(see page 400)

Specifies the magnitude of the periodic jitter applied to the
simulated waveform.

:CHANnel:SIMulation:JITTe
r:PERiodic:SHAPe (see
page 401)

Specifies the shape of the periodic jitter applied to the simulated
waveform.

:CHANnel:SIMulation:JITTe
r:RANDom (see page 402)

Specifies the standard deviation of random jitter to apply.

:CHANnel:SIMulation:NOIS
e (see page 403)

Turns all simulated waveform noise off or on while saving the
values.

:CHANnel:SIMulation:NOIS
e:BWLimit (see page 404)

Turns the noise filter on or off.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Command

Description

:CHANnel:SIMulation:NOIS
e:PERiodic:ENABle (see
page 405)

Turns the periodic noise for the simulated waveform on or off.

:CHANnel:SIMulation:NOIS
e:PERiodic:FREQuency
(see page 406)

Specifies the frequency of the periodic noise applied to the
simulated waveform.

:CHANnel:SIMulation:NOIS
e:PERiodic:MAGNitude
(see page 407)

Specifies the magnitude of the periodic noise applied to the
simulated waveform.

:CHANnel:SIMulation:NOIS
e:PERiodic:SHAPe (see
page 408)

Specifies the shape of the periodic noise applied to the simulated
waveform.

:CHANnel:SIMulation:NOIS
e:RANDom (see page 409)

Specifies the standard deviation of random noise to apply.

:CHANnel:SIMulation:OFFS
et (see page 410)

Specifies the offset of the simulated waveform.

:CHANnel:SIMulation:WAV
eform (see page 411)

Sets the simulated waveform type.

:FUNCtion:MLOG (see
page 551)

Adds a function waveform that is a scrolling record of
measurement values over time.

:MEASure:THResholds:GENaut
o (see page 932)

Automatically sets the general "Custom: thresholds +/hysteresis" when thresholds apply to individual waveforms.

:MTESt:COUNt:SUI? (see
page 686)

Returns the total number of samples that have been mask tested
in the UI bit time.

:SYSTem:HLED (see
page 1190)

On Infiniium 90000 Q-Series, S-Series, V-Series, and Z-Series
oscilloscopes, this command turns the Turn off Front Panel LEDs
user preference on or off.

:WAVeform:CGRade:HEIGht?
(see page 1420)

Returns the color grade (pixel) database data height (when the
CGRade waveform view is selected).

:WAVeform:CGRade:WIDTh?
(see page 1421)

Returns the color grade (pixel) database data width (when the
CGRade waveform view is selected).

:WMEMory:SEGMented:CO
UNt? (see page 1485)

When segmented memory acquisitions are saved to waveform
memory, this query returns the number of segments in the
waveform memory.

:WMEMory:SEGMented:IN
Dex (see page 1486)

When segmented memory acquisitions are saved to waveform
memory, this command command sets the index number for the
segment that you want to display on screen.

:WMEMory:SEGMented:PL
AY (see page 1487)

When segmented memory acquisitions are saved to waveform
memory, this command command plays (or stops) the segments.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

51

1

What's New

Changed
Commands

Discontinued
Commands

52

Command

Description

:ANALyze:CLOCk:METHod:JTF
(see page 256)

There are now Third Order PLL options.

:ANALyze:CLOCk:METHod:OJTF
(see page 259)

There are now Third Order PLL options.

:BUS:B:TYPE (see
page 288)

Added support for new SPMI and GENRaw protocols.

:FUNCtion:FFT:DETector:TY
PE (see page 519)

The RMS detector type has been added.

:FUNCtion:HORizontal:POSi
tion (see page 537)

For functions where the horizontal position cannot be adjusted,
this command now gives a -221,"Settings conflict" instead of
being accepted without effect.

:FUNCtion:HORizontal:RAN
Ge (see page 539)

For functions where the horizontal position cannot be adjusted,
this command now gives a -221,"Settings conflict" instead of
being accepted without effect.

:HOSTed:FOLLower:CONFi
gure (see page 602)

Added the ability to configure a "Simulated Instrument" to set up
simulated waveforms.

:MTESt:SOURce (see
page 729)

Waveform memories can now be used as a source for mask
testing.

:WAVeform:FORMat (see
page 1447)

There is now a FLOat option for getting color grade (pixel)
database data in single-precision floating-point format (when the
CGRade waveform view is selected).

:WAVeform:VIEW (see
page 1463)

There is now a CGRade option for getting color grade (pixel)
database data.

Discontinued Command

Current Command Equivalent

Comments

:MEASure:THResholds:RFALl:H
YSTeresis

None

Rise/fall thresholds are no
longer set using hysteresis and
level values.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 5.75
New command descriptions for Version 5.75 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

Command

Description

:SPRocessing:CTLequalizer:Z1
(see page 1149)

Specifies the first zero for 3-pole CTLE.

:SPRocessing:CTLequalizer:Z2
(see page 1150)

Specifies the second zero for 3-pole CTLE.

Command

Description

:SPRocessing:CTLequalizer:NU
MPoles (see page 1140)

Now that you can specify up to two zeros for a 3-pole CTLE, the
previous POLE3 option has been replaced by P3Z1 and P3Z2.

:MEASure:RJDJ:BER (see
page 902)

You can now set J4 and J5 jitter BER levels.

Keysight Infiniium Oscilloscopes Programmer's Guide

53

1

What's New

What's New in Version 5.70
New command descriptions for Version 5.70 of the Infiniium oscilloscope software
appear below.
New Commands

54

Command

Description

:ACQuire:SEGMented:PRATe
(see page 236)

Specifies the segmented memory navigation play rate.

:CHANnel:INVert (see
page 328)

Enables or disables the invert setting for a channel.

:CHANnel:ISIM:BWLimit:TY
PE (see page 334)

Specifies a channel's band width limit filter response.

:CHANnel:PROBe:INFO?
(see page 366)

Returns a comma-separated list of probe information.

:DISPlay:PROPortion:RESults
(see page 496)

Specifies the size of the Results pane in the oscilloscope display.

:FUNCtion:FFT:DETector:PO
INts (see page 518)

When a detector is used for the FFT magnitude function, this
command specifies the maximum number of points (buckets) that
detectors should decimate to.

:FUNCtion:FFT:DETector:TY
PE (see page 519)

Specifies whether a detector is used for the FFT magnitude
function.

:FUNCtion:FFT:SPAN (see
page 524)

Sets the frequency span for the FFT function.

:FUNCtion:FFT:STOP (see
page 525)

Sets the stop frequency for the FFT function.

:FUNCtion:FFT:VUNits (see
page 527)

Specifies the vertical units for the FFT magnitude function.

:HOSTed:PERiodic (see
page 610)

Turns periodic drift correction on or off.

:LTESt:ADDStats (see
page 634)

Enables or disables the limit test "statistics on passing
measurements only" option.

:LTESt:RUMode:SOFailure (see
page 640)

Enables or disables the limit test "stop on failure" option.

:MEASure:CGRade:OLEVel (see
page 762)

The command installs an Eye One Level measurement into the
user interface's measurement Results pane. The query returns the
measured Eye One Level.

:MEASure:CGRade:ZLEVel (see
page 764)

The command installs an Eye Zero Level measurement into the
user interface's measurement Results pane. The query returns the
measured Eye Zero Level.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Command

Description

:MEASure:ERATio (see
page 786)

The command installs an Extinction Ratio measurement into the
user interface's measurement Results pane. The query returns the
measured Extinction Ratio.

:MEASure:FFT:CPOWer (see
page 791)

The command installs a channel power measurement into the
user interface's measurement Results pane. The query returns the
measured channel power.

:MEASure:FFT:OBW (see
page 800)

The command installs an occupied bandwidth measurement into
the user interface's measurement Results pane. The query returns
the measured occupied band width.

:MEASure:FFT:PSD (see
page 801)

The command installs a power spectral density measurement into
the user interface's measurement Results pane. The query returns
the measured power spectral density.

:MEASure:OMAMplitude (see
page 857)

The command installs an Optical Modulation Amplitude (OMA)
measurement into the user interface's measurement Results
pane. The query returns the measured Optical Modulation
Amplitude (OMA).

:MEASure:OPOWer (see
page 858)

The command installs an Optical Average Power measurement
into the user interface's measurement Results pane. The query
returns the measured Optical Average Power.

:MTESt:COUNt:MARGin:FAILure
s? (see page 685)

Returns the margin failure count for a specified region.

:MTESt:MARGin:AUTO:HITS
(see page 714)

When the automatic margin method is selected, and the hit ratio
method is selected, this command specifies the hit count.

:MTESt:MARGin:AUTO:HRATio
(see page 715)

When the automatic margin method is selected, and the hit ratio
method is selected, this command specifies the hit ratio.

:MTESt:MARGin:AUTO:METHod
(see page 716)

When the automatic margin method is selected, this command
selects between the hit count and hit ratio and automatic margin
methods.

:MTESt:MARGin:METHod (see
page 717)

Selects between the manual and automatic margin types.

:MTESt:MARGin:PERCent (see
page 718)

When the manual margin method is selected, this command
specifies the margin percent.

:MTESt:MARGin:STATe (see
page 719)

Enables or disables mask margin testing.

:XTALk Commands (see
page 1493)

The commands in the XTALk subsystem are used to control the
Crosstalk Analysis application.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

55

1

What's New

Changed
Commands

56

Command

Description

:BUS:B:TYPE (see
page 288)

Added support for new A429, M1553, and I3C protocols.

:DISPlay:SCOLor (see
page 500)

Added the ability to set colors for MMPolygons.

:FUNCtion:FFT:RESolution
(see page 522)

The command form now lets you set the FFT resolution.

:MARKer:MODE (see
page 651)

Added XONLy and YONLy options for for the "Manual (X only)" and
"Manual (Y only)" marker modes.

:MEASure:AREA (see
page 745)

Added a RISing or FALLing edge parameter when "Measure All
Edges" is set and measuring a single cycle of the waveform.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 5.60
New command descriptions for Version 5.60 of the Infiniium oscilloscope software
appear below.
New Commands
Command

Description

:ACQuire:BANDwidth:TESTLIMI
TS? (see page 216)

Returns the oscilloscope's acquisition bandwidth maximum and
minimum limits.

:ACQuire:POINts:TESTLIMITS?
(see page 229)

Returns the oscilloscope's acquisition points maximum and
minimum limits.

:ACQuire:SEGMented:PLAY (see
page 235)

Plays (or stops) acquired segments.

:ACQuire:SRATe:TESTLIMITS?
(see page 242)

Returns the oscilloscope's acquisition sampling rate maximum
and minimum limits.

:ANALyze:SIGNal:MIXer:CABLel
oss (see page 272)

Sets the loss of the cable connecting the mixer to the
oscilloscope.

:ANALyze:SIGNal:MMWave:CAL
ibrate (see page 273)

Initiates a mixer/LO (local oscillator) power calibration. The LO is
identified by the :ANALyze:SIGNal:MMWave:LOADdress
command.

:ANALyze:SIGNal:MMWave:CFR
equency (see page 274)

Sets the center frequency for the oscilloscope's FFT math
function.

:ANALyze:SIGNal:MMWave:CO
NNect (see page 275)

Sets the connection status for the mixer and LO (local oscillator)
assigned to the specified channel.

:ANALyze:SIGNal:MMWave:LOA
Ddress (see page 276)

Sets the LO's (local oscillator's) VISA address.

:ANALyze:SIGNal:MMWave:MB
ANdwidth (see page 277)

Sets the measurement bandwidth. This becomes the center
frequency for the oscilloscope's FFT math function.

:CHANnel:PROBe:PRIMary
(see page 374)

For the N2820A/N2821A high-sensitivity current probes only, this
command configures the input channel as a zoomed-in (amplified)
or zoomed-out channel.

:MEASure:BER (see page 747)

When the signal type is PAM, this command installs a cumulative
BER (bit error rate) measurement of the specified PAM signal into
the user interface's measurement Results pane. The query returns
the measured cumulative BER value.

:MEASure:BERPeracq (see
page 748)

When the signal type is PAM, this command installs a BER (bit
error rate) per acquisition measurement of the specified PAM
signal into the user interface's measurement Results pane. The
query returns the measured BER per acquisition value.

:MEASure:PPContrast (see
page 884)

Measures the peak-to-peak contrast (also known as Michelson
contrast or modulation).

Keysight Infiniium Oscilloscopes Programmer's Guide

57

1

What's New

Changed
Commands

58

Command

Description

:MEASure:SER (see page 921)

When the signal type is PAM, this command installs a cumulative
SER (symbol error rate) measurement of the specified PAM signal
into the user interface's measurement Results pane. The query
returns the measured cumulative SER value.

:MEASure:SERPeracq (see
page 922)

When the signal type is PAM, this command installs a SER
(symbol error rate) per acquisition measurement of the specified
PAM signal into the user interface's measurement Results pane.
The query returns the measured SER per acquisition value.

:SBUS:CAN:TYPE (see
page 1072)

Selects between standard CAN or Flexible Data Rate CAN
(CAN FD) decode types.

:SBUS:CAN:FDSPoint (see
page 1058)

Sets the point during the bit time where the bit level is sampled to
determine whether the bit is dominant or recessive.

:SBUS:CAN:SIGNal:FDBau
drate (see page 1062)

Sets the CAN FD baud rate in the range from 1 Mb/s to 10 Mb/s.

:SYSTem:DONTtabmeas (see
page 1185)

Turns the Never tab Measurement Resul ts user preference on or
off.

Command

Description

:ANALyze:CLOCk:METHod (see
page 247)

They CPHY and PWM methods have been added.

:ANALyze:SIGNal:TYPE (see
page 282)

MMWave has been added as a signal type.

:DISPlay:SCOLor (see
page 500)

Removed the ability to set colors for MEASurements, STEXt,
TSCale, and WBACkgrnd.

:FUNCtion:MATLab:CONTro
l (see page 546)

Up to 6 user-defined controls supported.

:SBUS:CAN:TRIGger (see
page 1064)

Additional trigger condition options for CAN FD have been added.

:SBUS:CAN:TRIGger:PATTe
rn:DATA:LENGth (see
page 1068)

Length can be from 1 to 15 bytes for CAN FD.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Obsolete
Commands

Obsolete Command

Current Command Equivalent

Behavior Differences

:DISPlay:TAB (see page 1545)

None

This command is not supported
in version 5.00 or higher. The
query now returns only NONE.

:HOSTed:CALibrate:ALIGn (see
page 1547)

None

Acquired data is now always
aligned, and this command has
no effect.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

59

1

What's New

What's New in Version 5.52
New command descriptions for Version 5.52 of the Infiniium oscilloscope software
appear below.
Changed
Commands

60

Command

Description

:MTESt:FOLDing:COUNt:UI?
(see page 695)

The  parameter is now optional.

:MTESt:FOLDing:COUNt:WAVef
orms? (see page 695)

The  parameter is now optional.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 5.51
New command descriptions for Version 5.51 of the Infiniium oscilloscope software
appear below.
Changed
Commands

Command

Description

:BUS:B:TYPE (see
page 288)

Added support for new ESPI, USB31, and USBPD protocols.

Keysight Infiniium Oscilloscopes Programmer's Guide

61

1

What's New

What's New in Version 5.50
New command descriptions for Version 5.50 of the Infiniium oscilloscope software
appear below.
New Commands

62

Command

Description

:ANALyze:CLOCk:METHod:PAM:
B03 (see page 1535)

When the signal type is PAM-4, this command specifies whether
edges from the 0 level to the 3 level and from the 3 level to the 0
level are are included in the clock recovery.

:ANALyze:CLOCk:METHod:PAM:
B12 (see page 1537)

When the signal type is PAM-4, this command specifies whether
edges from the 1 level to the 2 level and from the 2 level to the 1
level are are included in the clock recovery.

:ANALyze:CLOCk:METHod:PAM:
NONSymmetric (see
page 1539)

When the signal type is PAM-4, this command specifies whether
edges that are non-symmetric about the middle threshold are
included in the clock recovery.

:ANALyze:SIGNal:DATarate (see
page 268)

When the signal type is PAM-4, this command specifies the data
rate of the signal.

:ANALyze:SIGNal:SYMBolrate
(see page 270)

When the signal type is PAM-4, this command specifies the edge
rate of the signal.

:ANALyze:SIGNal:TYPE (see
page 282)

Lets you specify whether a channel, function, or waveform
memory is a special type of signal, like a PAM-4 signal for
example.

:DISPlay:ISIM:GCOunt (see
page 482)

Sets or returns the number of visible graphs in the InfiniiSim plots
window area.

:DISPlay:ISIM:SELectgraph
(see page 483)

Inserts the specified graph at the first display graph position.

:DISPlay:ISIM:SOURce (see
page 484)

Sets the source for the InfiniiSim plots graph(s).

:DISPlay:JITTer:GCOunt (see
page 485)

Sets or returns the number of visible graphs in the Jitter/Noise
graphs window area.

:DISPlay:JITTer:SELectgraph
(see page 486)

Inserts the specified graph at the first display graph position.

:DISPlay:PRECprobe:GCOunt
(see page 497)

Sets or returns the number of visible graphs in the PrecisionProbe
correction and analysis charts window area.

:DISPlay:PRECprobe:SELectgra
ph (see page 498)

Inserts the specified graph at the first display graph position.

:DISPlay:PRECprobe:SOURce
(see page 499)

Sets the source for the PrecisionProbe correction and analysis
chart(s).

:DISPlay:WINDow:MAXimize
(see page 504)

Will maximize the size of the specified window.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Command

Description

:HOSTed:CALibrate:ALIGn (see
page 1547)

Lets you align acquired data in the MultiScope system.

:HOSTed:CALibrate:CALibrate
(see page 587)

Performs the MultiScope system time-correlation calibration at
the level selected by :HOSTed:CALibrate:LEVel.

:HOSTed:CALibrate:CHANnel
(see page 588)

Selects the calibration channel or synchronization input where the
MultiScope system time-correlation procedures expect to find the
calibration signal.

:HOSTed:CALibrate:DESKew:FR
AMes (see page 590)

Deskews frames in the MultiScope system by measuring only one
input channel from each oscilloscope frame.

:HOSTed:CALibrate:DESKew:C
HANnels (see page 589)

Deskews all channels in the MultiScope system.

:HOSTed:CALibrate:DESKew:SI
GNals (see page 591)

Aligns the horizontal positions of the closest rising edges of all
input signals in the MultiScope system.

:HOSTed:CALibrate:DESKew:ZE
RO (see page 592)

Resets MultiScope system signal skew values to zero.

:HOSTed:CALibrate:LEVel (see
page 593)

Selects the MultiScope system calibration level.

:HOSTed:CALibrate:PROMpt
(see page 595)

Specifies whether the user interface software prompts you to
make the proper connections while the MultiScope system
calibration runs.

:HOSTed:CALibrate:STATus:CH
ANnels? (see page 596)

Returns the MultiScope system calibration status of "Deskew
Channels".

:HOSTed:CALibrate:STATus:FRA
Mes? (see page 597)

Returns the MultiScope system calibration status of "Deskew
Frames".

:HOSTed:CALibrate:STATus:LEV
el? (see page 598)

Returns the MultiScope system calibration status of the currently
selected calibration level.

:HOSTed:CALibrate:STATus:SIG
Nals? (see page 599)

Returns the MultiScope system calibration status of "Deskew
Signals".

:HOSTed:CALibrate:TREF:DETe
ct (see page 600)

Automatically detects the reference clock connection between
oscilloscopes in a MultiScope system.

:HOSTed:FOLLower:ACHan
nels? (see page 601)

Returns the channel numbers assigned to a Follower oscilloscope
in a MultiScope system.

:HOSTed:FOLLower:CONFi
gure (see page 602)

Identifies the Follower oscilloscope in a MultiScope system by its
VISA address.

:HOSTed:FOLLower:CONNe
ct (see page 603)

Opens the connection to a Follower oscilloscope in a MultiScope
system.

:HOSTed:FOLLower:DISCo
nnect (see page 604)

Closes the connection to a Follower oscilloscope in a MultiScope
system.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

63

1

64

What's New

Command

Description

:HOSTed:LEADer:ACHannels?
(see page 605)

Returns the channel numbers assigned to the Leader oscilloscope
in a MultiScope system.

:HOSTed:LEADer:CONFigure
(see page 606)

Identifies the Leader oscilloscope in a MultiScope system by its
VISA address.

:HOSTed:LEADer:CONNect (see
page 607)

Opens the connection to the Leader oscilloscope in a MultiScope
system.

:HOSTed:LEADer:DISConnect
(see page 608)

Closes the connection to the Leader oscilloscope in a MultiScope
system.

:MEASure:PAM:ELEVel (see
page 861)

When the signal type is PAM-4, this command installs a vertical
center measurement of the specified PAM-4 eye into the user
interface's measurement Results pane. The query returns the
measured vertical center value.

:MEASure:PAM:ESKew (see
page 864)

When the signal type is PAM-4, this command installs a horizontal
center skew measurement of the specified PAM-4 eye into the
user interface's measurement Results pane. The query returns the
measured horizontal center skew value.

:MEASure:PAM:LEVel (see
page 872)

When the signal type is PAM-4, this command installs a mean
voltage measurement of the specified PAM-4 level into the user
interface's measurement Results pane. The query returns the
measured mean voltage value.

:MEASure:PAM:LRMS (see
page 874)

When the signal type is PAM-4, this command installs a RMS
voltage measurement of the specified PAM-4 level into the user
interface's measurement Results pane. The query returns the
measured RMS voltage value.

:MEASure:PAM:LTHickness (see
page 876)

When the signal type is PAM-4, this command installs an eye
diagram level thickness measurement of the specified PAM-4
level into the user interface's measurement Results pane. The
query returns the measured thickness value.

:MEASure:THResholds:GENeral
:PAMCustom (see page 939)

When the signal type is PAM-4 and
:MEASure:THResholds:GENeral:METHod is set to PAMCustom,
this command sets the PAM threshold levels for general
measurements to the values you specify.

:MEASure:THResholds:GENeral
:PAMAutomatic (see
page 941)

When the signal type is PAM-4 and
:MEASure:THResholds:GENeral:METHod is set to PAMAutomatic,
this command specifies whether the PAM threshold levels for
general measurements are determined automatically or using the
PAM-4 levels you specify.

:MEASure:THResholds:RFALl:P
AMAutomatic (see page 956)

When the signal type is PAM-4, this command specifies whether
the PAM threshold levels for rise/fall measurements are
determined automatically or using the PAM-4 levels you specify.

:MEASure:TIEData2 (see
page 977)

Measures data time interval error.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Command

Description

:MTESt:FOLDing:COUNt:UI?
(see page 695)

Returns the number of unit intervals in the real time eye.

:MTESt:FOLDing:COUNt:WAVef
orms? (see page 695)

Returns the number of waveforms in the real time eye.

:SYSTem:GUI (see page 1188)

Disables or enables the front panel user interface. When disabled,
the Remote Operations In Progress dialog box appears on the
oscilloscope's screen.

1

NOTE: The :SYSTem:GUI OFF command lets Infiniium
oscilloscopes behave like other Keysight instruments by locking
out the GUI (graphical user interface) and the front panel while
remote scripts are running. On Infiniium oscilloscopes, the GUI
and front panel do not lock automatically during remote operation
(as most other instruments do) to preserve the integrity and
timing of legacy customer scripts. The recommendation is,
however, that all scripts begin with :SYSTem:GUI OFF when
convenient and possible to run more like other Keysight
instruments and likely improve performance.
:SYSTem:MENU? (see
page 1193)

Returns front panel graphical user interface menu strings.

:TRIGger:GBSerial:CLOCk (see
page 1253)

Specifies whether an INTernal or EXTernal reference clock (and
internal multipliers) are used to support the selected data rate.
External reference clock signals are supplied to a BNC connector
on the oscilloscope's hardware serial trigger I/O panel.

:TRIGger:GBSerial:CLOCk:FREQ
uency (see page 1254)

When an external reference clock is used, this command specifies
its frequency.

:TRIGger:GBSerial:DRATe (see
page 1256)

Specifies the data rate of the serial signal. Common data rates are
supported.

:TRIGger:GBSerial:MODE (see
page 1258)

Selects the hard ware serial trigger mode ("generic" sequences,
8b/10b sequences, or PRBS errors).

:TRIGger:GBSerial:PATTern (see
page 1259)

When triggering on "generic" sequences or 8b/10b sequences,
this command specifies the bit pattern to trigger on.

:TRIGger:GBSerial:POLarity
(see page 1260)

When triggering on PRBS errors, this command specifies the
polarity of the selected PRBS pattern.

:TRIGger:GBSerial:PRBS (see
page 1261)

When triggering on PRBS errors, this command specifies the
pattern to check when looking for errors. You can select PRBS 7,
15, 23, or 31 patterns.

:TRIGger:GBSerial:SOURce
(see page 1262)

Specifies the oscilloscope input channel on which the hard ware
serial trigger operates. This is always CHANnel1.

Keysight Infiniium Oscilloscopes Programmer's Guide

65

1

What's New

Changed
Commands

66

Command

Description

:ANALyze:CLOCk:METHod (see
page 247)

When the signal type is PAM-4, a symbol rate (baud) is specified
instead of a data rate (b/s).

:ANALyze:CLOCk:METHod:JTF
(see page 256)

When the signal type is PAM-4, a symbol rate (baud) is specified
instead of a data rate (b/s).

:ANALyze:CLOCk:METHod:OJTF
(see page 259)

When the signal type is PAM-4, a symbol rate (baud) is specified
instead of a data rate (b/s).

:CHANnel:PROBe:HEAD:VT
ERm (see page 364)

Supports the N7010A active termination adapter (regardless of
the attachment/head) as well as the N5444A probe head.

:DISPlay:CGRade (see
page 469)

When the  parameter is not provided, enabling color
grade will turn off the main waveform view, and disabling color
grade will turn on the main waveform view.

:DISK:SAVE:MEASurements
(see page 455)

Added the  option to save measurement
results in the format used prior to Infiniium version 5.00.

:MEASure:CGRade:EHEight
(see page 755)

When the signal type is PAM-4, an additional 
parameter is used to specify which eye, and the 
parameter is ignored.

:MEASure:CGRade:EWIDth (see
page 757)

When the signal type is PAM-4, an additional 
parameter is used to specify which eye, and the 
parameter is ignored.

:MEASure:FALLtime (see
page 789)

With PAM signal types, additional  and 
parameters are used to identify the edge to measure.

:MEASure:NOISe:ALL? (see
page 843)

The parameters TWO and THRee are available for PAM-4 signals.

:MEASure:RISetime (see
page 896)

With PAM signal types, additional  and 
parameters are used to identify the edge to measure.

:MEASure:THResholds:GENeral
:METHod (see page 937)

When the signal type is PAM-4, you can choose between
PAMCustom and PAMautomatic methods for setting the general
measurement thresholds.

:MEASure:THResholds:RFALl:M
ETHod (see page 954)

When the signal type is PAM-4, you can choose between T1090
(10% and 90% of levels) and T2080 (20% and 80% of levels) when
setting the rise/fall measurement thresholds.

:MTESt:FOLDing (see
page 691)

When the  parameter is not provided, enabling the
real-time eye will turn off the main waveform view, and disabling
the real-time eye will turn on the main waveform view.

:MTESt:FOLDing:BITS (see
page 693)

The  string can contain characters "2" and "3" when
specified for PAM-4 signals.

:SPRocessing:CTLequalizer:RA
Te (see page 1144)

When the signal type is PAM-4, a symbol rate (baud) is specified
instead of a data rate (b/s).

:SPRocessing:FFEQualizer:RAT
e (see page 1169)

When the signal type is PAM-4, a symbol rate (baud) is specified
instead of a data rate (b/s).

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Obsolete
Commands

Obsolete Command

Current Command Equivalent

Behavior Differences

:MEASure:TIEData (see
page 1573)

:MEASure:TIEData2 (see
page 977)

Clock recovery options have
been removed (clock recovery
as specified with the
:ANALyze:CLOCk:METHod is
used).

1

When the signal type is PAM-4,
an additional 
parameter is used to specify
the threshold at which to make
the TIE measurements.
:MTESt:FOLDing:COUNt? (see
page 1575)

:MTESt:FOLDing:COUNt:UI?
(see page 695)
:MTESt:FOLDing:COUNt:WAVef
orms? (see page 697)

The :MTESt:FOLDing:COUNt?
query returns two values for UI
count and waveform count.
Now, there are separate
queries that return those
values individually.
The UI count returned by
:MTESt:FOLDing:COUNt? is
now a floating-point value
instead of an integer value.

Keysight Infiniium Oscilloscopes Programmer's Guide

67

1

What's New

What's New in Version 5.30
New command descriptions for Version 5.30 of the Infiniium oscilloscope software
appear below.
New Commands
Command

Description

:ANALyze Commands (see
page 243)

The commands in the ANALyze subsystem are used to:

• Specify whether to use a single edge or all edges in the

acquisition for horizontal measurements (:ANALyze:AEDGes
command).

• Set up clock recovery (:ANALyze:CLOCk commands).
• Specify whether to use the data on screen or the entire
acquisition for measurements, functions, and analysis
(:ANALyze:VIEW command).

68

:FUNCtion:GATing:STARt
(see page 533)

Specifies the time, in seconds, where the gating window begins
relative to the source waveform.

:FUNCtion:GATing:STOP
(see page 534)

Specifies the time, in seconds, where the gating window ends
relative to the source waveform.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Obsolete
Commands

Obsolete Command

Current Command Equivalent

Behavior Differences

:MEASure:CLOCk (see
page 1548)

:ANALyze:CLOCk (see
page 246)

:MEASure:CLOCk:METHod (see
page 1549)

:ANALyze:CLOCk:METHod (see
page 247)

There are no differences in
behavior. This is just a
remapping of commands into a
new subsystem.

:MEASure:CLOCk:METHod:ALIG
n (see page 1553)

:ANALyze:CLOCk:METHod:ALIG
n (see page 250)

:MEASure:CLOCk:METHod:DEE
Mphasis (see page 1555)

:ANALyze:CLOCk:METHod:DEE
Mphasis (see page 252)

:MEASure:CLOCk:METHod:EDG
E (see page 1556)

:ANALyze:CLOCk:METHod:EDG
E (see page 253)

:MEASure:CLOCk:METHod:JTF
(see page 1558)

:ANALyze:CLOCk:METHod:JTF
(see page 256)

:MEASure:CLOCk:METHod:OJT
F (see page 1560)

:ANALyze:CLOCk:METHod:OJTF
(see page 259)

:MEASure:CLOCk:METHod:PLLT
rack (see page 1562)

:ANALyze:CLOCk:METHod:PLLT
rack (see page 262)

:MEASure:CLOCk:METHod:SOU
Rce (see page 1563)

:ANALyze:CLOCk:METHod:SOU
Rce (see page 264)

:MEASure:CLOCk:VERTical (see
page 1564)

:ANALyze:CLOCk:VERTical (see
page 265)

:MEASure:CLOCk:VERTical:OFF
Set (see page 1565)

:ANALyze:CLOCk:VERTical:OFF
Set (see page 266)

:MEASure:CLOCk:VERTical:RAN
Ge (see page 1566)

:ANALyze:CLOCk:VERTical:RAN
Ge (see page 267)

:MEASure:JITTer:STATistics
(see page 1572)

:ANALyze:AEDGes (see
page 245)

Keysight Infiniium Oscilloscopes Programmer's Guide

1

The :ANALyze:AEDGes
command maps to the
"Measure All Edges" control in
the user interface's
Measurement Setup dialog box
only. It does not affect jitter
modes or statistics.

69

1

What's New

What's New in Version 5.20
New command descriptions for Version 5.20 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

70

Command

Description

:ACQuire:BANDwidth:FRAMe?
(see page 215)

Returns the maximum band width associated with oscilloscope
model.

:HISTogram:HORizontal:BINS
(see page 574)

Sets the maximum number of bins used for a horizontal waveform
histogram.

:HISTogram:MEASurement:BIN
S (see page 575)

Sets the maximum number of bins used for a measurement
histogram.

:HISTogram:VERTical:BINS (see
page 578)

Sets the maximum number of bins used for a vertical waveform
histogram.

:MEASure:CLOCk:METHod:SOU
Rce (see page 1563)

Clock recovery methods can now be defined for each waveform
source (or for all waveform sources, as before). This command
selects the waveform source (or all sources) to which other clock
recovery method setup commands apply.

:SBUS:FLEXray Commands
(see page 1073)

These commands control the FlexRay serial decode bus viewing,
mode, and other options.

:SBUS:LIN Commands (see
page 1100)

These commands control the LIN serial decode bus viewing,
mode, and other options.

:SYSTem:PERSona (see
page 1194)

Sets the manufacturer string and the model number string
returned by the *IDN? query.

Command

Description

:CHANnel:PROBe:EADapter
(see page 352)

Added the DIV1000, CUR001VA, CUR01VA, CUR1VA, CUR10VA,
CURN2893, CUR1147, HIVOLTN2790 options for use with the
E2697A or N5449A high impedance adapters.

:FUNCtion:MHIStogram
(see page 549)

Lets you specify the maximum number of histogram bins along
with the measurement source.

:SBUS:MODE (see
page 1056)

Added the FLEXray and LIN mode options.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Command

Description

:SBUS:CAN:SOURce (see
page 1063)

Added the NONE parameter to make the previously selected
channel, waveform memory, or math function available for other
decodes (same as selecting "None" for the source in the user
interface).

:SBUS:IIC:SOURce:CLOCk
(see page 1093)

1

:SBUS:IIC:SOURce:DATA
(see page 1094)
:SBUS:SPI:SOURce:CLOCk
(see page 1114)
:SBUS:SPI:SOURce:DATA
(see page 1116)
:SBUS:SPI:SOURce:FRAMe
(see page 1118)
:SBUS:SPI:SOURce:MISO
(see page 1119)
:SBUS:SPI:SOURce:MOSI
(see page 1120)

Keysight Infiniium Oscilloscopes Programmer's Guide

71

1

What's New

What's New in Version 5.10
New command descriptions for Version 5.10 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

72

Command

Description

:MTESt:FOLDing:TPOSition (see
page 705)

Sets the real-time eye horizontal center position in time.

:MTESt:FOLDing:TSCale (see
page 707)

Sets the real-time eye horizontal scale perdivision in time.

Command

Description

:MEASure:CLOCk:METHod (see
page 1549)

The PCIE clock recovery method has been removed.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 5.00
Version 5.00 of the Infiniium oscilloscope software introduces the new,
next-generation Infiniium user interface.
The next-generation Infiniium user interface software gives you much more
flexibility in how you can organize data, measurement results, and analysis views.
You can size windows however you like, choose stacked, side by side, or tabbed
window layouts, and you can even undock tabbed windows and place them
anywhere on your monitor(s).
Plus, the next-generation Infiniium user interface software gives you more features
to help you document waveforms and measurements, including visible scale
values on the waveform grids, visible markers delta values, bookmarks with
user-defined callout labels, and measurement values with callout labels. It is easy
to capture screen images with all this information. And, you can save waveform
data, measurements, analysis, settings, window layouts, and other settings, all to
a single composite file. When you open a composite file later, everything is set up
just like it was when you saved the file.
New command descriptions for Version 5.00 of the Infiniium oscilloscope software
appear below.
New Commands
Command

Description

:DISPlay:BOOKmark:DELet
e (see page 463)

Deletes a bookmark.

:DISPlay:BOOKmark:SET
(see page 464)

Sets a bookmark.

:DISPlay:BOOKmark:VERTi
cal? (see page 466)

Returns a waveform's vertical value at a bookmark's horizontal
position.

:DISPlay:BOOKmark:XPOSi
tion (see page 467)

Sets the horizontal grid position of a bookmark's callout box.

:DISPlay:BOOKmark:YPOSi
tion (see page 468)

Sets the vertical grid position of a bookmark's callout box.

:DISPlay:GRATicule:AREA:S
TATe (see page 478)

Enables or disables waveform areas 2-8. Waveform area 1 is
always on.

:DISPlay:LAYout (see
page 490)

Sets the window layout.

:DISPlay:MAIN (see page 491)

Turns on or off the main window view for the indicated source.

:DISPlay:PROPortion (see
page 495)

Specifies the size of the waveform and plot areas.

:MTESt:FOLDing:COUNt (see
page 1575)

Returns the number of waveforms and unit intervals in the
real-time eye.

Keysight Infiniium Oscilloscopes Programmer's Guide

73

1

What's New

Changed
Commands

74

Command

Description

:MTESt:FOLDing:POSition (see
page 701)

Sets the real-time eye horizontal center position in unit intervals.

:MTESt:FOLDing:SCALe (see
page 703)

Sets the real-time eye horizontal scale, that is, the number of unit
intervals (UIs) shown on screen.

:SBUS:HS:DESCramble
(see page 1087)

Turns high-speed descrambling on or off if supported by the
protocol type.

:SBUS:HS:FORMat (see
page 1088)

Specifies the high-speed symbol display format.

:SBUS:HS:IDLE (see
page 1089)

Specifies whether electrical idles are present in the signal.

:SBUS:HS:SOURce
(see page 1090)

Specifies the signal that is the high-speed data source.

:TIMebase:REFerence:PERCent
(see page 1206)

Sets the timebase reference (trigger) position as a percent of
screen value.

Command

Description

:BUS:B:TYPE (see
page 288)

Added support for new protocols.

:DISK:SAVE:LISTing (see
page 454)

Added the  parameter for specifying which display window
to save.

:DISPlay:CGRade (see
page 469)

Added the optional  parameter for specifying the
waveform on which color grade should be turned on or off.

:DISPlay:CGRade:LEVels (see
page 471)

This query is unchanged but results are returned only when a
single color grade view is on.

:DISPlay:CONNect (see
page 475)

Added the optional  parameter for specifying the
waveform on which the setting should be made.

:DISPlay:GRATicule:NUMBer
(see page 480)

Number of grids can be any number between 1 and 16 (not just 1,
2, 4, 8, or 16). You can also specify which waveform area the
number of grids setting is for.

:DISPlay:GRATicule:SETGrat
(see page 481)

In addition to assigning a waveform to a grid, you can now
optionally specify which waveform area the grid is in. Also, you
can specify whether the MAIN or CGRade (color grade) view of the
waveform will be placed.

:DISPlay:PERSistence (see
page 493)

Added the optional  parameter for specifying the
waveform on which the persistence setting should be made.

:LISTer:DATA (see page 644)

Added the  parameter for specifying which display window
to save.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Obsolete
Commands

Command

Description

:MEASure:CGRade:CROSsing
(see page 753)

Added the optional  parameter for specifying the
waveform on which the color grade crossing level percent is
measured.

:MEASure:CGRade:DCDistortio
n (see page 754)

Added the optional  parameter for specifying the
waveform on which the color grade duty cycle distortion is
measured.

:MEASure:CGRade:EHEight
(see page 755)

Added the optional  parameter for specifying the
waveform on which the color grade eye height is measured.

:MEASure:CGRade:EWIDth (see
page 757)

Added the optional  parameter for specifying the
waveform on which the color grade eye width is measured.

:MEASure:CGRade:EWINdow
(see page 759)

Added the optional  parameter for specifying the
waveform on which the color grade eye window is applied.

:MEASure:CGRade:JITTer (see
page 761)

Added the optional  parameter for specifying the
waveform on which the color grade jitter is measured.

:MEASure:CGRade:QFACtor
(see page 763)

Added the optional  parameter for specifying the
waveform on which the color grade Q factor is measured.

:MEASure:WINDow (see
page 1006)

Added the CGRade (color grade) view as a measurement window
option.

:MTESt:FOLDing (see
page 691)

Added the optional  parameter for specifying the
waveform on which to enable/disable the real-time eye.

:MTESt:FOLDing:BITS (see
page 693)

Added the required  parameter to specify the waveform
on which to set the real-time eye bit qualification.

:MTESt:FOLDing:FAST (see
page 699)

Added the optional  parameter for specifying the
waveform on which to set the fast worst-case option.

:TIMebase:REFerence (see
page 1205)

Query can now return PERC when a reference position percent
value is being used.

Obsolete Command

Current Command Equivalent

Behavior Differences

:DISPlay:COLumn (see
page 1541)

:DISPlay:BOOKmark:XPOSi
tion (see page 467)

:DISPlay:LINE (see
page 1542)

:DISPlay:BOOKmark:SET
(see page 464)

Bookmarks are now the
method used to place text
strings or annotations on
screen.

:DISPlay:ROW (see
page 1543)

:DISPlay:BOOKmark:YPOSi
tion (see page 468)

:DISPlay:STRing (see
page 1544)

:DISPlay:BOOKmark:SET
(see page 464)

:DISPlay:TEXT (see
page 1546)

:DISPlay:BOOKmark:DELet
e (see page 463)

Keysight Infiniium Oscilloscopes Programmer's Guide

1

75

1

What's New

Discontinued
Commands

76

Discontinued Command

Current Command Equivalent

Comments

:DISPlay:GRATicule:SIZE

None

Graticule sizing is different in
the next-generation Infiniium
user interface software.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 4.60
New command descriptions for Version 4.60 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

Command

Description

:ASTate? (see page 1019)

Returns the acquisition state.

:CHANnel:ISIM:NORMalize
(see page 340)

Lets you normalize the gain of an InfiniiSim transfer function.

:RSTate? (see page 1041)

Returns the run state.

:SBUS:CAN Commands
(see page 1057)

These commands control the CAN serial decode bus viewing,
mode, and other options.

Command

Description

:SBUS:MODE (see
page 1056)

Added CAN mode option.

Keysight Infiniium Oscilloscopes Programmer's Guide

77

1

What's New

What's New in Version 4.50
New command descriptions for Version 4.50 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

78

Command

Description

:FUNCtion:ADEMod (see
page 511)

Sets the math function to show the amplitude envelope for an
amplitude modulated (AM) input signal.

:MEASurement:NAME (see
page 1007)

Lets you give specific names to measurements displayed on the
oscilloscope's screen.

:MEASurement:SOURce
(see page 1008)

Changes the source of an existing measurement.

:MTESt:FOLDing:FAST (see
page 699)

Turns the "Fast, Worst Case Only" real-time eye display option ON
or OFF.

Command

Description

:DIGital:THReshold (see
page 441)

There is now the DIFFerential parameter for specifying the
threshold voltage.

:DISK:SAVE:WAVeform (see
page 458)

There is now the H5INt format parameter which saves waveform
data as integers within the H5 file.

:POD:THReshold (see
page 1012)

There is now the DIFFerential parameter for specifying the
threshold voltage.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 4.30
New command descriptions for Version 4.30 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

Command

Description

:FUNCtion:DELay (see
page 514)

Defines a function waveform that is the source waveform delayed
in time.

:FUNCtion:GATing (see
page 532)

Defines a horizontal gating function of another waveform (similar
to horizontal zoom). Measurements on horizontal gating functions
are essentially gated measurements.

:MEASure:CLOCk:METHod:EDG
E (see page 1556)

Specifies which edge(s) of the data signal are used to recover a
clock.

:MEASure:RJDJ:CLOCk (see
page 904)

When ON, it forces the pattern to be a clock and sets the jitter for
edges not examined to zero (0).

:TRIGger:LEVel:FIFTy (see
page 1227)

Sets the trigger level to 50%, like pushing the front panel trigger
level knob

Command

Description

Function Commands (see
page 505)

You can now define up to 16 functions.

Keysight Infiniium Oscilloscopes Programmer's Guide

79

1

What's New

What's New in Version 4.20
New command descriptions for Version 4.20 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

Obsolete
Commands

80

Command

Description

:DISPlay:CGRade:SCHeme (see
page 473)

Lets you set the color grade scheme to CLASsic or TEMP.

:FUNCtion:FFT:TDELay (see
page 526)

Sets the time delay for the FFT phase function.

:MEASure:CHARge (see
page 765)

When N2820A/N2821A high-sensitivity current probes are
connected, this command/query measures the total current
consumption over time with the results listed in ampere-hours
(Ah).

:MEASure:CLOCk:METHod:JTF
(see page 1558)

Specifies the clock recovery PLL's response in terms of the Jitter
Transfer Function's (JTF) 3 dB band width.

:MEASure:CLOCk:METHod:OJT
F (see page 1560)

Specifies the clock recovery PLL's response in terms of the
Observed Jitter Transfer Function's (OJTF) 3 dB band width.

:MEASure:CLOCk:METHod:PLLT
rack (see page 1562)

Turns the Transition Density Dependent setting on or off.

Command

Description

:MEASure:CLOCk:METHod (see
page 1549)

The command options for specifying clock recovery PLL options
have been moved to the new commands
:MEASure:CLOCk:METHod:JTF and
:MEASure:CLOCk:METHod:OJTF.

Obsolete Command

Current Command
Equivalent

Description

:MEASure:DDPWS

:MEASure:RJDJ:ALL?
(see page 898)

The :MEASure:RJDJ:ALL? query returns all of the
RJDJ jitter measurements.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 4.10
New command descriptions for Version 4.10 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

Command

Description

:MEASure:NOISe:METHod (see
page 847)

Lets you select the method for random noise (RN) analysis, either
the SPECtral method or BOTH the spectral and tail fit methods.

:MEASure:NOISe:REPort (see
page 848)

When BOTH is selected for :MEASure:NOISe:METHod, you can
select SPECtral or TAILfit to specify which method is used for the
reports.

:MEASure:RJDJ:METHod (see
page 907)

Lets you select the method for random jitter (RJ) analysis, either
the SPECtral method or BOTH the spectral and tail fit methods.

:MEASure:RJDJ:REPort (see
page 911)

When BOTH is selected for :MEASure:RJDJ:METHod, you can
select SPECtral or TAILfit to specify which method is used for the
reports.

:MEASure:TIEFilter:SHAPe (see
page 979)

Specifies the shape of the TIE filter edge(s).

Command

Description

:MEASure:NOISe:ALL (see
page 843)

New results can be returned depending on the
:MEASure:NOISe:METHod and :MEASure:NOISe:REPort settings.

:MEASure:RJDJ:ALL (see
page 898)

New results can be returned depending on the
:MEASure:RJDJ:METHod and :MEASure:RJDJ:REPort settings.

Keysight Infiniium Oscilloscopes Programmer's Guide

81

1

What's New

What's New in Version 4.00
New command descriptions for Version 4.00 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

82

Command

Description

:ACQuire:REDGe (see
page 230)

For 50 GHz and 63 GHz band width models of the 90000 Q-Series
oscilloscopes, this command enables or disables the RealEdge
channel inputs.

:DISK:SAVE:PRECprobe (see
page 456)

Saves PrecisionProbe/Cable data to a file.

:ISCan:ZONE:HIDE (see
page 627)

Lets you hide or show all InfiniiScan zones on the display.

Command

Description

:ACQuire:BANDwidth (see
page 213)

There is now a MAX option for selecting the maximum band width.

:MTESt:FOLDing:BITS (see
page 693)

There is now a PATTern option for specifying bit pattern
qualification for the real-time eye display.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 3.50
New command descriptions for Version 3.50 of the Infiniium oscilloscope software
appear below.
New Commands
Command

Description

:CHANnel:PROBe:AUTozer
o (see page 350)

Initiates the N2893A probe's auto degauss/ offset cal.

:CHANnel:PROBe:HEAD:VT
ERm (see page 364)

Sets the termination voltage for the N5444A probe head.

:CHANnel:PROBe:MODE
(see page 367)

Sets the N2750A probe's InfiniiMode configuration.

:FUNCtion:MTRend (see
page 552)

New Meas Trend math function.

:FUNCtion:MHIStogram
(see page 549)

New Meas Histogram math function.

:LISTer Commands (see
page 643)

For displaying and retrieving data from the serial decode listings.

:MEASure:HISTogram:RESoluti
on (see page 816)

The bin width value of one bar in the histogram.

:MEASure:NOISe (see
page 841)

Adds a Noise measurement to the oscilloscope display (like
Measure > Data > Noise from the front panel) or gets the
measured noise value.

:MEASure:NOISe:ALL (see
page 843)

Returns the NOISe measurement results for the "zeros" or "ones"
level.

:MEASure:NOISe:BANDwidth
(see page 845)

Sets the type of filtering used to separate the data dependent
noise from the random noise and the periodic noise.

:MEASure:NOISe:LOCation (see
page 846)

Specifies the noise measurement location within the bit where 0%
is the beginning of the bit, 50% is the middle of the bit, and 100%
is the end of the bit.

:MEASure:NOISe:RN (see
page 849)

Specifies a known amount of random noise.

:MEASure:NOISe:SCOPe:RN
(see page 850)

Specifies the removal of the oscilloscope's calibrated random
noise from the reported RN.

:MEASure:NOISe:STATe (see
page 851)

Enables or disables the NOISe measurements.

:MEASure:NOISe:UNITs (see
page 852)

Sets the unit of measure for NOISe measurements to volts or unit
amplitude.

:MEASure:RJDJ:RJ (see
page 912)

Specifies a known amount of random jitter.

Keysight Infiniium Oscilloscopes Programmer's Guide

83

1

What's New

Changed
Commands

84

Command

Description

:MEASure:RJDJ:SCOPe:RJ (see
page 913)

Specifies the removal of the oscilloscope's calibrated random
jitter from the reported RJ.

:SBUS Commands (see
page 1053)

For setting up IIC and SPI serial decode and triggering.

Command

Description

:CHANnel:PROBe:HEAD:SE
Lect (see page 363)

Now lets you select probe heads by the labels given with the
:CHANnel:PROBe:HEAD:ADD command.

:MEASure:HISTogram:HITS
(see page 805)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:M1S (see
page 806)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:M2S (see
page 807)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:M3S (see
page 808)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MAX (see
page 809)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MEAN
(see page 810)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MEDian
(see page 811)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MIN (see
page 812)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MODE
(see page 813)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:PEAK
(see page 814)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:PP (see
page 815)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:STDDev
(see page 817)

Can now use this command with Meas Histogram math functions.

:MEASure:RJDJ:ALL (see
page 898)

There are two possible additional measurement results, Scope
RN(rms) and DDPWS.

:TRIGger:MODE (see
page 1229)

Added the SBUS1, SBUS2, SBUS3, and SBUS4 selections for
triggering on serial buses.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 3.20
New command descriptions for Version 3.20 of the Infiniium oscilloscope software
appear below.
New Commands
Command

Description

:MARKer:MEASurement:MEASu
rement (see page 650)

Specifies which measurement markers track (when the
:MARKer:MODE is set to MEASurement).

:MEASure:CLOCk:METHod:ALIG
n (see page 1553)

Lets you specify clock edges either center aligned with data or
edge aligned with data when using an explicit method of clock
recovery.

Keysight Infiniium Oscilloscopes Programmer's Guide

85

1

What's New

What's New in Version 3.11
New command descriptions for Version 3.11 of the Infiniium oscilloscope software
appear below.
New Commands

Changed
Commands

86

Command

Description

:CHANnel:ISIM:PEXTractio
n (see page 341)

Selects a channel's InfiniiSim port extraction.

:MEASure:HISTogram:MODE
(see page 813)

Returns the measurement histogram's Mode value.

Command

Description

:BUS:B:TYPE (see
page 288)

The MPHY protocol type has been added for the MIPI M-PHY
serial decode selection.

:FUNCtion:FFT:WINDow
(see page 528)

The HAMMing window mode is now a valid selection.

:MEASure:JITTer:SPECtrum:WI
NDow (see page 831)

The HAMMing window mode is now a valid selection.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

What's New in Version 3.10
New command descriptions for Version 3.10 of the Infiniium oscilloscope software
appear below.
New Commands
Command

Description

:ACQuire:BANDwidth (see
page 213)

Changes the band width frequency control for the acquisition
system.

:CHANnel:PROBe:ACCal
(see page 348)

Sets the type of AC response probe calibration to use.

:CHANnel:PROBe:PRECpro
be:BANDwidth (see
page 368)

Specifies how the limit of PrecisionProbe or PrecisionCable
correction/boosting is determined..

:CHANnel:PROBe:PRECpro
be:CALibration (see page 369)

Specifies the name of the PrecisionProbe or PrecisionCable
calibration to use for the specified channel and probe.

:CHANnel:PROBe:PRECpro
be:MODE (see page 371)

Selects between PrecisionProbe or PrecisionCable AC response
probe calibration.

:CHANnel:PROBe:PRECpro
be:ZSRC (see page 372)

Specifies how PrecisionProbe characterizes the time domain and
frequency domain response.

:DISPlay:STATus:COL (see
page 502)

Used to position the real time eye and InfiniiScan Zone Trigger
status labels.

:DISPlay:STATus:ROW (see
page 503)

Used to position the real time eye and InfiniiScan Zone Trigger
status labels.

:MEASure:DDPWS (see
page 1567)

For measuring Data Dependent Pulse Width Shrinkage.

:MEASure:EDGE (see
page 785)

For measuring the edge time relative to the reference location.

:MEASure:JITTer:SPECtrum:VE
RTical:TYPE (see page 830)

Lets you select either a LINear or a LOGarithmic vertical scale for
the jitter spectrum plot.

:MEASure:RJDJ:APLength?
(see page 900)

Returns the determined RjDj pattern length.

:MEASure:THResholds:GENeral
:ABSolute (see page 933)

Sets the upper level, middle level, and lower level voltages for
everything except rise/fall measurements and protocol decode.

:MEASure:THResholds:GENeral
:HYSTeresis (see page 935)

Sets the hysteresis range and level level voltages for everything
except rise/fall measurements and protocol decode.

:MEASure:THResholds:GENeral
:METHod (see page 937)

Specifies the way that the top and base of a waveform are
calculated for everything except rise/fall measurements and
protocol decode.

Keysight Infiniium Oscilloscopes Programmer's Guide

87

1

88

What's New

Command

Description

:MEASure:THResholds:GENeral
:PERCent (see page 943)

Sets the upper level, middle level, and lower level voltages as a
percentage of the top and base voltages for everything except
rise/fall measurements and protocol decode.

:MEASure:THResholds:GENeral
:TOPBase:ABSolute (see
page 945)

Sets the top level and base level voltages for everything except
rise/fall measurements and protocol decode.

:MEASure:THResholds:GENeral
:TOPBase:METHod (see
page 945)

Determines the way that the top and base of a waveform are
derived for everything except rise/fall measurements and protocol
decode.

:MEASure:THResholds:RFALl:A
BSolute (see page 952)

Sets the upper level, middle level, and lower level voltages for
rise/fall measurements.

:MEASure:THResholds:RFALl:H
YSTeresis

Sets the hysteresis range and level level voltages for rise/fall
measurements.

:MEASure:THResholds:RFALl:M
ETHod (see page 954)

Specifies the way that the top and base of a waveform are
calculated for rise/fall measurements.

:MEASure:THResholds:RFALl:P
ERCent (see page 958)

Sets the upper level, middle level, and lower level voltages as a
percentage of the top and base voltages for rise/fall
measurements.

:MEASure:THResholds:RFALl:T
OPBase:ABSolute (see
page 960)

Sets the top level and base level voltages for rise/fall
measurements.

:MEASure:THResholds:RFALl:T
OPBase:METHod (see
page 960)

Determines the way that the top and base of a waveform are
derived for rise/fall measurements.

:MEASure:THResholds:SERial:A
BSolute (see page 963)

Sets the upper level, middle level, and lower level voltages for
protocol decode.

:MEASure:THResholds:SERial:
HYSTeresis (see page 965)

Sets the hysteresis range and level level voltages for protocol
decode.

:MEASure:THResholds:SERial:
METHod (see page 967)

Specifies the way that the top and base of a waveform are
calculated for protocol decode.

:MEASure:THResholds:SERial:P
ERCent (see page 968)

Sets the upper level, middle level, and lower level voltages as a
percentage of the top and base voltages for protocol decode.

:MEASure:THResholds:SERial:T
OPBase:ABSolute (see
page 970)

Sets the top level and base level voltages for protocol decode.

:MEASure:THResholds:SERial:T
OPBase:METHod (see
page 970)

Determines the way that the top and base of a waveform are
derived for protocol decode.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Changed
Commands

Command

Description

:SPRocessing:CTLequalizer:NU
MPoles (see page 1140)

Selects either a 2 Pole or 3 Pole Continuous Time Linear
Equalization.

:SPRocessing:CTLequalizer:P3
(see page 1143)

Sets the Pole 3 frequency for the Continuous Time Linear
Equalization.

Command

Description

:ACQuire:INTerpolate (see
page 222)

The INT1, INT2, INT4, INT8, INT16 options have been added for
specifying the 1, 2, 4, 8, or 16 point Sin(x)/x interpolation ratios.

:MEASure:RJDJ:BER (see
page 902)

You can now set J2 and J9 jitter BER levels.

:MEASure:VRMS (see
page 1001)

The VOLT and DBM parameters have been added for specifying
the measurement units.

:MEASure:WINDow (see
page 1006)

The short form of the command was changed from :MEAS:WIN to
:MEAS:WIND.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

89

1

90

What's New

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

2 Setting Up
Step 1. Install Keysight IO Libraries Suite software / 92
Step 2. Connect and set up the oscilloscope / 93
Step 3. Verify the oscilloscope connection / 94

This chapter explains how to install the Keysight IO Libraries Suite software on a
controller PC, connect the oscilloscope to the controller PC, set up the
oscilloscope, and verify the oscilloscope connection.
Note that Keysight IO Libraries Suite software comes installed on Infiniium
oscilloscopes, and it is possible to control the oscilloscope from programs running
on the instrument.

91

2

Setting Up

Step 1. Install Keysight IO Libraries Suite software
To install the Keysight IO Libraries Suite software on a controller PC:
1 Download the Keysight IO Libraries Suite software from the Keysight web site

at:
•

http://www.keysight.com/find/iolib

2 Run the setup file, and follow its installation instructions.

Note that Keysight IO Libraries Suite software comes installed on Infiniium
oscilloscopes.

92

Keysight Infiniium Oscilloscopes Programmer's Guide

Setting Up

2

Step 2. Connect and set up the oscilloscope
Infiniium oscilloscopes can have these interfaces for programming the
oscilloscope:
•

USB (device port, square connector).

•

LAN. To configure the LAN interface, set up the Infiniium oscilloscope on the
network as you would any other computer with the Windows operating system.

•

GPIB, when the instrument has a GPIB interface connector or when the N4865A
GPIB-to-LAN adapter is used.

When installed, these interfaces are always active.

Using the USB (Device) Interface
1 Connect a USB cable from the controller PC's USB port to the "USB DEVICE"

port on the back of the oscilloscope.

Some oscilloscopes have a USB 2.0 high-speed port; other more recent models
have a USB 3.0 super-speed port.

Using the LAN Interface
1 If the controller PC is not already connected to the local area network (LAN), do

that first.

2 Contact your network administrator about adding the oscilloscope to the

network.

Setting up an Infiniium oscilloscope on a network is the same as setting up any
other computer with the Windows 7 operating system.
3 Connect the oscilloscope to the local area network (LAN) by inserting LAN

cable into the "LAN" port on the oscilloscope.

Keysight Infiniium Oscilloscopes Programmer's Guide

93

2

Setting Up

Step 3. Verify the oscilloscope connection
NOTE

Make sure the Keysight Infiniium software is running on the oscilloscope. It must be running
before you can make a connection.

1 On the controller PC, click on the Keysight IO Control icon in the taskbar and

choose Connection Expert from the popup menu.

2 In the Keysight Connection Expert application, instruments connected to the

controller's USB and GPIB interfaces as well as instruments on the same LAN
subnet should automatically appear in the Instruments tab.

94

Keysight Infiniium Oscilloscopes Programmer's Guide

Setting Up

2

3 If your instrument does not appear, you can add it using the Manual

Configuration tab.

For example, to add a device:
a

Select LAN instrument in the list on the left.

b Enter the oscilloscope's Hostname or IP address.
c Select the protocol.
d Select HiSLIP under Set Protocol.

HiSLIP (High-Speed LAN Instrument Protocol) is a protocol for TCP-based
instrument control that provides the instrument-like capabilities of
conventional test and measurement protocols with minimal impact to
performance.
For more information on the HiSLIP protocol, see:
•

The Keysight IO Libraries Suite documentation.

•

http://www.lxistandard.org/About/LXI-Device-Support-HiSLIP.aspx

•

http://www.ivifoundation.org/specifications/

e Click Test This VISA Address to verify the connection.
f

If the connection test is successful, click Accept to add the instrument.

Keysight Infiniium Oscilloscopes Programmer's Guide

95

2

Setting Up

If the connection test is not successful, go back and verify the LAN
connections and the oscilloscope setup.
4 Test some commands on the instrument:
a

In the Details for the selected instrument, click Send Commands To This
Instrument.

b In the Keysight Interactive IO application, enter commands in the Command

field and press Send Command, Read Response, or Send & Read.

96

Keysight Infiniium Oscilloscopes Programmer's Guide

Setting Up

2

c Choose Connect > Exit from the menu to exit the Keysight Interactive IO

application.

5 In the Keysight Connection Expert application, choose File > Exit from the menu

to exit the application.

Keysight Infiniium Oscilloscopes Programmer's Guide

97

2

98

Setting Up

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

3 Introduction to Programming
Communicating with the Oscilloscope / 101
Instructions / 102
Instruction Header / 103
White Space (Separator) / 104
Braces / 105
Ellipsis / 106
Square Brackets / 107
Command and Query Sources / 108
Program Data / 109
Header Types / 110
Query Headers / 112
Program Header Options / 113
Character Program Data / 114
Numeric Program Data / 115
Embedded Strings / 116
Program Message Terminator / 117
Common Commands within a Subsystem / 118
Selecting Multiple Subsystems / 119
Programming Getting Started / 120
Referencing the IO Library / 121
Opening the Oscilloscope Connection via the IO Library / 122
Initializing the Interface and the Oscilloscope / 123
Example Program / 125
Using the DIGitize Command / 126
Receiving Information from the Oscilloscope / 128
String Variable Example / 129
Numeric Variable Example / 130
Definite-Length Block Response Data / 131
Multiple Queries / 132
Oscilloscope Status / 133

99

3

Introduction to Programming

This chapter introduces the basics for remote programming of an oscilloscope. The
programming commands in this manual conform to the IEEE 488.2 Standard
Digital Interface for Programmable Instrumentation. The programming commands
provide the means of remote control.
Basic operations that you can do with a computer and an oscilloscope include:
•

Set up the oscilloscope.

•

Make measurements.

•

Get data (waveform, measurements, and configuration) from the oscilloscope.

•

Send information, such as waveforms and configurations, to the oscilloscope.

You can accomplish other tasks by combining these functions.

NOTE

Example Programs are Written in Visual Basic for Applications (VBA) and C
The programming examples for individual commands in this manual are written in Visual Basic
for Applications (VBA) and C.

100

Keysight Infiniium Oscilloscopes Programmer's Guide

Introduction to Programming

3

Communicating with the Oscilloscope
Computers communicate with the oscilloscope by sending and receiving
messages over a remote interface, such as a GPIB card (must order the N4865A
GPIB-to-LAN adapter) or a Local Area Network (LAN) card. Commands for
programming normally appear as ASCII character strings embedded inside the
output statements of a "host" language available on your computer. The input
commands of the host language are used to read responses from the oscilloscope.
For example, the VISA COM library provides the WriteString() method for sending
commands and queries. After a query is sent, the response can be read using the
ReadString() method. The ReadString() method passes the value across the bus to
the computer and places it in the designated variable.
For the GPIB interface, messages are placed on the bus using an output command
and passing the device address, program message, and a terminator. Passing the
device address ensures that the program message is sent to the correct GPIB
interface and GPIB device.
The following WriteString() method sends a command that sets the channel 1
scale value to 500 mV:
myScope.WriteString ":CHANnel1:SCALe 500E-3"

The VISA COM library setup is explained on the following pages.

NOTE

Use the Suffix Mul tiplier Instead
Using "mV" or "V" following the numeric voltage value in some commands will cause
Error 138 - Suffix not allowed. Instead, use the convention for the suffix multiplier as
described in Chapter 6, “Message Communication and System Functions,” starting on page
149.

Keysight Infiniium Oscilloscopes Programmer's Guide

101

3

Introduction to Programming

Instructions
Instructions, both commands and queries, normally appear as strings embedded
in a statement of your host language, such as Visual Basic for Applications (VBA),
Visual Basic .NET, C#, C, etc.
The only time a parameter is not meant to be expressed as a string is when the
instruction's syntax definition specifies , such as with the
:SYSTem:SETup command. There are only a few instructions that use block data.
Instructions are composed of two main parts:

102

•

The header, which specifies the command or query to be sent.

•

The program data, which provides additional information to clarify the meaning
of the instruction.

Keysight Infiniium Oscilloscopes Programmer's Guide

3

Introduction to Programming

Instruction Header
The instruction header is one or more command mnemonics separated by colons
(:). They represent the operation to be performed by the oscilloscope. See
Chapter 9, “Programming Conventions,” starting on page 201 for more
information.
Queries are formed 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 include the question mark. The command and query forms of an
instruction usually have different program data. Many queries do not use any
program data.

Keysight Infiniium Oscilloscopes Programmer's Guide

103

3

Introduction to Programming

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.

104

Keysight Infiniium Oscilloscopes Programmer's Guide

Introduction to Programming

3

Braces
When several items are enclosed by braces, { }, only one of these elements may be
selected. Vertical line ( | ) indicates "or". For example, {ON | OFF} indicates that
only ON or OFF may be selected, not both.

Keysight Infiniium Oscilloscopes Programmer's Guide

105

3

Introduction to Programming

Ellipsis
... An ellipsis (trailing dots) indicates that the preceding element may be repeated
one or more times.

106

Keysight Infiniium Oscilloscopes Programmer's Guide

Introduction to Programming

3

Square Brackets
Items enclosed in square brackets, [ ], are optional.

Keysight Infiniium Oscilloscopes Programmer's Guide

107

3

Introduction to Programming

Command and Query Sources
Many commands and queries require that a source be specified. Depending on the
command or query and the model number of Infiniium oscilloscope being used,
some of the sources are not available. The following is a list of sources:

108

CHANnel1

FUNCtion1

WMEMory1

COMMonmode{3|4}

CHANnel2

FUNCtion2

WMEMory2

DIFFerential{1|2}

CHANnel3

FUNCtion3

WMEMory3

EQUalized

CHANnel4

FUNCtion4

WMEMory4

DIGital0 - DIGital15

CLOCk

MTRend

MSPectrum

HISTogram

Keysight Infiniium Oscilloscopes Programmer's Guide

3

Introduction to Programming

Program Data
Program data is used to clarify the meaning of the command or query. It provides
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 and the values they accept.
When there is more than one data parameter, they are separated by commas (,).
You can add spaces around the commas to improve readability.

Keysight Infiniium Oscilloscopes Programmer's Guide

109

3

Introduction to Programming

Header Types
There are three types of headers:

See Also

•

"Simple Command Header" on page 110

•

"Compound Command Header" on page 110

•

"Common Command Header" on page 111

•

"Combining Commands in the Same Subsystem" on page 111

•

"Duplicate Mnemonics" on page 111

Simple Command Header
Simple command headers contain a single mnemonic. AUToscale and DIGitize are
examples of simple command headers typically used in this oscilloscope. The
syntax is:


For example:
":AUToscale"

When program data must be included with the simple command header (for
example, :DIGitize CHANnel1), white space is added to separate the data from the
header. The syntax is:


For example:
":DIGitize CHANnel1,FUNCtion2"

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:
::

For example:
":CHANnel1:BWLimit ON"

110

Keysight Infiniium Oscilloscopes Programmer's Guide

Introduction to Programming

3

Combining Commands in the Same Subsystem
To execute more than one command within the same subsystem, use a semi-colon
(;) to separate the commands:
::;


For example:
:CHANnel1:INPut DC;BWLimit ON

Common Command Header
Common command headers, such as clear status, control the IEEE 488.2 functions
within the oscilloscope. The syntax is:
*

No space or separator is allowed between the asterisk (*) and the command
header. *CLS is an example of a common command header.

Duplicate Mnemonics
Identical function mnemonics can be used for more than one subsystem. For
example, you can use the function mnemonic RANGE to change both the vertical
range and horizontal range:
To set the vertical range of channel 1 to 0.4 volts full scale:
:CHANnel1:RANGe .4

To set the horizontal time base to 1 second full scale:
:TIMebase:RANGe

1

In these examples, CHANnel1 and TIMebase are subsystem selectors, and
determine the range type being modified.

Keysight Infiniium Oscilloscopes Programmer's Guide

111

3

Introduction to Programming

Query Headers
A command header immediately followed by a question mark (?) is a query. After
receiving a query, the oscilloscope interrogates the requested subsystem and
places the answer in its output queue. The answer remains in the output queue
until it is read or until another command is issued. When read, the answer is
transmitted across the bus to the designated listener (typically a computer).
For example, with VISA COM library and Visual Basic for Applications (VBA)
language, the query:
myScope.WriteString ":TIMebase:RANGe?"

places the current time base setting in the output queue.
The computer input statement:
varRange = myScope.ReadNumber

passes the value across the bus to the computer and places it in the variable
varRange.
You can use queries to find out how the oscilloscope is currently configured and to
get results of measurements made by the oscilloscope. For example, the query:
:MEASure:RISetime?

tells the oscilloscope to measure the rise time of your waveform and place 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 it with an
input statement.
With the VISA COM library and Visual Basic for Applications (VBA) language, this
is usually done with a ReadString() or ReadNumber() method. These methods read
the result of the query and place the result in a specified variable.

NOTE

Handle Queries Properly
If you send another command or query before reading the result of a query, the output buffer
is cleared and the current response is lost. This also generates a query-interrupted error in the
error queue. If you execute an input statement before you send a query, it will cause the
computer to wait indefinitely.

112

Keysight Infiniium Oscilloscopes Programmer's Guide

Introduction to Programming

3

Program Header Options
You can send program headers using any combination of uppercase or
lowercaseASCII characters. Oscilloscope responses, however, are always returned
in uppercase.
You may send program command and query headers in either long form (complete
spelling), short form (abbreviated spelling), or any combination of long form and
short form. For example:
":TIMebase:DELay 1E-6" is the long form.
":TIM:DEL 1E-6" is the short form.
The command descriptions in this reference show upper and lowercase characters.
For example, ":AUToscale" indicates that the entire command name is
":AUTOSCALE". The short form, ":AUT", is also accepted by the oscilloscope.

NOTE

Using Long Form or Short Form
Programs written in long form are easily read and are almost self-documenting. The short
form syntax conserves the amount of computer memory needed for program storage and
reduces I/O activity.
The rules for the short form syntax are described in Chapter 9, “Programming
Conventions,” starting on page 201.

Keysight Infiniium Oscilloscopes Programmer's Guide

113

3

Introduction to Programming

Character Program Data
Character program data is used to convey parameter information as alpha or
alphanumeric strings. For example, the :TIMebase:REFerence command can be
set to left, center, or right. The character program data in this case may be LEFT,
CENTer, or RIGHt. The command :TIMebase:REFerence RIGHt sets the time base
reference to right.
The available mnemonics for character program data are always included with the
instruction's syntax definition. You may send either the long form of commands, or
the short form (if one exists). You may mix uppercase and lowercase letters freely.
When receiving responses, uppercase letters are used exclusively.

114

Keysight Infiniium Oscilloscopes Programmer's Guide

3

Introduction to Programming

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 can use exponential notation or 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, it means that the
number should be whole. Any fractional part is ignored and truncated. Numeric
data parameters that accept fractional values are called real numbers.
All numbers are expected to be strings of ASCII characters.
•

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). The number of bytes is figured automatically when you include the
entire instruction in a string.

Keysight Infiniium Oscilloscopes Programmer's Guide

115

3

Introduction to Programming

Embedded Strings
Embedded strings contain groups of alphanumeric characters which are treated as
a unit of data by the oscilloscope. An example of this is the line of text written to
the advisory line of the oscilloscope with the :SYSTem:DSP command:
:SYSTem:DSP ""This is a message.""

You may delimit embedded strings with either single (') or double (") quotation
marks. These strings are case-sensitive, and spaces are also legal characters.

116

Keysight Infiniium Oscilloscopes Programmer's Guide

Introduction to Programming

3

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).

NOTE

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

Keysight Infiniium Oscilloscopes Programmer's Guide

117

3

Introduction to Programming

Common Commands within a Subsystem
Common commands can be received and processed by the oscilloscope whether
they are sent over the bus as separate program messages or within other program
messages. If you have selected a subsystem, and a common command is received
by the oscilloscope, the oscilloscope remains in the selected subsystem. For
example, if the program message
":ACQuire:AVERage ON;*CLS;COUNt 1024"

is received by the oscilloscope, the oscilloscope turns averaging on, then clears
the status information without leaving the selected subsystem.
If some other type of command is received within a program message, you must
re-enter the original subsystem after the command. For example, the program
message
":ACQuire:AVERage ON;:AUToscale;:ACQuire:AVERage:COUNt 1024"

turns averaging on, completes the autoscale operation, then sets the acquire
average count. Here, :ACQuire must be sent again after AUToscale to re-enter the
ACQuire subsystem and set the count.

118

Keysight Infiniium Oscilloscopes Programmer's Guide

3

Introduction to Programming

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 lets you enter a new subsystem. For example:
;:

:CHANnel1:RANGe 0.4;:TIMebase:RANGe 1

NOTE

You can Combine Compound and Simple Commands
Multiple program commands may be any combination of compound and simple commands.

Keysight Infiniium Oscilloscopes Programmer's Guide

119

3

Introduction to Programming

Programming Getting Started
The remainder of this chapter explains how to set up the oscilloscope, how to
retrieve setup information and measurement results, how to digitize a waveform,
and how to pass data to the computer. Chapter 28, “Measure Commands,”
starting on page 735 describes getting measurement data from the oscilloscope.

120

Keysight Infiniium Oscilloscopes Programmer's Guide

3

Introduction to Programming

Referencing the IO Library
No matter which instrument programming library you use (SICL, VISA, or VISA
COM), you must reference the library from your program.
In C/C++, you must tell the compiler where to find the include and library files (see
the Keysight IO Libraries Suite documentation for more information).
To reference the Keysight VISA COM library in Visual Basic for Applications (VBA,
which comes with Microsoft Office products like Excel):
1 Choose Tools > References... from the main menu.
2 In the References dialog, check the "VISA COM 3.0 Type Library".

3 Click OK.

To reference the Keysight VISA COM library in Microsoft Visual Basic 6.0:
1 Choose Project > References... from the main menu.
2 In the References dialog, check the "VISA COM 3.0 Type Library".
3 Click OK.

Keysight Infiniium Oscilloscopes Programmer's Guide

121

3

Introduction to Programming

Opening the Oscilloscope Connection via the IO Library
PC controllers communicate with the oscilloscope by sending and receiving
messages over a remote interface. Once you have opened a connection to the
oscilloscope over the remote interface, programming instructions normally appear
as ASCII character strings embedded inside write statements of the programing
language. Read statements are used to read query responses from the
oscilloscope.
For example, when using the Keysight VISA COM library in Visual Basic (after
opening the connection to the instrument using the ResourceManager object's
Open method), the FormattedIO488 object's WriteString, WriteNumber, WriteList,
or WriteIEEEBlock methods are used for sending commands and queries. After a
query is sent, the response is read using the ReadString, ReadNumber, ReadList,
or ReadIEEEBlock methods.
The following Visual Basic statements open the connection and send a command
that turns on the oscilloscope's label display.
Dim myMgr As VisaComLib.ResourceManager
Dim myScope As VisaComLib.FormattedIO488
Set myMgr = New VisaComLib.ResourceManager
Set myScope = New VisaComLib.FormattedIO488
' Open the connection to the oscilloscope. Get the VISA Address from the
' Keysight Connection Expert (installed with Keysight IO Libraries Suite
).
Set myScope.IO = myMgr.Open("")
' Send a command.
myScope.WriteString ":DISPlay:LABel ON"

The ":DISPlay:LABEL ON" in the above example is called a program message.
Program messages are explained in more detail in "Instructions" on page 102.

122

Keysight Infiniium Oscilloscopes Programmer's Guide

Introduction to Programming

3

Initializing the Interface and the Oscilloscope
To make sure the bus and all appropriate interfaces are in a known state, begin
every program with an initialization statement. When using the Keysight VISA
COM library, you can use the resource session object's Clear method to clears the
interface buffer:
Dim myMgr As VisaComLib.ResourceManager
Dim myScope As VisaComLib.FormattedIO488
Set myMgr = New VisaComLib.ResourceManager
Set myScope = New VisaComLib.FormattedIO488
' Open the connection to the oscilloscope. Get the VISA Address from the
' Keysight Connection Expert (installed with Keysight IO Libraries Suite
).
Set myScope.IO = myMgr.Open("")
' Clear the interface buffer and set the interface timeout to 10 seconds
.
myScope.IO.Clear
myScope.IO.Timeout = 10000

When you are using GPIB, CLEAR also resets the oscilloscope's parser. The parser
is the program which reads in the instructions which you send it.
After clearing the interface, initialize the instrument to a preset state:
myScope.WriteString "*RST"

NOTE

Information for Initializing the Instrument
The actual commands and syntax for initializing the instrument are discussed in Chapter 15,
“Common Commands,” starting on page 413.
Refer to the Keysight IO Libraries Suite documentation for information on initializing the
interface.

See Also

•

"Autoscale" on page 123

•

"Setting Up the Oscilloscope" on page 124

Autoscale
The AUToscale feature of Keysight Technologies digitizing oscilloscopes performs
a very useful function on unknown waveforms by automatically setting up the
vertical channel, time base, and trigger level of the oscilloscope.
The syntax for the autoscale function is:
:AUToscale

Keysight Infiniium Oscilloscopes Programmer's Guide

123

3

Introduction to Programming

Setting Up the Oscilloscope
A typical oscilloscope setup configures 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 10; RANGe 16;OFFSet 1.00
:SYSTem:HEADer OFF
:TIMebase:RANGe 1E-3;DELay 100E-6

This example sets the time base at 1 ms full-scale (100 μs/div), with delay of
100 μs. Vertical is set to 16 V full-scale (2 V/div), with center of screen at 1 V, and
probe attenuation of 10.

124

Keysight Infiniium Oscilloscopes Programmer's Guide

3

Introduction to Programming

Example Program
This program demonstrates the basic command structure used to program the
oscilloscope.
' Initialize the instrument interface to a known state.
myScope.IO.Clear
myScope.IO.Timeout = 15000
' Set interface timeout to 15 seconds.
' Initialize the instrument to a preset state.
myScope.WriteString "*RST"
' Set the time base mode to normal with the horizontal time at
' 50 ms/div with 0 s of delay referenced at the center of the
' graticule.
myScope.WriteString ":TIMebase:RANGe 5E-4"
' Time base to 500 us/div.
myScope.WriteString ":TIMebase:DELay 0"
' Delay to zero.
myScope.WriteString ":TIMebase:REFerence CENTer"
' Display ref. at
' center.
' Set the vertical range to 1.6 volts full scale with center screen
' at -0.4 volts with 10:1 probe attenuation and DC coupling.
myScope.WriteString ":CHANnel1:PROBe 1.0"
' Probe attenuation
' to 1:1.
myScope.WriteString ":CHANnel1:RANGe 1.6"
' Vertical range
' 1.6 V full scale.
myScope.WriteString ":CHANnel1:OFFSet -0.4" ' Offset to -0.4.
myScope.WriteString ":CHANnel1:INPut DC"
' Coupling to DC.
' Configure the instrument to trigger at -0.4 volts with normal
' triggering.
myScope.WriteString ":TRIGger:SWEep NORMal"
' Normal triggering.
myScope.WriteString ":TRIGger:LEVel CHAN1,-0.4"
' Trigger level to -0.
4.
myScope.WriteString ":TRIGger:MODE EDGE"
' Edge triggering
myScope.WriteString ":TRIGger:EDGE:SLOPe POSitive" ' Trigger on pos. slo
pe.
' Configure the instrument for normal acquisition.
myScope.WriteString ":ACQuire:MODE RTIMe"
' Normal acquisition.
myScope.WriteString ":SYSTem:HEADer OFF"
' Turn system headers off.
myScope.WriteString ":DISPlay:GRATicule FRAMe"
' Grid off.

Keysight Infiniium Oscilloscopes Programmer's Guide

125

3

Introduction to Programming

Using the DIGitize Command
The DIGitize command is a macro that captures data using the acquisition
(ACQuire) subsystem. When the digitize process is complete, the acquisition is
stopped. You can measure the captured data by using the oscilloscope or by
transferring the data to a computer for further analysis. The captured data consists
of two parts: the preamble and the waveform data record.
After changing the oscilloscope configuration, the waveform buffers are cleared.
Before doing a measurement, you should send the DIGitize command to ensure
new data has been collected.
You can send the DIGitize command with no parameters for a higher throughput.
Refer to the DIGitize command in Chapter 30, “Root Level Commands,” starting on
page 1015 for details.
When the DIGitize command is sent to an oscilloscope, the specified channel's
waveform is digitized using the current ACQuire parameters. Before sending the
:WAVeform:DATA? query to download waveform data to your computer, you
should specify the WAVeform parameters.
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 lets you specify exactly what the digitized information
contains. The following program example shows a typical setup:
myScope.WriteString
myScope.WriteString
myScope.WriteString
myScope.WriteString
myScope.WriteString
myScope.WriteString
myScope.WriteString
myScope.WriteString
myScope.WriteString

":SYSTem:HEADer OFF"
":ACQuire:MODE RTIME"
":ACQuire:COMPlete 100"
":WAVeform:SOURce CHANnel1"
":WAVeform:FORMat BYTE"
":ACQuire:COUNt 8"
":ACQuire:POINts 500"
":DIGitize CHANnel1"
":WAVeform:DATA?"

This setup places the oscilloscope into the real time sampling mode using eight
averages. This means that when the DIGitize command is received, the command
will execute until the waveform has been averaged at least eight times.
After receiving the :WAVeform:DATA? query, the oscilloscope will start
downloading the waveform information.
Digitized waveforms are passed from the oscilloscope to the computer by sending
a numerical representation of each digitized point. The format of the numerical
representation is controlled by using the :WAVeform:FORMat command and may
be selected as BYTE, WORD, or ASCII.

126

Keysight Infiniium Oscilloscopes Programmer's Guide

3

Introduction to Programming

The easiest method of receiving a digitized waveform depends on data structures,
available formatting, and I/O capabilities. You must convert the data values to
determine the voltage value of each point. These data values are passed starting
with the left most point on the oscilloscope's display. For more information, refer
to the chapter, "Waveform Commands."
When using GPIB, you may abort a digitize operation by sending a Device Clear
over the bus.

Keysight Infiniium Oscilloscopes Programmer's Guide

127

3

Introduction to Programming

Receiving Information from the Oscilloscope
After receiving a query (a command header followed by a question mark), the
oscilloscope places the answer in its output queue. The answer remains in the
output queue until it is read or until another command is issued. When read, the
answer is transmitted across the interface to the computer.
The input statement for receiving a response message from an oscilloscope's
output queue typically has two parameters; the device address and a format
specification for handling the response message. For example, with the VISA COM
library, to read the result of the query command :CHANnel1:INPut? you would use
the ReadString() method:
Dim strSetting As String
myScope.WriteString ":CHANnel1:INPut?"
strSetting = myScope.ReadString

This would enter the current setting for the channel 1 coupling in the string
variable strSetting.
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.

NOTE

Handle Queries Properly
If you send another command or query before reading the result of a query, the output buffer
will be cleared and the current response will be lost. This will also generate a
query-interrupted error in the error queue. If you execute an input statement before you send a
query, it will cause the computer to wait indefinitely.
The format specification for handling response messages depends on both the
computer and the programming language.

128

Keysight Infiniium Oscilloscopes Programmer's Guide

Introduction to Programming

3

String Variable Example
The output of the oscilloscope 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.

NOTE

Express String Variables Using Exact Syntax
In Visual Basic, string variables are case sensitive and must be expressed exactly the same
each time they are used.
This example shows the data being returned to a string variable:
Dim strRang As String
myScope.WriteString ":CHANnel1:RANGe?"
strRang = myScope.ReadString
Debug.Print strRang

After running this program, the computer displays:
+8.00000E-01

Keysight Infiniium Oscilloscopes Programmer's Guide

129

3

Introduction to Programming

Numeric Variable Example
This example shows the data being returned to a numeric variable:
Dim varRang As Variant
myScope.WriteString ":CHANnel1:RANGe?"
varRang = myScope.ReadNumber
Debug.Print "Channel 1 range: " + FormatNumber(varRang, 0)

After running this program, the computer displays:
.8

130

Keysight Infiniium Oscilloscopes Programmer's Guide

Introduction to Programming

3

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:
#44000 <4000 bytes of data> 

The "4" following the pound sign represents the number of digits in the number of
bytes, and "4000" represents the number of bytes to be transmitted.

Keysight Infiniium Oscilloscopes Programmer's Guide

131

3

Introduction to Programming

Multiple Queries
You can send multiple queries to the instrument within a single command string,
but you must also read them back as a single query result. This can be
accomplished by reading them back into a single string variable, multiple string
variables, or multiple numeric variables.
For example, to read the :TIMebase:RANGe?;DELay? query result into a single
string variable, you could use the commands:
myScope.WriteString ":TIMebase:RANGe?;DELay?"
Dim strQueryResult As String
strQueryResult = myScope.ReadString
MsgBox "Timebase range; delay:" + strQueryResult

When you read the result of multiple queries into a single string variable, each
response is separated by a semicolon. For example, the output of the previous
example would be:
Timebase range; delay: ;

To read the :TIMebase:RANGe?;DELay? query result into multiple string variables,
you could use the ReadList method to read the query results into a string array
variable using the commands:
myScope.WriteString ":TIMebase:RANGe?;DELay?"
Dim strResults() As String
strResults() = myScope.ReadList(ASCIIType_BSTR)
MsgBox "Timebase range: " + strResults(0) + ", delay: " + strResults(1)

To read the :TIMebase:RANGe?;DELay? query result into multiple numeric
variables, you could use the ReadList method to read the query results into a
variant array variable using the commands:
myScope.WriteString ":TIMebase:RANGe?;DELay?"
Dim varResults() As Variant
varResults() = myScope.ReadList
MsgBox "Timebase range: " + FormatNumber(varResults(0) * 1000, 4) + _
" ms, delay: " + FormatNumber(varResults(1) * 1000000, 4) + " us"

132

Keysight Infiniium Oscilloscopes Programmer's Guide

3

Introduction to Programming

Oscilloscope Status
Status registers track the current status of the oscilloscope. By checking the
oscilloscope status, you can find out whether an operation has completed and is
receiving triggers. Chapter 7, “Status Reporting,” starting on page 153 explains
how to check the status of the oscilloscope.

Keysight Infiniium Oscilloscopes Programmer's Guide

133

3

134

Introduction to Programming

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

4 Sequential (Blocking) vs.
Overlapped Commands
IEEE 488.2 makes the distinction between sequential and overlapped commands
(and queries):
•

Sequential commands, also known as blocking commands, must 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.

In the Infiniium oscilloscopes, for the most part, commands and queries operate
differently.
•

Most commands are overlapped.
Exceptions to this are the :DIGitize command and the :DISK:SAVE commands,
which are sequential (blocking).

•

Most queries are sequential (blocking).
Exceptions to this are queries, like measurement results (see Chapter 28,
“Measure Commands,” starting on page 735), that copy information from the
display without having to make acquisitions.

With sequential (blocking) commands and queries, the oscilloscope is expected to
stop processing inputs, including additional remote commands and queries as
well as front panel knobs, until completed.
Waiting for
Overlapped
Commands to
Complete

With overlapped commands, you can use the *OPC? query to prevent any more
commands from being executed until the overlapped command is complete. This
may be necessary when a command that follows an overlapped command
interferes with the overlapped command's processing or analysis. For example:

:WMEMory1:SAVE CHAN1;*OPC?;:WMEMory2:SAVE CHAN2

You can also use the *ESR? query to look at the OPC bit (bit 0) in the Standard
Event Status Register to determine when an operation is complete.

135

4

Sequential (Blocking) vs. Overlapped Commands

Using Device Clear
to Abort a
Sequential
(Blocking)
Command
See Also

136

When sequential (blocking) commands take too long or fail to complete for some
reason, you can send a Device Clear over the bus to clear the input buffer and
output queue, reset the parser, and clear any pending commands.

•

"*OPC — Operation Complete" on page 422

•

"*ESR? — Event Status Register" on page 418

•

Chapter 8, “Remote Acquisition Synchronization,” starting on page 183

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

5 LAN, USB, and GPIB
Interfaces
LAN Interface Connector / 138
GPIB Interface Connector / 139
Default Startup Conditions / 140
Interface Capabilities / 141
GPIB Command and Data Concepts / 142
Communicating Over the GPIB Interface / 143
Communicating Over the LAN Interface / 144
Communicating via Telnet and Sockets / 145
Bus Commands / 147

There are several types of interfaces that can be used to remotely program the
Infiniium oscilloscope including Local Area Network (LAN) interface and GPIB
interface. Telnet and sockets can also be used to connect to the oscilloscope.

137

5

LAN, USB, and GPIB Interfaces

LAN Interface Connector
The oscilloscope is equipped with a LAN interface RJ-45 connector on the rear
panel. This allows direct connect to your network. However, before you can use
the LAN interface to program the oscilloscope, the network properties must be
configured. Unless you are a Network Administrator, you should contact your
Network Administrator to add the appropriate client, protocols, and configuration
information for your LAN. This information is different for every company.

138

Keysight Infiniium Oscilloscopes Programmer's Guide

LAN, USB, and GPIB Interfaces

5

GPIB Interface Connector
The oscilloscope is not equipped with a GPIB interface connector. You can,
however, order the N4865A GPIB-to-LAN adapter for the 9000A Series
oscilloscope.

Keysight Infiniium Oscilloscopes Programmer's Guide

139

5

LAN, USB, and GPIB Interfaces

Default Startup Conditions
The following default conditions are established during power-up:
•

The Request Service (RQS) bit in the status byte register is set to zero.

•

All of the event registers are cleared.

•

The Standard Event Status Enable Register is set to 0xFF hex.

•

Service Request Enable Register is set to 0x80 hex.

•

The Operation Status Enable Register is set to 0xFFFF hex.

•

The Overload Event Enable Register is set to 0xFF hex.

•

The Mask Test Event Enable Register is set to 0xFF hex.

You can change the default conditions using the *PSC command with a parameter
of 1 (one). When set to 1, the Standard Event Status Enable Register is set 0x00
hex and the Service Request Enable Register is set to 0x00 hex. This prevents the
Power On (PON) event from setting the SRQ interrupt when the oscilloscope is
ready to receive commands.

140

Keysight Infiniium Oscilloscopes Programmer's Guide

5

LAN, USB, and GPIB Interfaces

Interface Capabilities
The interface capabilities of this oscilloscope, as defined by IEEE 488.1 and IEEE
488.2, are listed in Table 1.
Table 1

Interface Capabilities

Code

Interface Function

Capability

SH1

Source Handshake

Full Capability

AH1

Acceptor Handshake

Full Capability

T5

Talker

Basic Talker/Serial Poll/Talk Only
Mode/ Unaddress if Listen Address
(MLA)

L4

Listener

Basic Listener/ Unaddresses if Talk
Address (MTA)

SR1

Service Request

Full Capability

RL1

Remote Local

Complete Capability

PP0

Parallel Poll

No Capability

DC1

Device Clear

Full Capability

DT1

Device Trigger

Full Capability

C0

Computer

No Capability

E2

Driver Electronics

Tri State (1 MB/SEC MAX)

Keysight Infiniium Oscilloscopes Programmer's Guide

141

5

LAN, USB, and GPIB Interfaces

GPIB Command and Data Concepts
The GPIB interface has two modes of operation: command mode and data mode.
The interface is in the command mode when the Attention (ATN) control line is
true. The command mode is used to send talk and listen addresses and various
interface commands such as group execute trigger (GET).
The interface 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 oscilloscope-specific commands, queries, and
responses found in this manual, including oscilloscope status information.

142

Keysight Infiniium Oscilloscopes Programmer's Guide

5

LAN, USB, and GPIB Interfaces

Communicating Over the GPIB Interface
Device addresses are sent by the computer in the command mode to specify who
talks and who listens. Because GPIB can address multiple devices through the
same interface card, the device address passed with the program message must
include the correct interface select code and the correct oscilloscope address.
Device Address = (Interface Select Code * 100) + Oscilloscope Address
See Also

•

"Interface Select Code" on page 143

•

"Oscilloscope Address" on page 143

Interface Select Code
Each interface card has a unique interface select code. This code is used by the
computer to direct commands and communications to the proper interface. The
default is typically "7" for the GPIB interface cards.

Oscilloscope Address
Each oscilloscope on the GPIB must have a unique oscilloscope address between
decimal 0 and 30. This oscilloscope address is used by the computer to direct
commands and communications to the proper oscilloscope on an interface. The
default is typically "7" for this oscilloscope. You can change the oscilloscope
address in the Utilities, Remote Interface dialog box.

NOTE

Do Not Use Address 21 for an Oscilloscope Address
Address 21 is usually reserved for the Computer interface Talk/Listen address, and should not
be used as an oscilloscope address.

Keysight Infiniium Oscilloscopes Programmer's Guide

143

5

LAN, USB, and GPIB Interfaces

Communicating Over the LAN Interface
The device address used to send commands and receive data using the LAN
interface is located in the Remote Setup dialog box (Utilities > Remote Setup).
The following C example program shows how to communicate with the
oscilloscope using the LAN interface and the Keysight Standard Instrument
Control Library (SICL).
#include 
#define BUFFER_SIZE 1024
main()
{
INST Bus;
int reason;
unsigned long actualcnt;
char buffer[ BUFFER_SIZE ];
/* Open the LAN interface */
Bus = iopen( "lan[130.29.71.143]:hpib7,7" );
if( Bus != 0 ) {
/* Bus timeout set to 20 seconds */
itimeout( Bus, 20000 );
/* Clear the interface */
iclear( Bus );
/* Query and print the oscilloscope's Id */
iwrite( Bus, "*IDN?", 5, 1, &actualcnt );
iread( Bus, buffer, BUFFER_SIZE, &reason, &actualcnt );
buffer[ actualcnt - 1 ] = 0;
printf( "%s\\n", buffer );
iclose( Bus );
}
}

144

Keysight Infiniium Oscilloscopes Programmer's Guide

5

LAN, USB, and GPIB Interfaces

Communicating via Telnet and Sockets
•

"Telnet" on page 145

•

"Sockets" on page 145

Telnet
To open a connection to the oscilloscope via a telnet connection, use the following
syntax in a command prompt:
telnet Oscilloscope_IP_Address 5024

5024 is the port number and the name of the oscilloscope can be used in place of
the IP address if desired.
After typing the above command line, press enter and a SCPI command line
interface will open. You can then use this as you typically would use a command
line.

Sockets
Sockets can be used to connect to your oscilloscope on either a Windows or Unix
machine.
The sockets are located on port 5025 on your oscilloscope. Between ports 5024
and 5025, only six socket ports can be opened simultaneously. It is, therefore,
important that you use a proper close routine to close the connection to the
oscilloscope. If you forget this, the connection will remain open and you may end
up exceeding the limit of six socket ports.
Some basic commands used in communicating to your oscilloscope include:
•

The receive command is: recv

•

The send command is: send

Below is a programming example (for a Windows-based machine) for opening and
closing a connection to your oscilloscope via sockets.
#include 
void main ()
{
WSADATA wsaData;
SOCKET mysocket = NULL;
char* ipAddress = "130.29.70.70";
const int ipPort = 5025;
//Initialize Winsock
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if(iResult != NO_ERROR)
{
printf("Error at WSAStartup()\\n");

Keysight Infiniium Oscilloscopes Programmer's Guide

145

5

LAN, USB, and GPIB Interfaces

return NULL;
}
//Create the socket
mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCOP);
if(mySocket == INVALID_SOCKET)
{
printf("Error at socket(): %ld\\n", WSAGetLastError());
WSACleanup();
return NULL;
}
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin.addr.s_addr = inet_addr(ipAddress);
clientService.sin_port = htons(ipPort);
if(connect(mySocket, (SOCKADDR*) &clientService, sizeof(clientService
)))
{
printf("Failed to connect.\\n");
WSACleanup();
return NULL;
}
//Do some work here
//Close socket when finished
closesocket(mySocket);
}

146

Keysight Infiniium Oscilloscopes Programmer's Guide

5

LAN, USB, and GPIB Interfaces

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

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

Group Execute Trigger
The group execute trigger (GET) command arms the trigger. This is the same
action produced by sending the RUN command.

Interface Clear
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 computer.

Keysight Infiniium Oscilloscopes Programmer's Guide

147

5

148

LAN, USB, and GPIB Interfaces

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

6 Message Communication and
System Functions
Protocols / 150

This chapter describes the operation of oscilloscopes that operate in compliance
with the IEEE 488.2 (syntax) standard. It is intended to give you enough basic
information about the IEEE 488.2 standard to successfully program the
oscilloscope. You can find additional detailed information about the IEEE 488.2
standard in ANSI/IEEE Std 488.2-1987, "IEEE Standard Codes, Formats, Protocols,
and Common Commands."
This oscilloscope series is designed to be compatible with other Keysight
Technologies IEEE 488.2 compatible instruments. Oscilloscopes that are
compatible with IEEE 488.2 must also be compatible with IEEE 488.1 (GPIB bus
standard); however, IEEE 488.1 compatible oscilloscopes may or may not conform
to the IEEE 488.2 standard. The IEEE 488.2 standard defines the message
exchange protocols by which the oscilloscope and the computer will
communicate. It also defines some common capabilities that are found in all IEEE
488.2 oscilloscopes. This chapter also contains some information about the
message communication and system functions not specifically defined by
IEEE 488.2.

149

6

Message Communication and System Functions

Protocols
The message exchange protocols of IEEE 488.2 define the overall scheme used by
the computer and the oscilloscope to communicate. This includes defining when it
is appropriate for devices to talk or listen, and what happens when the protocol is
not followed.
•

"Functional Elements" on page 150

•

"Protocol Overview" on page 150

•

"Protocol Operation" on page 151

•

"Protocol Exceptions" on page 151

•

"Suffix Multiplier" on page 151

•

"Suffix Unit" on page 152

Functional Elements
Before proceeding with the description of the protocol, you should understand a
few system components, as described here.
Input Buffer

The input buffer of the oscilloscope is the memory area where commands and
queries are stored prior to being parsed and executed. It allows a computer to
send a string of commands, which could take some time to execute, to the
oscilloscope, then proceed to talk to another oscilloscope while the first
oscilloscope is parsing and executing commands.

Output Queue

The output queue of the oscilloscope is the memory area where all output data or
response messages are stored until read by the computer.

Parser

The oscilloscope's parser is the component that interprets the commands sent to
the oscilloscope and decides what actions should be taken. "Parsing" refers to the
action taken by the parser to achieve this goal. Parsing and execution of
commands begins when either the oscilloscope recognizes a program message
terminator, or the input buffer becomes full. If you want to send a long sequence
of commands to be executed, then talk to another oscilloscope while they are
executing, you should send all of the commands before sending the program
message terminator.

Protocol Overview
The oscilloscope and computer communicate using program messages and
response messages. These messages serve as the containers into which sets of
program commands or oscilloscope responses are placed.
A program message is sent by the computer to the oscilloscope, and a response
message is sent from the oscilloscope to the computer in response to a query
message. A query message is defined as being a program message that contains
one or more queries. The oscilloscope will only talk when it has received a valid

150

Keysight Infiniium Oscilloscopes Programmer's Guide

6

Message Communication and System Functions

query message, and therefore has something to say. The computer should only
attempt to read a response after sending a complete query message, but before
sending another program message.

NOTE

Remember this Rule of Oscilloscope Communication
The basic rule to remember is that the oscilloscope will only talk when prompted to, and it
then expects to talk before being told to do something else.

Protocol Operation
When you turn the oscilloscope on, the input buffer and output queue are cleared,
and the parser is reset to the root level of the command tree.
The oscilloscope and the computer communicate by exchanging complete
program messages and response messages. This means that the computer should
always terminate a program message before attempting to read a response. The
oscilloscope will terminate response messages except during a hard copy output.
After you send a query message, the next message should be the response
message. The computer should always read the complete response message
associated with a query message before sending another program message to the
same oscilloscope.
The oscilloscope allows the computer to send multiple queries in one query
message. This is called sending a "compound query". Multiple queries in a query
message are separated by semicolons. The responses to each of the queries in a
compound query will also be separated by semicolons.
Commands are executed in the order they are received.

Protocol Exceptions
If an error occurs during the information exchange, the exchange may not be
completed in a normal manner.

Suffix Multiplier
The suffix multipliers that the oscilloscope will accept are shown in Table 2.
Table 2



Value

Mnemonic

Value

Mnemonic

1E18

EX

1E-3

M

1E15

PE

1E-6

U

1E12

T

1E-9

N

Keysight Infiniium Oscilloscopes Programmer's Guide

151

6

Message Communication and System Functions

Table 2

 (continued)

Value

Mnemonic

Value

Mnemonic

1E9

G

1E-12

P

1E6

MA

1E-15

F

1E3

K

1E-18

A

Suffix Unit
The suffix units that the oscilloscope will accept are shown in Table 3.
Table 3

152



Suffix

Referenced Unit

V

Volt

S

Second

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

7 Status Reporting
Status Reporting Data Structures / 156
Status Byte Register / 158
Service Request Enable Register / 160
Message Event Register / 161
Trigger Event Register / 162
Standard Event Status Register / 163
Standard Event Status Enable Register / 164
Operation Status Register / 165
Operation Status Enable Register / 166
Mask Test Event Register / 167
Mask Test Event Enable Register / 168
Acquisition Done Event Register / 169
Process Done Event Register / 170
Trigger Armed Event Register / 171
Auto Trigger Event Register / 172
Error Queue / 1580
Output Queue / 174
Message Queue / 175
Clearing Registers and Queues / 176
Example: Checking for Armed Status / 178

An overview of the oscilloscope's status reporting structure is shown in Figure 1.
The status reporting structure shows you how to monitor specific events in the
oscilloscope. Monitoring these events lets you determine the status of an
operation, the availability and reliability of the measured data, and more.
•

To monitor an event, first clear the event, then enable the event. All of the
events are cleared when you initialize the oscilloscope.

•

To generate a service request (SRQ) interrupt to an external computer, enable
at least one bit in the Status Byte Register.

153

7

Status Reporting

The Status Byte Register, the Standard Event Status Register group, and the
Output Queue are defined as the Standard Status Data Structure Model in IEEE
488.2-1987. IEEE 488.2 defines data structures, commands, and common bit
definitions for status reporting. There are also oscilloscope-defined structures and
bits.

Figure 1 Status Reporting Overview Block Diagram
The status reporting structure consists of the registers shown here.
Table 4 lists the bit definitions for each bit in the status reporting data structure.
Table 4

154

Status Reporting Bit Definition

Bit

Description

Definition

PON

Power On

Indicates power is turned on.

URQ

User Request

Not Used. Permanently set to zero.

CME

Command Error

Indicates if the parser detected an error.

EXE

Execution Error

Indicates if a parameter was out of range or was
inconsistent with the current settings.

DDE

Device Dependent Error

Indicates if the device was unable to complete
an operation for device-dependent reasons.

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

Table 4

Status Reporting Bit Definition (continued)

Bit

Description

Definition

QYE

Query Error

Indicates if the protocol for queries has been
violated.

RQL

Request Control

Indicates if the device is requesting control.

OPC

Operation Complete

Indicates if the device has completed all
pending operations.

OPER

Operation Status Register

Indicates if any of the enabled conditions in the
Operation Status Register have occurred.

RQS

Request Service

Indicates that the device is requesting service.

MSS

Master Summary Status

Indicates if a device has a reason for requesting
service.

ESB

Event Status Bit

Indicates if any of the enabled conditions in the
Standard Event Status Register have occurred.

MAV

Message Available

Indicates if there is a response in the output
queue.

MSG

Message

Indicates if an advisory has been displayed.

USR

User Event Register

Indicates if any of the enabled conditions have
occurred in the User Event Register.

TRG

Trigger

Indicates if a trigger has been received.

WAIT TRIG

Wait for Trigger

Indicates the oscilloscope is armed and ready for
trigger.

Keysight Infiniium Oscilloscopes Programmer's Guide

155

7

Status Reporting

Status Reporting Data Structures
The different status reporting data structures, descriptions, and interactions are
shown in Figure 2. To make it possible for any of the Standard Event Status
Register bits to generate a summary bit, you must enable the corresponding bits.
These bits are enabled by using the *ESE common command to set the
corresponding bit in the Standard Event Status Enable Register.
To generate a service request (SRQ) interrupt to the computer, you must enable at
least one bit in the Status Byte Register. These bits are enabled by using the *SRE
common command to set the corresponding bit in the Service Request Enable
Register. These enabled bits can then set RQS and MSS (bit 6) in the Status Byte
Register.
For more information about common commands, see the "Common Commands"
chapter.

Figure 2 Status Reporting Data Structures

156

Keysight Infiniium Oscilloscopes Programmer's Guide

Status Reporting

7

Figure 3 Status Reporting Data Structures (Continued)

Keysight Infiniium Oscilloscopes Programmer's Guide

157

7

Status Reporting

Status Byte Register
The Status Byte Register is the summary-level register in the status reporting
structure. It contains summary bits that monitor activity in the other status
registers and queues. The Status Byte Register is a live register. That is, its
summary bits are set and cleared by the presence and absence of a summary bit
from other event registers or queues.
If the Status Byte Register is to be used with the Service Request Enable Register
to set bit 6 (RQS/MSS) and to generate an SRQ, at least one of the summary bits
must be enabled, then set. Also, event bits in all other status registers must be
specifically enabled to generate the summary bit that sets the associated
summary bit in the Status Byte Register.
You can read the Status Byte Register using either the *STB? common command
query or the GPIB serial poll command. Both commands return the
decimal-weighted sum of all set bits in the register. The difference between the
two methods is that the serial poll command reads bit 6 as the Request Service
(RQS) bit and clears the bit which clears the SRQ interrupt. The *STB? query reads
bit 6 as the Master Summary Status (MSS) and does not clear the bit or have any
effect on the SRQ interrupt. The value returned is the total bit weights of all of the
bits that are set at the present time.
The use of bit 6 can be confusing. This bit was defined to cover all possible
computer interfaces, including a computer that could not do a serial poll. The
important point to remember is that if you are using an SRQ interrupt to an
external computer, the serial poll command clears bit 6. Clearing bit 6 allows the
oscilloscope to generate another SRQ interrupt when another enabled event
occurs.
The only other bit in the Status Byte Register affected by the *STB? query is the
Message Available bit (bit 4). If there are no other messages in the Output Queue,
bit 4 (MAV) can be cleared as a result of reading the response to the *STB? query.
If bit 4 (weight = 16) and bit 5 (weight = 32) are set, a program would print the sum
of the two weights. Since these bits were not enabled to generate an SRQ, bit 6
(weight = 64) is not set.
Example 1

This example uses the *STB? query to read the contents of the oscilloscope's
Status Byte Register when none of the register's summary bits are enabled to
generate an SRQ interrupt.
Dim varStbValue As Variant
myScope.WriteString ":SYSTem:HEADer OFF;*STB?"
'Turn headers off
varStbValue = myScope.ReadNumber
Debug.Print "Status Byte Register, Read: 0x" + Hex(varStbValue)

158

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

The next program prints "0x84" and clears bit 6 (RQS) of the Status Byte Register.
The difference in the decimal value between this example and the previous one is
the value of bit 6 (weight = 64). Bit 6 is set when the first enabled summary bit is
set, and is cleared when the Status Byte Register is read by the serial poll
command.
Example 2

The following example uses the resource session object's ReadSTB method to read
the contents of the oscilloscope's Status Byte Register.
varStbValue = myScope.IO.ReadSTB
Debug.Print "Status Byte Register, Serial Poll: 0x" + Hex(varStbValue)

NOTE

Use Serial Polling to Read the Status Byte Register
Serial polling is the preferred method to read the contents of the Status Byte Register because
it resets bit 6 and allows the next enabled event that occurs to generate a new SRQ interrupt.

See Also

•

"Example: Checking for Armed Status" on page 178

Keysight Infiniium Oscilloscopes Programmer's Guide

159

7

Status Reporting

Service Request Enable Register
Setting the Service Request Enable Register bits enables corresponding bits in the
Status Byte Register. These enabled bits can then set RQS and MSS (bit 6) in the
Status Byte Register.
Bits are set in the Service Request Enable Register using the *SRE command, and
the bits that are set are read with the *SRE? query. Bit 6 always returns 0. Refer to
the Status Reporting Data Structures shown in Figure 2.
Example

The following example sets bit 4 (MAV) and bit 5 (ESB) in the Service Request
Enable Register.
myScope.WriteString "*SRE " + CStr(CInt("&H30"))

This example uses the decimal parameter value of 48, the string returned by
CStr(CInt("&H30")), to enable the oscilloscope to generate an SRQ interrupt under
the following conditions:

160

•

When one or more bytes in the Output Queue set bit 4 (MAV).

•

When an enabled event in the Standard Event Status Register generates a
summary bit that sets bit 5 (ESB).

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

Message Event Register
This register sets the MSG bit in the status byte register when an internally
generated message is written to the advisory line on the oscilloscope. The
message is read using the :SYSTem:DSP? query. Note that messages written to
the advisory line on the oscilloscope using the :SYSTem:DSP command does not
set the MSG status bit.

Keysight Infiniium Oscilloscopes Programmer's Guide

161

7

Status Reporting

Trigger Event Register
This register sets the TRG bit in the status byte register when a trigger event
occurs.
The trigger event register stays set until it is cleared by reading the register with
the TER? query or by using the *CLS (clear status) command. If your application
needs to detect multiple triggers, the trigger event register must be cleared after
each one.
If you are using the Service Request to interrupt a computer operation when the
trigger bit is set, you must clear the event register after each time it is set.

162

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

Standard Event Status Register
The Standard Event Status Register (SESR) monitors the following oscilloscope
status events:
•

PON - Power On

•

CME - Command Error

•

EXE - Execution Error

•

DDE - Device Dependent Error

•

QYE - Query Error

•

RQC - Request Control

•

OPC - Operation Complete

When one of these events occurs, the corresponding bit is set in the register. If the
corresponding bit is also enabled in the Standard Event Status Enable Register, a
summary bit (ESB) in the Status Byte Register is set.
You can read the contents of the Standard Event Status Register and clear the
register by sending the *ESR? query. The value returned is the total bit weights of
all bits set at the present time.
Example

The following example uses the *ESR query to read the contents of the Standard
Event Status Register.
myScope.WriteString ":SYSTem:HEADer OFF"
'Turn headers off
myScope.WriteString "*ESR?"
varQueryResult = myScope.ReadNumber
Debug.print "Standard Event Status Register: 0x" + Hex(varQueryResult)

If bit 4 (weight = 16) and bit 5 (weight = 32) are set, the program prints the sum of
the two weights.

Keysight Infiniium Oscilloscopes Programmer's Guide

163

7

Status Reporting

Standard Event Status Enable Register
For any of the Standard Event Status Register bits to generate a summary bit, you
must first enable the bit. Use the *ESE (Event Status Enable) common command to
set the corresponding bit in the Standard Event Status Enable Register. Set bits
are read with the *ESE? query.
Example

Suppose your application requires an interrupt whenever any type of error occurs.
The error related bits in the (Standard) Event Status Register are bits 2 through 5
(hexadecimal value 0x3C). Therefore, you can enable any of these bits to generate
the summary bit by sending:
myScope.WriteString "*ESE " + CStr(CInt("&H3C"))

Whenever an error occurs, it sets one of these bits in the (Standard) Event Status
Register. Because all the error related bits are enabled, a summary bit is generated
to set bit 5 (ESB) in the Status Byte Register.
If bit 5 (ESB) in the Status Byte Register is enabled (via the *SRE command), a
service request interrupt (SRQ) is sent to the controller PC.

NOTE

Disabled Standard Event Status Register Bits Respond, but Do Not Generate a
Summary Bit
Standard Event Status Register bits that are not enabled still respond to their corresponding
conditions (that is, they are set if the corresponding event occurs). However, because they are
not enabled, they do not generate a summary bit in the Status Byte Register.

164

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

Operation Status Register
This register hosts the following bits:
•

ACQ DONE bit 0

•

PROC DONE bit 1

•

WAIT TRIG bit 5

•

MASK bit 9

•

AUTO TRIG bit 11

•

OVLR bit 12

The ACQ DONE done bit is set by the Acquisition Done Event Register.
The PROC DONE bit is set by the Process Done Event Register and indicates that
all functions and all math processes are done.
The WAIT TRIG bit is set by the Trigger Armed Event Register and indicates the
trigger is armed.
The MASK bit is set whenever at least one of the Mask Test Event Register bits is
enabled.
The AUTO TRIG bit is set by the Auto Trigger Event Register.
The OVLR bit is set whenever at least one of the Overload Event Register bits is
enabled.
If any of these bits are set, the OPER bit (bit 7) of the Status Byte Register is set.
The Operation Status Register is read and cleared with the OPER? query. The
register output is enabled or disabled using the mask value supplied with the
OPEE command.
See Also

•

"Example: Checking for Armed Status" on page 178

Keysight Infiniium Oscilloscopes Programmer's Guide

165

7

Status Reporting

Operation Status Enable Register
For any of the Operation Status Register bits to generate a summary bit, you must
first enable the bit. Use the OPEE (Operation Event Status Enable) command to set
the corresponding bit in the Operation Status Enable Register. Set bits are read
with the OPEE? query.
Example

Suppose your application requires an interrupt whenever any event occurs in the
mask test register. The error status bit in the Operation Status Register is bit 9.
Therefore, you can enable this bit to generate the summary bit by sending:
myScope.WriteString ":OPEE " + CStr(CInt("&H200"))

Whenever an error occurs, the oscilloscope sets this bit in the Mask Test Event
Register. Because this bit is enabled, a summary bit is generated to set bit 9
(OPER) in the Operation Status Register.
If bit 7 (OPER) in the Status Byte Register is enabled (via the *SRE command), a
service request interrupt (SRQ) is sent to the external computer.

NOTE

Disabled Operation Status Register Bits Respond, but Do Not Generate a Summary
Bit
Operation Status Register bits that are not enabled still respond to their corresponding
conditions (that is, they are set if the corresponding event occurs). However, because they are
not enabled, they do not generate a summary bit in the Status Byte Register.

166

Keysight Infiniium Oscilloscopes Programmer's Guide

Status Reporting

7

Mask Test Event Register
This register hosts the following bits:
•

Mask Test Complete bit (bit 0)

•

Mask Test Fail bit (bit 1)

•

Mask Low Amplitude bit (bit 2)

•

Mask High Amplitude bit (bit 3)

•

Mask Align Complete bit (bit 4)

•

Mask Align Fail bit (bit 5)

The Mask Test Complete bit is set whenever the mask test is complete.
The Mask Test Fail bit is set whenever the mask test failed.
The Mask Low Amplitude bit is set whenever the signal is below the mask
amplitude.
The Mask High Amplitude bit is set whenever the signal is above the mask
amplitude.
The Mask Align Complete bit is set whenever the mask align is complete.
The Mask Align Fail bit is set whenever the mask align failed.
If any of these bits are set, the MASK bit (bit 9) of the Operation Status Register is
set. The Mask Test Event Register is read and cleared with the MTER? query. The
register output is enabled or disabled using the mask value supplied with the
MTEE command.

Keysight Infiniium Oscilloscopes Programmer's Guide

167

7

Status Reporting

Mask Test Event Enable Register
For any of the Mask Test Event Register bits to generate a summary bit, you must
first enable the bit. Use the MTEE (Mask Test Event Enable) command to set the
corresponding bit in the Mask Test Event Enable Register. Set bits are read with
the MTEE? query.
Example

Suppose your application requires an interrupt whenever a Mask Test Fail occurs
in the mask test register. You can enable this bit to generate the summary bit by
sending:
myScope.WriteString ":MTEE " + CStr(CInt("&H2"))

Whenever an error occurs, the oscilloscope sets the MASK bit in the Operation
Status Register. Because the bits in the Operation Status Enable Register are all
enabled, a summary bit is generated to set bit 7 (OPER) in the Status Byte
Register.
If bit 7 (OPER) in the Status Byte Register is enabled (via the *SRE command), a
service request interrupt (SRQ) is sent to the external computer.

NOTE

Disabled Mask Test Event Register Bits Respond, but Do Not Generate a Summary
Bit
Mask Test Event Register bits that are not enabled still respond to their corresponding
conditions (that is, they are set if the corresponding event occurs). However, because they are
not enabled, they do not generate a summary bit in the Operation Status Register.

168

Keysight Infiniium Oscilloscopes Programmer's Guide

Status Reporting

7

Acquisition Done Event Register
The Acquisition Done Event Register (ACQ DONE) sets bit 0 (ACQ DONE bit) in the
Operation Status Register when the oscilloscope acquisition is completed.
The ACQ DONE event register stays set until it is cleared by reading the register by
a ADER? query. If your application needs to detect multiple acquisitions, the ACQ
DONE event register must be cleared after each acquisition.
See Also

•

"Example: Blocking and Polling Synchronization" on page 189

Keysight Infiniium Oscilloscopes Programmer's Guide

169

7

Status Reporting

Process Done Event Register
The Process Done Event Register (PDER) sets bit 1 (PROC DONE) of the Operation
Status Register when all functions and all math operations are completed. The
PDER bit stays set until cleared by a PDER? query.
See Also

170

•

"Example: Blocking and Polling Synchronization" on page 189

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

Trigger Armed Event Register
The Trigger Armed Event Register (TDER) sets bit 5 (WAIT TRIG) in the Operation
Status Register when the oscilloscope becomes armed.
The ARM event register stays set until it is cleared by reading the register with the
AER? query. If your application needs to detect multiple triggers, the ARM event
register must be cleared after each one.
See Also

•

"Example: Checking for Armed Status" on page 178

Keysight Infiniium Oscilloscopes Programmer's Guide

171

7

Status Reporting

Auto Trigger Event Register
The Auto Trigger Event Register (AUTO TRIG) sets bit 11 (AUTO TRIG) in the
Operation Status Register when an auto trigger event occurs. The AUTO TRIG
register stays set until it is cleared by reading the register with the ATER? query. If
the application needs to detect multiple auto trigger events, the AUT TRIG register
must be cleared after each one.

172

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

Error Queue
As errors are detected, they are placed in an error queue. This queue is a first-in,
first-out queue. If the error queue overflows, the last error in the queue is replaced
with error -350, "Queue overflow." Any time the queue overflows, the oldest errors
remain in the queue, and the most recent error is discarded. The length of the
oscilloscope's error queue is 30 (29 positions for the error messages, and 1
position for the "Queue overflow" message).
The error queue is read with the :SYSTem:ERRor? query. Executing this query
reads and removes the oldest error from the head of the queue, which opens a
position at the tail of the queue for a new error. When all the errors have been read
from the queue, subsequent error queries return 0, "No error."
The error queue is cleared when any of these events occur:
•

When the oscilloscope is powered up.

•

When the oscilloscope receives the *CLS common command.

•

When the last item is read from the error queue.

For more information on reading the error queue, refer to the :SYSTem:ERRor?
query in the System Commands chapter. For a complete list of error messages,
refer to the chapter, "Error Messages."

Keysight Infiniium Oscilloscopes Programmer's Guide

173

7

Status Reporting

Output Queue
The output queue stores the oscilloscope-to-controller responses that are
generated by certain oscilloscope commands and queries. The output queue
generates the Message Available summary bit when the output queue contains
one or more bytes. This summary bit sets the MAV bit (bit 4) in the Status Byte
Register.
When using the Keysight VISA COM library, the output queue may be read with
the FormattedIO488 object's ReadString, ReadNumber, ReadList, or
ReadIEEEBlock methods.

174

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

Message Queue
The message queue contains the text of the last message written to the advisory
line on the screen of the oscilloscope. The queue is read with the :SYSTem:DSP?
query. Note that messages sent with the :SYSTem:DSP command do not set the
MSG status bit in the Status Byte Register.

Keysight Infiniium Oscilloscopes Programmer's Guide

175

7

Status Reporting

Clearing Registers and Queues
The *CLS common 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.

176

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

no

Do you want
to do status
reporting?
yes

Reset the instrument and
clear the status registers:
myScope.WriteString "*RST"
myScope.WriteString "*CLS"

Do you want to
send a Service Request
(SRQ) interrupt to the
controller?

no (Your programs can read the status registers instead.)

yes
Use the following to read the
Standard Event Status Register:
Do you want to
report events monitored by
the Standard Event Status
Register?

no

yes

Use the *ESE common command
to enable the bits you want to
use to generate the ESB summary
bit in the Status Byte Register.

Use the *ESE common command
to enable the bits you want to
generate the RQS/MSS bit to set
bit 6 in the Status Byte Register
and send SRQ to the computer.
If events are monitored by the
Standard Event Status Register,
also enable ESB with the *SRE
command.

Activate the instrument function
that you want to monitor.

myScope.WriteString "*ESR?"
varR = myScope.ReadNumber
MsgBox "ESR: 0x" + Hex(varR)

When an interrupt occurs, interrupt
handler should serial poll STB with:
varR = myScope.IO.ReadSTB

Use the following to see if an
operation is complete:

To read the Status Byte Register,
use the following:

myScope.WriteString "*OPC?"
varR = myScope.ReadNumber
MsgBox "OPC: 0x" + Hex(varR)

myScope.WriteString "*STB?"
varR = myScope.ReadNumber
MsgBox "STB: 0x" + Hex(varR)
This displays the hexadecmal value
of the Status Byte Register.

Determine which bits in the
Status Byte Register are set.

Use the following to read the
contents of the status byte:
myScope.WriteString "*STB?"
varR = myScope.ReadNumber
MsgBox "STB: 0x" + Hex(varR)

END

Figure 4 Status Reporting Decision Chart

Keysight Infiniium Oscilloscopes Programmer's Guide

177

7

Status Reporting

Example: Checking for Armed Status
# -*- coding: utf-8 -*#
#
#
#
#

********************************************************************
This script using the Python language (http://www.python.org/) and
the PyVISA package (http://pyvisa.readthedocs.org/) shows three
methods to tell whether a Keysight Infiniium oscilloscope is armed.
********************************************************************

# Import modules
# -------------------------------------------------------------------import sys
import visa
import time
# Initialization constants
# -------------------------------------------------------------------# Get VISA address from Keysight IO Libraries Connection Expert
VISA_ADDRESS = "TCPIP0::141.121.228.133::hislip0::INSTR"
GLOBAL_TOUT = 10000
# IO timeout in milliseconds
# Connect and initialize oscilloscope
# -------------------------------------------------------------------# Define VISA Resource Manager & Install directory
rm = visa.ResourceManager('C:\\Windows\\System32\\visa32.dll')
# Define and open the oscilloscope using the VISA address
KsInfiniiumScope = rm.open_resource(VISA_ADDRESS)
# Set the Global Timeout
KsInfiniiumScope.timeout = GLOBAL_TOUT
# Clear the instrument bus
KsInfiniiumScope.clear()
# Reset the oscilloscope.
KsInfiniiumScope.write("*RST")
# Autoscale to set up vertical scale and trigger level on channel 1.
KsInfiniiumScope.write(":AUToscale:CHANnels DISPlayed")
KsInfiniiumScope.write(":AUToscale")
# Ensure a "long" time to arm (5 seconds) and not trigger immediately.
# -------------------------------------------------------------------# 10 second total capture, with trigger point in the middle = 5s to arm
KsInfiniiumScope.write(":TIMebase:RANGe 10")
# Prevent Auto trigger.
KsInfiniiumScope.write(":TRIGger:SWEep TRIGgered")
#
#
#
#
#

178

====================================================================
Method 1: Query the Armed Event Register with :AER?
-------------------------------------------------------------------This method reads the 1-bit Armed Event Register using the :AER?
query.

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

#
# The Armed Event Register bit goes low (0) when it is read using
# :AER? or when a *CLS command is issued.
# ====================================================================
# Stop the oscilloscope.
KsInfiniiumScope.query(":STOP;*OPC?")
# Method 1: Initiate capture using :SINGle
# -------------------------------------------------------------------print "Acquiring signal (Method 1, using :SINGle)...\n"
now = time.clock()
# Clear all status registers before checking for new events.
KsInfiniiumScope.write("*CLS")
# Because the :AER? query will not work with :DIGitize (which is
# blocking), use the :SINGle command to start the acquisition.
KsInfiniiumScope.write(":SINGle")
# Method 1: Determine if armed using :AER? query.
# -------------------------------------------------------------------# Define armed criteria.
ARMED = 1
# Test for armed.
ARMED_STATUS = int(KsInfiniiumScope.query(":AER?"))
# Wait indefinitely until armed.
while ARMED_STATUS != ARMED:
# Check the status again after small delay.
time.sleep(0.1)
# 100 ms delay to prevent excessive queries.
ARMED_STATUS = int(KsInfiniiumScope.query(":AER?"))
print "Oscilloscope is armed (method 1, using :AER? query)!"
print "It took " + str(time.clock() - now) +\
" seconds to arm.\n"
#
#
#
#
#
#
#
#
#
#
#

====================================================================
Method 2: Read the Status Byte
-------------------------------------------------------------------This method reads the Status Byte register's OPER bit (bit 7) using
the "read status byte" function in VISA, which works during blocking
commands and can therefore be used with the :DIGitize command.
The Status Byte bits do NOT go low (0) when the register is read.
The *CLS command will clear the Status Byte bits.
====================================================================

# Stop the oscilloscope.
KsInfiniiumScope.query(":STOP;*OPC?")
# Method 2: Initiate capture using :DIGitize or :SINGle
# -------------------------------------------------------------------print "Acquiring signal (Method 2, using :DIGitize)...\n"
now = time.clock()

Keysight Infiniium Oscilloscopes Programmer's Guide

179

7

Status Reporting

# Clear all status registers before checking for new events.
KsInfiniiumScope.write("*CLS")
# Mask out all bits in the Operation Status Register except for
# the ARM bit.
KsInfiniiumScope.write(":OPEE 32") # "Unmask" only the arm bit
# Use the :DIGitize command to start the acquisition.
KsInfiniiumScope.write(":DIGitize")
# Method 2: Determine if armed by reading the Status Byte.
# -------------------------------------------------------------------# Define register bit masks for the Status Byte Register
ARM_BIT = 7
# 1 leftshift 7 = 128 (bit 7 in the Status Byte Register)
ARM_MASK = 1 << ARM_BIT
# Define armed criteria.
ARMED = 1 << ARM_BIT
# 1 leftshift 7 = 128
# Test for armed.
STATUS_BYTE = int(KsInfiniiumScope.read_stb())
ARMED_STATUS = STATUS_BYTE & ARM_MASK
# Note that you could also do:
# ARMED_STATUS = int(KsInfiniiumScope.query("*STB?))
# BUT *STB? does not work with the blocking :DIGitize.
# Wait indefinitely until armed.
while ARMED_STATUS != ARMED:
# Check the status again after small delay.
time.sleep(0.1)
# 100 ms delay to prevent excessive queries.
STATUS_BYTE = int(KsInfiniiumScope.read_stb())
ARMED_STATUS = STATUS_BYTE & ARM_MASK
print "Oscilloscope is armed (method 2, using Read STB function)!"
print "It took " + str(time.clock() - now) +\
" seconds to arm.\n"
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

====================================================================
Method 3: Query the Operation Status Register with :OPER?
-------------------------------------------------------------------This method reads the Operation Status Register's Wait Trig bit
(bit 5) using the :OPER? query.
The Operation Status Register bits do NOT go low (0) when the
register is read.
Also, the Wait Trig bit does NOT go low (0) when the oscilloscope
becomes unarmed by starting or stopping another acquisition (before
the first one finishes) or by changing the time scale.
The Wait Trig bit is cleared by a *CLS command, or by reading the
Armed Event Register register with the :AER? query.
====================================================================

# Stop the oscilloscope.

180

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Status Reporting

KsInfiniiumScope.query(":STOP;*OPC?")
# Method 3: Initiate capture using :SINGle
# -------------------------------------------------------------------print "Acquiring signal (Method 3, using :SINGle)...\n"
now = time.clock()
# Clear all status registers before checking for new events.
KsInfiniiumScope.write("*CLS")
# Because the :OPER? query will not work with :DIGitize (which is
# blocking), use the :SINGle command to start the acquisition.
KsInfiniiumScope.write(":SINGle")
# Method 3: Determine if armed using :OPER? query.
# -------------------------------------------------------------------# Define register bit masks for the Operation Status Register
ARM_BIT = 5
# 1 leftshift 5 = 32 (bit 5 in the Operation Status Register)
ARM_MASK = 1 << ARM_BIT
# Define armed criteria.
ARMED = 1 << ARM_BIT
# 1 leftshift 5 = 32
# Test for armed.
STATUS_REGISTER = int(KsInfiniiumScope.query(":OPER?"))
ARMED_STATUS = STATUS_REGISTER & ARM_MASK
# Wait indefinitely until armed.
while ARMED_STATUS != ARMED:
# Check the status again after small delay.
time.sleep(0.1)
# 100 ms delay to prevent excessive queries.
STATUS_REGISTER = int(KsInfiniiumScope.query(":OPER?"))
ARMED_STATUS = STATUS_REGISTER & ARM_MASK
print "Oscilloscope is armed (method 3, using :OPER? query)!"
print "It took " + str(time.clock() - now) +\
" seconds to arm.\n"
# End of Script
# -------------------------------------------------------------------KsInfiniiumScope.clear()
# Clear communications interface
KsInfiniiumScope.close()
# Close communications interface
print "All done."

Keysight Infiniium Oscilloscopes Programmer's Guide

181

7

182

Status Reporting

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

8 Remote Acquisition
Synchronization
Programming Flow / 184
Setting Up the Oscilloscope / 185
Acquiring a Waveform / 186
Retrieving Results / 187
Acquisition Synchronization / 188
Single Shot Device Under Test (DUT) / 198
Averaging Acquisition Synchronization / 199

When remotely controlling an oscilloscope with SCPI commands, it is often
necessary to know when the oscilloscope has finished the previous operation and
is ready for the next SCPI command. The most common example is when an
acquisition is started using the :DIG, :RUN, or :SINGle commands. Before a
measurement result can be queried, the acquisition must complete. Too often,
fixed delays are used to accomplish this wait, but fixed delays often use excessive
time or the time may not be long enough. A better solution is to use synchronous
commands and status to know when the oscilloscope is ready for the next request.

183

8

Remote Acquisition Synchronization

Programming Flow
Most remote programming follows these three general steps:
1 Setup the oscilloscope and device under test
2 Acquire a waveform
3 Retrieve results

184

Keysight Infiniium Oscilloscopes Programmer's Guide

Remote Acquisition Synchronization

8

Setting Up the Oscilloscope
Before making changes to the oscilloscope setup, it is best to make sure it is
stopped using the :STOP command followed by the *OPC? command.

NOTE

It is not necessary to use the *OPC? command, hard coded waits, or status checking when
setting up the oscilloscope.

After the oscilloscope is configured, it is ready for an acquisition.

Keysight Infiniium Oscilloscopes Programmer's Guide

185

8

Remote Acquisition Synchronization

Acquiring a Waveform
When acquiring a waveform, there are two possible methods used to wait for the
acquisition to complete. These methods are blocking and polling. The table below
details when each method should be chosen and why.
Blocking Wait

Polling Wait

Use When

You know the oscilloscope will trigger
based on the oscilloscope setup and
device under test.

You know the oscilloscope may or may
not trigger based on the oscilloscope
setup and device under test.

Advantages

• No need for polling

• Remote interface will not timeout

• Fast method

• No need for device clear if no

• Remote interface may timeout

• Slower method

• Device clear only way to get control

• Required polling loop

Disad vantages

trigger

of oscilloscope if there is no trigger

• Required known maximum wait
time

186

Keysight Infiniium Oscilloscopes Programmer's Guide

Remote Acquisition Synchronization

8

Retrieving Results
Once the acquisition is complete, it is safe to retrieve measurements and statistics.

Keysight Infiniium Oscilloscopes Programmer's Guide

187

8

Remote Acquisition Synchronization

Acquisition Synchronization
•

"Blocking Synchronization" on page 188

•

"Polling Synchronization With Timeout" on page 188

•

"Example: Blocking and Polling Synchronization" on page 189

Blocking Synchronization
Use the :DIGitize command to start the acquisition. This blocks subsequent
queries until the acquisition and processing is complete.
Example

// Setup
:TRIGger:MODE EDGE
:TIMebase:SCALE 5e-9
//Acquire
:DIG
//Get results
:MEASure:RISetime?

Polling Synchronization With Timeout
This example requires a timeout value so the operation can abort if an acquisition
does not occur within the timeout period.
Example

TIMEOUT = 1000ms
currentTime = 0ms
// Setup
:STOP; *OPC?
:ADER?

// if not stopped
// clear ADER event

// Acquire
:SINGle
while(currentTime <= TIMEOUT)
{
if (:ADER? == 1)
{
break;
}
else
{
// Use small wait to prevent excessive
// queries to the oscilloscope
wait (100ms)
currentTime += 100ms
}
}
//Get results

188

Keysight Infiniium Oscilloscopes Programmer's Guide

8

Remote Acquisition Synchronization

if (currentTime < TIMEOUT)
{
:MEASure:RISetime?
}

Example: Blocking and Polling Synchronization
# -*- coding: utf-8 -*#
#
#
#
#
#
#

********************************************************************
This script using the Python language (http://www.python.org/) and
the PyVISA package (http://pyvisa.readthedocs.org/) shows the two
best synchronization methods for Infiniium real-time oscilloscopes.
Benefits and drawbacks of each method are described. No error
handling is provided except in the actual synchronization methods.
********************************************************************

# Import modules
# -------------------------------------------------------------------import sys
import visa
import time
# Initialization constants
# -------------------------------------------------------------------# Get VISA address from Keysight IO Libraries Connection Expert
VISA_ADDRESS = "TCPIP0::141.121.228.133::hislip0::INSTR"
GLOBAL_TOUT = 10000
# IO time out in milliseconds
TIME_TO_TRIGGER = 10
# Time in seconds
# -------------------------------------------------------------------# This is the time until the FIRST trigger event.
#
# While the script calculates a general time out for the given setup,
# it cannot know when a trigger event will occur. Thus, you must
# still set this value.
#
# This time is in addition to the calculated minimum timeout... so, if
# an oscilloscope might take say, 1 us to arm and acquire data, the
# signal might take 100 seconds before it occurs... this accounts for
# that.
#
# The SCOPE_ACQUISITION_TIME_OUT calculation pads this by 1.1.
# -------------------------------------------------------------------TIME_BETWEEN_TRIGGERS = 0.025
# Time in seconds - for Average,
# Segmented, and Equivalent Time modes, else set to 0
# -------------------------------------------------------------------# In Average, Segmented, and Equivalent Time modes, the oscilloscope
# makes repeated acquisitions. This is similar to the above
# TIME_TO_TRIGGER, but it is the time BETWEEN triggers. For example,
# it might take 10 seconds for the first trigger event, and then they
# might start occurring regularly at say, 1 ms intervals. In that
# scenario, 15 seconds (a conservative number for 10s) would be good
# for TIME_TO_TRIGGER, and 2 ms (again conservative) would be good for
# TIME_BETWEEN_TRIGGERS.

Keysight Infiniium Oscilloscopes Programmer's Guide

189

8

Remote Acquisition Synchronization

#
#
#
#
#
#
#
#
#
#

The default in this sample script is 0.025 seconds. This is to make
the sample work for the LINE trigger used in this script when the
oscilloscope is in Average, Segmented, and Equivalent Time modes to
force a trigger off of the AC input line (:TRIGger:EDGE:SOURce LINE)
which runs at 50 or 60 Hz in most of the world (1/50 Hz -> 20 ms, so
use 25 ms to be conservative).
The SCOPE_ACQUISITION_TIME_OUT calculation pads this by 1.1.
--------------------------------------------------------------------

PROCESSING_TIME = 0
# Time in seconds - this is needed to account
# for additional time after an acquisition to do any processing such
# as FFTs, jitter, etc.
# -------------------------------------------------------------------# When using repetitive modes such as average or segmented mode,
# processing happens only once, at the end, on either the final
# averaged waveform or the last segment, thus this only needs to be
# accounted for once.
#
# This time cannot be known ahead of time. One needs to measure this
# time:
#
# To measure PROCESSING_TIME, a second oscilloscope is ideal.
#
#
1. Connect the trigger output of the oscilloscope to be
#
programmed to an input on a second oscilloscope. It is
#
often best to use peak detect mode, maximize the signal
#
display intensity, and set the trigger sweep to
#
Normal/Triggered, not auto.
#
#
2. Feed the oscilloscope to be programmed a 1 MHz (or faster)
#
sine or square wave or other continuous signal such that the
#
trigger condition is always met and the oscilloscope will
#
trigger as fast as it can.
#
#
3. Set up the oscilloscope to be programmed as it will be used,
#
and put it in the RUNNING state (press the front panel Run
#
key).
#
#
4. Observe and record the delta time (DT) between trigger
#
output pulses. There will be some variation, use the
#
largest observed delta time.
#
#
5. Turn off any processing and again record the smallest delta
#
time of the trigger output pulses.
#
#
6. Calculate PROCESSING_TIME as
#
DT_largest_processing_ON - DT_smallest_processing_OFF
#
#
For example, with an S-Series oscilloscope, at 67 MPts and
#
20 GSa/s (~3.35 ms time capture) with sinx/x interpolation
#
enabled, it takes on the order of ~10-15 ms per capture to
#
capture and display one channel repetitively. Once an FFT
#
is enabled, it takes about ~8.2 seconds to repetitively
#
capture, calculate the FFT, and display it, repetitively.
#
Thus the PROCESSING_TIME should be 8.2 s - 15 ms = ~8.2

190

Keysight Infiniium Oscilloscopes Programmer's Guide

8

Remote Acquisition Synchronization

#
seconds. Here, 10 seconds should then be used. (FFTs take a
#
logarithmically long time to compute.)
#
# The SCOPE_ACQUISITION_TIME_OUT calculation pads this by 1.2.
# --------------------------------------------------------------------

#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

====================================================================
Define a simple and fast function utilizing the blocking :DIGitize
command in conjunction with *OPC?.
-------------------------------------------------------------------Benefits of this method:
-

Fastest, compact, simple
Works for ALL modes including averaging.
Don't have to deal with the status registers, which can be
confusing.

Drawbacks of this method:
-

Requires a well-chosen, hard-set timeout that will cover the
time to arm, trigger, finish acquisition AND any processing
that is already enabled, for example FFTs, math functions,
measurements, jitter separation... The script calculates this
timeout.
Please note that for segmented memory mode, any processing
would happen only for the final segment.
Please note that for average acquisition mode, any processing
would happen only for the final averaged waveform.

-

Requires Exception handling and a device clear for a possible
timeout (no trigger event)

How it works:
-

The :DIGitize command is a blocking command, and thus, no
other SCPI commands will *execute* until :DIGitize is completely
done. This includes any subsequent processing that is already
set up, such as math, jitter separation, measurements.
KEY POINT: However, :DIGitize does not prevent additional
commands from being sent to the queue or cause the remote
program to wait. For example, if your program does something
like:
KsInfiniiumScope.write(":DIGitize")
sys.stdout.write("Signal acquired.\n")
The "Signal acquired" message will be written immediately
after the :DIGitize is sent, not after the acquisition and
processing is complete.
To pause the program until the :DIGitize is complete, you must
wait for a query result after the :DIGitize. For example, in

Keysight Infiniium Oscilloscopes Programmer's Guide

191

8

Remote Acquisition Synchronization

#
this case:
#
#
query_result = KsInfiniiumScope.query(":DIGitize;*OPC?")
#
sys.stdout.write("Signal acquired.\n")
#
#
The "Signal acquired" message will be written after the
#
acquisition and processing is complete. The *OPC? query is
#
appended to :DIGitize with a semi-colon (;), which
#
essentially ties it to the same thread in the parser. It is
#
immediately dealt with once :DIGitize finishes and gives a "1"
#
back to the program (whether the program uses it or not),
#
allowing the program to move on.
#
# Other Notes:
#
#
- If you DO NOT know when a trigger will occur, you will need to
#
set a very long time out (that is, TIME_TO_TRIGGER should be
#
very long).
#
#
- Because it is essentially impossible to know how long
#
additional processing (for example FFT) will take ahead of
#
time, it CAN be beneficial to turn on such things AFTER the
#
signal is acquired. Further, because much of this processing
#
is done in the Windows OS and memory space, there CAN be a
#
large variation in the post-acquisition processing time.
#
However, read the comments at PROCESSING_TIME for how to
#
actually measure this, and it can be accounted for.
#
#
- The timeout will need to be (should be) adjusted before and
#
after the :DIGitize operation, though this is not absolutely
#
required.
#
#
- A :DIGitize can be aborted with a device clear:
#
KsInfiniiumScope.clear()
#
#
The device clear itself can timeout. Can happen if issued
#
after acquisition done, but scope is still processing a long
#
FFT, for example. A few (10) seconds is usually plenty.
# ====================================================================
def blocking_method():
KsInfiniiumScope.timeout = SCOPE_ACQUISITION_TIME_OUT
# Time in milliseconds (PyVisa uses ms) to wait for the
# oscilloscope to arm, trigger, finish acquisition, and finish
# any processing.
#
# Note that this is a property of the device interface,
# KsInfiniiumScope
#
# If doing repeated acquisitions, this should be done BEFORE the
# loop, and changed again after the loop if the goal is to
# achieve the best throughput.
sys.stdout.write("Acquiring signal(s)...\n")
# Set up a try/except block to catch a possible timeout and exit.
try:
KsInfiniiumScope.query(":DIGitize;*OPC?")

192

Keysight Infiniium Oscilloscopes Programmer's Guide

8

Remote Acquisition Synchronization

# Acquire the signal(s) with :DIGitize (blocking) and wait
# until *OPC? comes back with a one.
sys.stdout.write("Signal acquired.\n")
# Catch a possible timeout and exit.
except Exception:
print "The acquisition timed out, most likely due to no " \
"trigger or improper setup causing no trigger. " \
"Properly closing the oscilloscope connection and " \
"exiting script.\n"
KsInfiniiumScope.clear() # Clear communications interface;
# A device clear also aborts digitize.
KsInfiniiumScope.close() # Close communications interface
sys.exit("Exiting script.")
# Reset timeout back to what it was, GLOBAL_TOUT.
KsInfiniiumScope.timeout = GLOBAL_TOUT

#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

====================================================================
Define a function using the non-blocking :SINGle command and polling
on the Processing Done Event Register
-------------------------------------------------------------------Benefits of this method:
-

Don't have to worry about interface timeouts.
Easy to expand to know when the oscilloscope is armed.

Drawbacks of this method:
-

Slow, as you don't want to poll the oscilloscope too fast.

-

Still need some maximum timeout (here MAX_TIME_TO_WAIT),
ideally, or the script will sit in the while loop forever if
there is no trigger event.
If using :PDER? max time out (here MAX_TIME_TO_WAIT) must also
account for any processing done (PROCESSING_TIME).
Max time out (here MAX_TIME_TO_WAIT) must also account for time
to arm the oscilloscope and finish the acquisition.
The script calculates this MAX_TIME_TO_WAIT as
SCOPE_ACQUISITION_TIME_OUT.

-

DOES NOT work for Equivalent time mode.
method.

MUST use the blocking

How it works:
-

Basically, clear the status registers with *CLS. Initiate the
acquisition with the non-blocking :SINGle. Poll the
oscilloscope until the Processing Done Event Register comes
back with a 1, meaning that both the acquisition and any
enabled processing (FFTs, Math, jitter...) are done.

Other Notes:

Keysight Infiniium Oscilloscopes Programmer's Guide

193

8

Remote Acquisition Synchronization

#
# - Instead of using the Processing Done Event Register, you could
#
use the Acquisition Done Event Register (see :ADER?). The
#
benefit here is that one could potentially determine WHEN a
#
trigger occurred, but only within 100 ms (the poll wait time #
also need to know how much time acquired after the trigger....)
#
You could also do :ADER? and then, when that comes back with a
#
1, do :PDER? possibly enabling processing in between...
#
#
Please note that for segmented memory mode, any processing would
#
happen only for the final segment.
#
#
Please note that for average acquisition mode, any processing
#
would happen only for the final averaged waveform.
# ====================================================================
def polling_method():
MAX_TIME_TO_WAIT = SCOPE_ACQUISITION_TIME_OUT
# Time in seconds to wait for the oscilloscope to arm, trigger,
# finish acquisition, and finish any processing.
#
# Note that this is NOT a property of the device interface,
# KsInfiniiumScope, but rather some constant in the script to be
# used later with the Python module "time", and will be used with
# time.clock().
#
# If using ADER (below), set PROCESSING_TIME = 0.
# Define completion criterion:
ACQ_DONE = 1
ACQ_NOT_DONE = 0
sys.stdout.write("Acquiring signal(s)...\n")
# Clear all status registers (set them to 0). This could be
# concatenated with the :SINGle command two lines below to speed
# things up a little, like this ->
# KsInfiniiumScope.write("*CLS;:SINGle")
KsInfiniiumScope.write("*CLS")
# Define acquisition start time. This is in seconds.
StartTime = time.clock()
# Begin acquisition with non-blocking :SINGle command.
KsInfiniiumScope.write(":SINGle")
# KsInfiniiumScope.write("*CLS;:SINGle")
# Recommended to concatenate these together for repeated
# acquisition using this method as it goes slightly faster;
# consider using method 1 instead if max throughput is desired
# Immediately ask oscilloscope if it is done with
# and processing.
Status = int(KsInfiniiumScope.query(":PDER?"))
# NOTE: :ADER? could also be used, but :ADER does
# processing. If using ADER, set PROCESSING_TIME
#
# NOTE: :PDER? not supported on older Infiniiums.
# instead.

194

the acquisition

not cover any
= 0.
Use :ADER?

Keysight Infiniium Oscilloscopes Programmer's Guide

8

Remote Acquisition Synchronization

#
#
#
#
#
#
#

---------------------------------------------------------------For Average mode, MUST use :ADER? (and then PDER if needed) see "Other Notes" at bottom of this section.
This needs to be changed in two places, one above here, and one
below....
----------------------------------------------------------------

# Poll the oscilloscope until Status (:PDER?) is a one. (This is
# NOT a "Serial Poll.")
while Status == ACQ_NOT_DONE and \
(time.clock() - StartTime <= MAX_TIME_TO_WAIT):
# This loop is never entered if the acquisition completes
# immediately. Exits if Status == 1 or MAX_TIME_TO_WAIT exceeded
time.sleep(0.1)
# Pause 100 ms to prevent excessive queries
Status = int(KsInfiniiumScope.query(":PDER?"))
# Read status
# Loop exists when Status != NOT_DONE, that is, it exits the
# loop when it is DONE
if Status == ACQ_DONE:
# Acquisition fully completed
sys.stdout.write("Signal acquired.\n")
else:
# Acquisition failed for some reason
print "Max wait time exceeded."
print "This can happen if there was not enough time to arm the "
\
"oscilloscope, there was no trigger event, the " \
"oscilloscope did not finish acquiring, or the " \
"processing did not finish."
print "Visually check the oscilloscope for a trigger, adjust " \
"settings accordingly.\n"
print "Properly closing the oscilloscope connection and " \
"exiting the script.\n"
# Always stop the oscilloscope when making any changes.
KsInfiniiumScope.query(":STOP;*OPC?")
KsInfiniiumScope.clear() # Clear communications interface
KsInfiniiumScope.close() # Close communications interface
sys.exit("Exiting script.")

# ====================================================================
# Do Something with data... save, export, additional analysis...
# ====================================================================
def do_something_with_data():
# For example, make a peak-peak voltage measurement on channel 1:
Vpp_Ch1 = \
str(KsInfiniiumScope.query("MEASure:VPP? CHANnel1")).strip("\n")
# The result comes back with a newline, so remove it with .strip("\n")
print "Vpp Ch1 = " + Vpp_Ch1 + " V\n"

# ====================================================================
# Main code
# ====================================================================

Keysight Infiniium Oscilloscopes Programmer's Guide

195

8

Remote Acquisition Synchronization

# Connect and initialize oscilloscope
# -------------------------------------------------------------------# Define VISA Resource Manager & Install directory
rm = visa.ResourceManager('C:\\Windows\\System32\\visa32.dll')
# Define and open the oscilloscope using the VISA address
KsInfiniiumScope = rm.open_resource(VISA_ADDRESS)
# Set the Global Timeout
KsInfiniiumScope.timeout = GLOBAL_TOUT
# Clear the instrument bus
KsInfiniiumScope.clear()
# Clear all status registers and errors
KsInfiniiumScope.write("*CLS")
#
#
#
#
#
#

Set up the oscilloscope
-------------------------------------------------------------------Note that you would normally perform a reset (default setup) if you
were to create the setup from scratch... But here we will use the
oscilloscope "as is" for the most part.
KsInfiniiumScope.query("*RST;*OPC?")
# Resets the oscilloscope

# Always stop the oscilloscope when making any changes.
KsInfiniiumScope.query(":STOP;*OPC?")
# For this example, the oscilloscope will be forced to trigger on the
# (AC input power) LINE voltage so something happens.
# Always use normal trigger sweep, never auto.
KsInfiniiumScope.write(":TRIGger:SWEep TRIGgered")
# This line simply gives the oscilloscope something to trigger on.
KsInfiniiumScope.query(":TRIGger:EDGE:SOURce LINE;*OPC?")
# Clear the display (so you can see the waveform being acquired # otherwise, there is no need for this).
KsInfiniiumScope.write(":CDISplay")
# Calculate acquisition timeout/wait time by short, overestimate method
# -------------------------------------------------------------------# Need to get some info
HO
= float(KsInfiniiumScope.query(":TRIGger:HOLDoff?"))
SR
= float(KsInfiniiumScope.query(":ACQuire:SRATe:ANALog?"))
N_SAMPLES = float(KsInfiniiumScope.query(":ACQuire:POINts:ANALog?"))
# Note that the :WAVeform:POINts? command will also return interpolated
# values, so it is not useful.
T_RANGE
= N_SAMPLES / SR
# Note that using the :TIMebase:RANGe? command really only tells us
# what the oscilloscope is on screen, but Infiniium can be set up to
# capture off-screen data.
T_POSITION = float(KsInfiniiumScope.query(":TIMebase:POSition?"))
# Determine if Average mode is on
AVERAGE_MODE_STATE = \
str(KsInfiniiumScope.query(":ACQuire:AVERage?").strip("\n"))
if AVERAGE_MODE_STATE == "1":

196

Keysight Infiniium Oscilloscopes Programmer's Guide

8

Remote Acquisition Synchronization

N_AVERAGES = \
float(KsInfiniiumScope.query(":ACQuire:AVERage:COUNt?"))
else:
N_AVERAGES = 1
# Determine if Segmented Memory or Equivalent time modes are on.
ACQ_MODE = str(KsInfiniiumScope.query(":ACQuire:MODE?").strip("\n"))
ETIME_MULTIPLIER = 1
# For Equivalent Time mode.
# This is a multiplier used as Equivalent time mode builds up over
# numerous acquisitions.
if ACQ_MODE == "SEGM" or ACQ_MODE == "SEGH":
N_SEGMENTS = \
float(KsInfiniiumScope.query(":ACQuire:SEGMented:COUNt?"))
elif ACQ_MODE != "ETIM":
N_SEGMENTS = 1
elif ACQ_MODE == "ETIM":
N_SEGMENTS = 1
ETIME_MULTIPLIER = 5
# Total guess. Few use this mode.
sys.stdout.write("Timeout calculation of Equivalent time mode "
"not thoroughly tested.")
# Calculate timeout from above info.
# Recall that PyVISA timeouts are in ms, so multiply by 1000.
SCOPE_ACQUISITION_TIME_OUT = (float(TIME_TO_TRIGGER)*1.1 +
float(PROCESSING_TIME)*1.2 +
(T_RANGE*2.0 + abs(T_POSITION)*2.0 + HO*1.1 +
float(TIME_BETWEEN_TRIGGERS)*1.1)*N_SEGMENTS*N_AVERAGES*
ETIME_MULTIPLIER)*1000.0
# Ensure the timeout is no less than 10 seconds
if SCOPE_ACQUISITION_TIME_OUT < 10000.0:
SCOPE_ACQUISITION_TIME_OUT = 10000.0
# Acquire Signal
# -------------------------------------------------------------------# Choose blocking_method or polling_method. These were defined as
# functions in case you want to use them repeatedly.
blocking_method()
do_something_with_data()
polling_method()
do_something_with_data()
# End of Script
# -------------------------------------------------------------------KsInfiniiumScope.clear() # Clear communications interface
KsInfiniiumScope.close() # Close communications interface
print "All done."

Keysight Infiniium Oscilloscopes Programmer's Guide

197

8

Remote Acquisition Synchronization

Single Shot Device Under Test (DUT)
The examples in the previous section (Acquisition Synchronization) assumed the
DUT is continually running and, therefore, the oscilloscope will have more than
one opportunity to trigger. With a single shot DUT, there is only one opportunity
for the oscilloscope to trigger so it is necessary for the oscilloscope to be armed
and ready before the DUT is enabled.

NOTE

The blocking :DIGitize command cannot be used for a single shot DUT because once the
:DIGitize command is issued, the oscilloscope is blocked from any further commands until the
acquisition is complete.
This example is the same as the previous example with the addition of checking for
the armed event status.

Example

TIMEOUT = 1000ms
currentTime = 0ms
// Setup
:STOP; *OPC?
:ADER?

// if not stopped
// clear ADER event

// Acquire
:SINGle
while(AER? == 0)
{
wait(100ms)
}
//oscilloscope is armed and ready, enable DUT here
while(currentTime <= TIMEOUT)
{
if (:ADER? == 1)
{
break;
}
else
{
// Use small wait to prevent excessive
// queries to the oscilloscope
wait (100ms)
currentTime += 100ms
}
}
//Get results
if (currentTime < TIMEOUT)
{
:MEASure:RISetime?
}

198

Keysight Infiniium Oscilloscopes Programmer's Guide

8

Remote Acquisition Synchronization

Averaging Acquisition Synchronization
When averaging, it is necessary to know when the average count has been
reached. Since an ADER/PDER event occurs for every acquisition in the average
count, these commands cannot be used. The :SINGle command does not average.
If it is known that a trigger will occur, a :DIG will acquire the complete number of
averages, but if the number of averages is large, it may cause a timeout on the
connection.
The example below acquires the desired number of averages and then stops
running.
Example

AVERAGE_COUNT = 256
:STOP;*OPC?
:TER?
:ACQ:AVERage:COUNt AVERAGE_COUNT
:ACQ:AVERage ON
:RUN
//Assume the oscilloscope will trigger, if not put a check here
while (:WAV:COUNT? < AVERAGE_COUNT)
{
wait(100ms)
}
:STOP;*OPC?
// Get results

Keysight Infiniium Oscilloscopes Programmer's Guide

199

8

200

Remote Acquisition Synchronization

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

9 Programming Conventions
Truncation Rule / 202
The Command Tree / 203
Infinity Representation / 206
Response Generation / 207
EOI / 208

This chapter describes conventions used to program the Infiniium-Series
Oscilloscopes, and conventions used throughout this manual. A description of the
command tree and command tree traversal is also included.

201

9

Programming Conventions

Truncation Rule
The truncation rule is used to produce the short form (abbreviated spelling) for the
mnemonics used in the programming headers and parameter arguments.

NOTE

Command Truncation Rule
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. If the length of the
keyword is four characters or less, this rule does not apply, and the short form is the same as
the long form.
This document's command descriptions shows how the truncation rule is applied
to commands.
Table 5

202

Mnemonic Truncation

Long Form

Short Form

How the Rule is Applied

RANGe

RANG

Short form is the first four characters of the
keyword.

PATTern

PATT

Short form is the first four characters of the
keyword.

DISK

DISK

Short form is the same as the long form.

DELay

DEL

Fourth character is a vowel; short form is the
first three characters.

Keysight Infiniium Oscilloscopes Programmer's Guide

9

Programming Conventions

The Command Tree
The command tree in this document's table of contents shows all of the
commands in the Infiniium-Series Oscilloscopes and the relationship of the
commands to each other. The IEEE 488.2 common commands are not part of the
command tree because they do not affect the position of the parser within the
tree.
When a program message terminator (, linefeed - ASCII decimal 10) or a
leading colon (:) is sent to the oscilloscope, the parser is set to the "root" of the
command tree.
•

"Command Types" on page 203

•

"Tree Traversal Rules" on page 203

•

"Tree Traversal Examples" on page 204

Command Types
The commands in this oscilloscope can be viewed as three types: common
commands, root level commands, and subsystem commands.
•

Common commands are commands defined by IEEE 488.2 and control some
functions that are common to all IEEE 488.2 instruments. These commands are
independent of the tree and do not affect the position of the parser within the
tree. *RST is an example of a common command.

•

Root level commands control many of the basic functions of the oscilloscope.
These commands reside at the root of the command tree. They can always be
parsed if they occur at the beginning of a program message or are preceded by
a colon. Unlike common commands, root level commands place the parser
back at the root of the command tree. AUToscale is an example of a root level
command.

•

Subsystem commands are grouped together under a common node of the
command tree, such as the TIMebase commands. You may select only one
subsystem at a given time. When you turn on the oscilloscope initially, the
command parser is set to the root of the command tree and 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 :TIMebase:RANGe. This is
referred to as a compound header. A compound header is a header made up of
two or more mnemonics separated by colons. The compound header contains no
spaces. The following rules apply to traversing the tree.

Keysight Infiniium Oscilloscopes Programmer's Guide

203

9

Programming Conventions

NOTE

Tree Traversal Rules
A leading colon or a program message terminator ( 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 the oscilloscope 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 (TIMebase:). That is the point where the parser resides. You can send
any command below this point within the current program message without
sending the mnemonics which appear above them (for example, REFerence).

Tree Traversal Examples
The WriteString() methods in the following examples are written using Visual Basic
for Application (VBA) with the VISA COM library.
Example 1

Consider the following command:
myScope.WriteString ":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 required to separate the two commands or
operations. The OFFSet command does not need :CHANnel1 preceding it because
the :CHANnel1:RANGe command sets the parser to the CHANnel1 node in the
tree.
Example 2

Consider the following commands:
myScope.WriteString ":TIMebase:REFerence CENTer;POSition 0.00001"

or
myScope.WriteString ":TIMebase:REFerence CENTer"
myScope.WriteString ":TIMebase:POSition 0.00001"

In the first line of example 2, the "subsystem selector" is implied for the POSITION
command in the compound command.
A second way to send these commands is shown in the second part of the
example. Because the program message terminator places the parser back at the
root of the command tree, you must reselect TIMEBASE to re-enter the TIMEBASE
node before sending the POSITION command.
Example 3

Consider the following command:
myScope.WriteString ":TIMebase:REFerence CENTer;:CHANnel1:OFFSet 0"

204

Keysight Infiniium Oscilloscopes Programmer's Guide

Programming Conventions

9

In this example, the leading colon before CHANnel1 tells the parser to go back to
the root of the command tree. The parser can then recognize the
:CHANnel1:OFFSet command and enter the correct node.

Keysight Infiniium Oscilloscopes Programmer's Guide

205

9

Programming Conventions

Infinity Representation
The representation for infinity for this oscilloscope is 9.99999E+37. This is also the
value returned when a measurement cannot be made.

206

Keysight Infiniium Oscilloscopes Programmer's Guide

9

Programming Conventions

Response Generation
As defined by IEEE 488.2, query responses may be buffered for these reasons:
•

When the query is parsed by the oscilloscope.

•

When the computer addresses the oscilloscope to talk so that it may read the
response.

This oscilloscope buffers responses to a query when the query is parsed.

Keysight Infiniium Oscilloscopes Programmer's Guide

207

9

Programming Conventions

EOI
The EOI bus control line follows the IEEE 488.2 standard without exception.

208

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

10 Acquire Commands
:ACQuire:AVERage / 211
:ACQuire[:AVERage]:COUNt / 212
:ACQuire:BANDwidth / 213
:ACQuire:BANDwidth:FRAMe? / 215
:ACQuire:BANDwidth:TESTLIMITS? / 216
:ACQuire:COMPlete / 217
:ACQuire:COMPlete:STATe / 219
:ACQuire:HRESolution / 220
:ACQuire:INTerpolate / 222
:ACQuire:MODE / 223
:ACQuire:POINts[:ANALog] — Memory depth / 225
:ACQuire:POINts:AUTO / 227
:ACQuire:POINts:DIGital? / 228
:ACQuire:POINts:TESTLIMITS? / 229
:ACQuire:REDGe — RealEdge Channel Inputs (90000 Q-Series, Z-Series) / 230
:ACQuire:RESPonse (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 231
:ACQuire:SEGMented:AUToplay / 232
:ACQuire:SEGMented:COUNt / 233
:ACQuire:SEGMented:INDex / 234
:ACQuire:SEGMented:PLAY / 235
:ACQuire:SEGMented:PRATe / 236
:ACQuire:SEGMented:TTAGs / 237
:ACQuire:SRATe[:ANALog] — Analog Sample Rate / 238
:ACQuire:SRATe[:ANALog]:AUTO / 239
:ACQuire:SRATe:DIGital — Digital Channels Sample Rate / 240
:ACQuire:SRATe:DIGital:AUTO / 241
:ACQuire:SRATe:TESTLIMITS? / 242

209

10 Acquire Commands

The ACQuire subsystem commands set up conditions for executing a :DIGitize root
level command to acquire waveform data. The commands in this subsystem select
the type of data, the number of averages, and the number of data points.

210

Keysight Infiniium Oscilloscopes Programmer's Guide

10

Acquire Commands

:ACQuire:AVERage
Command

:ACQuire:AVERage {{ON|1} | {OFF|0}}

The :ACQuire:AVERage command enables or disables averaging. When ON, the
oscilloscope acquires multiple data values for each time bucket, and averages
them. When OFF, averaging is disabled. To set the number of averages, use the
:ACQuire:AVERage:COUNt command described next.
Averaging is not available in PDETect mode.
The :MTESt:AVERage command performs the same function as this command.
Example

This example turns averaging on.
myScope.WriteString ":ACQuire:AVERage ON"

Query

:ACQuire:AVERage?

The :ACQuire:AVERage? query returns the current setting for averaging.
Returned Format
Example

[:ACQuire:AVERAGE] {1|0}

This example places the current settings for averaging into the string variable,
strSetting, then prints the contents of the variable to the computer's screen.
Dim strSetting As String
' Dimension variable.
myScope.WriteString ":ACQuire:AVERage?"
strSetting = myScope.ReadString
Debug.Print strSetting

History

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

211

10 Acquire Commands

:ACQuire[:AVERage]:COUNt
Command

:ACQuire[:AVERage]:COUNt 

The :ACQuire[:AVERage]:COUNt command sets the number of averages for the
waveforms. In the AVERage mode, the :ACQuire[:AVERage]:COUNt command
specifies the number of data values to be averaged for each time bucket before
the acquisition is considered complete for that time bucket.
The :MTESt:AVERage:COUNt command performs the same function as this
command.

Example

An integer, 2 to 65,534, specifying the number of data values to be averaged.
This example specifies that 16 data values must be averaged for each time bucket
to be considered complete. The number of time buckets that must be complete for
the acquisition to be considered complete is specified by the :ACQuire:COMPlete
command.
myScope.WriteString ":ACQuire:COUNt 16"

Query

:ACQuire[:AVERage]:COUNt?

The :ACQuire[:AVERage]:COUNt? query returns the currently selected count value.
Returned Format

[:ACQuire[:AVERage]:COUNt] 



An integer, 2 to 65,534, specifying the number of data values to be averaged.

Example

This example checks the currently selected count value and places that value in
the string variable, strResult. The program then prints the contents of the variable
to the computer's screen.
Dim strResult As String
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:AVERage:COUNt?"
strResult = myScope.ReadString
Debug.Print strResult

History

212

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

10

Acquire Commands

:ACQuire:BANDwidth
Command

:ACQuire:BANDwidth {AUTO | MAX | }

The :ACQuire:BANDwidth command changes the bandwidth frequency control for
the acquisition system.
•

AUTO — The bandwidth is automatically selected based on the sample rate
setting in order to make a good a trade-off between bandwidth, noise, and
aliasing.

•

MAX — Sets the oscilloscope to the hardware bandwidth limit and disables the
bandwidth filter.

•

 — a real number representing the bandwidth of the bandwidth
filter whose range of values depends on the model number of your
oscilloscope.

Model

Band wid th Fil ter Values

DSOX/DSAX96204Q,
DSAZ/DSOZ634A

The maximum bandwidth down to 1 GHz in 1 GHz increments.

DSOX/DSAX95004Q,
DSAZ/DSOZ504A
DSOX/DSAX93304Q,
DSAZ/DSOZ334A
DSOX/DSAX92504Q,
DSAZ/DSOZ254A
DSOX/DSAX92004Q,
DSAZ/DSOZ204A
DSOX/DSAX93204A

The maximum bandwidth down to 1 GHz in 1 GHz increments.

DSOX/DSAX92804A
DSOX/DSAX92504A
DSOX/DSAX92004A
DSOX/DSAX91604A
DSO/DSA91304A

13E09, 12E09, 10E09, 8E09, 6E09, 4E09, 3E09, 2.5E09, 2E09, 1E09

DSO/DSA91204A

12E09, 10E09, 8E09, 6E09, 4E09, 3E09, 2.5E09, 2E09, 1E09

DSO/DSA90804A

8E09, 6E09, 4E09, 3E09, 2.5E09, 2E09, 1E09

DSO/DSA90604A

6E09, 4E09, 3E09, 2.5E09, 2E09, 1E09

DSO/DSA90404A

4E09, 3E09, 2.5E09, 2E09, 1E09

DSO/DSA90254A

2.5E09, 2E09, 1E09

Keysight Infiniium Oscilloscopes Programmer's Guide

213

10 Acquire Commands

Model

Band wid th Fil ter Values

DSOS/MSOS804A

The maximum bandwidth down to 500 MHz in 500 MHz increments,
250 MHz.

DSOS/MSOS604A
DSOS/MSOS404A
DSOS/MSOS254A
DSOS/MSOS204A
DSOS/MSOS104A
DSOS/MSOS054A
DSO/MSO9404A

4E09, 3.5E09, 3E09, 2.5E09, 2E09, 1.5E09, 1E09, 5E08

DSO/MSO9254A

2.5E09, 2E09, 1.5E09, 1E09, 5E08

DSO/MSO9104A

1E09, 5E08

DSO/MSO9064A

The command is not valid for this model oscilloscope.

The DSO/MSO 9000 Series oscilloscopes do not have AUTO and MAX modes. Sending the
:ACQuire:BANDwidth command with these parameters disables the global bandwidth limit.
Sending the :ACQuire:BANDwidth command with specific bandwidth values enables the
global bandwidth limit.

NOTE

Query

:ACQuire:BANDwidth?

The :ACQuire:BANDwidth? query returns the bandwidth setting of the bandwidth
control.
Returned Format
History

[:ACQuire:BANDwidth] 

New in version 3.10.
Version 4.00: Added a MAX option for selecting the maximum bandwidth.

214

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

:ACQuire:BANDwidth:FRAMe?
Query

:ACQuire:BANDwidth:FRAMe?

The :ACQuire:BANDwidth:FRAMe? query returns the maximum bandwidth
associated with oscilloscope model.
Returned Format


 ::= max. BW of oscilloscope model

History

New in version 5.20.

Keysight Infiniium Oscilloscopes Programmer's Guide

215

10 Acquire Commands

:ACQuire:BANDwidth:TESTLIMITS?
Query

:ACQuire:BANDwidth:TESTLIMITS?

The :ACQuire:BANDwidth:TESTLIMITS? query returns the oscilloscope's
acquisition bandwidth maximum and minimum limits.
Returned Format


Number of parameters, always 1 for this query.



Type of values returned, always "" for this query.



Lower bandwidth limit value.



Upper bandwidth limit value.

See Also

History

216

,<>:

•

":ACQuire:BANDwidth" on page 213

•

":ACQuire:BANDwidth:FRAMe?" on page 215

•

":ACQuire:POINts:TESTLIMITS?" on page 229

•

":ACQuire:SRATe:TESTLIMITS?" on page 242

New in version 5.60.

Keysight Infiniium Oscilloscopes Programmer's Guide

10

Acquire Commands

:ACQuire:COMPlete
Command

:ACQuire:COMPlete 

The :ACQuire:COMPlete command specifies how many of the data point storage
bins (time buckets) in the waveform record must contain a waveform sample
before a measurement will be made. For example, if the command
:ACQuire:COMPlete 60 has been sent, 60% of the storage bins in the waveform
record must contain a waveform data sample before a measurement is made.
•

If :ACQuire:AVERage is set to OFF, the oscilloscope only needs one value per
time bucket for that time bucket to be considered full.

•

If :ACQuire:AVERage is set to ON, each time bucket must have n hits for it to be
considered full, where n is the value set by :ACQuire:AVERage:COUNt.

Due to the nature of real time acquisition, 100% of the waveform record bins are
filled after each trigger event, and all of the previous data in the record is replaced
by new data when :ACQuire:AVERage is off. Hence, the complete mode really has
no effect, and the behavior of the oscilloscope is the same as when the completion
criteria is set to 100% (this is the same as in PDETect mode). When
:ACQuire:AVERage is on, all of the previous data in the record is replaced by new
data.
The range of the :ACQuire:COMPlete command is 0 to 100 and indicates the
percentage of time buckets that must be full before the acquisition is considered
complete. If the complete value is set to 100%, all time buckets must contain data
for the acquisition to be considered complete. If the complete value is set to 0,
then one acquisition cycle will take place. Completion is set by default setup or
*RST to 90%. Autoscale changes it to 100%.

Example

An integer, 0 to 100, representing the percentage of storage bins (time buckets)
that must be full before an acquisition is considered complete.
This example sets the completion criteria for the next acquisition to 90%.
myScope.WriteString ":ACQuire:COMPlete 90"

Query

:ACQuire:COMPlete?

The :ACQuire:COMPlete? query returns the completion criteria.
Returned Format

Example

[:ACQuire:COMPlete] 

An integer, 0 to 100, representing the percentage of time buckets that must be full
before an acquisition is considered complete.
This example reads the completion criteria and places the result in the variable,
varPercent. Then, it prints the content of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:COMPlete?"
varPercent = myScope.ReadNumber
Debug.Print FormatNumber(varPercent, 0)

Keysight Infiniium Oscilloscopes Programmer's Guide

217

10 Acquire Commands

History

218

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

10

Acquire Commands

:ACQuire:COMPlete:STATe
Command

:ACQuire:COMPlete:STATe {{ON | 1} | {OFF | 0}}

The :ACQuire:COMPlete:STATe command specifies whether acquisition averaging
should complete before measurements are made.
This command maps to the Wait for channel average to complete for measurements
check box in the front panel user interface's Measurement Setup dialog box,
General tab.
The :ACQuire:COMPlete:STATe command is used only when the oscilloscope is running and a
digitize operation is not being performed. The :DIGitize command temporarily overrides the
setting of this mode and forces it to ON.

NOTE

ON

When ON, the oscilloscope waits for an acquisition average to complete before
measurements are taken. If you have averaging enabled (using the
:ACQuire:AVERage command), setting :ACQuire:COMPlete:STATe ON forces the
measurement calculations to wait until the average is computed. This lets you
filter out noise in your waveform before measurements are made.

OFF

When OFF, the oscilloscope makes measurements without waiting for an
acquisition average to complete.

Query

:ACQuire:COMPlete:STATe?

The :ACQuire:COMPlete:STATe? query returns the :ACQuire:COMPlete:STATe
setting.
History

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

219

10 Acquire Commands

:ACQuire:HRESolution
Command

:ACQuire:HRESolution {AUTO | BITS9 | BITS10 | BITS11 | BITS12
| BITF11 | BITF12 | BITF13 | BITF14 | BITF15 | BITF16}

When :ACQuire:MODE is set to HRESolution or SEGHres, the
:ACQuire:HRESolution command sets the desired minimum bit resolution.
•

AUTO — the number of bits of vertical resolution is determined by the sampling
rate, which can be controlled manually by the :ACQuire:SRATe:ANALog
command or automatically when adjusting :TIMebase:SCALe (or
:TIMebase:RANGe).

•

BITS9, BITS10, BITS11, BITS12 — selects the desired minimum number of bits
of vertical resolution (which can affect the sampling rate).

•

BITF11, BITF12, BITF13, BITF14, BITF15, BITF16 — on S-Series oscilloscopes
only, these options force the specified number of bits of vertical resolution.
These options also disable the manual sample rate setting (see
:ACQuire:SRATe[:ANALog]:AUTO), and they are not available in roll mode (see
:TIMebase:ROLL:ENABLE).

Some of the BITS settings may not be valid in certain 9000H Series models.

NOTE

Example

This example sets the bit resolution setting to a minimum of 11 bits.
myScope.WriteString ":ACQuire:HRESolution BITS11"

Query

:ACQuire:HRESolution?

The :ACQuire:HRESolution? query returns the bit resolution setting.
Returned Format
Example

[:ACQuire:HRESolution] {AUTO | BITS9 | BITS10 | BITS11 | BITS12
| BITF11 | BITF12 | BITF13 | BITF14 | BITF15 | BITF16}

This example places the current bit resolution setting in the string variable,
strBitRes, then prints the contents of the variable to the computer's screen.
Dim strBitRes As String
' Dimension variable.
myScope.WriteString ":ACQuire:HRESolution?"
strBitRes = myScope.ReadString
Debug.Print strBitRes

See Also

220

•

":ACQuire:MODE" on page 223

•

":ACQuire:SRATe[:ANALog] — Analog Sample Rate" on page 238

•

":ACQuire:SRATe[:ANALog]:AUTO" on page 239

•

":TIMebase:SCALe" on page 1208

•

":TIMebase:RANGe" on page 1203

•

":TIMebase:ROLL:ENABLE" on page 1207

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

History

10

Legacy command (existed before version 3.10).
Version 6.20: On S-Series oscilloscopes only, the BITF11, BITF12, BITF13, BITF14,
BITF15, and BITF16 options have been added to force the specified number of bits
of vertical resolution.

Keysight Infiniium Oscilloscopes Programmer's Guide

221

10 Acquire Commands

:ACQuire:INTerpolate
Command

:ACQuire:INTerpolate {{ON | 1} | {OFF | 0} | INT1 | INT2 | INT4 | INT8
| INT16}

The :ACQuire:INTerpolate command turns the sin(x)/x interpolation filter on or off
when the oscilloscope is in one of the real time sampling modes. You can also
specify the 1, 2, 4, 8, or 16 point Sin(x)/x interpolation ratios using INT1, INT2,
INT4, INT8, or INT16. When ON, the number of interpolation points is
automatically determined.
Query

:ACQuire:INTerpolate?

The :ACQuire:INTerpolate? query returns the current state of the sin(x)/x
interpolation filter control.
Returned Format
History

[:ACQuire:INTerpolate] {1 | 0 | INT1 | INT2 | INT4 | INT8 | INT16}

Legacy command (existed before version 3.10).
Version 3.10: Added the INT1, INT2, INT4, INT8, INT16 options for specifying the 1,
2, 4, 8, or 16 point Sin(x)/x interpolation ratios.

222

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

:ACQuire:MODE
Command

:ACQuire:MODE {ETIMe | RTIMe | PDETect | HRESolution | SEGMented
| SEGPdetect | SEGHres}

The :ACQuire:MODE command sets the sampling/acquisition mode of the
oscilloscope.
In the 9000H Series oscilloscopes, HRESolution and SEGHres are the only valid options.

NOTE

ETIMe

In Equivalent Time mode, the data record is acquired over multiple trigger events.

RTIMe

In Real Time Normal mode, the complete data record is acquired on a single
trigger event.

PDETect

In Real Time Peak Detect mode, the oscilloscope acquires all of the waveform data
points during one trigger event. The data is acquired at the fastest sample rate of
the oscilloscope regardless of the horizontal scale setting. The sampling rate
control then shows the storage rate into the channel memory rather than the
sampling rate. The storage rate determines the number of data points per data
region. From each data region, four sample points are chosen to be displayed for
each time column. The four sample points chosen from each data region are:
•

the minimum voltage value sample

•

the maximum voltage value sample

•

a randomly selected sample

•

an equally spaced sample

The number of samples per data region is calculated using the equation:

Sampling Rate
Number of Samples = Storage Rate
The remainder of the samples are not used for display purposes.
HRESolution

In Real Time High Resolution mode, the oscilloscope acquires all the waveform
data points during one trigger event and averages them thus reducing noise and
improving voltage resolution. The data is acquired at the fastest sample rate of the
oscilloscope regardless of the horizontal scale setting. The sampling rate control
then shows the storage rate into the channel memory rather than the sampling
rate. The number of samples that are averaged together per data region is
calculated using the equation

Sampling Rate
Number of Samples = Storage Rate

Keysight Infiniium Oscilloscopes Programmer's Guide

223

10 Acquire Commands

This number determines how many samples are averaged together to form the
16-bit samples that are stored into the channel memories.
To set the desired bits of vertical resolution, see ":ACQuire:HRESolution" on
page 220.
SEGMented

In this sampling mode you can view waveform events that are separated by long
periods of time without capturing waveform events that are not of interest to you.

SEGPdetect

Enables Peak Detect Segmented mode.

SEGHres

Enables High Resolution Segmented mode.
To set the desired bits of vertical resolution, see ":ACQuire:HRESolution" on
page 220.

Example

This example sets the acquisition mode to Real Time Normal.
myScope.WriteString ":ACQuire:MODE RTIMe"

Query

:ACQuire:MODE?

The :ACQuire:MODE? query returns the current acquisition sampling mode.
Returned Format
Example

[:ACQuire:MODE] {ETIM | RTIM | PDET | HRES | SEGM | SEGP | SEGH}

This example places the current acquisition mode in the string variable, strMode,
then prints the contents of the variable to the computer's screen.
Dim strMode As String
' Dimension variable.
myScope.WriteString ":ACQuire:MODE?"
strMode = myScope.ReadString
Debug.Print strMode

History

224

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

:ACQuire:POINts[:ANALog] — Memory depth
Command

:ACQuire:POINts[:ANALog] {AUTO | }

The :ACQuire:POINts[:ANALog] command sets the requested analog memory
depth for an acquisition. Before you download data from the oscilloscope to your
computer, always query the points value with the :WAVeform:POINts? query or
:WAVeform:PREamble? query to determine the actual number of acquired points.
You can set the points value to AUTO, which allows the oscilloscope to select the
optimum memory depth and display update rate.


An integer representing the memory depth.
The range of points available for a channel depends on the oscilloscope settings of
sampling mode, sampling rate, and trigger sweep.

Interaction
between
:ACQuire:SRATe[:A
NALog] and
:ACQuire:POINts[:A
NALog]

Example

If you assign a sample rate value with :ACQuire:SRATe[:ANALog] or a points value
using :ACQuire:POINts[:ANALog] the following interactions will occur. "Manual"
means you are setting a non-AUTO value for SRATe or POINts.
SRATe

POINts

Resul t

AUTO

Manual

POINts value takes precedence
(sample rate is limited)

Manual

AUTO

SRATe value takes precedence
(memory depth is limited)

Manual

Manual

SRATe value takes precedence
(memory depth is limited)

This example sets the memory depth to 500 points.
myScope.WriteString ":ACQuire:POINts:ANALog 500"

Query

:ACQuire:POINts[:ANALog]?

The :ACQuire:POINts[:ANALog]? query returns the value of the analog memory
depth control.
Returned Format
Example

[:ACQuire:POINts:ANALog] 

This example checks the current setting for memory depth and places the result in
the variable, varLength. Then the program prints the contents of the variable to
the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:POINts:ANALog?"
varLength = myScope.ReadNumber
Debug.Print FormatNumber(varLength, 0)

See Also

•

":WAVeform:DATA?" on page 1425

Keysight Infiniium Oscilloscopes Programmer's Guide

225

10 Acquire Commands

History

226

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

10

Acquire Commands

:ACQuire:POINts:AUTO
Command

:ACQuire:POINts:AUTO {{ON | 1} |{OFF | 0}}

The :ACQuire:POINts:AUTO command enables (automatic) or disables (manual)
the automatic memory depth selection control. When enabled, the oscilloscope
chooses a memory depth that optimizes the amount of waveform data and the
display update rate. When disabled, you can select the amount of memory using
the :ACQuire:POINts command.
Example

This example sets the automatic memory depth control to off.
myScope.WriteString ":ACQuire:POINts:AUTO OFF"

Query

:ACQuire:POINts:AUTO?

The :ACQuire:POINts:AUTO? query returns the automatic memory depth control
state.
Returned Format
Example

[:ACQuire:POINts:AUTO] {1 | 0}

This example checks the current setting for automatic memory depth control and
places the result in the variable, varState. Then the program prints the contents of
the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:POINts:AUTO?"
varState = myScope.ReadNumber
Debug.Print FormatNumber(varState, 0)

See Also
History

:WAVeform:DATA?
Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

227

10 Acquire Commands

:ACQuire:POINts:DIGital?
Query

:ACQuire:POINts:DIGital?

The :ACQuire:POINts:DIGital query returns the current memory depth for the
digital channels (MSO models only).
History

228

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

:ACQuire:POINts:TESTLIMITS?
Query

:ACQuire:POINts:TESTLIMITS?

The :ACQuire:POINts:TESTLIMITS? query returns the oscilloscope's acquisition
points maximum and minimum limits.
Returned Format


,<>:

Number of parameters, always 1 for this query.



Type of values returned, always "" for this query.



Lower points limit value.



Upper points limit value.

See Also

History

•

":ACQuire:POINts[:ANALog] — Memory depth" on page 225

•

":ACQuire:POINts:AUTO" on page 227

•

":ACQuire:BANDwidth:TESTLIMITS?" on page 216

•

":ACQuire:SRATe:TESTLIMITS?" on page 242

New in version 5.60.

Keysight Infiniium Oscilloscopes Programmer's Guide

229

10 Acquire Commands

:ACQuire:REDGe — RealEdge Channel Inputs (90000 Q-Series, Z-Series)
Command

NOTE

This command is available for the 90000 Q-Series and Z-Series models whose bandwidths
are greater than 33 GHz.

:ACQuire:REDGe {{ON | 1} | {OFF | 0}}

The :ACQuire:REDGe command enables or disables the RealEdge channel inputs.
When RealEdge channel inputs are enabled, the :CHANnel1 and :CHANnel3
commands/queries work for the oscilloscope's 1R and 3R channel inputs, and the
:CHANnel2 and :CHANnel4 commands give "hardware missing" or "undefined
header" messages.
Also when RealEdge channel inputs are enabled:

Example

•

The sampling rate is fixed at 160 GSa/s.

•

Real Time Normal is the only acquisition mode available.

This example enables the RealEdge channel inputs.
myScope.WriteString ":ACQuire:REDGe ON"

Query

:ACQuire:REDGe?

The :ACQuire:REDGe? query returns the current setting for RealEdge channel
inputs.
Returned Format
Example

[:ACQuire:REDGe] {1 | 0}

This example places the current setting for RealEdge channel inputs in the string
variable, strRealEdge, then prints the contents of the variable to the computer's
screen.
Dim strRealEdge As String
' Dimension variable.
myScope.WriteString ":ACQuire:REDGe?"
strSample = myScope.ReadString
Debug.Print strRealEdge

History

230

New in version 4.00.

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

:ACQuire:RESPonse (90000A Series, 90000 X-Series, V-Series, 90000
Q-Series, Z-Series)
Command

:ACQuire:RESPonse {FLATmag | GAUSsianmag}

The Flat Magnitude filter is the default one and is the filter typically used on
Infiniium oscilloscopes. The Gaussian Magnitude filter eliminates all ringing
(preshoot or overshoot) caused by the oscilloscope's response. Therefore, any
ringing you see in the displayed signal is actually in your signal and is not caused
by the oscilloscope. The main drawback to using the Gaussian Magnitude Filter is
the decrease in bandwidth. Please consult the Flat Magnitude / Magnitude
Magnitude Filters topic in the help system for specific information regarding the
decrease in bandwidth.
Example

This example turns on the Gaussian Magnitude filter.
myScope.WriteString ":ACQuire:RESPonse GAUSsianmag"

Query

:ACQuire:RESPonse?

The :ACQuire:RESPonse? query returns the current filter being used.
Returned Format
Example

[:ACQ:RESP] {FLAT | GAUS}

This example checks the current filter setting and places the result in the variable,
state. Then the program prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:RESPonse?"
varState = myScope.ReadNumber
Debug.Print FormatNumber(varState, 0)

History

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

231

10 Acquire Commands

:ACQuire:SEGMented:AUToplay
Command

:ACQuire:SEGMented:AUToplay {{0 | OFF} | {1 | ON}}

The :ACQuire:SEGMented:AUToplay command specifies whether segments are
automatically played after a segmented memory acquisition.
Query

:ACQuire:SEGMented:AUToplay?

The :ACQuire:SEGMented:AUToplay? query returns the segmented memory
autoplay setting.
Returned Format


 ::= {0 | 1}

See Also

History

232

•

":ACQuire:MODE" on page 223

•

":ACQuire:SEGMented:PLAY" on page 235

•

":ACQuire:SEGMented:PRATe" on page 236

•

":ACQuire:SEGMented:COUNt" on page 233

•

":ACQuire:SEGMented:INDex" on page 234

•

":ACQuire:SEGMented:TTAGs" on page 237

New in version 6.00.

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

:ACQuire:SEGMented:COUNt
Command

:ACQuire:SEGMented:COUNt <#segments>

The :ACQuire:SEGMented:COUNt command sets the number of segments to
acquire in the segmented memory mode.
<#segments>
Example

An integer representing the number of segments to acquire.
This example sets the segmented memory count control to 1000.
myScope.WriteString ":ACQuire:SEGMented:COUNt 1000"

Query

:ACQuire:SEGMented:COUNt?

The :ACQuire:SEGMented:COUNT? query returns the number of segments control
value.
Returned Format
Example

[:ACQuire:SEGMented:COUNt] <#segments>

This example checks the current setting for segmented memory count control and
places the result in the variable, varSegments. Then the program prints the
contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:SEGMented:COUNt?"
varSegments = myScope.ReadNumber
Debug.Print FormatNumber(varSegments, 0)

See Also

History

•

":ACQuire:SEGMented:INDex" on page 234

•

":ACQuire:SEGMented:PLAY" on page 235

•

":ACQuire:SEGMented:TTAGs" on page 237

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

233

10 Acquire Commands

:ACQuire:SEGMented:INDex
Command

:ACQuire:SEGMented:INDex 

The :ACQuire:SEGMented:INDex command sets the index number for the segment
that you want to display on screen in the segmented memory mode. If an index
value larger than the total number of acquired segments is sent, an error occurs
indicating that the data is out of range and the segment index is set to the
maximum segment number.


An integer representing the index number of the segment that you want to display.

Example

This example sets the segmented memory index number control to 1000.
myScope.WriteString ":ACQuire:SEGMented:INDex 1000"

Query

:ACQuire:SEGMented:INDex?

The :ACQuire:SEGMented:INDex? query returns the segmented memory index
number control value.
Returned Format
Example

[:ACQuire:SEGMented:INDex] 

This example checks the current setting for segmented memory index number
control and places the result in the variable, varIndex. Then the program prints the
contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:SEGMented:INDex?"
varIndex = myScope.ReadNumber
Debug.Print FormatNumber(varIndex, 0)

See Also

History

234

•

":ACQuire:SEGMented:COUNt" on page 233

•

":ACQuire:SEGMented:PLAY" on page 235

•

":ACQuire:SEGMented:TTAGs" on page 237

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

10

Acquire Commands

:ACQuire:SEGMented:PLAY
Command

:ACQuire:SEGMented:PLAY {{0 | OFF} | {1 | ON}}

The :ACQuire:SEGMented:PLAY command plays (or stops) acquired segments.
•

ON — is the same as clicking the play button in the graphical user interface.

•

OFF — is the same as clicking the stop button in the graphical user interface.

Playing acquired segments can take a while depending on the analysis taking
place. You can query to determine when playing is complete.
Query

:ACQuire:SEGMented:PLAY?

The :ACQuire:SEGMented:PLAY? query returns whether segments are currently
being played (1) or are stopped (0).
Returned Format

[:ACQuire:SEGMented:PLAY] 
 ::= {0 | 1}

See Also

History

•

":ACQuire:SEGMented:PRATe" on page 236

•

":ACQuire:SEGMented:COUNt" on page 233

•

":ACQuire:SEGMented:INDex" on page 234

•

":ACQuire:SEGMented:TTAGs" on page 237

New in version 5.60.

Keysight Infiniium Oscilloscopes Programmer's Guide

235

10 Acquire Commands

:ACQuire:SEGMented:PRATe
Command

:ACQuire:SEGMented:PRATe 
 ::= seconds from 0.001 to 1 in NR3 format.

The :ACQuire:SEGMented:PRATe command specifies the segmented memory
navigation play rate.
When playing segments, the current segment through the last segment are
displayed at the specified rate. Playing segments lets you collect measurement
statistics across all the played-back segments.
Query

:ACQuire:SEGMented:PRATe?

The :ACQuire:SEGMented:PRATe? query returns segmented memory navigation
play rate.
Returned Format
See Also
History

236



•

":ACQuire:SEGMented:PLAY" on page 235

New in version 5.70.

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

:ACQuire:SEGMented:TTAGs
Command

:ACQuire:SEGMented:TTAGs {{ON | 1} | {OFF | 0}}

The :ACQuire:SEGMented:TTAGs command turns the time tags feature on or off for
the segmented memory sampling mode.
Example

This example turns the time tags on for segmented memory.
myScope.WriteString ":ACQuire:SEGMented:TTAGs ON"

Query

:ACQuire:SEGMented:TTAGs?

The :ACQuire:SEGMented:TTAGs? query returns the segmented memory time tags
control value.
Returned Format
Example

[:ACQuire:SEGMented:TTAGs] {1 | 0}

This example checks the current setting for segmented memory time tags control
and places the result in the variable, varTimeTags. Then the program prints the
contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:SEGMented:TTAGs?"
varTimeTags = myScope.ReadNumber
Debug.Print FormatNumber(varTimeTags, 0)

See Also

History

•

":ACQuire:SEGMented:COUNt" on page 233

•

":ACQuire:SEGMented:INDex" on page 234

•

":ACQuire:SEGMented:PLAY" on page 235

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

237

10 Acquire Commands

:ACQuire:SRATe[:ANALog] — Analog Sample Rate
Command

:ACQuire:SRATe[:ANALog] {AUTO | MAX | }

The :ACQuire:SRATe[:ANALog] command sets the analog acquisition sampling
rate.
AUTO
MAX

The AUTO rate allows the oscilloscope to select a sample rate that best
accommodates the selected memory depth and horizontal scale.
The MAX rate enables the oscilloscope to select maximum available sample rate.



A real number representing the sample rate. You can send any value, but the value
is rounded to the next fastest sample rate.

Interaction
between
:ACQuire:SRATe[:A
NALog] and
:ACQuire:POINts[:A
NALog]

If you assign a sample rate value with :ACQuire:SRATe[:ANALog] or a points value
using :ACQuire:POINts[:ANALog] the following interactions will occur. "Manual"
means you are setting a non-AUTO value for SRATe or POINts.

Example

SRATe

POINts

Resul t

AUTO

Manual

POINts value takes precedence
(sample rate is limited)

Manual

AUTO

SRATe value takes precedence
(memory depth is limited)

Manual

Manual

SRATe value takes precedence
(memory depth is limited)

This example sets the sample rate to 250 MSa/s.
myScope.WriteString ":ACQuire:SRATe:ANALog 250E+6"

Query

:ACQuire:SRATe[:ANALog]?

The :ACQuire:SRATe[:ANALog]? query returns the current analog acquisition
sample rate.
Returned Format
Example

[:ACQuire:SRATe:ANALog] {}

This example places the current sample rate in the string variable, strSample, then
prints the contents of the variable to the computer's screen.
Dim strSample As String
' Dimension variable.
myScope.WriteString ":ACQuire:SRATe:ANALog?"
strSample = myScope.ReadString
Debug.Print strSample

History

238

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

:ACQuire:SRATe[:ANALog]:AUTO
Command

:ACQuire:SRATe[:ANALog]:AUTO {{ON | 1} | {OFF | 0}}

The :ACQuire:SRATe[:ANALog]:AUTO command enables (ON) or disables (OFF) the
automatic analog sampling rate selection control. On the oscilloscope front-panel
interface, ON is equivalent to Automatic and OFF is equivalent to Manual.
Example

This example changes the sampling rate to manual.
myScope.WriteString ":ACQuire:SRATe:ANALog:AUTO OFF"

Query

:ACQuire:SRATe[:ANALog]:AUTO?

The :ACQuire:SRATe[:ANALog]:AUTO? query returns the current acquisition sample
rate.
Returned Format
Example

[:ACQuire:SRATe:ANALog:AUTO] {1 | 0}

This example places the current analog sample rate in the variable, varSample,
then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:SRATe:ANALog:AUTO?"
varSample = myScope.ReadNumber
Debug.Print FormatNumber(varSample, 0)

History

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

239

10 Acquire Commands

:ACQuire:SRATe:DIGital — Digital Channels Sample Rate
Command

:ACQuire:SRATe:DIGital {AUTO | MAX | }

The :ACQuire:SRATe:DIGital command sets the digital acquisition sampling rate.
AUTO
MAX

Interaction
between
:ACQuire:SRATe:DI
Gital and
:ACQuire:POINts:DI
Gital?
Query

The AUTO rate allows the oscilloscope to select a sample rate that best
accommodates the selected memory depth and horizontal scale.
The MAX rate enables the oscilloscope to select maximum available sample rate.
A real number representing the digital sample rate. You can send any value, but
the value is rounded to the next fastest sample rate.
If you assign a sample rate value with :ACQuire:SRATe:DIGital, the digital memory
depth is automatically adjusted and can be seen by using the
:ACQuire:POINts:DIGital? query.

:ACQuire:SRATe:DIGital?

The :ACQuire:SRATe:DIGital? query returns the current digital acquisition sample
rate.
Returned Format
Example

[:ACQuire:SRATe:DIGital] {}

This example places the current digital channel sample rate in the string variable,
strSample, then prints the contents of the variable to the computer's screen.
Dim strSample As String
' Dimension variable.
myScope.WriteString ":ACQuire:SRATe:DIGital?"
strSample = myScope.ReadString
Debug.Print strSample

History

240

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

10

Acquire Commands

:ACQuire:SRATe:DIGital:AUTO
Command

:ACQuire:SRATe:DIGital:AUTO {{ON | 1} | {OFF | 0}}

The :ACQuire:SRATe:DIGital:AUTO command enables (ON) or disables (OFF) the
automatic digital channel sampling rate selection control.
Example

This example changes the digital channel sampling rate to manual.
myScope.WriteString ":ACQuire:SRATe:DIGital:AUTO OFF"

Query

:ACQuire:SRATe:DIGital:AUTO?

The :ACQuire:SRATe:DIGital:AUTO? query returns the current digital channel
acquisition sample rate.
Returned Format
Example

[:ACQuire:SRATe:DIGital:AUTO] {1 | 0}

This example places the current digital channel sample rate in the variable,
varSample, then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ACQuire:SRATe:DIGital:AUTO?"
varSample = myScope.ReadNumber
Debug.Print FormatNumber(varSample, 0)

History

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

241

10 Acquire Commands

:ACQuire:SRATe:TESTLIMITS?
Query

:ACQuire:SRATe:TESTLIMITS?

The :ACQuire:SRATe:TESTLIMITS? query returns the oscilloscope's acquisition
sampling rate maximum and minimum limits.
Returned Format


Number of parameters, always 1 for this query.



Type of values returned, always "" for this query.



Lower sample rate limit value.



Upper sample rate limit value.

See Also

History

242

,<>:

•

":ACQuire:SRATe[:ANALog] — Analog Sample Rate" on page 238

•

":ACQuire:SRATe[:ANALog]:AUTO" on page 239

•

":ACQuire:BANDwidth:TESTLIMITS?" on page 216

•

":ACQuire:POINts:TESTLIMITS?" on page 229

New in version 5.60.

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

11 Analyze Commands
:ANALyze:AEDGes / 245
:ANALyze:CLOCk / 246
:ANALyze:CLOCk:METHod / 247
:ANALyze:CLOCk:METHod:ALIGn / 250
:ANALyze:CLOCk:METHod:DEEMphasis / 252
:ANALyze:CLOCk:METHod:EDGE / 253
:ANALyze:CLOCk:METHod:IDLe / 255
:ANALyze:CLOCk:METHod:JTF / 256
:ANALyze:CLOCk:METHod:OJTF / 259
:ANALyze:CLOCk:METHod:PLLTrack / 262
:ANALyze:CLOCk:METHod:SKEW / 263
:ANALyze:CLOCk:METHod:SOURce / 264
:ANALyze:CLOCk:VERTical / 265
:ANALyze:CLOCk:VERTical:OFFSet / 266
:ANALyze:CLOCk:VERTical:RANGe / 267
:ANALyze:SIGNal:DATarate / 268
:ANALyze:SIGNal:SYMBolrate / 270
:ANALyze:SIGNal:MIXer:CABLeloss / 272
:ANALyze:SIGNal:MMWave:CALibrate / 273
:ANALyze:SIGNal:MMWave:CFRequency / 274
:ANALyze:SIGNal:MMWave:CONNect / 275
:ANALyze:SIGNal:MMWave:LOADdress / 276
:ANALyze:SIGNal:MMWave:MBANdwidth / 277
:ANALyze:SIGNal:PATTern:CLEar / 278
:ANALyze:SIGNal:PATTern:LOAD / 279
:ANALyze:SIGNal:PATTern:PLENgth / 280
:ANALyze:SIGNal:PATTern:SMAP / 281
:ANALyze:SIGNal:TYPE / 282
:ANALyze:VIEW / 285

243

11 Analyze Commands

The commands in the ANALyze subsystem are used to:
•

Specify whether to use a single edge or all edges in the acquisition for
horizontal measurements (:ANALyze:AEDGes command).

•

Set up clock recovery (:ANALyze:CLOCk commands).

•

Specify a waveform source's signal type:
•

The PAM4 signal type sets up a new paradigm for serial data signal analysis
with multiple data levels and edges for clock recovery (as compared to high
and low level NRZ signals).

•

The MMWave signal type supports analysis of millimeter-wave signals that
have been down-converted to IF band signals by an external smart mixer
and an LO signal from a signal generator.

•

Support MMWave millimeter-wave signal analysis.

•

Specify whether to use the data on screen or the entire acquisition for
measurements, functions, and analysis (:ANALyze:VIEW command).

The :ANALyze:CLOCk commands are available when the High Speed Serial
Software or the Jitter Analysis Software is installed.
Sources for
Analyze
Commands

Some :ANALyze commands let you specify the source(s) using a 
parameter:
 ::= {CHANnel | DIFF | COMMonmode | WMEMory
| FUNCtion | EQUalized}

where:

244

CHANnel

 is an integer, 1-4 in a single oscilloscope, 1-40 in a MultiScope
system.

DIFF,
COMMonmode

 is an integer, 1-2.  is an integer, 3-4.

WMEMory

 is an integer, 1-4.

FUNCtion

 is an integer, 1-16.

EQUalized

The EQUalized source is available only if the oscilloscope has the High
Speed Serial option and the Serial Data Equalization option installed and
the features are enabled. This command uses the linearly equalized
(FFE/CTLE) signal as the source.

The DIFF and COMMonmode sources are just aliases that can be used in
place of the channel names to apply to differential or common mode
signals. These are just aliases - no state change occurs if you refer to a
differential channel and you are not in differential mode. DIFF1 refers to
the differential signal between channels 1 and 3 (and COMMonmode3
refers to the common mode channel between these same channels). DIFF2
refers to the differential signal between channels 2 and 4 (and
COMMonmode4 refers to the common mode channel between these same
channels).

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

11

:ANALyze:AEDGes
Command

:ANALyze:AEDGes {{0 | OFF} | {1 | ON}}

The :ANALyze:AEDGes command specifies whether a single edge or all edges in
the acquisition are used for horizontal measurements.
The :ANALyze:AEDGes command maps to the Measure All Edges control in the user
interface's Measurement Setup dialog box.
When all edges in an acquisition are used for horizontal measurements, the entire
acquisition is also used for measurements, functions, and analysis (see
:ANALyze:VIEW ALL).
Some measurements require all edges: ":MEASure:NPULses" on page 854,
":MEASure:PPULses" on page 885, ":MEASure:ETOedge" on page 787,
":MEASure:HOLDtime" on page 818, ":MEASure:NPERiod" on page 853,
":MEASure:PHASe" on page 882, ":MEASure:SETuptime" on page 923, and EZJIT
clock and data measurements (see "E2681A EZJIT Jitter Analysis Software
Commands" on page 740). When you add one of these measurements, the
:ANALyze:AEDGes option is automatically turned ON.
Also, turning on a real-time eye (:MTESt:FOLDing ON) sets :ANALyze:AEDGes to
ON, and it cannot be disabled.
Query

:ANALyze:AEDGes?

The :ANALyze:AEDGes? query returns the value that is currently set.
Returned Format
See Also
History

[:ANALyze:AEDGes] {0 | 1}

•

":ANALyze:VIEW" on page 285

New in version 5.30. This commands replaces the now deprecated command
":MEASure:JITTer:STATistics" on page 1572.

Keysight Infiniium Oscilloscopes Programmer's Guide

245

11 Analyze Commands

:ANALyze:CLOCk
Command

NOTE

:ANALyze:CLOCk commands are available when clock recovery is used by licensed software
(like the E2688A High Speed Serial software or the N5400A/N5401A EZJIT Plus jitter analysis
software).

:ANALyze:CLOCk {{{ON|1},} | {OFF|0}}

The :ANALyze:CLOCk command turns the recovered clock display on or off and
sets the clock recovery channel source.


{CHANnel | DIFF | COMMonmode | FUNCtion | WMEMory}
For more information on  parameters, see "Sources for Analyze
Commands" on page 244.

Example

This example turns the recovered clock display on for channel 1.
myScope.WriteString ":ANALyze:CLOCk ON,CHANnel1"

Query

:ANALyze:CLOCk?

The :ANALyze :CLOCk? query returns the state of the recovered clock display.
Returned Format
Example

[:ANALyze:CLOCk] {1 | 0}

This example places the current setting of the recovered clock display in the
variable varSetting, then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk?"
varSetting = myScope.ReadNumber
Debug.Print FormatNumber(varSetting, 0)

History

246

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk" on page 1548.

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

11

:ANALyze:CLOCk:METHod
Command

NOTE

:ANALyze:CLOCk commands are available when clock recovery is used by licensed software
(like the E2688A High Speed Serial software or the N5400A/N5401A EZJIT Plus jitter analysis
software).

:ANALyze:CLOCk:METHod
{FC,{FC1063 | FC2125 | FC425}}
| {EXPlicit,,{RISing | FALLing | BOTH}[,]}
| {FIXed,{AUTO | {SEMI[,]} | }}
| {FLEXR,}
| {FLEXT,}
| {PWM}
| {CPHY[,[,]]}

The :ANALyze:CLOCk:METHod command sets the clock recovery method to:
•

FC (Fibre Channel).

•

EXPlicit (Explicit Clock).

•

FIXed (Constant Frequency).

•

FLEXR (FlexRay Receiver).

•

FLEXT (FlexRay Transmitter).

•

PWM (MIPI M-PHY PWM)

•

CPHY (MIPI C-PHY)

This command applies to the clock recovery method being set up for the waveform
source selected by the :ANALyze:CLOCk:METHod:SOURce command.
For setting phase-locked loop (PLL) clock recovery methods in terms of the
Observed Jitter Transfer Function (OJTF), see ":ANALyze:CLOCk:METHod:OJTF"
on page 259.
For setting phase-locked loop (PLL) clock recovery methods in terms of the Jitter
Transfer Function (JTF), see ":ANALyze:CLOCk:METHod:JTF" on page 256.


{CHANnel | FUNCtion | WMEMory | EQUalized}



An integer, 1-4 in a single oscilloscope, 1-40 in a MultiScope system.



An integer, 1-16.



An integer, 1-4.



A real number for the base data rate in Hertz.
When the signal type is PAM-4 (see :ANALyze:SIGNal:TYPE), a symbol rate (baud)
is specified instead of a data rate (b/s).



An integer used as the multiplication factor.

Keysight Infiniium Oscilloscopes Programmer's Guide

247

11 Analyze Commands



A real number used for the baud rate.



When the signal type is CPHY (see :ANALyze:SIGNal:TYPE), CPHY is automatically
selected as the clock recovery method, but you can use the
:ANALyze:CLOCk:METHod CPHY command to specify the nominal a symbol rate in
baud.



When the signal type is CPHY (see :ANALyze:SIGNal:TYPE), CPHY is automatically
selected as the clock recovery method, but you can use the
:ANALyze:CLOCk:METHod CPHY command to specify the time (in Unit Intervals)
used to cluster edges for clock recovery.

Example

This example sets the explicit clock recovery method on channel 1, rising edge,
with a multiplier of 2.
myScope.WriteString ":ANALyze:CLOCk:METHod EXPlicit,CHANnel1,RISing,2"

Query

:ANALyze:CLOCk:METHod?

The :ANALyze:CLOCk:METHod? query returns the state of the clock recovery
method.

NOTE

Returned Format

Example

You can use the :ANALyze:CLOCk:METHod? query when phase-locked loop (PLL) clock
recovery methods are set up. The format returned will be that of the
:ANALyze:CLOCk:METHod:OJTF? query. See ":ANALyze:CLOCk:METHod:OJTF" on
page 259.

[:ANALyze:CLOCk:METHod]
{FC,{FC1063 | FC2125 | FC425}}
| {EXPlicit,,{RISing | FALLing | BOTH},}
| {FIXed,{AUTO | {SEMI,} | }}
| {FLEXR,}
| {FLEXT,}
| {PWM}
| {CPHY,,}

This example places the current setting of the clock recovery method in the
variable strSetting, then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:METHod?"
strSetting = myScope.ReadString
Debug.Print strSetting

See Also

248

•

":ANALyze:CLOCk:METHod:SOURce" on page 264

•

":ANALyze:CLOCk:METHod:OJTF" on page 259

•

":ANALyze:CLOCk:METHod:JTF" on page 256

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 252

•

":ANALyze:CLOCk:METHod:ALIGn" on page 250

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

History

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 262

•

":ANALyze:CLOCk:METHod:EDGE" on page 253

•

":ANALyze:SIGNal:TYPE" on page 282

11

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod" on page 1549.
Version 5.50: When the signal type is PAM-4, a symbol rate (baud) is specified
instead of a data rate (b/s).
Version 5.60: Added the PWM and CPHY methods.

Keysight Infiniium Oscilloscopes Programmer's Guide

249

11 Analyze Commands

:ANALyze:CLOCk:METHod:ALIGn
Command

NOTE

:ANALyze:CLOCk commands are available when clock recovery is used by licensed software
(like the E2688A High Speed Serial software or the N5400A/N5401A EZJIT Plus jitter analysis
software).

:ANALyze:CLOCk:METHod:ALIGn {CENTer | EDGE}

When using an explicit method of clock recovery, the
:ANALyze:CLOCk:METHod:ALIGn command specifies how the clock is aligned with
data:
•

CENTer — Clock edges are aligned with the center of data.

•

EDGE — Clock edges are aligned with data edges. In this case, Time Interval
Error (TIE) is measured directly from the data edge to the clock edge.

This command applies to the clock recovery method being set up for the waveform
source selected by the :ANALyze:CLOCk:METHod:SOURce command.
Example

When using an explicit method of clock recovery, this example specifies that clock
edges are aligned with the center of data.
myScope.WriteString ":ANALyze:CLOCk:METHod:ALIGn CENTer"

Query

:ANALyze:CLOCK:METHod:ALIGn?

The :ANALyze:CLOCk:METHod:ALIGn? query returns the clock recovery method's
edge alignment setting.
Returned Format
Example

[:ANALyze:CLOCk:METHod:ALIGn] {CENT | EDGE}

This example places the current edge alignment setting of the clock recovery
method in the variable strSetting, then prints the contents of the variable to the
computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:METHod:ALIGn?"
strSetting = myScope.ReadString
Debug.Print strSetting

See Also

250

•

":ANALyze:CLOCk:METHod:SOURce" on page 264

•

":ANALyze:CLOCk:METHod" on page 247

•

":ANALyze:CLOCk:METHod:OJTF" on page 259

•

":ANALyze:CLOCk:METHod:JTF" on page 256

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 252

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 262

•

":ANALyze:CLOCk:METHod:EDGE" on page 253

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

History

11

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:ALIGn" on page 1553.

Keysight Infiniium Oscilloscopes Programmer's Guide

251

11 Analyze Commands

:ANALyze:CLOCk:METHod:DEEMphasis
Command

NOTE

:ANALyze:CLOCk commands are available when clock recovery is used by licensed software
(like the E2688A High Speed Serial software or the N5400A/N5401A EZJIT Plus jitter analysis
software).

:ANALyze:CLOCk:METHod:DEEMphasis {OFF | ON}

The :ANALyze:CLOCk:METHod:DEEMphasis command turns de-emphasis on or
off.
This command applies to the clock recovery method being set up for the waveform
source selected by the :ANALyze:CLOCk:METHod:SOURce command.
See the help system for more information on de-emphasis.
Example

This example enables de-emphasis.
myScope.WriteString ":ANALyze:CLOCk:METHod:DEEMphasis ON"

Query

:ANALyze:CLOCk:METHod:DEEMphasis?

The :ANALyze:CLOCk:METHod:DEEMphasis? query returns whether or not
de-emphasis is turned on.
Returned Format
Example

[:ANALyze:CLOCk:METHod:DEEMphasis] {OFF | ON}

This example places the current setting of the de-emphasis mode in the string
variable strDeemph, then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:METHod:DEEMphasis?"
strDeemph = myScope.ReadString
Debug.Print strDeemph

See Also

History

252

•

":ANALyze:CLOCk:METHod:SOURce" on page 264

•

":ANALyze:CLOCk:METHod" on page 247

•

":ANALyze:CLOCk:METHod:OJTF" on page 259

•

":ANALyze:CLOCk:METHod:JTF" on page 256

•

":ANALyze:CLOCk:METHod:ALIGn" on page 250

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 262

•

":ANALyze:CLOCk:METHod:EDGE" on page 253

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:DEEMphasis" on page 1555.

Keysight Infiniium Oscilloscopes Programmer's Guide

11

Analyze Commands

:ANALyze:CLOCk:METHod:EDGE
Command

NOTE

:ANALyze:CLOCk commands are available when clock recovery is used by licensed software
(like the E2688A High Speed Serial software or the N5400A/N5401A EZJIT Plus jitter analysis
software).

:ANALyze:CLOCk:METHod:EDGE {RISing | FALLing | BOTH}

The :ANALyze:CLOCk:METHod:EDGE command specifies which edge(s) of the
data are used to recover a clock. (In the front panel GUI, this control appears in the
Advanced Clock Recovery dialog box.) Normally, both edges are used. However, if
you are performing clock recovery on a low duty cycle clock signal, for example,
you may want to use just the rising or falling edge.
This command applies to the clock recovery method being set up for the waveform
source selected by the :ANALyze:CLOCk:METHod:SOURce command.
This command applies to the following clock recovery methods:
•

FIXed (Constant Frequency).

•

FOPLL (First Order PLL).

•

SOPLL (Second Order PLL).

•

EXPlicit (Explicit Clock).

•

EXPFOPLL (Explicit First Order PLL).

•

EXPSOPLL (Explicit Second Order PLL).

•

EQFOPLL (Equalized First Order PLL).

•

EQSOPLL (Equalized Second Order PLL).

To measure jitter on only rising (or falling) edges of a clock, you must also set
:ANALyze:RJDJ:EDGE to the same RISing or FALLing option, and you must set
:ANALyze:RJDJ:CLOCk ON to force the pattern to be a clock and set the jitter for
edges not examined to zero (0).
Example

This example specifies that both rising and falling edges of the data are used to
recover a clock.
myScope.WriteString ":ANALyze:CLOCk:METHod:EDGE BOTH"

Query

:ANALyze:CLOCK:METHod:EDGE?

The :ANALyze:CLOCk:METHod:EDGE? query returns the clock recovery method's
edge setting.
Returned Format
Example

[:ANALyze:CLOCk:METHod:EDGE] {RIS | FALL | BOTH}

This example places the current edge setting of the clock recovery method in the
variable strSetting, then prints the contents of the variable to the computer's
screen.

Keysight Infiniium Oscilloscopes Programmer's Guide

253

11 Analyze Commands

myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:METHod:EDGE?"
strSetting = myScope.ReadString
Debug.Print strSetting

See Also

History

254

•

":ANALyze:CLOCk:METHod:SOURce" on page 264

•

":ANALyze:CLOCk:METHod" on page 247

•

":ANALyze:CLOCk:METHod:OJTF" on page 259

•

":ANALyze:CLOCk:METHod:JTF" on page 256

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 252

•

":ANALyze:CLOCk:METHod:ALIGn" on page 250

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 262

•

":MEASure:RJDJ:EDGE" on page 905

•

":MEASure:RJDJ:CLOCk" on page 904

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:EDGE" on page 1556.

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

11

:ANALyze:CLOCk:METHod:IDLe
Command

:ANALyze:CLOCk:METHod:IDLe <#_idle_clocks>

The :ANALyze:CLOCk:METHod:IDLe command lets you specify the number of
additional clocks output by the clock recovery PLL for situations where valid data
can occur during electrical idles.
<#_idle_clocks>
Query

Number of PLL idle clocks from 6 to 1000 in NR1 format.
:ANALyze:CLOCk:METHod:IDLe?

The :ANALyze:CLOCk:METHod:IDLe? query returns the number of PLL idle clocks
setting.
Returned Format
See Also

History

<#_idle_clocks>

•

":ANALyze:CLOCk:METHod" on page 247

•

":ANALyze:CLOCk:METHod:ALIGn" on page 250

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 252

•

":ANALyze:CLOCk:METHod:EDGE" on page 253

•

":ANALyze:CLOCk:METHod:JTF" on page 256

•

":ANALyze:CLOCk:METHod:OJTF" on page 259

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 262

•

":ANALyze:CLOCk:METHod:SKEW" on page 263

•

":ANALyze:CLOCk:METHod:SOURce" on page 264

New in version 6.20.

Keysight Infiniium Oscilloscopes Programmer's Guide

255

11 Analyze Commands

:ANALyze:CLOCk:METHod:JTF
Command

NOTE

:ANALyze:CLOCk commands are available when clock recovery is used by licensed software
(like the E2688A High Speed Serial software or the N5400A/N5401A EZJIT Plus jitter analysis
software).

:ANALyze:CLOCk:METHod:JTF
{FOPLL,,}
| {EQFOPLL,,}
| {SOPLL,,, }
| {EQSOPLL,,, }
| {EXPFOPLL,,{RISing | FALLing | BOTH},
,,}
| {EXPSOPLL,,{RISing | FALLing | BOTH},
,,,}

The :ANALyze:CLOCk:METHod:JTF command specifies the clock recovery PLL's
response in terms of the Jitter Transfer Function's (JTF) 3 dB bandwidth.
This command applies to the clock recovery method being set up for the waveform
source selected by the :ANALyze:CLOCk:METHod:SOURce command.
You can set these types of PLL clock recovery methods:
•

FOPLL (First Order PLL).

•

SOPLL (Second Order PLL).

•

EQFOPLL (Equalized First Order PLL).

•

EQSOPLL (Equalized Second Order PLL).

•

EXPFOPLL (Explicit First Order PLL).

•

EXPSOPLL (Explicit Second Order PLL).

The EQUalized clock recovery methods are only available if the oscilloscope has
the High Speed Serial option and the Serial Data Equalization option installed and
the features are enabled.
For setting phase-locked loop (PLL) clock recovery methods in terms of the
Observed Jitter Transfer Function (OJTF), see ":ANALyze:CLOCk:METHod:OJTF"
on page 259.
For setting other clock recovery methods, see ":ANALyze:CLOCk:METHod" on
page 247.


256

{CHANnel | FUNCtion | WMEMory | EQUalized}



An integer, 1-4 in a single oscilloscope, 1-40 in a MultiScope system.



An integer, 1-16.



An integer, 1-4.

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands



11

A real number for the base data rate in bits per second.
When the signal type is PAM-4 (see :ANALyze:SIGNal:TYPE), a symbol rate (baud)
is specified instead of a data rate (b/s).



The peaking value in dB.



A real number for the cutoff frequency for the PLL to track.



An integer used as the multiplication factor.



A real number used for the clock frequency of the PLL.

Example

This example sets the clock recovery method to Second Order PLL, a nominal data
rate of 4 Gb/s, and a peaking value of 1.25 dB.
myScope.WriteString ":ANALyze:CLOCk:METHod:JTF SOPLL,4E9,3.822E6,1.25"

Query

:ANALyze:CLOCk:METHod:JTF?

The :ANALyze:CLOCk:METHod:JTF? query returns the state of the clock recovery
method.
Returned Format

Example

[:ANALyze:CLOCk:METHod:JTF]
{FOPLL,,}
| {EQFOPLL,,}
| {SOPLL,,,}
| {EQSOPLL,,,}
| {EXPFOPLL ,{RISing | FALLing | BOTH},
,,}
| {EXPSOPLL ,{RISing | FALLing | BOTH},
,,,}

This example places the current setting of the clock recovery method in the
variable strSetting, then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:METHod:JTF?"
strSetting = myScope.ReadString
Debug.Print strSetting

See Also

•

":ANALyze:CLOCk:METHod:SOURce" on page 264

•

":ANALyze:CLOCk:METHod" on page 247

•

":ANALyze:CLOCk:METHod:OJTF" on page 259

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 252

•

":ANALyze:CLOCk:METHod:ALIGn" on page 250

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 262

•

":ANALyze:CLOCk:METHod:EDGE" on page 253

•

":ANALyze:SIGNal:TYPE" on page 282

Keysight Infiniium Oscilloscopes Programmer's Guide

257

11 Analyze Commands

History

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:JTF" on page 1558.
Version 5.50: When the signal type is PAM-4, a symbol rate (baud) is specified
instead of a data rate (b/s).

258

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

11

:ANALyze:CLOCk:METHod:OJTF
Command

NOTE

:ANALyze:CLOCk commands are available when clock recovery is used by licensed software
(like the E2688A High Speed Serial software or the N5400A/N5401A EZJIT Plus jitter analysis
software).

:ANALyze:CLOCk:METHod:OJTF
{FOPLL,,}
| {EQFOPLL,,}
| {SOPLL,,, }
| {EQSOPLL,,, }
| {TOPLL,,,,
[,]}
| {EQTOPLL,,,,
[,]}
| {EXPFOPLL,,{RISing | FALLing | BOTH},
,,}
| {EXPSOPLL,,{RISing | FALLing | BOTH},
,,,}
| {EXPTOPLL,,{RISing | FALLing | BOTH},
,,,,
}

The :ANALyze:CLOCk:METHod:OJTF command specifies the clock recovery PLL's
response in terms of the Observed Jitter Transfer Function's (OJTF) 3 dB
bandwidth.
This command applies to the clock recovery method being set up for the waveform
source selected by the :ANALyze:CLOCk:METHod:SOURce command.
You can set these types of PLL clock recovery methods:
•

FOPLL (First Order PLL).

•

SOPLL (Second Order PLL).

•

TOPLL (Third Order PLL).

•

EQFOPLL (Equalized First Order PLL).

•

EQSOPLL (Equalized Second Order PLL).

•

EQTOPLL (Equalized Third Order PLL).

•

EXPFOPLL (Explicit First Order PLL).

•

EXPSOPLL (Explicit Second Order PLL).

•

EXPSOPLL (Explicit Third Order PLL).

The EQUalized clock recovery methods are only available if the oscilloscope has
the High Speed Serial option and the Serial Data Equalization option installed and
the features are enabled.
For setting phase-locked loop (PLL) clock recovery methods in terms of the Jitter
Transfer Function (JTF), see ":ANALyze:CLOCk:METHod:JTF" on page 256.

Keysight Infiniium Oscilloscopes Programmer's Guide

259

11 Analyze Commands

For setting other clock recovery methods, see ":ANALyze:CLOCk:METHod" on
page 247.


{CHANnel | FUNCtion | WMEMory | EQUalized}



An integer, 1-4 in a single oscilloscope, 1-40 in a MultiScope system.



An integer, 1-16.



An integer, 1-4.



A real number for the base data rate in bits per second.
When the signal type is PAM-4 (see :ANALyze:SIGNal:TYPE), a symbol rate (baud)
is specified instead of a data rate (b/s).




A real number for the damping factor of the PLL.
A real number for the cutoff frequency for the PLL to track.



A real number for the natural frequency of the PLL.



A real number for the pole frequency of the PLL.



A real number for the PLL settling time.



An integer used as the multiplication factor.



A real number used for the clock frequency of the PLL.

Example

This example sets the clock recovery method to Second Order PLL, a nominal data
rate of 4 Gb/s, and a damping factor of 1.0.
myScope.WriteString ":ANALyze:CLOCk:METHod:OJTF SOPLL,4E9,2.4E6,1.0"

Query

:ANALyze:CLOCk:METHod:OJTF?

The :ANALyze:CLOCk:METHod:OJTF? query returns the state of the clock recovery
method.
Returned Format

260

[:ANALyze:CLOCk:METHod:OJTF]
{FOPLL,,}
| {EQFOPLL,,}
| {SOPLL,,,}
| {EQSOPLL,,,}
| {TOPLL,,,,
[,]}
| {EQTOPLL,,,,
[,]}
| {EXPFOPLL ,{RISing | FALLing | BOTH},
,,}
| {EXPSOPLL ,{RISing | FALLing | BOTH},
,,,}
| {EXPTOPLL,,{RISing | FALLing | BOTH},

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

11

,,,,
}

Example

This example places the current setting of the clock recovery method in the
variable strSetting, then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:METHod:OJTF?"
strSetting = myScope.ReadString
Debug.Print strSetting

See Also

History

•

":ANALyze:CLOCk:METHod:SOURce" on page 264

•

":ANALyze:CLOCk:METHod" on page 247

•

":ANALyze:CLOCk:METHod:JTF" on page 256

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 252

•

":ANALyze:CLOCk:METHod:ALIGn" on page 250

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 262

•

":ANALyze:CLOCk:METHod:EDGE" on page 253

•

":ANALyze:SIGNal:TYPE" on page 282

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:OJTF" on page 1560.
Version 5.50: When the signal type is PAM-4, a symbol rate (baud) is specified
instead of a data rate (b/s).

Keysight Infiniium Oscilloscopes Programmer's Guide

261

11 Analyze Commands

:ANALyze:CLOCk:METHod:PLLTrack
Command

NOTE

:ANALyze:CLOCk commands are available when clock recovery is used by licensed software
(like the E2688A High Speed Serial software or the N5400A/N5401A EZJIT Plus jitter analysis
software).

:ANALyze:CLOCk:METHod:PLLTrack {OFF | ON}

The :ANALyze:CLOCk:METHod:PLLTrack command turns transition density
dependence on or off. See the help system for more information on the Transition
Density Dependent setting.
This command applies to the clock recovery method being set up for the waveform
source selected by the :ANALyze:CLOCk:METHod:SOURce command.
Example

This example enables the Transition Density Dependent setting.
myScope.WriteString ":MEASure:CLOCk:METHod:PLLTrack ON"

Query

:ANALyze:CLOCk:METHod:PLLTrack?

The :ANALyze:CLOCk:METHod:PLLTrack? query returns whether or not the
Transition Density Dependent setting is turned on.
Returned Format
Example

[:ANALyze:CLOCk:METHod:PLLTrack] {OFF | ON}

This example places the current setting of the Transition Density Dependent
setting in the string variable strTDD, then prints the contents of the variable to the
computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:METHod:PLLTrack?"
strTDD = myScope.ReadString
Debug.Print strTDD

See Also

History

262

•

":ANALyze:CLOCk:METHod:SOURce" on page 264

•

":ANALyze:CLOCk:METHod" on page 247

•

":ANALyze:CLOCk:METHod:OJTF" on page 259

•

":ANALyze:CLOCk:METHod:JTF" on page 256

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 252

•

":ANALyze:CLOCk:METHod:ALIGn" on page 250

•

":ANALyze:CLOCk:METHod:EDGE" on page 253

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:PLLTrack" on page 1562.

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

11

:ANALyze:CLOCk:METHod:SKEW
Command

:ANALyze:CLOCk:METHod:SKEW 

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:08:04
Producer                        : Acrobat Distiller 9.5.5 (Windows)
Creator Tool                    : FrameMaker 8.0
Modify Date                     : 2018:04:25 16:48:36-06:00
Create Date                     : 2018:04:25 16:24:23Z
Metadata Date                   : 2018:04:25 16:48:36-06:00
Format                          : application/pdf
Title                           : Keysight Infiniium Oscilloscopes Programmer's Guide
Creator                         : Keysight Technologies, Inc.
Document ID                     : uuid:85c5ad7b-e5b2-4764-90af-c2d4e561a376
Instance ID                     : uuid:321c4f6b-f507-4e43-84f2-957b31433b43
Page Mode                       : UseOutlines
Page Count                      : 1782
Author                          : Keysight Technologies, Inc.
EXIF Metadata provided by EXIF.tools

Navigation menu