Keysight Infiniium Oscilloscopes Programmer's Guide Prog

User Manual: Pdf

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

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

Programmer's
Guide

Notices
© Keysight Technologies, Inc. 2007-2017

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

Ed ition
November 2017
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 41, describes
programming command changes in the latest version of oscilloscope software.
Chapter 2, “Setting Up,” starting on page 85, 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 93

•

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

•

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

•

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

•

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

•

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

•

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

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 203

•

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

•

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

•

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

•

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

•

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

•

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

Keysight Infiniium Oscilloscopes Programmer's Guide

3

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

•

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

Chapter 40, “Obsolete and Discontinued Commands,” starting on page 1497,
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 1541, describes error messages.
Chapter 42, “Sample Programs,” starting on page 1553, shows example programs
in various languages using the VISA COM, VISA, and SICL libraries.
Finally, Chapter 43, “Reference,” starting on page 1689, 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.10 / 42
What's New in Version 6.00 / 44
What's New in Version 5.75 / 48
What's New in Version 5.70 / 49
What's New in Version 5.60 / 52
What's New in Version 5.52 / 55
What's New in Version 5.51 / 56
What's New in Version 5.50 / 57
What's New in Version 5.30 / 63
What's New in Version 5.20 / 65
What's New in Version 5.10 / 67
What's New in Version 5.00 / 68
What's New in Version 4.60 / 72
What's New in Version 4.50 / 73
What's New in Version 4.30 / 74
What's New in Version 4.20 / 75
What's New in Version 4.10 / 76
What's New in Version 4.00 / 77
What's New in Version 3.50 / 78
What's New in Version 3.20 / 80
What's New in Version 3.11 / 81
What's New in Version 3.10 / 82

2 Setting Up
Step 1. Install Keysight IO Libraries Suite software / 86

Keysight Infiniium Oscilloscopes Programmer's Guide

7

Step 2. Connect and set up the oscilloscope / 87
Using the USB (Device) Interface / 87
Using the LAN Interface / 87
Step 3. Verify the oscilloscope connection / 88

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

8

Keysight Infiniium Oscilloscopes Programmer's Guide

Initializing the Interface and the Oscilloscope / 117
Autoscale / 117
Setting Up the Oscilloscope / 118
Example Program / 119
Using the DIGitize Command / 120
Receiving Information from the Oscilloscope / 122
String Variable Example / 123
Numeric Variable Example / 124
Definite-Length Block Response Data / 125
Multiple Queries / 126
Oscilloscope Status / 127

4 Sequential (Blocking) vs. Overlapped Commands
5 LAN, USB, and GPIB Interfaces
LAN Interface Connector / 132
GPIB Interface Connector / 133
Default Startup Conditions / 134
Interface Capabilities / 135
GPIB Command and Data Concepts / 136
Communicating Over the GPIB Interface / 137
Interface Select Code / 137
Oscilloscope Address / 137
Communicating Over the LAN Interface / 138
Communicating via Telnet and Sockets / 139
Telnet / 139
Sockets / 139
Bus Commands / 141
Device Clear / 141
Group Execute Trigger / 141
Interface Clear / 141

Keysight Infiniium Oscilloscopes Programmer's Guide

9

6 Message Communication and System Functions
Protocols / 144
Functional Elements / 144
Protocol Overview / 144
Protocol Operation / 145
Protocol Exceptions / 145
Suffix Multiplier / 145
Suffix Unit / 146

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

8 Remote Acquisition Synchronization
Programming Flow / 178
Setting Up the Oscilloscope / 179

10

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquiring a Waveform / 180
Retrieving Results / 181
Acquisition Synchronization / 182
Blocking Synchronization / 182
Polling Synchronization With Timeout / 182
Example: Blocking and Polling Synchronization / 183
Single Shot Device Under Test (DUT) / 192
Averaging Acquisition Synchronization / 193

9 Programming Conventions
Truncation Rule / 196
The Command Tree / 197
Command Types / 197
Tree Traversal Rules / 197
Tree Traversal Examples / 198
Infinity Representation / 200
Response Generation / 201
EOI / 202

10 Acquire Commands
:ACQuire:AVERage / 205
:ACQuire[:AVERage]:COUNt / 206
:ACQuire:BANDwidth / 207
:ACQuire:BANDwidth:FRAMe? / 209
:ACQuire:BANDwidth:TESTLIMITS? / 210
:ACQuire:COMPlete / 211
:ACQuire:COMPlete:STATe / 213
:ACQuire:HRESolution / 214
:ACQuire:INTerpolate / 215
:ACQuire:MODE / 216
:ACQuire:POINts[:ANALog] — Memory depth / 218
:ACQuire:POINts:AUTO / 220
:ACQuire:POINts:DIGital? / 221
:ACQuire:POINts:TESTLIMITS? / 222
:ACQuire:REDGe — RealEdge Channel Inputs (90000 Q-Series, Z-Series) / 223
:ACQuire:RESPonse (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 224
:ACQuire:SEGMented:AUToplay / 225
:ACQuire:SEGMented:COUNt / 226
Keysight Infiniium Oscilloscopes Programmer's Guide

11

:ACQuire:SEGMented:INDex / 227
:ACQuire:SEGMented:PLAY / 228
:ACQuire:SEGMented:PRATe / 229
:ACQuire:SEGMented:TTAGs / 230
:ACQuire:SRATe[:ANALog] — Analog Sample Rate / 231
:ACQuire:SRATe[:ANALog]:AUTO / 232
:ACQuire:SRATe:DIGital — Digital Channels Sample Rate / 233
:ACQuire:SRATe:DIGital:AUTO / 234
:ACQuire:SRATe:TESTLIMITS? / 235

11 Analyze Commands
:ANALyze:AEDGes / 239
:ANALyze:CLOCk / 240
:ANALyze:CLOCk:METHod / 241
:ANALyze:CLOCk:METHod:ALIGn / 244
:ANALyze:CLOCk:METHod:DEEMphasis / 246
:ANALyze:CLOCk:METHod:EDGE / 247
:ANALyze:CLOCk:METHod:JTF / 249
:ANALyze:CLOCk:METHod:OJTF / 252
:ANALyze:CLOCk:METHod:PLLTrack / 255
:ANALyze:CLOCk:METHod:SKEW / 256
:ANALyze:CLOCk:METHod:SOURce / 257
:ANALyze:CLOCk:VERTical / 258
:ANALyze:CLOCk:VERTical:OFFSet / 259
:ANALyze:CLOCk:VERTical:RANGe / 260
:ANALyze:SIGNal:DATarate / 261
:ANALyze:SIGNal:SYMBolrate / 263
:ANALyze:SIGNal:MIXer:CABLeloss / 265
:ANALyze:SIGNal:MMWave:CALibrate / 266
:ANALyze:SIGNal:MMWave:CFRequency / 267
:ANALyze:SIGNal:MMWave:CONNect / 268
:ANALyze:SIGNal:MMWave:LOADdress / 269
:ANALyze:SIGNal:MMWave:MBANdwidth / 270
:ANALyze:SIGNal:TYPE / 271
:ANALyze:VIEW / 273

12 Bus Commands
:BUS:B:TYPE / 276
:BUS:BIT / 278
:BUS:BITS / 279
:BUS:CLEar / 280

12

Keysight Infiniium Oscilloscopes Programmer's Guide

:BUS:CLOCk / 281
:BUS:CLOCk:SLOPe / 282
:BUS:DISPlay / 283
:BUS:LABel / 284
:BUS:READout / 285

13 Calibration Commands
:CALibrate:DATE? / 289
:CALibrate:OUTPut / 290
:CALibrate:OUTPut:AUX / 292
:CALibrate:OUTPut:AUX:RTIMe / 293
:CALibrate:OUTPut:CAL / 294
:CALibrate:SKEW / 295
:CALibrate:STATus? / 296
:CALibrate:TEMP? / 297

14 Channel Commands
:CHANnel:BWLimit (9000 Series, 9000H Series, S-Series) / 302
:CHANnel:COMMonmode / 303
:CHANnel:DIFFerential / 304
:CHANnel:DIFFerential:SKEW / 305
:CHANnel:DISPlay / 306
:CHANnel:DISPlay:AUTO / 307
:CHANnel:DISPlay:OFFSet / 309
:CHANnel:DISPlay:RANGe / 311
:CHANnel:DISPlay:SCALe / 313
:CHANnel:INPut / 315
:CHANnel:INVert / 316
:CHANnel:ISIM:APPLy / 317
:CHANnel:ISIM:BANDwidth / 318
:CHANnel:ISIM:BWLimit / 320
:CHANnel:ISIM:BWLimit:TYPE / 322
:CHANnel:ISIM:CONVolve / 323
:CHANnel:ISIM:CORRection / 324
:CHANnel:ISIM:DEConvolve / 326
:CHANnel:ISIM:DELay / 327
:CHANnel:ISIM:NORMalize / 328
:CHANnel:ISIM:PEXTraction / 329
:CHANnel:ISIM:SPAN / 331
:CHANnel:ISIM:STATe / 332
:CHANnel:LABel / 333

Keysight Infiniium Oscilloscopes Programmer's Guide

13

:CHANnel:OFFSet / 334
:CHANnel:PROBe / 335
:CHANnel:PROBe:ACCAL / 336
:CHANnel:PROBe:ATTenuation / 337
:CHANnel:PROBe:AUTozero / 338
:CHANnel:PROBe:COUPling / 339
:CHANnel:PROBe:EADapter / 340
:CHANnel:PROBe:ECOupling / 343
:CHANnel:PROBe:EXTernal / 344
:CHANnel:PROBe:EXTernal:GAIN / 345
:CHANnel:PROBe:EXTernal:OFFSet / 346
:CHANnel:PROBe:EXTernal:UNITs / 347
:CHANnel:PROBe:GAIN / 348
:CHANnel:PROBe:HEAD:ADD / 349
:CHANnel:PROBe:HEAD:DELete ALL / 350
:CHANnel:PROBe:HEAD:SELect / 351
:CHANnel:PROBe:HEAD:VTERm / 352
:CHANnel:PROBe:ID? / 353
:CHANnel:PROBe:INFO? / 354
:CHANnel:PROBe:MODE / 355
:CHANnel:PROBe:PRECprobe:BANDwidth / 356
:CHANnel:PROBe:PRECprobe:CALibration / 357
:CHANnel:PROBe:PRECprobe:DELay / 358
:CHANnel:PROBe:PRECprobe:MODE / 359
:CHANnel:PROBe:PRECprobe:ZSRC / 360
:CHANnel:PROBe:PRIMary (9000 Series, 9000H Series, S-Series) / 362
:CHANnel:PROBe:SKEW / 363
:CHANnel:PROBe:STYPe / 364
:CHANnel:RANGe / 365
:CHANnel:SCALe / 366
:CHANnel:SIMulation:AMPLitude / 367
:CHANnel:SIMulation:DATA:LENGth / 368
:CHANnel:SIMulation:DATA:ODD / 369
:CHANnel:SIMulation:DATA:PAM / 370
:CHANnel:SIMulation:DATA:RESeed / 371
:CHANnel:SIMulation:DATA:SELection / 372
:CHANnel:SIMulation:DRATe / 373
:CHANnel:SIMulation:FILTer:ISIM:ADDRess / 374
:CHANnel:SIMulation:FILTer:ISIM:PEXTraction / 375
:CHANnel:SIMulation:FILTer:SELection / 376
:CHANnel:SIMulation:FLOad:ADDRess / 377
:CHANnel:SIMulation:FLOad:LOOP / 378
14

Keysight Infiniium Oscilloscopes Programmer's Guide

:CHANnel:SIMulation:FREQuency / 379
:CHANnel:SIMulation:FUNCtion:SELection / 380
:CHANnel:SIMulation:FUNCtion:SQUare:DCYCle / 381
:CHANnel:SIMulation:FUNCtion:SQUare:FTIMe / 382
:CHANnel:SIMulation:FUNCtion:SQUare:RTIMe / 383
:CHANnel:SIMulation:JITTer / 384
:CHANnel:SIMulation:JITTer:ABUJ / 385
:CHANnel:SIMulation:JITTer:PERiodic:ENABle / 386
:CHANnel:SIMulation:JITTer:PERiodic:FREQuency / 387
:CHANnel:SIMulation:JITTer:PERiodic:MAGNitude / 388
:CHANnel:SIMulation:JITTer:PERiodic:SHAPe / 389
:CHANnel:SIMulation:JITTer:RANDom / 390
:CHANnel:SIMulation:NOISe / 391
:CHANnel:SIMulation:NOISe:BWLimit / 392
:CHANnel:SIMulation:NOISe:PERiodic:ENABle / 393
:CHANnel:SIMulation:NOISe:PERiodic:FREQuency / 394
:CHANnel:SIMulation:NOISe:PERiodic:MAGNitude / 395
:CHANnel:SIMulation:NOISe:PERiodic:SHAPe / 396
:CHANnel:SIMulation:NOISe:RANDom / 397
:CHANnel:SIMulation:OFFSet / 398
:CHANnel:SIMulation:WAVeform / 399
:CHANnel:UNITs / 400

15 Common Commands
*CLS — Clear Status / 403
*ESE — Event Status Enable / 404
*ESR? — Event Status Register / 406
*IDN? — Identification Number / 407
*LRN? — Learn / 408
*OPC — Operation Complete / 410
*OPT? — Option / 411
*PSC — Power-on Status Clear / 414
*RCL — Recall / 415
*RST — Reset / 416
*SAV — Save / 417
*SRE — Service Request Enable / 418
*STB? — Status Byte / 420
*TRG — Trigger / 422
*TST? — Test / 423
*WAI — Wait / 424

Keysight Infiniium Oscilloscopes Programmer's Guide

15

16 Digital Commands
:DIGital:DISPlay / 426
:DIGital:LABel / 427
:DIGital:SIZE / 428
:DIGital:THReshold / 429

17 Disk Commands
:DISK:CDIRectory / 432
:DISK:COPY / 433
:DISK:DELete / 434
:DISK:DIRectory? / 435
:DISK:LOAD / 436
:DISK:MDIRectory / 437
:DISK:PWD? / 438
:DISK:SAVE:COMPosite / 439
:DISK:SAVE:IMAGe / 440
:DISK:SAVE:JITTer / 441
:DISK:SAVE:LISTing / 442
:DISK:SAVE:MEASurements / 443
:DISK:SAVE:PRECprobe / 444
:DISK:SAVE:SETup / 445
:DISK:SAVE:WAVeform / 446
:DISK:SEGMented / 448

18 Display Commands
:DISPlay:BOOKmark:DELete / 451
:DISPlay:BOOKmark:SET / 452
:DISPlay:BOOKmark:VERTical? / 454
:DISPlay:BOOKmark:XPOSition / 455
:DISPlay:BOOKmark:YPOSition / 456
:DISPlay:CGRade / 457
:DISPlay:CGRade:LEVels? / 459
:DISPlay:CGRade:SCHeme / 461
:DISPlay:CONNect / 463
:DISPlay:DATA? / 464
:DISPlay:GRATicule / 465
:DISPlay:GRATicule:AREA:STATe / 466
:DISPlay:GRATicule:INTensity / 467
:DISPlay:GRATicule:NUMBer / 468
:DISPlay:GRATicule:SETGrat / 469
:DISPlay:ISIM:GCOunt / 470

16

Keysight Infiniium Oscilloscopes Programmer's Guide

:DISPlay:ISIM:SELectgraph / 471
:DISPlay:ISIM:SOURce / 472
:DISPlay:JITTer:GCOunt / 473
:DISPlay:JITTer:SELectgraph / 474
:DISPlay:JITTer:THReshold / 476
:DISPlay:LABel / 477
:DISPlay:LAYout / 478
:DISPlay:MAIN / 479
:DISPlay:NOISe:LEVel / 480
:DISPlay:PERSistence / 481
:DISPlay:PROPortion / 483
:DISPlay:PROPortion:RESults / 484
:DISPlay:PRECprobe:GCOunt / 485
:DISPlay:PRECprobe:SELectgraph / 486
:DISPlay:PRECprobe:SOURce / 487
:DISPlay:SCOLor / 488
:DISPlay:STATus:COLumn / 490
:DISPlay:STATus:ROW / 491
:DISPlay:WINDow:MAXimize / 492

19 Function Commands
:FUNCtion? / 496
:FUNCtion:ABSolute / 497
:FUNCtion:ADD / 498
:FUNCtion:ADEMod / 499
:FUNCtion:AVERage / 500
:FUNCtion:COMMonmode / 501
:FUNCtion:DELay — Delay / 502
:FUNCtion:DIFF — Differentiate / 503
:FUNCtion:DISPlay / 504
:FUNCtion:DIVide / 505
:FUNCtion:FFT:DETector:POINts / 506
:FUNCtion:FFT:DETector:TYPE / 507
:FUNCtion:FFT:FREQuency / 508
:FUNCtion:FFT:REFerence / 509
:FUNCtion:FFT:RESolution / 510
:FUNCtion:FFT:SPAN / 511
:FUNCtion:FFT:STOP / 512
:FUNCtion:FFT:TDELay / 513
:FUNCtion:FFT:VUNits / 514
:FUNCtion:FFT:WINDow / 515

Keysight Infiniium Oscilloscopes Programmer's Guide

17

:FUNCtion:FFTMagnitude / 517
:FUNCtion:FFTPhase / 518
:FUNCtion:GATing — Gating / 519
:FUNCtion:GATing:STARt — Gating window start time / 520
:FUNCtion:GATing:STOP — Gating window stop time / 521
:FUNCtion:HIGHpass / 522
:FUNCtion:HORizontal / 523
:FUNCtion:HORizontal:POSition / 524
:FUNCtion:HORizontal:RANGe / 526
:FUNCtion:INTegrate / 528
:FUNCtion:INVert / 529
:FUNCtion:LOWPass / 530
:FUNCtion:MAGNify / 531
:FUNCtion:MATLab / 532
:FUNCtion:MATLab:CONTrol / 533
:FUNCtion:MATLab:OPERator / 534
:FUNCtion:MAXimum / 535
:FUNCtion:MHIStogram / 536
:FUNCtion:MINimum / 537
:FUNCtion:MLOG / 538
:FUNCtion:MTRend / 539
:FUNCtion:MULTiply / 540
:FUNCtion:OFFSet / 541
:FUNCtion:RANGe / 542
:FUNCtion:SMOoth / 543
:FUNCtion:SQRT / 544
:FUNCtion:SQUare / 545
:FUNCtion:SUBTract / 546
:FUNCtion:VERSus / 547
:FUNCtion:VERTical / 548
:FUNCtion:VERTical:OFFSet / 549
:FUNCtion:VERTical:RANGe / 550

20 Hardcopy Commands
:HARDcopy:AREA / 552
:HARDcopy:DPRinter / 553
:HARDcopy:FACTors / 554
:HARDcopy:IMAGe / 555
:HARDcopy:PRINters? / 556

18

Keysight Infiniium Oscilloscopes Programmer's Guide

21 Histogram Commands
:HISTogram:AXIS / 559
:HISTogram:HORizontal:BINS / 560
:HISTogram:MEASurement:BINS / 561
:HISTogram:MODE / 562
:HISTogram:SCALe:SIZE / 563
:HISTogram:VERTical:BINS / 564
:HISTogram:WINDow:DEFault / 565
:HISTogram:WINDow:SOURce / 566
:HISTogram:WINDow:LLIMit / 567
:HISTogram:WINDow:RLIMit / 568
:HISTogram:WINDow:BLIMit / 569
:HISTogram:WINDow:TLIMit / 570

22 Hosted Commands
:HOSTed:CALibrate:CALibrate / 573
:HOSTed:CALibrate:CHANnel / 574
:HOSTed:CALibrate:DESKew:CHANnels / 575
:HOSTed:CALibrate:DESKew:FRAMes / 576
:HOSTed:CALibrate:DESKew:SIGNals / 577
:HOSTed:CALibrate:DESKew:ZERO / 578
:HOSTed:CALibrate:LEVel / 579
:HOSTed:CALibrate:PROMpt / 581
:HOSTed:CALibrate:STATus:CHANnels? / 582
:HOSTed:CALibrate:STATus:FRAMes? / 583
:HOSTed:CALibrate:STATus:LEVel? / 584
:HOSTed:CALibrate:STATus:SIGNals? / 585
:HOSTed:CALibrate:TREF:DETect / 586
:HOSTed:FOLLower:ACHannels? / 587
:HOSTed:FOLLower:CONFigure / 588
:HOSTed:FOLLower:CONNect / 589
:HOSTed:FOLLower:DISConnect / 590
:HOSTed:LEADer:ACHannels? / 591
:HOSTed:LEADer:CONFigure / 592
:HOSTed:LEADer:CONNect / 593
:HOSTed:LEADer:DISConnect / 594
:HOSTed:NCONnected? / 595
:HOSTed:PERiodic / 596

23 InfiniiScan (ISCan) Commands
:ISCan:DELay / 598

Keysight Infiniium Oscilloscopes Programmer's Guide

19

:ISCan:MEASurement:FAIL / 599
:ISCan:MEASurement:LLIMit / 600
:ISCan:MEASurement / 601
:ISCan:MEASurement:ULIMit / 602
:ISCan:MODE / 603
:ISCan:NONMonotonic:EDGE / 604
:ISCan:NONMonotonic:HYSTeresis / 605
:ISCan:NONMonotonic:SOURce / 606
:ISCan:RUNT:HYSTeresis / 607
:ISCan:RUNT:LLEVel / 608
:ISCan:RUNT:SOURce / 609
:ISCan:RUNT:ULEVel / 610
:ISCan:SERial:PATTern / 611
:ISCan:SERial:SOURce / 612
:ISCan:ZONE:HIDE / 613
:ISCan:ZONE:SOURce / 614
:ISCan:ZONE:MODE / 615
:ISCan:ZONE:PLACement / 616
:ISCan:ZONE:SOURce / 617
:ISCan:ZONE:STATe / 618

24 Limit Test Commands
:LTESt:ADDStats / 620
:LTESt:FAIL / 621
:LTESt:LLIMit — Lower Limit / 623
:LTESt:MEASurement / 624
:LTESt:RESults? / 625
:LTESt:RUMode:SOFailure / 626
:LTESt:TEST / 627
:LTESt:ULIMit — Upper Limit / 628

25 Lister Commands
:LISTer:DATA? / 630
:LISTer:DISPlay / 631

26 Marker Commands
:MARKer:CURSor? / 634
:MARKer:DELTa / 635
:MARKer:MEASurement:MEASurement / 636
:MARKer:MODE / 637
:MARKer:TSTArt / 638

20

Keysight Infiniium Oscilloscopes Programmer's Guide

:MARKer:TSTOp / 639
:MARKer:VSTArt / 640
:MARKer:VSTOp / 641
:MARKer:X1Position / 642
:MARKer:X2Position / 643
:MARKer:X1Y1source / 644
:MARKer:X2Y2source / 646
:MARKer:XDELta? / 648
:MARKer:Y1Position / 649
:MARKer:Y2Position / 650
:MARKer:YDELta? / 651

27 Mask Test Commands
:MTESt:ALIGn / 655
:MTESt:AlignFIT / 656
:MTESt:AMASk:CREate / 658
:MTESt:AMASk:SOURce / 659
:MTESt:AMASk:SAVE / 661
:MTESt:AMASk:UNITs / 662
:MTESt:AMASk:XDELta / 663
:MTESt:AMASk:YDELta / 664
:MTESt:AUTO / 665
:MTESt:AVERage / 666
:MTESt:AVERage:COUNt / 667
:MTESt:COUNt:FAILures? / 668
:MTESt:COUNt:FUI? / 669
:MTESt:COUNt:FWAVeforms? / 670
:MTESt:COUNt:MARGin:FAILures? / 671
:MTESt:COUNt:SUI? / 672
:MTESt:COUNt:UI? / 673
:MTESt:COUNt:WAVeforms? / 674
:MTESt:DELete / 675
:MTESt:ENABle / 676
:MTESt:FOLDing (Clock Recovery software only) / 677
:MTESt:FOLDing:BITS / 679
:MTESt:FOLDing:COUNt:UI? / 681
:MTESt:FOLDing:COUNt:WAVeforms? / 683
:MTESt:FOLDing:FAST / 685
:MTESt:FOLDing:POSition / 687
:MTESt:FOLDing:SCALe / 689
:MTESt:FOLDing:TPOSition / 691

Keysight Infiniium Oscilloscopes Programmer's Guide

21

:MTESt:FOLDing:TSCale / 693
:MTESt:HAMPlitude / 695
:MTESt:IMPedance / 696
:MTESt:INVert / 697
:MTESt:LAMPlitude / 698
:MTESt:LOAD / 699
:MTESt:MARGin:AUTO:HITS / 700
:MTESt:MARGin:AUTO:HRATio / 701
:MTESt:MARGin:AUTO:METHod / 702
:MTESt:MARGin:METHod / 703
:MTESt:MARGin:PERCent / 704
:MTESt:MARGin:STATe / 705
:MTESt:NREGions? / 706
:MTESt:PROBe:IMPedance? / 707
:MTESt:RUMode / 708
:MTESt:RUMode:SOFailure / 709
:MTESt:SCALe:BIND / 710
:MTESt:SCALe:X1 / 711
:MTESt:SCALe:XDELta / 712
:MTESt:SCALe:Y1 / 713
:MTESt:SCALe:Y2 / 714
:MTESt:SOURce / 715
:MTESt:STARt / 716
:MTESt:STOP / 717
:MTESt:STIMe / 718
:MTESt:TITLe? / 719
:MTESt:TRIGger:SOURce / 720

28 Measure Commands
:MEASure:AREA / 731
:MEASure:BER / 732
:MEASure:BERPeracq / 733
:MEASure:BINTerval / 734
:MEASure:BPERiod / 735
:MEASure:BWIDth / 736
:MEASure:CDRRate / 737
:MEASure:CGRade:CROSsing / 738
:MEASure:CGRade:DCDistortion / 739
:MEASure:CGRade:EHEight / 740
:MEASure:CGRade:EWIDth / 742
:MEASure:CGRade:EWINdow / 744

22

Keysight Infiniium Oscilloscopes Programmer's Guide

:MEASure:CGRade:JITTer / 746
:MEASure:CGRade:OLEVel / 747
:MEASure:CGRade:QFACtor / 748
:MEASure:CGRade:ZLEVel / 749
:MEASure:CHARge (9000 Series, 9000H Series, S-Series) / 750
:MEASure:CLEar / 751
:MEASure:CROSsing / 752
:MEASure:CTCDutycycle / 753
:MEASure:CTCJitter / 755
:MEASure:CTCNwidth / 757
:MEASure:CTCPwidth / 758
:MEASure:DATarate / 759
:MEASure:DEEMphasis / 760
:MEASure:DELTatime / 762
:MEASure:DELTatime:DEFine / 764
:MEASure:DUTYcycle / 766
:MEASure:EDGE / 767
:MEASure:ERATio / 768
:MEASure:ETOedge / 769
:MEASure:FALLtime / 770
:MEASure:FFT:CPOWer / 772
:MEASure:FFT:DFRequency / 773
:MEASure:FFT:DMAGnitude / 774
:MEASure:FFT:FREQuency / 775
:MEASure:FFT:MAGNitude / 776
:MEASure:FFT:OBW / 777
:MEASure:FFT:PEAK1 / 778
:MEASure:FFT:PEAK2 / 779
:MEASure:FFT:PSD / 780
:MEASure:FFT:THReshold / 781
:MEASure:FREQuency / 782
:MEASure:HISTogram:FWHM / 784
:MEASure:HISTogram:HITS / 785
:MEASure:HISTogram:M1S / 786
:MEASure:HISTogram:M2S / 787
:MEASure:HISTogram:M3S / 788
:MEASure:HISTogram:MAX / 789
:MEASure:HISTogram:MEAN / 790
:MEASure:HISTogram:MEDian / 791
:MEASure:HISTogram:MIN / 792
:MEASure:HISTogram:MODE / 793
:MEASure:HISTogram:PEAK / 794
Keysight Infiniium Oscilloscopes Programmer's Guide

23

:MEASure:HISTogram:PP / 795
:MEASure:HISTogram:RESolution / 796
:MEASure:HISTogram:STDDev / 797
:MEASure:HOLDtime / 798
:MEASure:JITTer:HISTogram / 800
:MEASure:JITTer:MEASurement / 801
:MEASure:JITTer:SPECtrum / 802
:MEASure:JITTer:SPECtrum:HORizontal / 803
:MEASure:JITTer:SPECtrum:HORizontal:POSition / 804
:MEASure:JITTer:SPECtrum:HORizontal:RANGe / 805
:MEASure:JITTer:SPECtrum:VERTical / 806
:MEASure:JITTer:SPECtrum:VERTical:OFFSet / 807
:MEASure:JITTer:SPECtrum:VERTical:RANGe / 808
:MEASure:JITTer:SPECtrum:VERTical:TYPE / 809
:MEASure:JITTer:SPECtrum:WINDow / 810
:MEASure:JITTer:TRENd / 811
:MEASure:JITTer:TRENd:SMOoth / 812
:MEASure:JITTer:TRENd:SMOoth:POINts / 813
:MEASure:JITTer:TRENd:VERTical / 814
:MEASure:JITTer:TRENd:VERTical:OFFSet / 815
:MEASure:JITTer:TRENd:VERTical:RANGe / 816
:MEASure:NAME / 817
:MEASure:NCJitter / 818
:MEASure:NOISe / 820
:MEASure:NOISe:ALL? / 821
:MEASure:NOISe:BANDwidth / 823
:MEASure:NOISe:LOCation / 824
:MEASure:NOISe:METHod / 825
:MEASure:NOISe:REPort / 826
:MEASure:NOISe:RN / 827
:MEASure:NOISe:SCOPe:RN / 828
:MEASure:NOISe:STATe / 829
:MEASure:NOISe:UNITs / 830
:MEASure:NPERiod / 831
:MEASure:NPULses / 832
:MEASure:NUI / 833
:MEASure:NWIDth / 834
:MEASure:OMAMplitude / 835
:MEASure:OPOWer / 836
:MEASure:OVERshoot / 837
:MEASure:PAM:ELEVel / 838
:MEASure:PAM:ESKew / 840
24

Keysight Infiniium Oscilloscopes Programmer's Guide

:MEASure:PAM:EYE:ELMethod / 842
:MEASure:PAM:EYE:ESTiming / 843
:MEASure:PAM:EYE:PPERcent / 844
:MEASure:PAM:EYE:TIME:LTDefinition / 845
:MEASure:PAM:LEVel / 846
:MEASure:PAM:LRMS / 848
:MEASure:PAM:LTHickness / 850
:MEASure:PAMPlitude / 852
:MEASure:PBASe / 853
:MEASure:PERiod / 854
:MEASure:PHASe / 856
:MEASure:PPContrast / 858
:MEASure:PPULses / 859
:MEASure:PREShoot / 860
:MEASure:PTOP / 861
:MEASure:PWIDth / 862
:MEASure:QUALifier:CONDition / 863
:MEASure:QUALifier:SOURce / 864
:MEASure:QUALifier:STATe / 865
:MEASure:RESults? / 866
:MEASure:RISetime / 869
:MEASure:RJDJ:ALL? / 871
:MEASure:RJDJ:APLength? / 873
:MEASure:RJDJ:BANDwidth / 874
:MEASure:RJDJ:BER / 875
:MEASure:RJDJ:CLOCk / 877
:MEASure:RJDJ:EDGE / 878
:MEASure:RJDJ:INTerpolate / 879
:MEASure:RJDJ:METHod / 880
:MEASure:RJDJ:MODe / 881
:MEASure:RJDJ:PAMThreshold / 882
:MEASure:RJDJ:PLENgth / 883
:MEASure:RJDJ:REPort / 884
:MEASure:RJDJ:RJ / 885
:MEASure:RJDJ:SCOPe:RJ / 886
:MEASure:RJDJ:SOURce / 887
:MEASure:RJDJ:STATe / 888
:MEASure:RJDJ:TJRJDJ? / 889
:MEASure:RJDJ:UNITs / 891
:MEASure:SCRatch / 892
:MEASure:SENDvalid / 893
:MEASure:SER / 894
Keysight Infiniium Oscilloscopes Programmer's Guide

25

:MEASure:SERPeracq / 895
:MEASure:SETuptime / 896
:MEASure:SLEWrate / 898
:MEASure:SOURce / 899
:MEASure:STATistics / 900
:MEASure:TEDGe / 901
:MEASure:THResholds:ABSolute / 902
:MEASure:THResholds:DISPlay / 903
:MEASure:THResholds:GENauto / 904
:MEASure:THResholds:GENeral:ABSolute / 905
:MEASure:THResholds:GENeral:HYSTeresis / 907
:MEASure:THResholds:GENeral:METHod / 909
:MEASure:THResholds:GENeral:PAMCustom / 911
:MEASure:THResholds:GENeral:PAMAutomatic / 913
:MEASure:THResholds:GENeral:PERCent / 915
:MEASure:THResholds:GENeral:TOPBase:ABSolute / 917
:MEASure:THResholds:GENeral:TOPBase:METHod / 919
:MEASure:THResholds:HYSTeresis / 920
:MEASure:THResholds:METHod / 922
:MEASure:THResholds:PERCent / 923
:MEASure:THResholds:RFALl:ABSolute / 924
:MEASure:THResholds:RFALl:METHod / 926
:MEASure:THResholds:RFALl:PAMAutomatic / 928
:MEASure:THResholds:RFALl:PERCent / 930
:MEASure:THResholds:RFALl:TOPBase:ABSolute / 932
:MEASure:THResholds:RFALl:TOPBase:METHod / 934
:MEASure:THResholds:SERial:ABSolute / 935
:MEASure:THResholds:SERial:HYSTeresis / 937
:MEASure:THResholds:SERial:METHod / 939
:MEASure:THResholds:SERial:PERCent / 940
:MEASure:THResholds:SERial:TOPBase:ABSolute / 942
:MEASure:THResholds:SERial:TOPBase:METHod / 944
:MEASure:THResholds:TOPBase:ABSolute / 945
:MEASure:THResholds:TOPBase:METHod / 946
:MEASure:TIEClock2 / 947
:MEASure:TIEData2 / 949
:MEASure:TIEFilter:SHAPe / 950
:MEASure:TIEFilter:STARt / 951
:MEASure:TIEFilter:STATe / 952
:MEASure:TIEFilter:STOP / 953
:MEASure:TIEFilter:TYPE / 954
:MEASure:TMAX / 955
26

Keysight Infiniium Oscilloscopes Programmer's Guide

:MEASure:TMIN / 956
:MEASure:TVOLt / 957
:MEASure:UITouijitter / 958
:MEASure:UNITinterval / 959
:MEASure:VAMPlitude / 960
:MEASure:VAVerage / 961
:MEASure:VBASe / 962
:MEASure:VLOWer / 963
:MEASure:VMAX / 964
:MEASure:VMIDdle / 965
:MEASure:VMIN / 966
:MEASure:VOVershoot / 967
:MEASure:VPP / 968
:MEASure:VPReshoot / 969
:MEASure:VRMS / 970
:MEASure:VTIMe / 972
:MEASure:VTOP / 973
:MEASure:VUPPer / 974
:MEASure:WINDow / 975
:MEASurement:NAME / 976
:MEASurement:SOURce / 977

29 Pod Commands
:POD:DISPlay / 980
:POD:PSKew / 981
:POD:THReshold / 982

30 Root Level Commands
:ADER? — Acquisition Done Event Register / 987
:AER? — Arm Event Register / 988
:ASTate? / 989
:ATER? — Auto Trigger Event Register / 990
:AUToscale / 991
:AUToscale:CHANnels / 992
:AUToscale:PLACement / 993
:AUToscale:VERTical / 994
:BEEP / 995
:BLANk / 996
:CDISplay / 997
:DIGitize / 998
:DISable DIGital / 1000

Keysight Infiniium Oscilloscopes Programmer's Guide

27

:ENABle DIGital / 1001
:MODel? / 1002
:MTEEnable — Mask Test Enable Register / 1003
:MTERegister? — Mask Test Event Register / 1004
:OPEEnable — Operation Status Enable / 1005
:OPERegister? — Operation Status Register / 1006
:OVLRegister? / 1007
:PDER? — Processing Done Event Register / 1008
:PRINt / 1009
:RECall:SETup / 1010
:RSTate? / 1011
:RUN / 1012
:SERial — Serial Number / 1013
:SINGle / 1014
:STATus? / 1015
:STOP / 1017
:STORe:JITTer / 1018
:STORe:SETup / 1019
:STORe:WAVeform / 1020
:TERegister? — Trigger Event Register / 1021
:VIEW / 1022

31 Serial Bus Commands
General :SBUS Commands / 1024
:SBUS[:DISPlay] / 1025
:SBUS:MODE / 1026
:SBUS:CAN Commands / 1027
:SBUS:CAN:FDSPoint / 1028
:SBUS:CAN:SAMPlepoint / 1029
:SBUS:CAN:SIGNal:BAUDrate / 1030
:SBUS:CAN:SIGNal:DEFinition / 1031
:SBUS:CAN:SIGNal:FDBaudrate / 1032
:SBUS:CAN:SOURce / 1033
:SBUS:CAN:TRIGger (9000 Series, 9000H Series, S-Series) / 1034
:SBUS:CAN:TRIGger:PATTern:DATA (9000 Series, 9000H Series, S-Series) / 1037
:SBUS:CAN:TRIGger:PATTern:DATA:LENGth (9000 Series, 9000H Series,
S-Series) / 1038
:SBUS:CAN:TRIGger:PATTern:ID (9000 Series, 9000H Series, S-Series) / 1040
:SBUS:CAN:TRIGger:PATTern:ID:MODE (9000 Series, 9000H Series,
S-Series) / 1041
:SBUS:CAN:TYPE / 1042

28

Keysight Infiniium Oscilloscopes Programmer's Guide

:SBUS:FLEXray Commands / 1043
:SBUS:FLEXray:BAUDrate / 1044
:SBUS:FLEXray:CHANnel / 1045
:SBUS:FLEXray:SOURce / 1046
:SBUS:FLEXray:TRIGger / 1047
:SBUS:FLEXray:TRIGger:ERRor:TYPE / 1048
:SBUS:FLEXray:TRIGger:FRAMe:CCBase / 1049
:SBUS:FLEXray:TRIGger:FRAMe:CCRepetition / 1050
:SBUS:FLEXray:TRIGger:FRAMe:ID / 1051
:SBUS:FLEXray:TRIGger:FRAMe:TYPE / 1052
:SBUS:HS Commands / 1053
:SBUS:HS:DESCramble / 1054
:SBUS:HS:FORMat / 1055
:SBUS:HS:IDLE / 1056
:SBUS:HS:SOURce / 1057
:SBUS:IIC Commands / 1058
:SBUS:IIC:ASIZe / 1059
:SBUS:IIC:SOURce:CLOCk / 1060
:SBUS:IIC:SOURce:DATA / 1061
:SBUS:IIC:TRIGger:PATTern:ADDRess (9000 Series, 9000H Series, S-Series) / 1062
:SBUS:IIC:TRIGger:PATTern:DATA (9000 Series, 9000H Series, S-Series) / 1064
:SBUS:IIC:TRIGger:TYPE (9000 Series, 9000H Series, S-Series) / 1065
:SBUS:LIN Commands / 1067
:SBUS:LIN:SAMPlepoint / 1068
:SBUS:LIN:SIGNal:BAUDrate / 1069
:SBUS:LIN:SOURce / 1070
:SBUS:LIN:STANdard / 1071
:SBUS:LIN:TRIGger / 1072
:SBUS:LIN:TRIGger:ID / 1073
:SBUS:LIN:TRIGger:PATTern:DATA / 1074
:SBUS:LIN:TRIGger:PATTern:DATA:LENGth / 1075
:SBUS:SPI Commands / 1076
:SBUS:SPI:BITorder / 1077
:SBUS:SPI:CLOCk:SLOPe / 1078
:SBUS:SPI:CLOCk:TIMeout / 1079
:SBUS:SPI:FRAMe:STATe / 1080
:SBUS:SPI:SOURce:CLOCk / 1081
:SBUS:SPI:SOURce:DATA / 1083
:SBUS:SPI:SOURce:FRAMe / 1085
:SBUS:SPI:SOURce:MISO / 1086

Keysight Infiniium Oscilloscopes Programmer's Guide

29

:SBUS:SPI:SOURce:MOSI / 1087
:SBUS:SPI:TRIGger:PATTern:DATA (9000 Series, 9000H Series, S-Series) / 1089
:SBUS:SPI:TRIGger:PATTern:WIDTh (9000 Series, 9000H Series, S-Series) / 1091
:SBUS:SPI:TRIGger:TYPE (9000 Series, 9000H Series, S-Series) / 1093
:SBUS:SPI:TYPE / 1095
:SBUS:SPI:WIDTh / 1096

32 Self-Test Commands
:SELFtest:CANCel / 1098
:SELFtest:SCOPETEST / 1099

33 Serial Data Equalization Commands
:SPRocessing:CTLequalizer:ACGain / 1103
:SPRocessing:CTLequalizer:DCGain / 1104
:SPRocessing:CTLequalizer:DISPlay / 1105
:SPRocessing:CTLequalizer:NUMPoles / 1106
:SPRocessing:CTLequalizer:P1 / 1107
:SPRocessing:CTLequalizer:P2 / 1108
:SPRocessing:CTLequalizer:P3 / 1109
:SPRocessing:CTLequalizer:RATe / 1110
:SPRocessing:CTLequalizer:SOURce / 1111
:SPRocessing:CTLequalizer:VERTical / 1112
:SPRocessing:CTLequalizer:VERTical:OFFSet / 1113
:SPRocessing:CTLequalizer:VERTical:RANGe / 1114
:SPRocessing:CTLequalizer:Z1 / 1115
:SPRocessing:CTLequalizer:Z2 / 1116
:SPRocessing:DFEQualizer:NTAPs / 1117
:SPRocessing:DFEQualizer:SOURce / 1118
:SPRocessing:DFEQualizer:STATe / 1119
:SPRocessing:DFEQualizer:TAP / 1120
:SPRocessing:DFEQualizer:TAP:AUTomatic / 1121
:SPRocessing:DFEQualizer:TAP:DELay / 1122
:SPRocessing:DFEQualizer:TAP:GAIN / 1123
:SPRocessing:DFEQualizer:TAP:LTARget / 1124
:SPRocessing:DFEQualizer:TAP:MAX / 1125
:SPRocessing:DFEQualizer:TAP:MIN / 1126
:SPRocessing:DFEQualizer:TAP:UTARget / 1127
:SPRocessing:DFEQualizer:TAP:WIDTh / 1128
:SPRocessing:FFEQualizer:BANDwidth / 1129
:SPRocessing:FFEQualizer:BWMode / 1130
:SPRocessing:FFEQualizer:DISPlay / 1131

30

Keysight Infiniium Oscilloscopes Programmer's Guide

:SPRocessing:FFEQualizer:NPRecursor / 1132
:SPRocessing:FFEQualizer:NTAPs / 1133
:SPRocessing:FFEQualizer:RATe / 1134
:SPRocessing:FFEQualizer:SOURce / 1135
:SPRocessing:FFEQualizer:TAP / 1136
:SPRocessing:FFEQualizer:TAP:AUTomatic / 1137
:SPRocessing:FFEQualizer:TAP:DELay / 1138
:SPRocessing:FFEQualizer:TAP:PLENgth / 1139
:SPRocessing:FFEQualizer:TAP:WIDTh / 1140
:SPRocessing:FFEQualizer:TDELay / 1141
:SPRocessing:FFEQualizer:TDMode / 1142
:SPRocessing:FFEQualizer:VERTical / 1143
:SPRocessing:FFEQualizer:VERTical:OFFSet / 1144
:SPRocessing:FFEQualizer:VERTical:RANGe / 1145

34 System Commands
:SYSTem:DATE / 1148
:SYSTem:DEBug / 1149
:SYSTem:DONTtabmeas / 1151
:SYSTem:DSP / 1152
:SYSTem:ERRor? / 1153
:SYSTem:GUI / 1154
:SYSTem:HEADer / 1155
:SYSTem:HLED (90000 Q-Series, S-Series, V-Series, Z-Series) / 1156
:SYSTem:LOCK / 1157
:SYSTem:LONGform / 1158
:SYSTem:MENU? / 1159
:SYSTem:PERSona / 1160
:SYSTem:PRESet / 1161
:SYSTem:SETup / 1163
:SYSTem:TIME / 1165

35 Time Base Commands
:TIMebase:POSition / 1168
:TIMebase:RANGe / 1169
:TIMebase:REFClock / 1170
:TIMebase:REFerence / 1171
:TIMebase:REFerence:PERCent / 1172
:TIMebase:ROLL:ENABLE / 1173
:TIMebase:SCALe / 1174
:TIMebase:VIEW / 1175

Keysight Infiniium Oscilloscopes Programmer's Guide

31

:TIMebase:WINDow:DELay / 1176
:TIMebase:WINDow:POSition / 1177
:TIMebase:WINDow:RANGe / 1178
:TIMebase:WINDow:SCALe / 1179

36 Trigger Commands
General Trigger Commands / 1183
:TRIGger:AND:ENABle / 1184
:TRIGger:AND:SOURce / 1185
:TRIGger:HOLDoff / 1186
:TRIGger:HOLDoff:MAX / 1187
:TRIGger:HOLDoff:MIN / 1188
:TRIGger:HOLDoff:MODE / 1189
:TRIGger:HTHReshold / 1190
:TRIGger:HYSTeresis / 1191
:TRIGger:LEVel / 1192
:TRIGger:LEVel:FIFTy / 1193
:TRIGger:LTHReshold / 1194
:TRIGger:MODE / 1195
:TRIGger:SWEep / 1197
Comm Trigger Commands / 1198
:TRIGger:COMM:BWIDth / 1199
:TRIGger:COMM:ENCode / 1200
:TRIGger:COMM:PATTern / 1201
:TRIGger:COMM:POLarity / 1202
:TRIGger:COMM:SOURce / 1203
Delay Trigger Commands / 1204
:TRIGger:DELay:ARM:SOURce / 1205
:TRIGger:DELay:ARM:SLOPe / 1206
:TRIGger:DELay:EDELay:COUNt / 1207
:TRIGger:DELay:EDELay:SOURce / 1208
:TRIGger:DELay:EDELay:SLOPe / 1209
:TRIGger:DELay:MODE / 1210
:TRIGger:DELay:TDELay:TIME / 1211
:TRIGger:DELay:TRIGger:SOURce / 1212
:TRIGger:DELay:TRIGger:SLOPe / 1213
Edge Trigger Commands / 1214
:TRIGger:EDGE:COUPling (9000 Series, 9000H Series, S-Series) / 1215
:TRIGger:EDGE:SLOPe / 1216
:TRIGger:EDGE:SOURce / 1217

32

Keysight Infiniium Oscilloscopes Programmer's Guide

GBSerial Trigger Commands / 1218
:TRIGger:GBSerial:CLOCk (V-Series with HWST Option) / 1219
:TRIGger:GBSerial:CLOCk:FREQuency (V-Series with HWST Option) / 1220
:TRIGger:GBSerial:DRATe (V-Series with HWST Option) / 1222
:TRIGger:GBSerial:MODE (V-Series with HWST Option) / 1224
:TRIGger:GBSerial:PATTern (V-Series with HWST Option) / 1225
:TRIGger:GBSerial:POLarity (V-Series with HWST Option) / 1226
:TRIGger:GBSerial:PRBS (V-Series with HWST Option) / 1227
:TRIGger:GBSerial:SOURce (V-Series with HWST Option) / 1228
Glitch Trigger Commands / 1229
:TRIGger:GLITch:POLarity / 1230
:TRIGger:GLITch:SOURce / 1231
:TRIGger:GLITch:WIDTh / 1232
Pattern Trigger Commands / 1233
:TRIGger:PATTern:CONDition / 1234
:TRIGger:PATTern:LOGic / 1235
Pulse Width Trigger Commands / 1236
:TRIGger:PWIDth:DIRection / 1237
:TRIGger:PWIDth:POLarity / 1238
:TRIGger:PWIDth:SOURce / 1239
:TRIGger:PWIDth:TPOint / 1240
:TRIGger:PWIDth:WIDTh / 1241
Runt Trigger Commands / 1242
:TRIGger:RUNT:POLarity / 1243
:TRIGger:RUNT:QUALified / 1244
:TRIGger:RUNT:SOURce / 1245
:TRIGger:RUNT:TIME / 1246
Sequence Trigger Commands / 1247
:TRIGger:SEQuence:TERM1 (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 1248
:TRIGger:SEQuence:TERM2 (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 1249
:TRIGger:SEQuence:RESet:ENABle (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1250
:TRIGger:SEQuence:RESet:TYPE (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1251
:TRIGger:SEQuence:RESet:EVENt (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1252
:TRIGger:SEQuence:RESet:TIME (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1253

Keysight Infiniium Oscilloscopes Programmer's Guide

33

:TRIGger:SEQuence:WAIT:ENABle (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1254
:TRIGger:SEQuence:WAIT:TIME (90000A Series, 90000 X-Series, V-Series,
90000 Q-Series, Z-Series) / 1255
Setup and Hold Trigger Commands / 1256
:TRIGger:SHOLd:CSOurce / 1257
:TRIGger:SHOLd:CSOurce:EDGE / 1258
:TRIGger:SHOLd:DSOurce / 1259
:TRIGger:SHOLd:HoldTIMe (HTIMe) / 1260
:TRIGger:SHOLd:MODE / 1261
:TRIGger:SHOLd:SetupTIMe / 1262
State Trigger Commands / 1263
:TRIGger:STATe:CLOCk / 1264
:TRIGger:STATe:LOGic / 1265
:TRIGger:STATe:LTYPe / 1266
:TRIGger:STATe:SLOPe / 1267
Timeout Trigger Commands / 1268
:TRIGger:TIMeout:CONDition / 1269
:TRIGger:TIMeout:SOURce / 1270
:TRIGger:TIMeout:TIME / 1271
Transition Trigger Commands / 1272
:TRIGger:TRANsition:DIRection / 1273
:TRIGger:TRANsition:SOURce / 1274
:TRIGger:TRANsition:TIME / 1275
:TRIGger:TRANsition:TYPE / 1276
TV Trigger Commands / 1277
:TRIGger:TV:LINE / 1278
:TRIGger:TV:MODE / 1279
:TRIGger:TV:POLarity / 1280
:TRIGger:TV:SOURce / 1281
:TRIGger:TV:STANdard / 1282
:TRIGger:TV:UDTV:ENUMber / 1283
:TRIGger:TV:UDTV:HSYNc / 1284
:TRIGger:TV:UDTV:HTIMe / 1285
:TRIGger:TV:UDTV:PGTHan / 1286
:TRIGger:TV:UDTV:POLarity / 1287
Window Trigger Commands / 1288
:TRIGger:WINDow:CONDition / 1289
:TRIGger:WINDow:SOURce / 1290

34

Keysight Infiniium Oscilloscopes Programmer's Guide

:TRIGger:WINDow:TIME / 1291
:TRIGger:WINDow:TPOint / 1292
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

1293
/ 1294
/ 1295
1296
/ 1297
/ 1298
/ 1299

Ad vanced Pattern Trigger Commands / 1300
:TRIGger:ADVanced:PATTern:CONDition / 1302
:TRIGger:ADVanced:PATTern:LOGic / 1303
:TRIGger:ADVanced:PATTern:THReshold:LEVel / 1304
:TRIGger:ADVanced:PATTern:THReshold:POD / 1305
Ad vanced State Trigger Commands / 1306
:TRIGger:ADVanced:STATe:CLOCk / 1307
:TRIGger:ADVanced:STATe:LOGic / 1308
:TRIGger:ADVanced:STATe:LTYPe / 1309
:TRIGger:ADVanced:STATe:SLOPe / 1310
:TRIGger:ADVanced:STATe:THReshold:LEVel / 1311
Ad vanced Delay By Event Trigger Commands / 1312
:TRIGger:ADVanced:DELay:EDLY:ARM:SOURce / 1314
:TRIGger:ADVanced:DELay:EDLY:ARM:SLOPe / 1315
:TRIGger:ADVanced:DELay:EDLY:EVENt:DELay / 1316
:TRIGger:ADVanced:DELay:EDLY:EVENt:SOURce / 1317
:TRIGger:ADVanced:DELay:EDLY:EVENt:SLOPe / 1318
:TRIGger:ADVanced:DELay:EDLY:TRIGger:SOURce / 1319
:TRIGger:ADVanced:DELay:EDLY:TRIGger:SLOPe / 1320
Ad vanced Delay By Time Trigger Commands / 1321
:TRIGger:ADVanced:DELay:TDLY:ARM:SOURce / 1323
:TRIGger:ADVanced:DELay:TDLY:ARM:SLOPe / 1324
:TRIGger:ADVanced:DELay:TDLY:DELay / 1325
:TRIGger:ADVanced:DELay:TDLY:TRIGger:SOURce / 1326
:TRIGger:ADVanced:DELay:TDLY:TRIGger:SLOPe / 1327
Ad vanced Standard TV Trigger Commands / 1328
:TRIGger:ADVanced:TV:STV:FIELd / 1330
:TRIGger:ADVanced:TV:STV:LINE / 1331
:TRIGger:ADVanced:TV:STV:SOURce / 1332
:TRIGger:ADVanced:TV:STV:SPOLarity / 1333

Keysight Infiniium Oscilloscopes Programmer's Guide

35

Ad vanced User Defined TV Mode and Commands / 1334
:TRIGger:ADVanced:TV:UDTV:ENUMber / 1336
:TRIGger:ADVanced:TV:UDTV:PGTHan / 1337
:TRIGger:ADVanced:TV:UDTV:POLarity / 1338
:TRIGger:ADVanced:TV:UDTV:SOURce / 1339
Ad vanced Violation Trigger Modes / 1340
:TRIGger:ADVanced:VIOLation:MODE / 1341
Ad vanced Pulse Width Violation Trigger Commands / 1342
:TRIGger:ADVanced:VIOLation:PWIDth:DIRection / 1344
:TRIGger:ADVanced:VIOLation:PWIDth:POLarity / 1345
:TRIGger:ADVanced:VIOLation:PWIDth:SOURce / 1346
:TRIGger:ADVanced:VIOLation:PWIDth:WIDTh / 1347
Ad vanced Setup Violation Trigger Commands / 1348
:TRIGger:ADVanced:VIOLation:SETup:MODE / 1351
:TRIGger:ADVanced:VIOLation:SETup:SETup:CSOurce / 1352
:TRIGger:ADVanced:VIOLation:SETup:SETup:CSOurce:LEVel / 1353
:TRIGger:ADVanced:VIOLation:SETup:SETup:CSOurce:EDGE / 1354
:TRIGger:ADVanced:VIOLation:SETup:SETup:DSOurce / 1355
:TRIGger:ADVanced:VIOLation:SETup:SETup:DSOurce:HTHReshold / 1356
:TRIGger:ADVanced:VIOLation:SETup:SETup:DSOurce:LTHReshold / 1357
:TRIGger:ADVanced:VIOLation:SETup:SETup:TIME / 1358
:TRIGger:ADVanced:VIOLation:SETup:HOLD:CSOurce / 1359
:TRIGger:ADVanced:VIOLation:SETup:HOLD:CSOurce:LEVel / 1360
:TRIGger:ADVanced:VIOLation:SETup:HOLD:CSOurce:EDGE / 1361
:TRIGger:ADVanced:VIOLation:SETup:HOLD:DSOurce / 1362
:TRIGger:ADVanced:VIOLation:SETup:HOLD:DSOurce:HTHReshold / 1363
:TRIGger:ADVanced:VIOLation:SETup:HOLD:DSOurce:LTHReshold / 1364
:TRIGger:ADVanced:VIOLation:SETup:HOLD:TIME / 1365
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:CSOurce / 1366
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:CSOurce:LEVel / 1367
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:CSOurce:EDGE / 1368
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:DSOurce / 1369
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:DSOurce:HTHReshold / 1370
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:DSOurce:LTHReshold / 1371
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:SetupTIMe (STIMe) / 1372
:TRIGger:ADVanced:VIOLation:SETup:SHOLd:HoldTIMe (HTIMe) / 1373
Ad vanced Transition Violation Trigger Commands / 1374
:TRIGger:ADVanced:VIOLation:TRANsition / 1375
:TRIGger:ADVanced:VIOLation:TRANsition:SOURce / 1376
:TRIGger:ADVanced:VIOLation:TRANsition:SOURce:HTHReshold / 1377

36

Keysight Infiniium Oscilloscopes Programmer's Guide

:TRIGger:ADVanced:VIOLation:TRANsition:SOURce:LTHReshold / 1378
:TRIGger:ADVanced:VIOLation:TRANsition:TYPE / 1379

37 Waveform Commands
:WAVeform:BANDpass? / 1384
:WAVeform:BYTeorder / 1385
:WAVeform:CGRade:HEIGht? / 1386
:WAVeform:CGRade:WIDTh? / 1387
:WAVeform:COMPlete? / 1388
:WAVeform:COUNt? / 1389
:WAVeform:COUPling? / 1390
:WAVeform:DATA? / 1391
:WAVeform:FORMat / 1413
:WAVeform:POINts? / 1416
:WAVeform:PREamble? / 1417
:WAVeform:SEGMented:ALL / 1421
:WAVeform:SEGMented:COUNt? / 1422
:WAVeform:SEGMented:TTAG? / 1423
:WAVeform:SEGMented:XLISt? / 1424
:WAVeform:SOURce / 1425
:WAVeform:STReaming / 1427
:WAVeform:TYPE? / 1428
:WAVeform:VIEW / 1429
:WAVeform:XDISplay? / 1432
:WAVeform:XINCrement? / 1433
:WAVeform:XORigin? / 1434
:WAVeform:XRANge? / 1435
:WAVeform:XREFerence? / 1436
:WAVeform:XUNits? / 1437
:WAVeform:YDISplay? / 1438
:WAVeform:YINCrement? / 1439
:WAVeform:YORigin? / 1440
:WAVeform:YRANge? / 1441
:WAVeform:YREFerence? / 1442
:WAVeform:YUNits? / 1443

38 Waveform Memory Commands
:WMEMory:TIETimebase
:WMEMory:CLEar /
:WMEMory:DISPlay
:WMEMory:LOAD /

Keysight Infiniium Oscilloscopes Programmer's Guide

/ 1446
1447
/ 1448
1449

37

:WMEMory:SAVE / 1450
:WMEMory:SEGMented:COUNt? / 1451
:WMEMory:SEGMented:INDex / 1452
:WMEMory:SEGMented:PLAY / 1453
:WMEMory:XOFFset / 1454
:WMEMory:XRANge / 1455
:WMEMory:YOFFset / 1456
:WMEMory:YRANge / 1457

39 Xtalk (Crosstalk Analysis) Commands
:XTALk:ENABle / 1461
:XTALk:PAADeskew / 1463
:XTALk:PAIFilter / 1464
:XTALk:PAISi / 1465
:XTALk:PASLimit / 1466
:XTALk:PAXFilter / 1467
:XTALk:PAXSi / 1468
:XTALk:PJADeskew / 1469
:XTALk:PJIFilter / 1470
:XTALk:PJISi / 1471
:XTALk:PJSLimit / 1472
:XTALk:PJXFilter / 1473
:XTALk:PJXSi / 1474
:XTALk:RESults? / 1475
:XTALk:SAADeskew / 1477
:XTALk:SAIFilter / 1478
:XTALk:SAISi / 1479
:XTALk:SASLimit / 1480
:XTALk:SAXFilter / 1481
:XTALk:SAXSi / 1482
:XTALk:AENable / 1483
:XTALk:ENABle / 1484
:XTALk:IAGGressor / 1485
:XTALk:IVICtim / 1486
:XTALk:PAUTo / 1487
:XTALk:PLENgth / 1488
:XTALk:PTYPe / 1489
:XTALk:RIDeal / 1490
:XTALk:RISI / 1491
:XTALk:ROTHer / 1492
:XTALk:SOURce / 1493

38

Keysight Infiniium Oscilloscopes Programmer's Guide

:XTALk:STYPe / 1494

40 Obsolete and Discontinued Commands
:ANALyze:CLOCk:METHod:PAM:B03 / 1501
:ANALyze:CLOCk:METHod:PAM:B12 / 1503
:ANALyze:CLOCk:METHod:PAM:NONSymmetric / 1505
:DISPlay:COLumn / 1507
:DISPlay:LINE / 1508
:DISPlay:ROW / 1509
:DISPlay:STRing / 1510
:DISPlay:TAB / 1511
:DISPlay:TEXT / 1512
:HOSTed:CALibrate:ALIGn (MultiScope) / 1513
:MEASure:CLOCk / 1514
:MEASure:CLOCk:METHod / 1515
:MEASure:CLOCk:METHod (deprecated) / 1517
:MEASure:CLOCk:METHod:ALIGn / 1519
:MEASure:CLOCk:METHod:DEEMphasis / 1521
:MEASure:CLOCk:METHod:EDGE / 1522
:MEASure:CLOCk:METHod:JTF / 1524
:MEASure:CLOCk:METHod:OJTF / 1526
:MEASure:CLOCk:METHod:PLLTrack / 1528
:MEASure:CLOCk:METHod:SOURce / 1529
:MEASure:CLOCk:VERTical / 1530
:MEASure:CLOCk:VERTical:OFFSet / 1531
:MEASure:CLOCk:VERTical:RANGe / 1532
:MEASure:DDPWS — Data Dependent Pulse Width Shrinkage / 1533
:MEASure:JITTer:STATistics / 1535
:MEASure:TIEData / 1536
:MTESt:FOLDing:COUNt? / 1538
:SPRocessing:CTLequalizer:ZERo / 1540

41 Error Messages
Error Queue / 1542
Error Numbers / 1543
Command Error / 1544
Execution Error / 1545
Device- or Oscilloscope-Specific Error / 1546
Query Error / 1547

Keysight Infiniium Oscilloscopes Programmer's Guide

39

List of Error Messages / 1548

42 Sample Programs
VISA COM Examples / 1554
VISA COM Example in Visual Basic / 1554
VISA COM Example in C# / 1565
VISA COM Example in Visual Basic .NET / 1575
VISA COM Example in Python / 1584
VISA Examples / 1592
VISA Example in C / 1592
VISA Example in Visual Basic / 1601
VISA Example in C# / 1611
VISA Example in Visual Basic .NET / 1623
VISA Example in Python (PyVISA 1.5 and older) / 1635
VISA Example in Python (PyVISA 1.6 and newer) / 1641
SICL Examples / 1649
SICL Example in C / 1649
SICL Example in Visual Basic / 1658
SCPI.NET Examples / 1668
SCPI.NET Example in C# / 1668
SCPI.NET Example in Visual Basic .NET / 1675
SCPI.NET Example in IronPython / 1682

43 Reference
HDF5 Example / 1690
CSV and TSV Header Format / 1691
BIN Header Format / 1693
File Header / 1693
Waveform Header / 1693
Waveform Data Header / 1695
Example Program for Reading Binary Data / 1695

Index

40

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

1 What's New
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

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

42
44
48
49
52
55
56
57
63
65
67
68
72
73
74
75
76
77
78
80
81
82

41

1

What's New

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

42

Command

Description

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

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

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

Specifies which of the noise graphs to display.

:HOSTed:NCONnected? (see
page 595)

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

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

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

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

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

Configures the timing for sampling the data.

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

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

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

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

:MEASure:HISTogram:FWHM
(see page 784)

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

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

:MEASure:THResholds:DISPlay
(see page 903)

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

What's New

Changed
Commands

Obsolete
Commands

Command

Description

:ANALyze:SIGNal:TYPE (see
page 271)

CPHY has been added as a signal type.

:BUS:B:TYPE (see
page 276)

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

:CALibrate:OUTPut (see
page 290)

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

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

:DISK:SAVE:WAVeform (see
page 446)

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

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

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

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

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

None

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

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

None

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

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

None

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

Keysight Infiniium Oscilloscopes Programmer's Guide

1

43

1

What's New

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

44

Command

Description

:ACQuire:SEGMented:AUToplay
(see page 225)

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

:CALibrate:OUTPut:AUX (see
page 292)

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

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

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

:CALibrate:OUTPut:CAL (see
page 294)

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

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

Specifies the amplitude of the simulated waveform.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sets the filter type.

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

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

What's New

Command

Description

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Specifies the standard deviation of random jitter to apply.

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

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

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

Turns the noise filter on or off.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

45

1

46

What's New

Command

Description

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

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

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

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

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

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

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

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

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

Specifies the standard deviation of random noise to apply.

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

Specifies the offset of the simulated waveform.

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

Sets the simulated waveform type.

:FUNCtion:MLOG (see
page 538)

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

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

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

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

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

:SYSTem:HLED (see
page 1156)

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

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

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

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

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

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

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

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

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Changed
Commands

Discontinued
Commands

Command

Description

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

There are now Third Order PLL options.

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

There are now Third Order PLL options.

:BUS:B:TYPE (see
page 276)

Added support for new SPMI and GENRaw protocols.

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

The RMS detector type has been added.

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

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

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

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

:MTESt:SOURce (see
page 715)

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

:WAVeform:FORMat (see
page 1413)

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

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

1

47

1

What's New

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

48

Command

Description

:SPRocessing:CTLequalizer:Z1
(see page 1115)

Specifies the first zero for 3-pole CTLE.

:SPRocessing:CTLequalizer:Z2
(see page 1116)

Specifies the second zero for 3-pole CTLE.

Command

Description

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

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

You can now set J4 and J5 jitter BER levels.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

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

Description

:ACQuire:SEGMented:PRATe
(see page 229)

Specifies the segmented memory navigation play rate.

:CHANnel:INVert (see
page 316)

Enables or disables the invert setting for a channel.

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

Specifies a channel's band width limit filter response.

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

Returns a comma-separated list of probe information.

:DISPlay:PROPortion:RESults
(see page 484)

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

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

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

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

:FUNCtion:FFT:SPAN (see
page 511)

Sets the frequency span for the FFT function.

:FUNCtion:FFT:STOP (see
page 512)

Sets the stop frequency for the FFT function.

:FUNCtion:FFT:VUNits (see
page 514)

Specifies the vertical units for the FFT magnitude function.

:HOSTed:PERiodic (see
page 596)

Turns periodic drift correction on or off.

:LTESt:ADDStats (see
page 620)

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

:LTESt:RUMode:SOFailure (see
page 626)

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

:MEASure:CGRade:OLEVel (see
page 747)

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

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

49

1

50

What's New

Command

Description

:MEASure:ERATio (see
page 768)

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

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

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

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

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

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

Returns the margin failure count for a specified region.

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

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

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

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

Selects between the manual and automatic margin types.

:MTESt:MARGin:PERCent (see
page 704)

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

:MTESt:MARGin:STATe (see
page 705)

Enables or disables mask margin testing.

:XTALk Commands (see
page 1459)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Changed
Commands

Command

Description

:BUS:B:TYPE (see
page 276)

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

:DISPlay:SCOLor (see
page 488)

Added the ability to set colors for MMPolygons.

:FUNCtion:FFT:RESolution
(see page 510)

The command form now lets you set the FFT resolution.

:MARKer:MODE (see
page 637)

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

:MEASure:AREA (see
page 731)

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

1

51

1

What's New

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

52

Command

Description

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

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

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

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

:ACQuire:SEGMented:PLAY (see
page 228)

Plays (or stops) acquired segments.

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

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

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

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

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

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

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

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

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

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

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

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

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

:CHANnel:PROBe:PRIMary
(see page 362)

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

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

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

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

Keysight Infiniium Oscilloscopes Programmer's Guide

1

What's New

Changed
Commands

Command

Description

:MEASure:SER (see page 894)

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

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

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

:SBUS:CAN:FDSPoint (see
page 1028)

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

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

:SYSTem:DONTtabmeas (see
page 1151)

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

Command

Description

:ANALyze:CLOCk:METHod (see
page 241)

They CPHY and PWM methods have been added.

:ANALyze:SIGNal:TYPE (see
page 271)

MMWave has been added as a signal type.

:DISPlay:SCOLor (see
page 488)

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

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

Up to 6 user-defined controls supported.

:SBUS:CAN:TRIGger (see
page 1034)

Additional trigger condition options for CAN FD have been added.

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

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

Keysight Infiniium Oscilloscopes Programmer's Guide

53

1

What's New

Obsolete
Commands

54

Obsolete Command

Current Command Equivalent

Behavior Differences

:DISPlay:TAB (see page 1511)

None

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

:HOSTed:CALibrate:ALIGn (see
page 1513)

None

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

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

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

Command

Description

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

The  parameter is now optional.

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

The  parameter is now optional.

Keysight Infiniium Oscilloscopes Programmer's Guide

55

1

What's New

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

56

Command

Description

:BUS:B:TYPE (see
page 276)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

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

Description

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

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

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

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

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

:ANALyze:SIGNal:SYMBolrate
(see page 263)

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

:ANALyze:SIGNal:TYPE (see
page 271)

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

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

:DISPlay:ISIM:SELectgraph
(see page 471)

Inserts the specified graph at the first display graph position.

:DISPlay:ISIM:SOURce (see
page 472)

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

:DISPlay:JITTer:GCOunt (see
page 473)

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

:DISPlay:JITTer:SELectgraph
(see page 474)

Inserts the specified graph at the first display graph position.

:DISPlay:PRECprobe:GCOunt
(see page 485)

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

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

Inserts the specified graph at the first display graph position.

:DISPlay:PRECprobe:SOURce
(see page 487)

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

:DISPlay:WINDow:MAXimize
(see page 492)

Will maximize the size of the specified window.

Keysight Infiniium Oscilloscopes Programmer's Guide

57

1

58

What's New

Command

Description

:HOSTed:CALibrate:ALIGn (see
page 1513)

Lets you align acquired data in the MultiScope system.

:HOSTed:CALibrate:CALibrate
(see page 573)

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

:HOSTed:CALibrate:CHANnel
(see page 574)

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

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

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

Deskews all channels in the MultiScope system.

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

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

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

Resets MultiScope system signal skew values to zero.

:HOSTed:CALibrate:LEVel (see
page 579)

Selects the MultiScope system calibration level.

:HOSTed:CALibrate:PROMpt
(see page 581)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Command

Description

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

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

:HOSTed:LEADer:CONFigure
(see page 592)

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

:HOSTed:LEADer:CONNect (see
page 593)

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

:HOSTed:LEADer:DISConnect
(see page 594)

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

:MEASure:PAM:ELEVel (see
page 838)

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

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

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

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

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

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

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

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

Measures data time interval error.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

59

1

What's New

Command

Description

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

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

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

Returns the number of waveforms in the real time eye.

:SYSTem:GUI (see page 1154)

Disables or enables the front panel user interface. When disabled,
the Remote Operations In Progress dialog box appears on the
oscilloscope's screen.
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 1159)

Returns front panel graphical user interface menu strings.

:TRIGger:GBSerial:CLOCk (see
page 1219)

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.

60

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

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

:TRIGger:GBSerial:DRATe (see
page 1222)

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

:TRIGger:GBSerial:MODE (see
page 1224)

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

:TRIGger:GBSerial:PATTern (see
page 1225)

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

:TRIGger:GBSerial:POLarity
(see page 1226)

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

:TRIGger:GBSerial:PRBS (see
page 1227)

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

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

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Changed
Commands

Command

Description

:ANALyze:CLOCk:METHod (see
page 241)

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

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

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

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

:DISPlay:CGRade (see
page 457)

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

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

:MEASure:CGRade:EHEight
(see page 740)

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

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

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

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

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

:MEASure:RISetime (see
page 869)

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

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

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

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

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

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

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

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

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

1

61

1

What's New

Obsolete
Commands

Obsolete Command

Current Command Equivalent

Behavior Differences

:MEASure:TIEData (see
page 1536)

:MEASure:TIEData2 (see
page 949)

Clock recovery options have
been removed (clock recovery
as specified with the
:ANALyze:CLOCk:METHod is
used).
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 1538)

:MTESt:FOLDing:COUNt:UI?
(see page 681)
:MTESt:FOLDing:COUNt:WAVef
orms? (see page 683)

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.

62

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

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

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

:FUNCtion:GATing:STARt
(see page 520)

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

:FUNCtion:GATing:STOP
(see page 521)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

63

1

What's New

Obsolete
Commands

64

Obsolete Command

Current Command Equivalent

Behavior Differences

:MEASure:CLOCk (see
page 1514)

:ANALyze:CLOCk (see
page 240)

:MEASure:CLOCk:METHod (see
page 1515)

:ANALyze:CLOCk:METHod (see
page 241)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

:MEASure:CLOCk:VERTical (see
page 1530)

:ANALyze:CLOCk:VERTical (see
page 258)

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

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

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

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

:MEASure:JITTer:STATistics
(see page 1535)

:ANALyze:AEDGes (see
page 239)

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.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

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

Command

Description

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

Returns the maximum band width associated with oscilloscope
model.

:HISTogram:HORizontal:BINS
(see page 560)

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

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

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

:HISTogram:VERTical:BINS (see
page 564)

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

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

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

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

:SBUS:LIN Commands (see
page 1067)

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

:SYSTem:PERSona (see
page 1160)

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

Command

Description

:CHANnel:PROBe:EADapter
(see page 340)

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

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

:SBUS:MODE (see
page 1026)

Added the FLEXray and LIN mode options.

Keysight Infiniium Oscilloscopes Programmer's Guide

65

1

What's New

Command

Description

:SBUS:CAN:SOURce (see
page 1033)

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 1060)
:SBUS:IIC:SOURce:DATA
(see page 1061)
:SBUS:SPI:SOURce:CLOCk
(see page 1081)
:SBUS:SPI:SOURce:DATA
(see page 1083)
:SBUS:SPI:SOURce:FRAMe
(see page 1085)
:SBUS:SPI:SOURce:MISO
(see page 1086)
:SBUS:SPI:SOURce:MOSI
(see page 1087)

66

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

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

Command

Description

:MTESt:FOLDing:TPOSition (see
page 691)

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

:MTESt:FOLDing:TSCale (see
page 693)

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

Command

Description

:MEASure:CLOCk:METHod (see
page 1515)

The PCIE clock recovery method has been removed.

Keysight Infiniium Oscilloscopes Programmer's Guide

67

1

What's New

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

68

Command

Description

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

Deletes a bookmark.

:DISPlay:BOOKmark:SET
(see page 452)

Sets a bookmark.

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

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

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

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

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

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

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

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

:DISPlay:LAYout (see
page 478)

Sets the window layout.

:DISPlay:MAIN (see page 479)

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

:DISPlay:PROPortion (see
page 483)

Specifies the size of the waveform and plot areas.

:MTESt:FOLDing:COUNt (see
page 1538)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Changed
Commands

Command

Description

:MTESt:FOLDing:POSition (see
page 687)

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

:MTESt:FOLDing:SCALe (see
page 689)

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

:SBUS:HS:DESCramble
(see page 1054)

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

:SBUS:HS:FORMat (see
page 1055)

Specifies the high-speed symbol display format.

:SBUS:HS:IDLE (see
page 1056)

Specifies whether electrical idles are present in the signal.

:SBUS:HS:SOURce
(see page 1057)

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

:TIMebase:REFerence:PERCent
(see page 1172)

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

Command

Description

:BUS:B:TYPE (see
page 276)

Added support for new protocols.

:DISK:SAVE:LISTing (see
page 442)

Added the  parameter for specifying which display window
to save.

:DISPlay:CGRade (see
page 457)

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

:DISPlay:CGRade:LEVels (see
page 459)

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

:DISPlay:CONNect (see
page 463)

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

:DISPlay:GRATicule:NUMBer
(see page 468)

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

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

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

:LISTer:DATA (see page 630)

Added the  parameter for specifying which display window
to save.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

69

1

What's New

Obsolete
Commands

70

Command

Description

:MEASure:CGRade:CROSsing
(see page 738)

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

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

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

:MEASure:CGRade:EHEight
(see page 740)

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

:MEASure:CGRade:EWIDth (see
page 742)

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

:MEASure:CGRade:EWINdow
(see page 744)

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

:MEASure:CGRade:JITTer (see
page 746)

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

:MEASure:CGRade:QFACtor
(see page 748)

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

:MEASure:WINDow (see
page 975)

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

:MTESt:FOLDing (see
page 677)

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

:MTESt:FOLDing:BITS (see
page 679)

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

:MTESt:FOLDing:FAST (see
page 685)

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

:TIMebase:REFerence (see
page 1171)

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

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

:DISPlay:LINE (see
page 1508)

:DISPlay:BOOKmark:SET
(see page 452)

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

:DISPlay:ROW (see
page 1509)

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

:DISPlay:STRing (see
page 1510)

:DISPlay:BOOKmark:SET
(see page 452)

:DISPlay:TEXT (see
page 1512)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

Discontinued
Commands

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

1

71

1

What's New

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

72

Command

Description

:ASTate? (see page 989)

Returns the acquisition state.

:CHANnel:ISIM:NORMalize
(see page 328)

Lets you normalize the gain of an InfiniiSim transfer function.

:RSTate? (see page 1011)

Returns the run state.

:SBUS:CAN Commands
(see page 1027)

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

Command

Description

:SBUS:MODE (see
page 1026)

Added CAN mode option.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

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

Command

Description

:FUNCtion:ADEMod (see
page 499)

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

:MEASurement:NAME (see
page 976)

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

:MEASurement:SOURce
(see page 977)

Changes the source of an existing measurement.

:MTESt:FOLDing:FAST (see
page 685)

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

Command

Description

:DIGital:THReshold (see
page 429)

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

:DISK:SAVE:WAVeform (see
page 446)

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

:POD:THReshold (see
page 982)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

73

1

What's New

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

74

Command

Description

:FUNCtion:DELay (see
page 502)

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

:FUNCtion:GATing (see
page 519)

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

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

:MEASure:RJDJ:CLOCk (see
page 877)

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

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

Command

Description

Function Commands (see
page 493)

You can now define up to 16 functions.

Keysight Infiniium Oscilloscopes Programmer's Guide

What's New

1

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

Command

Description

:DISPlay:CGRade:SCHeme (see
page 461)

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

:FUNCtion:FFT:TDELay (see
page 513)

Sets the time delay for the FFT phase function.

:MEASure:CHARge (see
page 750)

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

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

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

Turns the Transition Density Dependent setting on or off.

Command

Description

:MEASure:CLOCk:METHod (see
page 1515)

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

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

Keysight Infiniium Oscilloscopes Programmer's Guide

75

1

What's New

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

76

Command

Description

:MEASure:NOISe:METHod (see
page 825)

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

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

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

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

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

Command

Description

:MEASure:NOISe:ALL (see
page 821)

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

:MEASure:RJDJ:ALL (see
page 871)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

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

Command

Description

:ACQuire:REDGe (see
page 223)

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

Saves PrecisionProbe/Cable data to a file.

:ISCan:ZONE:HIDE (see
page 613)

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

Command

Description

:ACQuire:BANDwidth (see
page 207)

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

:MTESt:FOLDing:BITS (see
page 679)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

77

1

What's New

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

78

Command

Description

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

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

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

Sets the termination voltage for the N5444A probe head.

:CHANnel:PROBe:MODE
(see page 355)

Sets the N2750A probe's InfiniiMode configuration.

:FUNCtion:MTRend (see
page 539)

New Meas Trend math function.

:FUNCtion:MHIStogram
(see page 536)

New Meas Histogram math function.

:LISTer Commands (see
page 629)

For displaying and retrieving data from the serial decode listings.

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

The bin width value of one bar in the histogram.

:MEASure:NOISe (see
page 820)

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

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

:MEASure:NOISe:BANDwidth
(see page 823)

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

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

Specifies a known amount of random noise.

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

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

:MEASure:NOISe:STATe (see
page 829)

Enables or disables the NOISe measurements.

:MEASure:NOISe:UNITs (see
page 830)

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

:MEASure:RJDJ:RJ (see
page 885)

Specifies a known amount of random jitter.

Keysight Infiniium Oscilloscopes Programmer's Guide

1

What's New

Changed
Commands

Command

Description

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

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

:SBUS Commands (see
page 1023)

For setting up IIC and SPI serial decode and triggering.

Command

Description

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

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

:MEASure:HISTogram:HITS
(see page 785)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:M1S (see
page 786)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:M2S (see
page 787)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:M3S (see
page 788)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MAX (see
page 789)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MEAN
(see page 790)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MEDian
(see page 791)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MIN (see
page 792)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:MODE
(see page 793)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:PEAK
(see page 794)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:PP (see
page 795)

Can now use this command with Meas Histogram math functions.

:MEASure:HISTogram:STDDev
(see page 797)

Can now use this command with Meas Histogram math functions.

:MEASure:RJDJ:ALL (see
page 871)

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

:TRIGger:MODE (see
page 1195)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

79

1

What's New

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

80

Command

Description

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

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

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

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

What's New

1

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

Command

Description

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

Selects a channel's InfiniiSim port extraction.

:MEASure:HISTogram:MODE
(see page 793)

Returns the measurement histogram's Mode value.

Command

Description

:BUS:B:TYPE (see
page 276)

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

:FUNCtion:FFT:WINDow
(see page 515)

The HAMMing window mode is now a valid selection.

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

The HAMMing window mode is now a valid selection.

Keysight Infiniium Oscilloscopes Programmer's Guide

81

1

What's New

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

82

Command

Description

:ACQuire:BANDwidth (see
page 207)

Changes the band width frequency control for the acquisition
system.

:CHANnel:PROBe:ACCal
(see page 336)

Sets the type of AC response probe calibration to use.

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

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

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

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

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

Selects between PrecisionProbe or PrecisionCable AC response
probe calibration.

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

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

:DISPlay:STATus:COL (see
page 490)

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

:DISPlay:STATus:ROW (see
page 491)

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

:MEASure:DDPWS (see
page 1533)

For measuring Data Dependent Pulse Width Shrinkage.

:MEASure:EDGE (see
page 767)

For measuring the edge time relative to the reference location.

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

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

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

Returns the determined RjDj pattern length.

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

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

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

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

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

What's New

Command

Description

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Keysight Infiniium Oscilloscopes Programmer's Guide

1

83

1

What's New

Changed
Commands

84

Command

Description

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

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

:SPRocessing:CTLequalizer:P3
(see page 1109)

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

Command

Description

:ACQuire:INTerpolate (see
page 215)

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

You can now set J2 and J9 jitter BER levels.

:MEASure:VRMS (see
page 970)

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

:MEASure:WINDow (see
page 975)

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

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

2 Setting Up
Step 1. Install Keysight IO Libraries Suite software / 86
Step 2. Connect and set up the oscilloscope / 87
Step 3. Verify the oscilloscope connection / 88

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.

85

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.

86

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

87

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.

88

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

89

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.

90

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

91

2

92

Setting Up

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

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

93

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.

94

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

Keysight Infiniium Oscilloscopes Programmer's Guide

95

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:

96

•

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

97

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.

98

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

99

3

Introduction to Programming

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

100

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

101

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:

102

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

103

3

Introduction to Programming

Header Types
There are three types of headers:

See Also

•

"Simple Command Header" on page 104

•

"Compound Command Header" on page 104

•

"Common Command Header" on page 105

•

"Combining Commands in the Same Subsystem" on page 105

•

"Duplicate Mnemonics" on page 105

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"

104

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

105

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.

106

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

Keysight Infiniium Oscilloscopes Programmer's Guide

107

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.

108

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

109

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.

110

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

111

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.

112

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

113

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 721 describes getting measurement data from the oscilloscope.

114

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

115

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

116

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 401.
Refer to the Keysight IO Libraries Suite documentation for information on initializing the
interface.

See Also

•

"Autoscale" on page 117

•

"Setting Up the Oscilloscope" on page 118

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

117

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.

118

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

119

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

120

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

121

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.

122

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

123

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

124

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

125

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"

126

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 147 explains
how to check the status of the oscilloscope.

Keysight Infiniium Oscilloscopes Programmer's Guide

127

3

128

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

129

4

Sequential (Blocking) vs. Overlapped Commands

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

130

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 410

•

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

•

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

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

5 LAN, USB, and GPIB
Interfaces
LAN Interface Connector / 132
GPIB Interface Connector / 133
Default Startup Conditions / 134
Interface Capabilities / 135
GPIB Command and Data Concepts / 136
Communicating Over the GPIB Interface / 137
Communicating Over the LAN Interface / 138
Communicating via Telnet and Sockets / 139
Bus Commands / 141

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.

131

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.

132

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

133

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.

134

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

135

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.

136

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 137

•

"Oscilloscope Address" on page 137

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

137

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 );
}
}

138

Keysight Infiniium Oscilloscopes Programmer's Guide

5

LAN, USB, and GPIB Interfaces

Communicating via Telnet and Sockets
•

"Telnet" on page 139

•

"Sockets" on page 139

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

139

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);
}

140

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

141

5

142

LAN, USB, and GPIB Interfaces

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

6 Message Communication and
System Functions
Protocols / 144

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.

143

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 144

•

"Protocol Overview" on page 144

•

"Protocol Operation" on page 145

•

"Protocol Exceptions" on page 145

•

"Suffix Multiplier" on page 145

•

"Suffix Unit" on page 146

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

144

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

145

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

146



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 / 150
Status Byte Register / 152
Service Request Enable Register / 154
Message Event Register / 155
Trigger Event Register / 156
Standard Event Status Register / 157
Standard Event Status Enable Register / 158
Operation Status Register / 159
Operation Status Enable Register / 160
Mask Test Event Register / 161
Mask Test Event Enable Register / 162
Acquisition Done Event Register / 163
Process Done Event Register / 164
Trigger Armed Event Register / 165
Auto Trigger Event Register / 166
Error Queue / 1542
Output Queue / 168
Message Queue / 169
Clearing Registers and Queues / 170
Example: Checking for Armed Status / 172

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.

147

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

148

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

149

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

150

Keysight Infiniium Oscilloscopes Programmer's Guide

Status Reporting

7

Figure 3 Status Reporting Data Structures (Continued)

Keysight Infiniium Oscilloscopes Programmer's Guide

151

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)

152

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 172

Keysight Infiniium Oscilloscopes Programmer's Guide

153

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:

154

•

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

155

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.

156

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

157

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.

158

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 172

Keysight Infiniium Oscilloscopes Programmer's Guide

159

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.

160

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

161

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.

162

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 183

Keysight Infiniium Oscilloscopes Programmer's Guide

163

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

164

•

"Example: Blocking and Polling Synchronization" on page 183

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 172

Keysight Infiniium Oscilloscopes Programmer's Guide

165

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.

166

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

167

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.

168

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

169

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.

170

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

171

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")
#
#
#
#
#

172

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

173

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 regsiter with the :AER? query.
====================================================================

# Stop the oscilloscope.

174

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

175

7

176

Status Reporting

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

8 Remote Acquisition
Synchronization
Programming Flow / 178
Setting Up the Oscilloscope / 179
Acquiring a Waveform / 180
Retrieving Results / 181
Acquisition Synchronization / 182
Single Shot Device Under Test (DUT) / 192
Averaging Acquisition Synchronization / 193

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.

177

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

178

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

179

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

180

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

181

8

Remote Acquisition Synchronization

Acquisition Synchronization
•

"Blocking Synchronization" on page 182

•

"Polling Synchronization With Timeout" on page 182

•

"Example: Blocking and Polling Synchronization" on page 183

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

182

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

183

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

184

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

185

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?")

186

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

187

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.

188

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

189

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

190

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

191

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?
}

192

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

193

8

194

Remote Acquisition Synchronization

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

9 Programming Conventions
Truncation Rule / 196
The Command Tree / 197
Infinity Representation / 200
Response Generation / 201
EOI / 202

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.

195

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

196

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 197

•

"Tree Traversal Rules" on page 197

•

"Tree Traversal Examples" on page 198

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

197

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"

198

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

199

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.

200

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

201

9

Programming Conventions

EOI
The EOI bus control line follows the IEEE 488.2 standard without exception.

202

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

10 Acquire Commands
:ACQuire:AVERage / 205
:ACQuire[:AVERage]:COUNt / 206
:ACQuire:BANDwidth / 207
:ACQuire:BANDwidth:FRAMe? / 209
:ACQuire:BANDwidth:TESTLIMITS? / 210
:ACQuire:COMPlete / 211
:ACQuire:COMPlete:STATe / 213
:ACQuire:HRESolution / 214
:ACQuire:INTerpolate / 215
:ACQuire:MODE / 216
:ACQuire:POINts[:ANALog] — Memory depth / 218
:ACQuire:POINts:AUTO / 220
:ACQuire:POINts:DIGital? / 221
:ACQuire:POINts:TESTLIMITS? / 222
:ACQuire:REDGe — RealEdge Channel Inputs (90000 Q-Series, Z-Series) / 223
:ACQuire:RESPonse (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 224
:ACQuire:SEGMented:AUToplay / 225
:ACQuire:SEGMented:COUNt / 226
:ACQuire:SEGMented:INDex / 227
:ACQuire:SEGMented:PLAY / 228
:ACQuire:SEGMented:PRATe / 229
:ACQuire:SEGMented:TTAGs / 230
:ACQuire:SRATe[:ANALog] — Analog Sample Rate / 231
:ACQuire:SRATe[:ANALog]:AUTO / 232
:ACQuire:SRATe:DIGital — Digital Channels Sample Rate / 233
:ACQuire:SRATe:DIGital:AUTO / 234
:ACQuire:SRATe:TESTLIMITS? / 235

203

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.

204

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

205

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

206

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

207

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.

208

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

209

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

210

,<>:

•

":ACQuire:BANDwidth" on page 207

•

":ACQuire:BANDwidth:FRAMe?" on page 209

•

":ACQuire:POINts:TESTLIMITS?" on page 222

•

":ACQuire:SRATe:TESTLIMITS?" on page 235

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

211

10 Acquire Commands

History

212

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

213

10 Acquire Commands

:ACQuire:HRESolution
Command

:ACQuire:HRESolution {AUTO | BITS9 | BITS10 | BITS11 | BITS12}

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

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}

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

History

214

•

":ACQuire:MODE" on page 216

•

":ACQuire:SRATe[:ANALog] — Analog Sample Rate" on page 231

•

":TIMebase:SCALe" on page 1174

•

":TIMebase:RANGe" on page 1169

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

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

Keysight Infiniium Oscilloscopes Programmer's Guide

215

10 Acquire Commands

: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

216

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

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

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

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

217

10 Acquire Commands

: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

218

•

":WAVeform:DATA?" on page 1391

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

History

10

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

219

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

220

:WAVeform:DATA?
Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

: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

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

221

10 Acquire Commands

: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

222

,<>:

•

":ACQuire:POINts[:ANALog] — Memory depth" on page 218

•

":ACQuire:POINts:AUTO" on page 220

•

":ACQuire:BANDwidth:TESTLIMITS?" on page 210

•

":ACQuire:SRATe:TESTLIMITS?" on page 235

New in version 5.60.

Keysight Infiniium Oscilloscopes Programmer's Guide

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

New in version 4.00.

Keysight Infiniium Oscilloscopes Programmer's Guide

223

10 Acquire Commands

: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

[:ACQuire:POINts:AUTO] {FLATmag | NGAUSsianmag}

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

224

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

: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

•

":ACQuire:MODE" on page 216

•

":ACQuire:SEGMented:PLAY" on page 228

•

":ACQuire:SEGMented:PRATe" on page 229

•

":ACQuire:SEGMented:COUNt" on page 226

•

":ACQuire:SEGMented:INDex" on page 227

•

":ACQuire:SEGMented:TTAGs" on page 230

New in version 6.00.

Keysight Infiniium Oscilloscopes Programmer's Guide

225

10 Acquire Commands

: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

226

•

":ACQuire:SEGMented:INDex" on page 227

•

":ACQuire:SEGMented:PLAY" on page 228

•

":ACQuire:SEGMented:TTAGs" on page 230

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

: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

•

":ACQuire:SEGMented:COUNt" on page 226

•

":ACQuire:SEGMented:PLAY" on page 228

•

":ACQuire:SEGMented:TTAGs" on page 230

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

227

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

228

•

":ACQuire:SEGMented:PRATe" on page 229

•

":ACQuire:SEGMented:COUNt" on page 226

•

":ACQuire:SEGMented:INDex" on page 227

•

":ACQuire:SEGMented:TTAGs" on page 230

New in version 5.60.

Keysight Infiniium Oscilloscopes Programmer's Guide

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



•

":ACQuire:SEGMented:PLAY" on page 228

New in version 5.70.

Keysight Infiniium Oscilloscopes Programmer's Guide

229

10 Acquire Commands

: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

230

•

":ACQuire:SEGMented:COUNt" on page 226

•

":ACQuire:SEGMented:INDex" on page 227

•

":ACQuire:SEGMented:PLAY" on page 228

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

: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

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

231

10 Acquire Commands

: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

232

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

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

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

233

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

234

Legacy command (existed before version 3.10).

Keysight Infiniium Oscilloscopes Programmer's Guide

Acquire Commands

10

: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

•

":ACQuire:SRATe[:ANALog] — Analog Sample Rate" on page 231

•

":ACQuire:SRATe[:ANALog]:AUTO" on page 232

•

":ACQuire:BANDwidth:TESTLIMITS?" on page 210

•

":ACQuire:POINts:TESTLIMITS?" on page 222

New in version 5.60.

Keysight Infiniium Oscilloscopes Programmer's Guide

235

10 Acquire Commands

236

Keysight Infiniium Oscilloscopes Programmer's Guide

Keysight Infiniium Oscilloscopes
Programmer's Guide

11 Analyze Commands
:ANALyze:AEDGes / 239
:ANALyze:CLOCk / 240
:ANALyze:CLOCk:METHod / 241
:ANALyze:CLOCk:METHod:ALIGn / 244
:ANALyze:CLOCk:METHod:DEEMphasis / 246
:ANALyze:CLOCk:METHod:EDGE / 247
:ANALyze:CLOCk:METHod:JTF / 249
:ANALyze:CLOCk:METHod:OJTF / 252
:ANALyze:CLOCk:METHod:PLLTrack / 255
:ANALyze:CLOCk:METHod:SKEW / 256
:ANALyze:CLOCk:METHod:SOURce / 257
:ANALyze:CLOCk:VERTical / 258
:ANALyze:CLOCk:VERTical:OFFSet / 259
:ANALyze:CLOCk:VERTical:RANGe / 260
:ANALyze:SIGNal:DATarate / 261
:ANALyze:SIGNal:SYMBolrate / 263
:ANALyze:SIGNal:MIXer:CABLeloss / 265
:ANALyze:SIGNal:MMWave:CALibrate / 266
:ANALyze:SIGNal:MMWave:CFRequency / 267
:ANALyze:SIGNal:MMWave:CONNect / 268
:ANALyze:SIGNal:MMWave:LOADdress / 269
:ANALyze:SIGNal:MMWave:MBANdwidth / 270
:ANALyze:SIGNal:TYPE / 271
:ANALyze:VIEW / 273

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:

237

11 Analyze Commands

•

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.

238

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

New in version 5.30. This commands replaces the now deprecated command
":MEASure:JITTer:STATistics" on page 1535.

Keysight Infiniium Oscilloscopes Programmer's Guide

239

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}}
 ::= {CHANnel | DIFF | COMMonmode | FUNCtion
| WMEMory}

The :ANALyze:CLOCk command turns the recovered clock display on or off and
sets the clock recovery channel source.

, 

An integer, 1-4 in a single oscilloscope, 1-40 in a MultiScope system.
 is an integer, 1-2.  is an integer, 3-4.
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).



An integer, 1-16.



An integer, 1-4.

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

240

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk" on page 1514.

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 252.
For setting phase-locked loop (PLL) clock recovery methods in terms of the Jitter
Transfer Function (JTF), see ":ANALyze:CLOCk:METHod:JTF" on page 249.


{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

241

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

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

242

•

":ANALyze:CLOCk:METHod:SOURce" on page 257

•

":ANALyze:CLOCk:METHod:OJTF" on page 252

•

":ANALyze:CLOCk:METHod:JTF" on page 249

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 246

•

":ANALyze:CLOCk:METHod:ALIGn" on page 244

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

History

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 255

•

":ANALyze:CLOCk:METHod:EDGE" on page 247

•

":ANALyze:SIGNal:TYPE" on page 271

11

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod" on page 1515.
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

243

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

244

•

":ANALyze:CLOCk:METHod:SOURce" on page 257

•

":ANALyze:CLOCk:METHod" on page 241

•

":ANALyze:CLOCk:METHod:OJTF" on page 252

•

":ANALyze:CLOCk:METHod:JTF" on page 249

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 246

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 255

•

":ANALyze:CLOCk:METHod:EDGE" on page 247

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

Keysight Infiniium Oscilloscopes Programmer's Guide

245

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

246

•

":ANALyze:CLOCk:METHod:SOURce" on page 257

•

":ANALyze:CLOCk:METHod" on page 241

•

":ANALyze:CLOCk:METHod:OJTF" on page 252

•

":ANALyze:CLOCk:METHod:JTF" on page 249

•

":ANALyze:CLOCk:METHod:ALIGn" on page 244

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 255

•

":ANALyze:CLOCk:METHod:EDGE" on page 247

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:DEEMphasis" on page 1521.

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

247

11 Analyze Commands

myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:METHod:EDGE?"
strSetting = myScope.ReadString
Debug.Print strSetting

See Also

History

248

•

":ANALyze:CLOCk:METHod:SOURce" on page 257

•

":ANALyze:CLOCk:METHod" on page 241

•

":ANALyze:CLOCk:METHod:OJTF" on page 252

•

":ANALyze:CLOCk:METHod:JTF" on page 249

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 246

•

":ANALyze:CLOCk:METHod:ALIGn" on page 244

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 255

•

":MEASure:RJDJ:EDGE" on page 878

•

":MEASure:RJDJ:CLOCk" on page 877

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:EDGE" on page 1522.

Keysight Infiniium Oscilloscopes Programmer's Guide

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 252.
For setting other clock recovery methods, see ":ANALyze:CLOCk:METHod" on
page 241.


{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

249

11 Analyze Commands



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

250

•

":ANALyze:CLOCk:METHod:SOURce" on page 257

•

":ANALyze:CLOCk:METHod" on page 241

•

":ANALyze:CLOCk:METHod:OJTF" on page 252

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 246

•

":ANALyze:CLOCk:METHod:ALIGn" on page 244

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 255

•

":ANALyze:CLOCk:METHod:EDGE" on page 247

•

":ANALyze:SIGNal:TYPE" on page 271

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:JTF" on page 1524.
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

251

11 Analyze Commands

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

252

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

11

For setting other clock recovery methods, see ":ANALyze:CLOCk:METHod" on
page 241.


{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

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

253

11 Analyze Commands

,,,,
}

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 257

•

":ANALyze:CLOCk:METHod" on page 241

•

":ANALyze:CLOCk:METHod:JTF" on page 249

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 246

•

":ANALyze:CLOCk:METHod:ALIGn" on page 244

•

":ANALyze:CLOCk:METHod:PLLTrack" on page 255

•

":ANALyze:CLOCk:METHod:EDGE" on page 247

•

":ANALyze:SIGNal:TYPE" on page 271

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:OJTF" on page 1526.
Version 5.50: When the signal type is PAM-4, a symbol rate (baud) is specified
instead of a data rate (b/s).

254

Keysight Infiniium Oscilloscopes Programmer's Guide

Analyze Commands

11

: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

•

":ANALyze:CLOCk:METHod:SOURce" on page 257

•

":ANALyze:CLOCk:METHod" on page 241

•

":ANALyze:CLOCk:METHod:OJTF" on page 252

•

":ANALyze:CLOCk:METHod:JTF" on page 249

•

":ANALyze:CLOCk:METHod:DEEMphasis" on page 246

•

":ANALyze:CLOCk:METHod:ALIGn" on page 244

•

":ANALyze:CLOCk:METHod:EDGE" on page 247

New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:METHod:PLLTrack" on page 1528.

Keysight Infiniium Oscilloscopes Programmer's Guide

255

11 Analyze Commands

: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-c041 52.342996, 2008/05/07-20:48:00
Producer                        : Acrobat Distiller 9.0.0 (Windows)
Creator Tool                    : FrameMaker 8.0
Modify Date                     : 2017:11:03 17:24:45-06:00
Create Date                     : 2017:11:03 17:15:13Z
Metadata Date                   : 2017:11:03 17:24:45-06:00
Format                          : application/pdf
Title                           : Keysight Infiniium Oscilloscopes Programmer's Guide
Creator                         : Keysight Technologies, Inc.
Document ID                     : uuid:373b1505-2568-4fe1-ba79-147732fef20b
Instance ID                     : uuid:f589d1a7-027f-45cb-9036-eb97504067b4
Page Mode                       : UseOutlines
Page Count                      : 1744
Author                          : Keysight Technologies, Inc.
EXIF Metadata provided by EXIF.tools

Navigation menu