Infiniium Programming Guide
Infiniium Programming Guide
Programmer's
Guide
Notices
© Keysight Technologies, Inc. 2007-2019 U.S. Government Rights Safety Notices
No part of this manual may be reproduced in The Software is "commercial computer
any form or by any means (including software," as defined by Federal Acquisition
electronic storage and retrieval or
CAUTION
Regulation ("FAR") 2.101. Pursuant to FAR
translation into a foreign language) without 12.212 and 27.405-3 and Department of A CAUTION notice denotes a hazard.
prior agreement and written consent from Defense FAR Supplement ("DFARS")
Keysight Technologies, Inc. as governed by It calls attention to an operating
227.7202, the U.S. government acquires
United States and international copyright commercial computer software under the
procedure, practice, or the like that,
laws. same terms by which the software is if not correctly performed or
customarily provided to the public. adhered to, could result in damage
Revision Accordingly, Keysight provides the Software to the product or loss of important
to U.S. government customers under its data. Do not proceed beyond a
Version 06.30.01007 standard commercial license, which is
CAUTION notice until the indicated
embodied in its End User License Agreement
Edition (EULA), a copy of which can be found at conditions are fully understood and
www.keysight.com/find/sweula. The met.
January 2019
license set forth in the EULA represents the
Available in electronic format only exclusive authority by which the U.S.
government may use, modify, distribute, or
Published by: disclose the Software. The EULA and the
WARNING
Keysight Technologies, Inc. license set forth therein, does not require or
1900 Garden of the Gods Road A WARNING notice denotes a
permit, among other things, that Keysight:
Colorado Springs, CO 80907 USA (1) Furnish technical information related to hazard. It calls attention to an
commercial computer software or operating procedure, practice, or
Warranty commercial computer software the like that, if not correctly
The material contained in this document is
documentation that is not customarily performed or adhered to, could
provided to the public; or (2) Relinquish to, result in personal injury or death.
provided "as is," and is subject to being
or otherwise provide, the government rights
changed, without notice, in future editions.
in excess of these rights customarily
Do not proceed beyond a WARNING
Further, to the maximum extent permitted
provided to the public to use, modify, notice until the indicated
by applicable law, Keysight disclaims all conditions are fully understood and
reproduce, release, perform, display, or
warranties, either express or implied, with
regard to this manual and any information
disclose commercial computer software or met.
commercial computer software
contained herein, including but not limited
documentation. No additional government
to the implied warranties of
requirements beyond those set forth in the
merchantability and fitness for a particular
EULA shall apply, except to the extent that
purpose. Keysight shall not be liable for
those terms, rights, or licenses are explicitly
errors or for incidental or consequential
required from all providers of commercial
damages in connection with the furnishing,
computer software pursuant to the FAR and
use, or performance of this document or of
the DFARS and are set forth specifically in
any information contained herein. Should
writing elsewhere in the EULA. Keysight
Keysight and the user have a separate
shall be under no obligation to update,
written agreement with warranty terms
revise or otherwise modify the Software.
covering the material in this document that
With respect to any technical data as
conflict with these terms, the warranty
defined by FAR 2.101, pursuant to FAR
terms in the separate agreement shall
12.211 and 27.404.2 and DFARS 227.7102,
control.
the U.S. government acquires no greater
than Limited Rights as defined in FAR 27.401
Technology License or DFAR 227.7103-5 (c), as applicable in any
technical data.
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.
1 What's New
What's New in Version 6.30 / 44
What's New in Version 6.20 / 48
What's New in Version 6.10 / 51
What's New in Version 6.00 / 53
What's New in Version 5.75 / 57
What's New in Version 5.70 / 58
What's New in Version 5.60 / 61
What's New in Version 5.52 / 64
What's New in Version 5.51 / 65
What's New in Version 5.50 / 66
What's New in Version 5.30 / 72
What's New in Version 5.20 / 74
What's New in Version 5.10 / 76
What's New in Version 5.00 / 77
What's New in Version 4.60 / 81
What's New in Version 4.50 / 82
What's New in Version 4.30 / 83
What's New in Version 4.20 / 84
What's New in Version 4.10 / 85
What's New in Version 4.00 / 86
What's New in Version 3.50 / 87
What's New in Version 3.20 / 89
What's New in Version 3.11 / 90
What's New in Version 3.10 / 91
3 Introduction to Programming
Communicating with the Oscilloscope / 105
Instructions / 106
Instruction Header / 107
White Space (Separator) / 108
Braces / 109
Ellipsis / 110
Square Brackets / 111
Command and Query Sources / 112
Program Data / 113
Header Types / 114
Simple Command Header / 114
Compound Command Header / 114
Combining Commands in the Same Subsystem / 115
Common Command Header / 115
Duplicate Mnemonics / 115
Query Headers / 116
Program Header Options / 117
Character Program Data / 118
Numeric Program Data / 119
Embedded Strings / 120
Program Message Terminator / 121
Common Commands within a Subsystem / 122
Selecting Multiple Subsystems / 123
Programming Getting Started / 124
Referencing the IO Library / 125
7 Status Reporting
Status Reporting Data Structures / 160
Status Byte Register / 162
Service Request Enable Register / 164
Message Event Register / 165
Trigger Event Register / 166
Standard Event Status Register / 167
Standard Event Status Enable Register / 168
Operation Status Register / 169
Operation Status Enable Register / 170
Mask Test Event Register / 171
Mask Test Event Enable Register / 172
Acquisition Done Event Register / 173
Process Done Event Register / 174
Trigger Armed Event Register / 175
Auto Trigger Event Register / 176
Error Queue / 177
Output Queue / 178
Message Queue / 179
Clearing Registers and Queues / 180
Example: Checking for Armed Status / 182
9 Programming Conventions
Truncation Rule / 206
The Command Tree / 207
Command Types / 207
Tree Traversal Rules / 207
Tree Traversal Examples / 208
Infinity Representation / 210
Response Generation / 211
EOI / 212
10 Acquire Commands
:ACQuire:AVERage / 215
:ACQuire[:AVERage]:COUNt / 216
:ACQuire:BANDwidth / 217
:ACQuire:BANDwidth:FRAMe? / 219
:ACQuire:BANDwidth:TESTLIMITS? / 220
:ACQuire:COMPlete / 221
:ACQuire:COMPlete:STATe / 223
:ACQuire:HRESolution / 224
:ACQuire:INTerpolate / 226
:ACQuire:MODE / 227
:ACQuire:POINts[:ANALog] — Memory depth / 229
:ACQuire:POINts:AUTO / 231
:ACQuire:POINts:DIGital? / 232
:ACQuire:POINts:TESTLIMITS? / 233
:ACQuire:REDGe — RealEdge Channel Inputs (90000 Q-Series, Z-Series) / 234
:ACQuire:RESPonse (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 235
:ACQuire:SEGMented:AUToplay / 236
:ACQuire:SEGMented:COUNt / 237
11 Analyze Commands
:ANALyze:AEDGes / 249
:ANALyze:CLOCk / 250
:ANALyze:CLOCk:METHod / 251
:ANALyze:CLOCk:METHod:ALIGn / 254
:ANALyze:CLOCk:METHod:DEEMphasis / 255
:ANALyze:CLOCk:METHod:EDGE / 256
:ANALyze:CLOCk:METHod:IDLe / 258
:ANALyze:CLOCk:METHod:JTF / 259
:ANALyze:CLOCk:METHod:OJTF / 261
:ANALyze:CLOCk:METHod:PLLTrack / 264
:ANALyze:CLOCk:METHod:SKEW / 265
:ANALyze:CLOCk:METHod:SKEW:AUTomatic / 266
:ANALyze:CLOCk:METHod:SOURce / 267
:ANALyze:CLOCk:VERTical / 268
:ANALyze:CLOCk:VERTical:OFFSet / 269
:ANALyze:CLOCk:VERTical:RANGe / 270
:ANALyze:SIGNal:DATarate / 271
:ANALyze:SIGNal:SYMBolrate / 273
:ANALyze:SIGNal:MIXer:CABLeloss / 275
:ANALyze:SIGNal:MMWave:CALibrate / 276
:ANALyze:SIGNal:MMWave:CFRequency / 277
:ANALyze:SIGNal:MMWave:CONNect / 278
:ANALyze:SIGNal:MMWave:LOADdress / 279
:ANALyze:SIGNal:MMWave:MBANdwidth / 280
:ANALyze:SIGNal:PATTern:CLEar / 281
:ANALyze:SIGNal:PATTern:LOAD / 282
:ANALyze:SIGNal:PATTern:PLENgth / 283
:ANALyze:SIGNal:PATTern:SMAP / 284
:ANALyze:SIGNal:TYPE / 285
:ANALyze:VIEW / 288
13 Calibration Commands
:CALibrate:DATE? / 303
:CALibrate:OUTPut / 304
:CALibrate:OUTPut:AUX / 306
:CALibrate:OUTPut:AUX:RTIMe / 307
:CALibrate:OUTPut:CAL / 308
:CALibrate:SKEW / 309
:CALibrate:STATus? / 310
:CALibrate:TEMP? / 311
14 Channel Commands
:CHANnel<N>:BWLimit (9000 Series, 9000H Series, S-Series) / 316
:CHANnel<N>:COMMonmode / 317
:CHANnel<N>:DIFFerential / 318
:CHANnel<N>:DIFFerential:SKEW / 319
:CHANnel<N>:DISPlay / 320
:CHANnel<N>:DISPlay:AUTO / 321
:CHANnel<N>:DISPlay:OFFSet / 323
:CHANnel<N>:DISPlay:RANGe / 325
:CHANnel<N>:DISPlay:SCALe / 327
:CHANnel<N>:INPut / 329
:CHANnel<N>:INVert / 330
:CHANnel<N>:ISIM:APPLy / 331
:CHANnel<N>:ISIM:BANDwidth / 332
:CHANnel<N>:ISIM:BWLimit / 334
:CHANnel<N>:ISIM:BWLimit:TYPE / 336
:CHANnel<N>:ISIM:CONVolve / 337
:CHANnel<N>:ISIM:CORRection / 338
:CHANnel<N>:ISIM:DEConvolve / 340
:CHANnel<N>:ISIM:DELay / 341
15 Common Commands
*CLS — Clear Status / 417
*ESE — Event Status Enable / 418
*ESR? — Event Status Register / 420
*IDN? — Identification Number / 421
*LRN? — Learn / 422
*OPC — Operation Complete / 424
*OPT? — Option / 425
*PSC — Power-on Status Clear / 432
*RCL — Recall / 433
*RST — Reset / 434
*SAV — Save / 435
*SRE — Service Request Enable / 436
16 Digital Commands
:DIGital<N>:DISPlay / 444
:DIGital<N>:LABel / 445
:DIGital<N>:SIZE / 446
:DIGital<N>:THReshold / 447
17 Disk Commands
:DISK:CDIRectory / 450
:DISK:COPY / 451
:DISK:DELete / 452
:DISK:DIRectory? / 453
:DISK:LOAD / 454
:DISK:MDIRectory / 456
:DISK:PWD? / 457
:DISK:SAVE:COMPosite / 458
:DISK:SAVE:IMAGe / 459
:DISK:SAVE:JITTer / 460
:DISK:SAVE:LISTing / 461
:DISK:SAVE:MEASurements / 462
:DISK:SAVE:PRECprobe / 463
:DISK:SAVE:SETup / 464
:DISK:SAVE:WAVeform / 465
:DISK:SEGMented / 467
18 Display Commands
:DISPlay:BOOKmark<N>:DELete / 471
:DISPlay:BOOKmark<N>:SET / 472
:DISPlay:BOOKmark<N>:VERTical? / 474
:DISPlay:BOOKmark<N>:XPOSition / 475
:DISPlay:BOOKmark<N>:YPOSition / 476
:DISPlay:CGRade / 477
:DISPlay:CGRade:LEVels? / 479
:DISPlay:CGRade:SCHeme / 481
:DISPlay:CONNect / 483
:DISPlay:DATA? / 484
:DISPlay:GRATicule / 485
19 Function Commands
:FUNCtion<F>? / 516
:FUNCtion<F>:ABSolute / 517
:FUNCtion<F>:ADD / 518
:FUNCtion<F>:ADEMod / 519
:FUNCtion<F>:AVERage / 520
:FUNCtion<F>:COMMonmode / 521
:FUNCtion<F>:DELay — Delay / 522
:FUNCtion<F>:DIFF — Differentiate / 523
:FUNCtion<F>:DISPlay / 524
:FUNCtion<F>:DIVide / 525
:FUNCtion<F>:FFT:DETector:POINts / 526
:FUNCtion<F>:FFT:DETector:TYPE / 527
:FUNCtion<F>:FFT:FREQuency / 528
:FUNCtion<F>:FFT:HSCale / 529
:FUNCtion<F>:FFT:REFerence / 530
21 Histogram Commands
:HISTogram:AXIS / 583
:HISTogram:HORizontal:BINS / 584
:HISTogram:MEASurement:BINS / 585
:HISTogram:MEASurement:MAX / 586
:HISTogram:MEASurement:MIN / 587
:HISTogram:MODE / 588
:HISTogram:SCALe:SIZE / 589
:HISTogram:VERTical:BINS / 590
:HISTogram:WINDow:DEFault / 591
:HISTogram:WINDow:SOURce / 592
:HISTogram:WINDow:LLIMit / 593
:HISTogram:WINDow:RLIMit / 594
:HISTogram:WINDow:BLIMit / 595
:HISTogram:WINDow:TLIMit / 596
22 Hosted Commands
:HOSTed:CALibrate:CALibrate / 599
:HOSTed:CALibrate:CHANnel / 600
:HOSTed:CALibrate:DESKew:CHANnels / 601
:HOSTed:CALibrate:DESKew:FRAMes / 602
:HOSTed:CALibrate:DESKew:SIGNals / 603
:HOSTed:CALibrate:DESKew:ZERO / 604
:HOSTed:CALibrate:LEVel / 605
:HOSTed:CALibrate:PROMpt / 607
:HOSTed:CALibrate:STATus:CHANnels? / 608
:HOSTed:CALibrate:STATus:FRAMes? / 609
:HOSTed:CALibrate:STATus:LEVel? / 610
:HOSTed:CALibrate:STATus:SIGNals? / 611
:HOSTed:CALibrate:TREF:DETect / 612
:HOSTed:FOLLower<N>:ACHannels? / 613
:HOSTed:FOLLower<N>:CONFigure / 614
:HOSTed:FOLLower<N>:CONNect / 615
:HOSTed:FOLLower<N>:DISConnect / 616
26 Marker Commands
:MARKer:CURSor? / 661
:MARKer:DELTa / 662
:MARKer:MEASurement:MEASurement / 663
:MARKer:MODE / 664
:MARKer:TSTArt / 665
:MARKer:TSTOp / 666
:MARKer:VSTArt / 667
:MARKer:VSTOp / 668
:MARKer:X1Position / 669
:MARKer:X2Position / 670
:MARKer:X1Y1source / 671
:MARKer:X2Y2source / 673
:MARKer:XDELta? / 675
:MARKer:Y1Position / 676
:MARKer:Y2Position / 677
:MARKer:YDELta? / 678
:MARKer<K>:DELTa / 679
:MARKer<K>:ENABle / 680
:MARKer<K>:NAME / 681
:MARKer<K>:SOURce / 682
:MARKer<K>:TYPE / 684
:MARKer<K>:X:POSition / 686
:MARKer<K>:Y:POSition / 687
28 Measure Commands
:MEASure:AREA / 765
:MEASure:BER / 767
:MEASure:BERPeracq / 768
:MEASure:BINTerval / 769
:MEASure:BPERiod / 770
:MEASure:BWIDth / 771
:MEASure:CDRRate / 772
:MEASure:CGRade:CROSsing / 773
:MEASure:CGRade:DCDistortion / 774
:MEASure:CGRade:EHEight / 775
:MEASure:CGRade:ELOCation / 777
:MEASure:CGRade:EWIDth / 778
:MEASure:CGRade:EWINdow / 780
:MEASure:CGRade:JITTer / 782
:MEASure:CGRade:OLEVel / 783
:MEASure:CGRade:QFACtor / 784
:MEASure:CGRade:ZLEVel / 785
:MEASure:CHARge (9000 Series, 9000H Series, S-Series) / 786
:MEASure:CLEar / 787
:MEASure:CROSsing / 788
:MEASure:CTCDutycycle / 789
:MEASure:CTCJitter / 791
:MEASure:CTCNwidth / 793
:MEASure:CTCPwidth / 795
:MEASure:DATarate / 797
:MEASure:DEEMphasis / 799
:MEASure:DELTatime / 801
:MEASure:DELTatime:DEFine / 803
:MEASure:DUTYcycle / 805
:MEASure:EDGE / 806
:MEASure:ERATio / 807
:MEASure:ETOedge / 808
:MEASure:FALLtime / 810
:MEASure:FFT:CPOWer / 812
:MEASure:FFT:DFRequency / 813
:MEASure:FFT:DMAGnitude / 815
:MEASure:FFT:FREQuency / 817
:MEASure:FFT:MAGNitude / 819
29 Pod Commands
:POD<N>:DISPlay / 1048
:POD<N>:PSKew / 1049
:POD<N>:THReshold / 1050
32 Self-Test Commands
:SELFtest:CANCel / 1170
:SELFtest:SCOPETEST / 1171
34 System Commands
:SYSTem:DATE / 1220
:SYSTem:DEBug / 1221
:SYSTem:DONTtabmeas / 1223
:SYSTem:DSP / 1224
:SYSTem:ERRor? / 1225
:SYSTem:GUI / 1226
:SYSTem:HEADer / 1227
:SYSTem:HLED (90000 Q-Series, S-Series, V-Series, Z-Series) / 1228
:SYSTem:LOCK / 1229
:SYSTem:LONGform / 1230
:SYSTem:MENU? / 1231
:SYSTem:PERSona / 1232
:SYSTem:PRESet / 1233
:SYSTem:SETup / 1235
:SYSTem:TIME / 1237
36 Trigger Commands
General Trigger Commands / 1255
:TRIGger:AND:ENABle / 1256
:TRIGger:AND:SOURce / 1257
:TRIGger:FORCe / 1258
:TRIGger:HOLDoff / 1259
:TRIGger:HOLDoff:MAX / 1260
:TRIGger:HOLDoff:MIN / 1261
:TRIGger:HOLDoff:MODE / 1262
:TRIGger:HTHReshold / 1263
:TRIGger:HYSTeresis / 1264
:TRIGger:LEVel / 1265
:TRIGger:LEVel:FIFTy / 1266
:TRIGger:LTHReshold / 1267
:TRIGger:MODE / 1268
:TRIGger:SWEep / 1270
Comm Trigger Commands / 1271
:TRIGger:COMM:BWIDth / 1272
:TRIGger:COMM:ENCode / 1273
:TRIGger:COMM:PATTern / 1274
:TRIGger:COMM:POLarity / 1275
:TRIGger:COMM:SOURce / 1276
Delay Trigger Commands / 1277
:TRIGger:DELay:ARM:SOURce / 1278
:TRIGger:DELay:ARM:SLOPe / 1279
:TRIGger:DELay:EDELay:COUNt / 1280
:TRIGger:DELay:EDELay:SOURce / 1281
:TRIGger:DELay:EDELay:SLOPe / 1282
:TRIGger:DELay:MODE / 1283
:TRIGger:DELay:TDELay:TIME / 1284
:TRIGger:DELay:TRIGger:SOURce / 1285
:TRIGger:DELay:TRIGger:SLOPe / 1286
Edge Trigger Commands / 1287
:TRIGger:EDGE:COUPling (9000 Series, 9000H Series, S-Series) / 1288
:TRIGger:EDGE:SLOPe / 1289
:TRIGger:EDGE:SOURce / 1290
GBSerial Trigger Commands / 1291
37 Waveform Commands
:WAVeform:BANDpass? / 1456
:WAVeform:BYTeorder / 1457
:WAVeform:CGRade:HEIGht? / 1458
:WAVeform:CGRade:WIDTh? / 1459
:WAVeform:COMPlete? / 1460
:WAVeform:COUNt? / 1461
:WAVeform:COUPling? / 1462
:WAVeform:DATA? / 1463
:WAVeform:FORMat / 1485
:WAVeform:POINts? / 1488
:WAVeform:PREamble? / 1489
:WAVeform:SEGMented:ALL / 1493
:WAVeform:SEGMented:COUNt? / 1494
:WAVeform:SEGMented:TTAG? / 1495
:WAVeform:SEGMented:XLISt? / 1496
:WAVeform:SOURce / 1497
:WAVeform:STReaming / 1499
:WAVeform:TYPE? / 1500
:WAVeform:VIEW / 1501
:WAVeform:XDISplay? / 1504
:WAVeform:XINCrement? / 1505
:WAVeform:XORigin? / 1506
:WAVeform:XRANge? / 1507
:WAVeform:XREFerence? / 1508
:WAVeform:XUNits? / 1509
:WAVeform:YDISplay? / 1510
:WAVeform:YINCrement? / 1511
:WAVeform:YORigin? / 1512
:WAVeform:YRANge? / 1513
:WAVeform:YREFerence? / 1514
:WAVeform:YUNits? / 1515
41 Error Messages
Error Queue / 1616
Error Numbers / 1617
Command Error / 1618
Execution Error / 1619
42 Sample Programs
VISA COM Examples / 1628
VISA COM Example in Visual Basic / 1628
VISA COM Example in C# / 1639
VISA COM Example in Visual Basic .NET / 1649
VISA COM Example in Python / 1658
VISA Examples / 1666
VISA Example in C / 1666
VISA Example in Visual Basic / 1675
VISA Example in C# / 1685
VISA Example in Visual Basic .NET / 1697
VISA Example in Python (PyVISA 1.5 and older) / 1709
VISA Example in Python (PyVISA 1.6 and newer) / 1715
SICL Examples / 1723
SICL Example in C / 1723
SICL Example in Visual Basic / 1732
SCPI.NET Examples / 1742
SCPI.NET Example in C# / 1742
SCPI.NET Example in Visual Basic .NET / 1749
SCPI.NET Example in IronPython / 1756
43 Reference
HDF5 Example / 1764
CSV and TSV Header Format / 1765
BIN Header Format / 1767
File Header / 1767
Waveform Header / 1767
Waveform Data Header / 1769
Example Program for Reading Binary Data / 1769
Index
1 What's New
What's New in Version 6.30 / 44
What's New in Version 6.20 / 48
What's New in Version 6.10 / 51
What's New in Version 6.00 / 53
What's New in Version 5.75 / 57
What's New in Version 5.70 / 58
What's New in Version 5.60 / 61
What's New in Version 5.52 / 64
What's New in Version 5.51 / 65
What's New in Version 5.50 / 66
What's New in Version 5.30 / 72
What's New in Version 5.20 / 74
What's New in Version 5.10 / 76
What's New in Version 5.00 / 77
What's New in Version 4.60 / 81
What's New in Version 4.50 / 82
What's New in Version 4.30 / 83
What's New in Version 4.20 / 84
What's New in Version 4.10 / 85
What's New in Version 4.00 / 86
What's New in Version 3.50 / 87
What's New in Version 3.20 / 89
What's New in Version 3.11 / 90
What's New in Version 3.10 / 91
43
1 What's New
Command Description
:MEASure:PJITter (see Measures Phase Jitter on the phase noise single-sideband (SSB)
page 907) frequency offset FFT plot.
:MEASure:PLENgth (see The command installs a Pattern Length measurement into the
page 908) user interface's measurement Results pane. The query returns the
measured pattern length.
:MEASure:PN:CORRelations When two clock sources permit the two-channel
(see page 909) cross-correlation technique to be used, this command specifies
the number of correlations that will be accumulated between
phase noise analysis plot averages.
:MEASure:PN:EDGE (see Specifies the clock edge direction to measure.
page 910)
:MEASure:PN:HORizontal:STAR For the phase noise analysis single-sideband (SSB) frequency
t (see page 911) offset plot, this command specifies the left side of the horizontal
log frequency scale.
:MEASure:PN:HORizontal:STOP For the phase noise analysis single-sideband (SSB) frequency
(see page 912) offset plot, this command specifies the right side of the horizontal
log frequency scale.
:MEASure:PN:RSSC (see If your clock source uses spread-spectrum clocking (SSC) and the
page 913) FLATtop FFT windowing function is selected, you can use this
command to enable or disable the removal of the SSC effects
from the phase noise analysis results.
:MEASure:PN:SOURce (see Specifies the clock source(s) on which the phase noise analysis is
page 914) performed.
:MEASure:PN:SPURs (see Specifies how to display spurs in the phase noise analysis
page 915) single-sideband (SSB) frequency offset plot.
:MEASure:PN:SSENsitivity (see When omitting spurs from the phase noise analysis
page 916) single-sideband (SSB) frequency offset plot, or when displaying
them in power (dBc) instead of the default normalized (dBc/Hz)
scale, this command specifies the sensitivity used in identifying
spurs.
:MEASure:PN:STATe (see Turns the phase noise analysis feature on or off.
page 917)
:MEASure:PN:VERTical:REFere Specifies the dBc/Hz value at the top of the phase noise analysis
nce (see page 918) single-sideband (SSB) frequency offset plot.
:MEASure:PN:VERTical:SCALe Specifies the height in dBc/Hz of each vertical division in the
(see page 919) phase noise analysis single-sideband (SSB) frequency offset plot.
:MEASure:PN:WINDow (see Specifies the FFT windowing function used in the phase noise
page 920) analysis.
:MEASure:RJDJ:CREFerence Specifies the number of UI away from the data edge at which to
(see page 942) measure jitter.
Command Description
:MEASure:XCORtie (see Measures cross-correlated TIE using the same two-channel
page 1044) cross-correlation technique that is used when measuring phase
noise.
:SPRocessing:DFEQualizer:TAP: Computes a DFE delay value to center a DFE eye on the screen
DELay:AUTomatic (see horizontally.
page 1195)
:TRIGger:FORCe (see Causes an acquisition to be captured even though the trigger
page 1258) condition has not been met.
:WMEMory<R>:FFT:HSCale For a FFT waveform memory, this command specifies whether the
(see page 1521) horizontal scale is linear or logarithmic.
Changed
Commands Command Description
:ANALyze:CLOCk:METHod (see Added the BMC (USB PD bi-phase mark coding) and LFPS (USB 3
page 251) low frequency periodic signaling) methods.
:ANALyze:SIGNal:TYPE (see PAM3 has been added as a signal type.
page 285)
:BUS:B<N>:TYPE (see Added support for new QSPI (Quad SPI) and USB32 (USB 3.2)
page 290) protocols.
:CHANnel<N>:ISIM:BWLimit:TY The BANDpass option has been added to support the Phase Noise
PE (see page 336) analysis application.
:DISPlay:LAYout (see The obsolete CUSTom option has been replaced with the new TAB
page 498) option.
:FUNCtion<F>:MHIStogram Added <min> and <max> parameters for specifying the
(see page 558) histogram's measurement minimum and measurement maximum.
:MEASure:STATistics (see The COUNt option has been added to allow the
page 966) :MEASure:RESults? query to return the measurement count value.
:MEASure:THResholds:GENeral Modified to work with the PAM-3 signal type.
:PAMCustom (see page 977)
:MEASurement<N>:NAME (see Now supports up to 20 measurements.
page 1045)
:SPRocessing:CTLequalizer:NU The new option names P2Z1 and P2ACG replace the old option
MPoles (see page 1178) names POLE2 and USB31, respectively (but operations are the
same).
Obsolete
Commands Obsolete Command Current Command Equivalent Behavior Differences
Discontinued
Commands Discontinued Command Current Command Equivalent Comments
:MTESt:AlignFIT None This command is no longer
supported.
:TRIGger:ADVanced:PATTern:T :DIGital<N>:THReshold (see
HReshold:POD<N> page 447)
Changed
Commands Command Description
:ACQuire:HRESolution (see On S-Series oscilloscopes only, the BITF11, BITF12, BITF13,
page 224) BITF14, BITF15, and BITF16 options have been added to force the
specified number of bits of vertical resolution.
:ANALyze:SIGNal:TYPE (see NRZ has been added as a signal type. With this selection, you are
page 285) able to specify pattern lengths and patterns so that you can make
BER measurements on NRZ signals (:MEASure:BER and
:MEASure:BERPeracq).
:BUS:B<N>:TYPE (see Added support for new PCI4 (PCI Express Gen4) and SENT (Single
page 290) Edge Nibble Transmission) protocols.
:DISK:LOAD (see page 454) The <interp> option has been added.
:MARKer:MODE (see Now returns ICON when Track RF markers are used.
page 664)
:MEASure:BER (see page 767) Now works with the NRZ signal type (as well as the PAM signal
type). Pattern length parameters have been removed from this
command because pattern lengths and patterns are now specified
using the :ANALyze:SIGNal:PATTern:* commands.
:MEASure:BERPeracq (see Now works with the NRZ signal type (as well as the PAM signal
page 768) type). Pattern length parameters have been removed from this
command because pattern lengths and patterns are now specified
using the :ANALyze:SIGNal:PATTern:* commands.
:MEASure:FFT:DFRequency The command and query now include peak number and level
(see page 813) parameters.
:MEASure:FFT:DMAGnitude The command and query now include peak number and level
(see page 815) parameters.
:MEASure:FFT:FREQuency (see The command and query now include peak number and level
page 817) parameters.
:MEASure:FFT:MAGNitude (see The command and query now include peak number and level
page 819) parameters.
:MEASure:RESults? (see There is now an AORDered option for returning the results
page 930) according to the order in which measurements were added
(ignoring any front panel graphical user interface (GUI) reordering)
or a GORDered option for returning the results according to the
order they appear on the display (even after front panel GUI
reordering). Not specifying any option is the same as using the
AORDered option.
:MEASure:SER (see page 959) Pattern length parameters have been removed from this
command because pattern lengths and patterns are now specified
using the :ANALyze:SIGNal:PATTern:* commands.
:MEASure:SERPeracq (see Pattern length parameters have been removed from this
page 960) command because pattern lengths and patterns are now specified
using the :ANALyze:SIGNal:PATTern:* commands.
Command Description
:SBUS<N>:MODE (see Added the GENRaw mode option.
page 1094)
:SYSTem:GUI (see page 1226) The LOCK parameter has been added and the query return value is
now a string (ON, OFF, or LOCK) instead of the previous 1 or 0
return values.
:TRIGger:ADVanced:PATTern:C The OR parameter has been added.
ONDition (see page 1375)
:TRIGger:PATTern:CONDition The OR parameter has been added.
(see page 1307)
:WAVeform:SEGMented:COUNt The signal that is queried for the count is the signal set by the
? (see page 1494) :WAVeform:SOURce command. If you query the COUNt while the
segmented acquisition is occurring, it will return the number of
segments acquired so far.
:WAVeform:SEGMented:TTAG? The signal that is queried for the time tag is the signal set by the
(see page 1494) :WAVeform:SOURce command.
Obsolete
Commands Obsolete Command Current Command Equivalent Behavior Differences
:MEASure:FFT:PEAK1 (see :MEASure:FFT:DFRequency Peak numbers and threshold
page 1606) (see page 813) levels are now specified in the
:MEASure:FFT:DMAGnitude :MEASure:FFT:DFRequency and
:MEASure:FFT:PEAK2 (see
(see page 815) :MEASure:FFT:DMAGnitude
page 1607)
command/query parameters.
:MEASure:FFT:THReshold (see
page 1608)
Discontinued
Commands Discontinued Command Current Command Equivalent Comments
:SPRocessing:FFEQualizer:TAP: :ANALyze:SIGNal:PATTern:* Pattern lengths and patterns
PLENgth are now specified using the
:ANALyze:SIGNal:PATTern:*
commands.
Changed
Commands Command Description
:ANALyze:SIGNal:TYPE (see CPHY has been added as a signal type.
page 285)
:BUS:B<N>:TYPE (see Added support for new CPHY (MIPI C-PHY), BRR (BroadR-Reach),
page 290) SPW (SpaceWire), and MAN (Manchester) protocols.
:CALibrate:OUTPut (see Added the PRBS7, PRBS15, and PRBS31 options for the Infiniium
page 304) 90000 X-Series, V-Series, 90000 Q-Series, and Z-Series
oscilloscopes.
:CHANnel<N>:PROBe:EADapter Added the CUR0002VA and CUR002VA options for use with the
(see page 354) E2697A or N5449A high impedance adapters.
:DISK:SAVE:WAVeform (see Added the MATlab format for saving waveforms to MATLAB (.mat)
page 465) data format files.
:MEASure:RJDJ:ALL? (see Jitter analysis is supported on PAM-4 signals. When the
page 935) ":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 Jitter analysis is supported on PAM-4 signals. When the
page 954) ":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 Added an optional <hysteresis> value at the end of the command
:PAMCustom (see page 977) parameters.
Obsolete
Commands Obsolete Command Current Command Equivalent Behavior Differences
:ANALyze:CLOCk:METHod:PAM: None The command works and as
B03 (see page 1573) before, but changing its default
(ON) is not necessary.
:ANALyze:CLOCk:METHod:PAM: None The command works and as
B12 (see page 1575) before, but changing its default
(ON) is not necessary.
:ANALyze:CLOCk:METHod:PAM: None The command works and as
NONSymmetric (see before, but changing its default
page 1577) (OFF) is not necessary.
Command Description
:CHANnel<N>:SIMulation:FLOa Specifies whether the simulated waveform should repeat from the
d:LOOP (see page 392) beginning of the file when reaching the end of the file (for the FILE
simulated waveform type).
:CHANnel<N>:SIMulation:FREQ Specifies the frequency of the simulated waveform (for the CLOCk
uency (see page 393) or FUNCtion simulated waveform types).
:CHANnel<N>:SIMulation:FUN Specifies the simulated waveform function type (for the FUNCtion
Ction:SELection (see simulated waveform type).
page 394)
:CHANnel<N>:SIMulation:FUN Specifies the square wave's duty cycle high time percent value
Ction:SQUare:DCYCle (see (when the FUNCtion simulated waveform type is selected and the
page 395) SQUare function is selected).
:CHANnel<N>:SIMulation:FUN Specifies the square wave's high-to-low transition time (when the
Ction:SQUare:FTIMe (see FUNCtion simulated waveform type is selected and the SQUare
page 396) function is selected).
:CHANnel<N>:SIMulation:FUN Specifies the square wave's low-to-high transition time (when the
Ction:SQUare:RTIMe (see FUNCtion simulated waveform type is selected and the SQUare
page 397) function is selected).
:CHANnel<N>:SIMulation:JITTe Turns all simulated waveform jitter off or on while saving the
r (see page 398) values.
:CHANnel<N>:SIMulation:JITTe Specifies the amount of Aperiodic Bounded Uniform Jitter (ABUJ)
r:ABUJ (see page 399) to apply to the simulated waveform.
:CHANnel<N>:SIMulation:JITTe Turns the periodic jitter for the simulated waveform on or off.
r:PERiodic<M>:ENABle (see
page 400)
:CHANnel<N>:SIMulation:JITTe Specifies the frequency of the periodic jitter applied to the
r:PERiodic<M>:FREQuency simulated waveform.
(see page 401)
:CHANnel<N>:SIMulation:JITTe Specifies the magnitude of the periodic jitter applied to the
r:PERiodic<M>:MAGNitude simulated waveform.
(see page 402)
:CHANnel<N>:SIMulation:JITTe Specifies the shape of the periodic jitter applied to the simulated
r:PERiodic<M>:SHAPe (see waveform.
page 403)
:CHANnel<N>:SIMulation:JITTe Specifies the standard deviation of random jitter to apply.
r:RANDom (see page 404)
:CHANnel<N>:SIMulation:NOIS Turns all simulated waveform noise off or on while saving the
e (see page 405) values.
:CHANnel<N>:SIMulation:NOIS Turns the noise filter on or off.
e:BWLimit (see page 406)
Command Description
:CHANnel<N>:SIMulation:NOIS Turns the periodic noise for the simulated waveform on or off.
e:PERiodic<M>:ENABle (see
page 407)
:CHANnel<N>:SIMulation:NOIS Specifies the frequency of the periodic noise applied to the
e:PERiodic<M>:FREQuency simulated waveform.
(see page 408)
:CHANnel<N>:SIMulation:NOIS Specifies the magnitude of the periodic noise applied to the
e:PERiodic<M>:MAGNitude simulated waveform.
(see page 409)
:CHANnel<N>:SIMulation:NOIS Specifies the shape of the periodic noise applied to the simulated
e:PERiodic<M>:SHAPe (see waveform.
page 410)
:CHANnel<N>:SIMulation:NOIS Specifies the standard deviation of random noise to apply.
e:RANDom (see page 411)
:CHANnel<N>:SIMulation:OFFS Specifies the offset of the simulated waveform.
et (see page 412)
:CHANnel<N>:SIMulation:WAV Sets the simulated waveform type.
eform (see page 413)
:FUNCtion<F>:MLOG (see Adds a function waveform that is a scrolling record of
page 561) measurement values over time.
:MEASure:THResholds:GENaut Automatically sets the general "Custom: thresholds +/-
o (see page 970) hysteresis" when thresholds apply to individual waveforms.
:MTESt:COUNt:SUI? (see Returns the total number of samples that have been mask tested
page 706) in the UI bit time.
:SYSTem:HLED (see On Infiniium 90000 Q-Series, S-Series, V-Series, and Z-Series
page 1228) oscilloscopes, this command turns the Turn off Front Panel LEDs
user preference on or off.
:WAVeform:CGRade:HEIGht? Returns the color grade (pixel) database data height (when the
(see page 1458) CGRade waveform view is selected).
:WAVeform:CGRade:WIDTh? Returns the color grade (pixel) database data width (when the
(see page 1459) CGRade waveform view is selected).
:WMEMory<R>:SEGMented:CO When segmented memory acquisitions are saved to waveform
UNt? (see page 1524) memory, this query returns the number of segments in the
waveform memory.
:WMEMory<R>:SEGMented:IN When segmented memory acquisitions are saved to waveform
Dex (see page 1525) memory, this command command sets the index number for the
segment that you want to display on screen.
:WMEMory<R>:SEGMented:PL When segmented memory acquisitions are saved to waveform
AY (see page 1526) memory, this command command plays (or stops) the segments.
Changed
Commands Command Description
:ANALyze:CLOCk:METHod:JTF There are now Third Order PLL options.
(see page 259)
:ANALyze:CLOCk:METHod:OJTF There are now Third Order PLL options.
(see page 261)
:BUS:B<N>:TYPE (see Added support for new SPMI and GENRaw protocols.
page 290)
:FUNCtion<F>:FFT:DETector:TY The RMS detector type has been added.
PE (see page 527)
:FUNCtion<F>:HORizontal:POSi For functions where the horizontal position cannot be adjusted,
tion (see page 546) this command now gives a -221,"Settings conflict" instead of
being accepted without effect.
:FUNCtion<F>:HORizontal:RAN For functions where the horizontal position cannot be adjusted,
Ge (see page 548) this command now gives a -221,"Settings conflict" instead of
being accepted without effect.
:HOSTed:FOLLower<N>:CONFi Added the ability to configure a "Simulated Instrument" to set up
gure (see page 614) simulated waveforms.
:MTESt:SOURce (see Waveform memories can now be used as a source for mask
page 749) testing.
:WAVeform:FORMat (see There is now a FLOat option for getting color grade (pixel)
page 1485) database data in single-precision floating-point format (when the
CGRade waveform view is selected).
:WAVeform:VIEW (see There is now a CGRade option for getting color grade (pixel)
page 1501) database data.
Discontinued
Commands Discontinued Command Current Command Equivalent Comments
:MEASure:THResholds:RFALl:H None Rise/fall thresholds are no
YSTeresis longer set using hysteresis and
level values.
Changed
Commands Command Description
:SPRocessing:CTLequalizer:NU Now that you can specify up to two zeros for a 3-pole CTLE, the
MPoles (see page 1178) previous POLE3 option has been replaced by P3Z1 and P3Z2.
:MEASure:RJDJ:BER (see You can now set J4 and J5 jitter BER levels.
page 939)
Command Description
:MEASure:ERATio (see The command installs an Extinction Ratio measurement into the
page 807) user interface's measurement Results pane. The query returns the
measured Extinction Ratio.
:MEASure:FFT:CPOWer (see The command installs a channel power measurement into the
page 812) user interface's measurement Results pane. The query returns the
measured channel power.
:MEASure:FFT:OBW (see The command installs an occupied bandwidth measurement into
page 821) the user interface's measurement Results pane. The query returns
the measured occupied bandwidth.
:MEASure:FFT:PSD (see The command installs a power spectral density measurement into
page 822) the user interface's measurement Results pane. The query returns
the measured power spectral density.
:MEASure:OMAMplitude (see The command installs an Optical Modulation Amplitude (OMA)
page 879) measurement into the user interface's measurement Results
pane. The query returns the measured Optical Modulation
Amplitude (OMA).
:MEASure:OPOWer (see The command installs an Optical Average Power measurement
page 880) into the user interface's measurement Results pane. The query
returns the measured Optical Average Power.
:MTESt:COUNt:MARGin:FAILure Returns the margin failure count for a specified region.
s? (see page 705)
:MTESt:MARGin:AUTO:HITS When the automatic margin method is selected, and the hit ratio
(see page 734) method is selected, this command specifies the hit count.
:MTESt:MARGin:AUTO:HRATio When the automatic margin method is selected, and the hit ratio
(see page 735) method is selected, this command specifies the hit ratio.
:MTESt:MARGin:AUTO:METHod When the automatic margin method is selected, this command
(see page 736) selects between the hit count and hit ratio and automatic margin
methods.
:MTESt:MARGin:METHod (see Selects between the manual and automatic margin types.
page 737)
:MTESt:MARGin:PERCent (see When the manual margin method is selected, this command
page 738) specifies the margin percent.
:MTESt:MARGin:STATe (see Enables or disables mask margin testing.
page 739)
:XTALk Commands (see The commands in the XTALk subsystem are used to control the
page 1531) Crosstalk Analysis application.
Changed
Commands Command Description
:BUS:B<N>:TYPE (see Added support for new A429, M1553, and I3C protocols.
page 290)
:DISPlay:SCOLor (see Added the ability to set colors for MMPolygons.
page 508)
:FUNCtion<F>:FFT:RESolution The command form now lets you set the FFT resolution.
(see page 531)
:MARKer:MODE (see Added XONLy and YONLy options for for the "Manual (X only)" and
page 664) "Manual (Y only)" marker modes.
:MEASure:AREA (see Added a RISing or FALLing edge parameter when "Measure All
page 765) Edges" is set and measuring a single cycle of the waveform.
Command Description
:MEASure:SER (see page 959) 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 When the signal type is PAM, this command installs a SER
page 960) (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<N>:CAN:TYPE (see Selects between standard CAN or Flexible Data Rate CAN
page 1110) (CAN FD) decode types.
:SBUS<N>:CAN:FDSPoint (see Sets the point during the bit time where the bit level is sampled to
page 1096) determine whether the bit is dominant or recessive.
:SBUS<N>:CAN:SIGNal:FDBau Sets the CAN FD baud rate in the range from 1 Mb/s to 10 Mb/s.
drate (see page 1100)
:SYSTem:DONTtabmeas (see Turns the Never tab Measurement Results user preference on or
page 1223) off.
Changed
Commands Command Description
:ANALyze:CLOCk:METHod (see They CPHY and PWM methods have been added.
page 251)
:ANALyze:SIGNal:TYPE (see MMWave has been added as a signal type.
page 285)
:DISPlay:SCOLor (see Removed the ability to set colors for MEASurements, STEXt,
page 508) TSCale, and WBACkgrnd.
:FUNCtion<F>:MATLab:CONTro Up to 6 user-defined controls supported.
l<N> (see page 555)
:SBUS<N>:CAN:TRIGger (see Additional trigger condition options for CAN FD have been added.
page 1102)
:SBUS<N>:CAN:TRIGger:PATTe Length can be from 1 to 15 bytes for CAN FD.
rn:DATA:LENGth (see
page 1106)
Obsolete
Commands Obsolete Command Current Command Equivalent Behavior Differences
:DISPlay:TAB (see page 1583) None This command is not supported
in version 5.00 or higher. The
query now returns only NONE.
:HOSTed:CALibrate:ALIGn (see None Acquired data is now always
page 1585) aligned, and this command has
no effect.
Command Description
:HOSTed:CALibrate:ALIGn (see Lets you align acquired data in the MultiScope system.
page 1585)
:HOSTed:CALibrate:CALibrate Performs the MultiScope system time-correlation calibration at
(see page 599) the level selected by :HOSTed:CALibrate:LEVel.
:HOSTed:CALibrate:CHANnel Selects the calibration channel or synchronization input where the
(see page 600) MultiScope system time-correlation procedures expect to find the
calibration signal.
:HOSTed:CALibrate:DESKew:FR Deskews frames in the MultiScope system by measuring only one
AMes (see page 602) input channel from each oscilloscope frame.
:HOSTed:CALibrate:DESKew:C Deskews all channels in the MultiScope system.
HANnels (see page 601)
:HOSTed:CALibrate:DESKew:SI Aligns the horizontal positions of the closest rising edges of all
GNals (see page 603) input signals in the MultiScope system.
:HOSTed:CALibrate:DESKew:ZE Resets MultiScope system signal skew values to zero.
RO (see page 604)
:HOSTed:CALibrate:LEVel (see Selects the MultiScope system calibration level.
page 605)
:HOSTed:CALibrate:PROMpt Specifies whether the user interface software prompts you to
(see page 607) make the proper connections while the MultiScope system
calibration runs.
:HOSTed:CALibrate:STATus:CH Returns the MultiScope system calibration status of "Deskew
ANnels? (see page 608) Channels".
:HOSTed:CALibrate:STATus:FRA Returns the MultiScope system calibration status of "Deskew
Mes? (see page 609) Frames".
:HOSTed:CALibrate:STATus:LEV Returns the MultiScope system calibration status of the currently
el? (see page 610) selected calibration level.
:HOSTed:CALibrate:STATus:SIG Returns the MultiScope system calibration status of "Deskew
Nals? (see page 611) Signals".
:HOSTed:CALibrate:TREF:DETe Automatically detects the reference clock connection between
ct (see page 612) oscilloscopes in a MultiScope system.
:HOSTed:FOLLower<N>:ACHan Returns the channel numbers assigned to a Follower oscilloscope
nels? (see page 613) in a MultiScope system.
:HOSTed:FOLLower<N>:CONFi Identifies the Follower oscilloscope in a MultiScope system by its
gure (see page 614) VISA address.
:HOSTed:FOLLower<N>:CONNe Opens the connection to a Follower oscilloscope in a MultiScope
ct (see page 615) system.
:HOSTed:FOLLower<N>:DISCo Closes the connection to a Follower oscilloscope in a MultiScope
nnect (see page 616) system.
Command Description
:HOSTed:LEADer:ACHannels? Returns the channel numbers assigned to the Leader oscilloscope
(see page 617) in a MultiScope system.
:HOSTed:LEADer:CONFigure Identifies the Leader oscilloscope in a MultiScope system by its
(see page 618) VISA address.
:HOSTed:LEADer:CONNect (see Opens the connection to the Leader oscilloscope in a MultiScope
page 619) system.
:HOSTed:LEADer:DISConnect Closes the connection to the Leader oscilloscope in a MultiScope
(see page 620) system.
:MEASure:PAM:ELEVel (see When the signal type is PAM-4, this command installs a vertical
page 883) 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 When the signal type is PAM-4, this command installs a horizontal
page 886) 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 When the signal type is PAM-4, this command installs a mean
page 895) 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 When the signal type is PAM-4, this command installs a RMS
page 897) 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 When the signal type is PAM-4, this command installs an eye
page 899) 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 When the signal type is PAM-4 and
:PAMCustom (see page 977) :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 When the signal type is PAM-4 and
:PAMAutomatic (see :MEASure:THResholds:GENeral:METHod is set to PAMAutomatic,
page 979) 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 When the signal type is PAM-4, this command specifies whether
AMAutomatic (see page 994) the PAM threshold levels for rise/fall measurements are
determined automatically or using the PAM-4 levels you specify.
:MEASure:TIEData2 (see Measures data time interval error.
page 1015)
Command Description
:MTESt:FOLDing:COUNt:UI? Returns the number of unit intervals in the real time eye.
(see page 715)
:MTESt:FOLDing:COUNt:WAVef Returns the number of waveforms in the real time eye.
orms? (see page 715)
:SYSTem:GUI (see page 1226) 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 Returns front panel graphical user interface menu strings.
page 1231)
:TRIGger:GBSerial:CLOCk (see Specifies whether an INTernal or EXTernal reference clock (and
page 1292) internal multipliers) are used to support the selected data rate.
External reference clock signals are supplied to a BNC connector
on the oscilloscope's hardware serial trigger I/O panel.
:TRIGger:GBSerial:CLOCk:FREQ When an external reference clock is used, this command specifies
uency (see page 1293) its frequency.
:TRIGger:GBSerial:DRATe (see Specifies the data rate of the serial signal. Common data rates are
page 1295) supported.
:TRIGger:GBSerial:MODE (see Selects the hardware serial trigger mode ("generic" sequences,
page 1297) 8b/10b sequences, or PRBS errors).
:TRIGger:GBSerial:PATTern (see When triggering on "generic" sequences or 8b/10b sequences,
page 1298) this command specifies the bit pattern to trigger on.
:TRIGger:GBSerial:POLarity When triggering on PRBS errors, this command specifies the
(see page 1299) polarity of the selected PRBS pattern.
:TRIGger:GBSerial:PRBS (see When triggering on PRBS errors, this command specifies the
page 1300) pattern to check when looking for errors. You can select PRBS 7,
15, 23, or 31 patterns.
:TRIGger:GBSerial:SOURce Specifies the oscilloscope input channel on which the hardware
(see page 1301) serial trigger operates. This is always CHANnel1.
Changed
Commands Command Description
:ANALyze:CLOCk:METHod (see When the signal type is PAM-4, a symbol rate (baud) is specified
page 251) instead of a data rate (b/s).
:ANALyze:CLOCk:METHod:JTF When the signal type is PAM-4, a symbol rate (baud) is specified
(see page 259) instead of a data rate (b/s).
:ANALyze:CLOCk:METHod:OJTF When the signal type is PAM-4, a symbol rate (baud) is specified
(see page 261) instead of a data rate (b/s).
:CHANnel<N>:PROBe:HEAD:VT Supports the N7010A active termination adapter (regardless of
ERm (see page 366) the attachment/head) as well as the N5444A probe head.
:DISPlay:CGRade (see When the <source> parameter is not provided, enabling color
page 477) grade will turn off the main waveform view, and disabling color
grade will turn on the main waveform view.
:DISK:SAVE:MEASurements Added the <legacy_save_mode> option to save measurement
(see page 462) results in the format used prior to Infiniium version 5.00.
:MEASure:CGRade:EHEight When the signal type is PAM-4, an additional <threshold>
(see page 775) parameter is used to specify which eye, and the <algorithm>
parameter is ignored.
:MEASure:CGRade:EWIDth (see When the signal type is PAM-4, an additional <threshold>
page 778) parameter is used to specify which eye, and the <algorithm>
parameter is ignored.
:MEASure:FALLtime (see With PAM signal types, additional <start_level> and <stop_level>
page 810) parameters are used to identify the edge to measure.
:MEASure:NOISe:ALL? (see The parameters TWO and THRee are available for PAM-4 signals.
page 865)
:MEASure:RISetime (see With PAM signal types, additional <start_level> and <stop_level>
page 933) parameters are used to identify the edge to measure.
:MEASure:THResholds:GENeral When the signal type is PAM-4, you can choose between
:METHod (see page 975) PAMCustom and PAMautomatic methods for setting the general
measurement thresholds.
:MEASure:THResholds:RFALl:M When the signal type is PAM-4, you can choose between T1090
ETHod (see page 992) (10% and 90% of levels) and T2080 (20% and 80% of levels) when
setting the rise/fall measurement thresholds.
:MTESt:FOLDing (see When the <source> parameter is not provided, enabling the
page 711) 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 The <pattern> string can contain characters "2" and "3" when
page 713) specified for PAM-4 signals.
:SPRocessing:CTLequalizer:RA When the signal type is PAM-4, a symbol rate (baud) is specified
Te (see page 1182) instead of a data rate (b/s).
:SPRocessing:FFEQualizer:RAT When the signal type is PAM-4, a symbol rate (baud) is specified
e (see page 1208) instead of a data rate (b/s).
Obsolete
Commands Obsolete Command Current Command Equivalent Behavior Differences
:MEASure:TIEData (see :MEASure:TIEData2 (see Clock recovery options have
page 1610) page 1015) been removed (clock recovery
as specified with the
:ANALyze:CLOCk:METHod is
used).
When the signal type is PAM-4,
an additional <threshold>
parameter is used to specify
the threshold at which to make
the TIE measurements.
:MTESt:FOLDing:COUNt? (see :MTESt:FOLDing:COUNt:UI? The :MTESt:FOLDing:COUNt?
page 1612) (see page 715) query returns two values for UI
:MTESt:FOLDing:COUNt:WAVef count and waveform count.
orms? (see page 717) 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.
Obsolete
Commands Obsolete Command Current Command Equivalent Behavior Differences
:MEASure:CLOCk (see :ANALyze:CLOCk (see There are no differences in
page 1586) page 250) behavior. This is just a
remapping of commands into a
:MEASure:CLOCk:METHod (see :ANALyze:CLOCk:METHod (see
new subsystem.
page 1587) page 251)
:MEASure:CLOCk:METHod:ALIG :ANALyze:CLOCk:METHod:ALIG
n (see page 1591) n (see page 254)
:MEASure:CLOCk:METHod:DEE :ANALyze:CLOCk:METHod:DEE
Mphasis (see page 1592) Mphasis (see page 255)
:MEASure:CLOCk:METHod:EDG :ANALyze:CLOCk:METHod:EDG
E (see page 1593) E (see page 256)
:MEASure:CLOCk:METHod:JTF :ANALyze:CLOCk:METHod:JTF
(see page 1595) (see page 259)
:MEASure:CLOCk:METHod:OJT :ANALyze:CLOCk:METHod:OJTF
F (see page 1597) (see page 261)
:MEASure:CLOCk:METHod:PLLT :ANALyze:CLOCk:METHod:PLLT
rack (see page 1599) rack (see page 264)
:MEASure:CLOCk:METHod:SOU :ANALyze:CLOCk:METHod:SOU
Rce (see page 1600) Rce (see page 267)
:MEASure:CLOCk:VERTical (see :ANALyze:CLOCk:VERTical (see
page 1601) page 268)
:MEASure:CLOCk:VERTical:OFF :ANALyze:CLOCk:VERTical:OFF
Set (see page 1602) Set (see page 269)
:MEASure:CLOCk:VERTical:RAN :ANALyze:CLOCk:VERTical:RAN
Ge (see page 1603) Ge (see page 270)
:MEASure:JITTer:STATistics :ANALyze:AEDGes (see The :ANALyze:AEDGes
(see page 1609) page 249) 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.
Changed
Commands Command Description
:CHANnel<N>:PROBe:EADapter Added the DIV1000, CUR001VA, CUR01VA, CUR1VA, CUR10VA,
(see page 354) CURN2893, CUR1147, HIVOLTN2790 options for use with the
E2697A or N5449A high impedance adapters.
:FUNCtion<F>:MHIStogram Lets you specify the maximum number of histogram bins along
(see page 558) with the measurement source.
:SBUS<N>:MODE (see Added the FLEXray and LIN mode options.
page 1094)
Command Description
:SBUS<N>:CAN:SOURce (see Added the NONE parameter to make the previously selected
page 1101) channel, waveform memory, or math function available for other
decodes (same as selecting "None" for the source in the user
:SBUS<N>:IIC:SOURce:CLOCk
interface).
(see page 1131)
:SBUS<N>:IIC:SOURce:DATA
(see page 1132)
:SBUS<N>:SPI:SOURce:CLOCk
(see page 1152)
:SBUS<N>:SPI:SOURce:DATA
(see page 1154)
:SBUS<N>:SPI:SOURce:FRAMe
(see page 1156)
:SBUS<N>:SPI:SOURce:MISO
(see page 1157)
:SBUS<N>:SPI:SOURce:MOSI
(see page 1158)
Changed
Commands Command Description
:MEASure:CLOCk:METHod (see The PCIE clock recovery method has been removed.
page 1587)
Command Description
:MTESt:FOLDing:POSition (see Sets the real-time eye horizontal center position in unit intervals.
page 721)
:MTESt:FOLDing:SCALe (see Sets the real-time eye horizontal scale, that is, the number of unit
page 723) intervals (UIs) shown on screen.
:SBUS<N>:HS:DESCramble Turns high-speed descrambling on or off if supported by the
(see page 1125) protocol type.
:SBUS<N>:HS:FORMat (see Specifies the high-speed symbol display format.
page 1126)
:SBUS<N>:HS:IDLE (see Specifies whether electrical idles are present in the signal.
page 1127)
:SBUS<N>:HS:SOURce<S> Specifies the signal that is the high-speed data source.
(see page 1128)
:TIMebase:REFerence:PERCent Sets the timebase reference (trigger) position as a percent of
(see page 1244) screen value.
Changed
Commands Command Description
:BUS:B<N>:TYPE (see Added support for new protocols.
page 290)
:DISK:SAVE:LISTing (see Added the <type> parameter for specifying which display window
page 461) to save.
:DISPlay:CGRade (see Added the optional <source> parameter for specifying the
page 477) waveform on which color grade should be turned on or off.
:DISPlay:CGRade:LEVels (see This query is unchanged but results are returned only when a
page 479) single color grade view is on.
:DISPlay:CONNect (see Added the optional <source> parameter for specifying the
page 483) waveform on which the setting should be made.
:DISPlay:GRATicule:NUMBer Number of grids can be any number between 1 and 16 (not just 1,
(see page 488) 2, 4, 8, or 16). You can also specify which waveform area the
number of grids setting is for.
:DISPlay:GRATicule:SETGrat In addition to assigning a waveform to a grid, you can now
(see page 489) 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 Added the optional <source> parameter for specifying the
page 501) waveform on which the persistence setting should be made.
:LISTer:DATA (see page 656) Added the <type> parameter for specifying which display window
to save.
Command Description
:MEASure:CGRade:CROSsing Added the optional <source> parameter for specifying the
(see page 773) waveform on which the color grade crossing level percent is
measured.
:MEASure:CGRade:DCDistortio Added the optional <source> parameter for specifying the
n (see page 774) waveform on which the color grade duty cycle distortion is
measured.
:MEASure:CGRade:EHEight Added the optional <source> parameter for specifying the
(see page 775) waveform on which the color grade eye height is measured.
:MEASure:CGRade:EWIDth (see Added the optional <source> parameter for specifying the
page 778) waveform on which the color grade eye width is measured.
:MEASure:CGRade:EWINdow Added the optional <source> parameter for specifying the
(see page 780) waveform on which the color grade eye window is applied.
:MEASure:CGRade:JITTer (see Added the optional <source> parameter for specifying the
page 782) waveform on which the color grade jitter is measured.
:MEASure:CGRade:QFACtor Added the optional <source> parameter for specifying the
(see page 784) waveform on which the color grade Q factor is measured.
:MEASure:WINDow (see Added the CGRade (color grade) view as a measurement window
page 1043) option.
:MTESt:FOLDing (see Added the optional <source> parameter for specifying the
page 711) waveform on which to enable/disable the real-time eye.
:MTESt:FOLDing:BITS (see Added the required <source> parameter to specify the waveform
page 713) on which to set the real-time eye bit qualification.
:MTESt:FOLDing:FAST (see Added the optional <source> parameter for specifying the
page 719) waveform on which to set the fast worst-case option.
:TIMebase:REFerence (see Query can now return PERC when a reference position percent
page 1243) value is being used.
Obsolete
Commands Obsolete Command Current Command Equivalent Behavior Differences
:DISPlay:COLumn (see :DISPlay:BOOKmark<N>:XPOSi Bookmarks are now the
page 1579) tion (see page 475) method used to place text
strings or annotations on
:DISPlay:LINE (see :DISPlay:BOOKmark<N>:SET
screen.
page 1580) (see page 472)
:DISPlay:ROW (see :DISPlay:BOOKmark<N>:YPOSi
page 1581) tion (see page 476)
:DISPlay:STRing (see :DISPlay:BOOKmark<N>:SET
page 1582) (see page 472)
:DISPlay:TEXT (see :DISPlay:BOOKmark<N>:DELet
page 1584) e (see page 471)
Discontinued
Commands Discontinued Command Current Command Equivalent Comments
:DISPlay:GRATicule:SIZE None Graticule sizing is different in
the next-generation Infiniium
user interface software.
Changed
Commands Command Description
:SBUS<N>:MODE (see Added CAN mode option.
page 1094)
Changed
Commands Command Description
:DIGital<N>:THReshold (see There is now the DIFFerential parameter for specifying the
page 447) threshold voltage.
:DISK:SAVE:WAVeform (see There is now the H5INt format parameter which saves waveform
page 465) data as integers within the H5 file.
:POD<N>:THReshold (see There is now the DIFFerential parameter for specifying the
page 1050) threshold voltage.
Changed
Commands Command Description
Function Commands (see You can now define up to 16 functions.
page 513)
Changed
Commands Command Description
:MEASure:CLOCk:METHod (see The command options for specifying clock recovery PLL options
page 1587) have been moved to the new commands
:MEASure:CLOCk:METHod:JTF and
:MEASure:CLOCk:METHod:OJTF.
Obsolete
Commands Obsolete Command Current Command Description
Equivalent
:MEASure:DDPWS :MEASure:RJDJ:ALL? The :MEASure:RJDJ:ALL? query returns all of the
(see page 935) RJDJ jitter measurements.
Changed
Commands Command Description
:MEASure:NOISe:ALL (see New results can be returned depending on the
page 865) :MEASure:NOISe:METHod and :MEASure:NOISe:REPort settings.
:MEASure:RJDJ:ALL (see New results can be returned depending on the
page 935) :MEASure:RJDJ:METHod and :MEASure:RJDJ:REPort settings.
Changed
Commands Command Description
:ACQuire:BANDwidth (see There is now a MAX option for selecting the maximum bandwidth.
page 217)
:MTESt:FOLDing:BITS (see There is now a PATTern option for specifying bit pattern
page 713) qualification for the real-time eye display.
Command Description
:MEASure:RJDJ:SCOPe:RJ (see Specifies the removal of the oscilloscope's calibrated random
page 951) jitter from the reported RJ.
:SBUS<N> Commands (see For setting up IIC and SPI serial decode and triggering.
page 1091)
Changed
Commands Command Description
:CHANnel<N>:PROBe:HEAD:SE Now lets you select probe heads by the labels given with the
Lect (see page 365) :CHANnel<N>:PROBe:HEAD:ADD command.
:MEASure:HISTogram:HITS Can now use this command with Meas Histogram math functions.
(see page 826)
:MEASure:HISTogram:M1S (see Can now use this command with Meas Histogram math functions.
page 827)
:MEASure:HISTogram:M2S (see Can now use this command with Meas Histogram math functions.
page 828)
:MEASure:HISTogram:M3S (see Can now use this command with Meas Histogram math functions.
page 829)
:MEASure:HISTogram:MAX (see Can now use this command with Meas Histogram math functions.
page 830)
:MEASure:HISTogram:MEAN Can now use this command with Meas Histogram math functions.
(see page 831)
:MEASure:HISTogram:MEDian Can now use this command with Meas Histogram math functions.
(see page 832)
:MEASure:HISTogram:MIN (see Can now use this command with Meas Histogram math functions.
page 833)
:MEASure:HISTogram:MODE Can now use this command with Meas Histogram math functions.
(see page 834)
:MEASure:HISTogram:PEAK Can now use this command with Meas Histogram math functions.
(see page 835)
:MEASure:HISTogram:PP (see Can now use this command with Meas Histogram math functions.
page 836)
:MEASure:HISTogram:STDDev Can now use this command with Meas Histogram math functions.
(see page 838)
:MEASure:RJDJ:ALL (see There are two possible additional measurement results, Scope
page 935) RN(rms) and DDPWS.
:TRIGger:MODE (see Added the SBUS1, SBUS2, SBUS3, and SBUS4 selections for
page 1268) triggering on serial buses.
Changed
Commands Command Description
:BUS:B<N>:TYPE (see The MPHY protocol type has been added for the MIPI M-PHY
page 290) serial decode selection.
:FUNCtion<F>:FFT:WINDow The HAMMing window mode is now a valid selection.
(see page 537)
:MEASure:JITTer:SPECtrum:WI The HAMMing window mode is now a valid selection.
NDow (see page 852)
Command Description
:MEASure:THResholds:GENeral Sets the upper level, middle level, and lower level voltages as a
:PERCent (see page 981) percentage of the top and base voltages for everything except
rise/fall measurements and protocol decode.
:MEASure:THResholds:GENeral Sets the top level and base level voltages for everything except
:TOPBase:ABSolute (see rise/fall measurements and protocol decode.
page 983)
:MEASure:THResholds:GENeral Determines the way that the top and base of a waveform are
:TOPBase:METHod (see derived for everything except rise/fall measurements and protocol
page 983) decode.
:MEASure:THResholds:RFALl:A Sets the upper level, middle level, and lower level voltages for
BSolute (see page 990) rise/fall measurements.
:MEASure:THResholds:RFALl:H Sets the hysteresis range and level level voltages for rise/fall
YSTeresis measurements.
:MEASure:THResholds:RFALl:M Specifies the way that the top and base of a waveform are
ETHod (see page 992) calculated for rise/fall measurements.
:MEASure:THResholds:RFALl:P Sets the upper level, middle level, and lower level voltages as a
ERCent (see page 996) percentage of the top and base voltages for rise/fall
measurements.
:MEASure:THResholds:RFALl:T Sets the top level and base level voltages for rise/fall
OPBase:ABSolute (see measurements.
page 998)
:MEASure:THResholds:RFALl:T Determines the way that the top and base of a waveform are
OPBase:METHod (see derived for rise/fall measurements.
page 998)
:MEASure:THResholds:SERial:A Sets the upper level, middle level, and lower level voltages for
BSolute (see page 1001) protocol decode.
:MEASure:THResholds:SERial: Sets the hysteresis range and level level voltages for protocol
HYSTeresis (see page 1003) decode.
:MEASure:THResholds:SERial: Specifies the way that the top and base of a waveform are
METHod (see page 1005) calculated for protocol decode.
:MEASure:THResholds:SERial:P Sets the upper level, middle level, and lower level voltages as a
ERCent (see page 1006) percentage of the top and base voltages for protocol decode.
:MEASure:THResholds:SERial:T Sets the top level and base level voltages for protocol decode.
OPBase:ABSolute (see
page 1008)
:MEASure:THResholds:SERial:T Determines the way that the top and base of a waveform are
OPBase:METHod (see derived for protocol decode.
page 1008)
Command Description
:SPRocessing:CTLequalizer:NU Selects either a 2 Pole or 3 Pole Continuous Time Linear
MPoles (see page 1178) Equalization.
:SPRocessing:CTLequalizer:P3 Sets the Pole 3 frequency for the Continuous Time Linear
(see page 1181) Equalization.
Changed
Commands Command Description
:ACQuire:INTerpolate (see The INT1, INT2, INT4, INT8, INT16 options have been added for
page 226) specifying the 1, 2, 4, 8, or 16 point Sin(x)/x interpolation ratios.
:MEASure:RJDJ:BER (see You can now set J2 and J9 jitter BER levels.
page 939)
:MEASure:VRMS (see The VOLT and DBM parameters have been added for specifying
page 1038) the measurement units.
:MEASure:WINDow (see The short form of the command was changed from :MEAS:WIN to
page 1043) :MEAS:WIND.
2 Setting Up
Step 1. Install Keysight IO Libraries Suite software / 96
Step 2. Connect and set up the oscilloscope / 97
Step 3. Verify the oscilloscope connection / 98
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.
95
2 Setting Up
Make sure the Keysight Infiniium software is running on the oscilloscope. It must be running
N OT E
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.
3 If your instrument does not appear, you can add it using the Manual
Configuration tab.
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.
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.
3 Introduction to Programming
Communicating with the Oscilloscope / 105
Instructions / 106
Instruction Header / 107
White Space (Separator) / 108
Braces / 109
Ellipsis / 110
Square Brackets / 111
Command and Query Sources / 112
Program Data / 113
Header Types / 114
Query Headers / 116
Program Header Options / 117
Character Program Data / 118
Numeric Program Data / 119
Embedded Strings / 120
Program Message Terminator / 121
Common Commands within a Subsystem / 122
Selecting Multiple Subsystems / 123
Programming Getting Started / 124
Referencing the IO Library / 125
Opening the Oscilloscope Connection via the IO Library / 126
Initializing the Interface and the Oscilloscope / 127
Example Program / 129
Using the DIGitize Command / 130
Receiving Information from the Oscilloscope / 132
String Variable Example / 133
Numeric Variable Example / 134
Definite-Length Block Response Data / 135
Multiple Queries / 136
Oscilloscope Status / 137
103
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.
N OT E 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.
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 <block data>, such as with the
:SYSTem:SETup command. There are only a few instructions that use block data.
Instructions are composed of two main parts:
• The header, which specifies the command or query to be sent.
• The program data, which provides additional information to clarify the meaning
of the instruction.
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 205 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.
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.
Ellipsis
... An ellipsis (trailing dots) indicates that the preceding element may be repeated
one or more times.
Square Brackets
Items enclosed in square brackets, [ ], are optional.
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.
Header Types
There are three types of headers:
• "Simple Command Header" on page 114
• "Compound Command Header" on page 114
• "Common Command Header" on page 115
See Also • "Combining Commands in the Same Subsystem" on page 115
• "Duplicate Mnemonics" on page 115
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:
<program mnemonic><separator><program data><terminator>
For example:
":DIGitize CHANnel1,FUNCtion2"
For example:
":CHANnel1:BWLimit ON"
For example:
:CHANnel1:INPut DC;BWLimit ON
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
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?"
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.
The rules for the short form syntax are described in Chapter 9, “Programming
Conventions,” starting on page 205.
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.
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.
:CHANnel1:RANGe 0.4;:TIMebase:RANGe 1
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.
' 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("<VISA Address>")
' 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("<VISA Address>")
' 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"
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<terminator>
:SYSTem:HEADer OFF<terminator>
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.
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.
' 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.
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.
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.
The format specification for handling response messages depends on both the
computer and the programming language.
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.
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: <range_value>;<delay_value>
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 157 explains
how to check the status of the oscilloscope.
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 755), 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 With overlapped commands, you can use the *OPC? query to prevent any more
Overlapped commands from being executed until the overlapped command is complete. This
Commands to may be necessary when a command that follows an overlapped command
Complete interferes with the overlapped command's processing or analysis. For example:
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.
139
4 Sequential (Blocking) vs. Overlapped Commands
Using Device Clear When sequential (blocking) commands take too long or fail to complete for some
to Abort a reason, you can send a Device Clear over the bus to clear the input buffer and
Sequential output queue, reset the parser, and clear any pending commands.
(Blocking)
Command
See Also • "*OPC — Operation Complete" on page 424
• "*ESR? — Event Status Register" on page 420
• Chapter 8, “Remote Acquisition Synchronization,” starting on page 187
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.
141
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.
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.
main()
{
INST Bus;
int reason;
unsigned long actualcnt;
char buffer[ BUFFER_SIZE ];
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 <winsock2.h>
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");
return NULL;
}
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin.addr.s_addr = inet_addr(ipAddress);
clientService.sin_port = htons(ipPort);
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.
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.
153
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 154
• "Protocol Overview" on page 154
• "Protocol Operation" on page 155
• "Protocol Exceptions" on page 155
• "Suffix Multiplier" on page 155
• "Suffix Unit" on page 156
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
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.
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.
Suffix Unit
The suffix units that the oscilloscope will accept are shown in Table 3.
7 Status Reporting
Status Reporting Data Structures / 160
Status Byte Register / 162
Service Request Enable Register / 164
Message Event Register / 165
Trigger Event Register / 166
Standard Event Status Register / 167
Standard Event Status Enable Register / 168
Operation Status Register / 169
Operation Status Enable Register / 170
Mask Test Event Register / 171
Mask Test Event Enable Register / 172
Acquisition Done Event Register / 173
Process Done Event Register / 174
Trigger Armed Event Register / 175
Auto Trigger Event Register / 176
Error Queue / 1616
Output Queue / 178
Message Queue / 179
Clearing Registers and Queues / 180
Example: Checking for Armed Status / 182
157
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.
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)
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:
• 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).
If bit 4 (weight = 16) and bit 5 (weight = 32) are set, the program prints the sum of
the two weights.
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.
N OT E 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.
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.
N OT E 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.
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.
N OT E 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.
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."
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.
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.
cd 9dndjlVci
idYdhiVijh
gZedgi^c\4
nZh
GZhZii]Z^chigjbZciVcY
XaZVgi]ZhiVijhgZ\^hiZgh/
bnHXdeZ#Lg^iZHig^c\GHI
bnHXdeZ#Lg^iZHig^c\8AH
9dndjlVciid cdNdjgegd\gVbhXVcgZVYi]ZhiVijhgZ\^hiZgh^chiZVY#
hZcYVHZgk^XZGZfjZhi
HGF^ciZggjeiidi]Z
XdcigdaaZg4
nZh
JhZi]Z[daadl^c\idgZVYi]Z
HiVcYVgY:kZciHiVijhGZ\^hiZg/
6Xi^kViZi]Z^chigjbZci[jcXi^dc
9dndjlVciid cd i]VindjlVciidbdc^idg# bnHXdeZ#Lg^iZHig^c\:HG4
gZedgiZkZcihbdc^idgZYWn kVgG2bnHXdeZ#GZVYCjbWZg
i]ZHiVcYVgY:kZciHiVijh Bh\7dm:HG/%m =ZmkVgG
GZ\^hiZg4
nZh L]ZcVc^ciZggjeidXXjgh!^ciZggjei
]VcYaZgh]djaYhZg^VaedaaHI7l^i]/
:C9
# ********************************************************************
# 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
# ====================================================================
# Method 1: Query the Armed Event Register with :AER?
# --------------------------------------------------------------------
# This method reads the 1-bit Armed Event Register using the :AER?
# query.
#
# The Armed Event Register bit goes low (0) when it is read using
# :AER? or when a *CLS command is issued.
# ====================================================================
# Because the :AER? query will not work with :DIGitize (which is
# blocking), use the :SINGle command to start the acquisition.
KsInfiniiumScope.write(":SINGle")
# ====================================================================
# 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.
# ====================================================================
# Mask out all bits in the Operation Status Register except for
# the ARM bit.
KsInfiniiumScope.write(":OPEE 32") # "Unmask" only the arm bit
# ====================================================================
# Method 3: Query the Operation Status Register with :OPER?
# --------------------------------------------------------------------
# This method reads the Operation Status Register's Wait Trig bit
# (bit 5) using the :OPER? query.
#
# The Operation Status Register bits do NOT go low (0) when the
# register is read.
#
# Also, the Wait Trig bit does NOT go low (0) when the oscilloscope
# becomes unarmed by starting or stopping another acquisition (before
# the first one finishes) or by changing the time scale.
#
# The Wait Trig bit is cleared by a *CLS command, or by reading the
# Armed Event Register register with the :AER? query.
# ====================================================================
KsInfiniiumScope.query(":STOP;*OPC?")
# Because the :OPER? query will not work with :DIGitize (which is
# blocking), use the :SINGle command to start the acquisition.
KsInfiniiumScope.write(":SINGle")
# End of Script
# --------------------------------------------------------------------
KsInfiniiumScope.clear() # Clear communications interface
KsInfiniiumScope.close() # Close communications interface
print "All done."
8 Remote Acquisition
Synchronization
Programming Flow / 188
Setting Up the Oscilloscope / 189
Acquiring a Waveform / 190
Retrieving Results / 191
Acquisition Synchronization / 192
Single Shot Device Under Test (DUT) / 202
Averaging Acquisition Synchronization / 203
187
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
It is not necessary to use the *OPC? command, hard coded waits, or status checking when
N OT E
setting up the oscilloscope.
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.
Retrieving Results
Once the acquisition is complete, it is safe to retrieve measurements and statistics.
Acquisition Synchronization
• "Blocking Synchronization" on page 192
• "Polling Synchronization With Timeout" on page 192
• "Example: Blocking and Polling Synchronization" on page 193
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?
// Setup
:STOP; *OPC? // if not stopped
:ADER? // clear ADER event
// Acquire
:SINGle
//Get results
# ********************************************************************
# 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
#
# 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.
# --------------------------------------------------------------------
# ====================================================================
# 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
# 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?")
# ====================================================================
# 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. MUST use the blocking
# method.
#
# 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:
#
# - 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.
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")
# ----------------------------------------------------------------
# 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....
# ----------------------------------------------------------------
# ====================================================================
# Do Something with data... save, export, additional analysis...
# ====================================================================
def do_something_with_data():
# ====================================================================
# Main code
# ====================================================================
# Clear the display (so you can see the waveform being acquired -
# otherwise, there is no need for this).
KsInfiniiumScope.write(":CDISplay")
N_AVERAGES = \
float(KsInfiniiumScope.query(":ACQuire:AVERage:COUNt?"))
else:
N_AVERAGES = 1
# 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."
The blocking :DIGitize command cannot be used for a single shot DUT because once the
N OT E
: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? // if not stopped
:ADER? // clear ADER event
// Acquire
:SINGle
while(AER? == 0)
{
wait(100ms)
}
//Get results
if (currentTime < TIMEOUT)
{
:MEASure:RISetime?
}
:STOP;*OPC?
:TER?
:ACQ:AVERage:COUNt AVERAGE_COUNT
:ACQ:AVERage ON
:RUN
:STOP;*OPC?
// Get results
9 Programming Conventions
Truncation Rule / 206
The Command Tree / 207
Infinity Representation / 210
Response Generation / 211
EOI / 212
205
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.
This document's command descriptions shows how the truncation rule is applied
to commands.
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.
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).
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"
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.
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.
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.
EOI
The EOI bus control line follows the IEEE 488.2 standard without exception.
10 Acquire Commands
:ACQuire:AVERage / 215
:ACQuire[:AVERage]:COUNt / 216
:ACQuire:BANDwidth / 217
:ACQuire:BANDwidth:FRAMe? / 219
:ACQuire:BANDwidth:TESTLIMITS? / 220
:ACQuire:COMPlete / 221
:ACQuire:COMPlete:STATe / 223
:ACQuire:HRESolution / 224
:ACQuire:INTerpolate / 226
:ACQuire:MODE / 227
:ACQuire:POINts[:ANALog] — Memory depth / 229
:ACQuire:POINts:AUTO / 231
:ACQuire:POINts:DIGital? / 232
:ACQuire:POINts:TESTLIMITS? / 233
:ACQuire:REDGe — RealEdge Channel Inputs (90000 Q-Series, Z-Series) / 234
:ACQuire:RESPonse (90000A Series, 90000 X-Series, V-Series, 90000 Q-Series,
Z-Series) / 235
:ACQuire:SEGMented:AUToplay / 236
:ACQuire:SEGMented:COUNt / 237
:ACQuire:SEGMented:INDex / 238
:ACQuire:SEGMented:PLAY / 239
:ACQuire:SEGMented:PRATe / 240
:ACQuire:SEGMented:TTAGs / 241
:ACQuire:SRATe[:ANALog] — Analog Sample Rate / 242
:ACQuire:SRATe[:ANALog]:AUTO / 243
:ACQuire:SRATe:DIGital — Digital Channels Sample Rate / 244
:ACQuire:SRATe:DIGital:AUTO / 245
:ACQuire:SRATe:TESTLIMITS? / 246
213
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.
:ACQuire:AVERage
Command :ACQuire:AVERage {{ON|1} | {OFF|0}}
Query :ACQuire:AVERage?
Example 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
:ACQuire[:AVERage]:COUNt
Command :ACQuire[:AVERage]:COUNt <count_value>
Query :ACQuire[:AVERage]:COUNt?
:ACQuire:BANDwidth
Command :ACQuire:BANDwidth {AUTO | MAX | <bandwidth>}
The DSO/MSO 9000 Series oscilloscopes do not have AUTO and MAX modes. Sending the
N OT E
: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.
Query :ACQuire:BANDwidth?
:ACQuire:BANDwidth:FRAMe?
Query :ACQuire:BANDwidth:FRAMe?
:ACQuire:BANDwidth:TESTLIMITS?
Query :ACQuire:BANDwidth:TESTLIMITS?
:ACQuire:COMPlete
Command :ACQuire:COMPlete <percent>
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%.
<percent> An integer, 0 to 100, representing the percentage of storage bins (time buckets)
that must be full before an acquisition is considered complete.
Example This example sets the completion criteria for the next acquisition to 90%.
myScope.WriteString ":ACQuire:COMPlete 90"
Query :ACQuire:COMPlete?
<percent> An integer, 0 to 100, representing the percentage of time buckets that must be full
before an acquisition is considered complete.
Example 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)
:ACQuire:COMPlete:STATe
Command :ACQuire:COMPlete:STATe {{ON | 1} | {OFF | 0}}
The :ACQuire:COMPlete:STATe command is used only when the oscilloscope is running and a
N OT E
digitize operation is not being performed. The :DIGitize command temporarily overrides the
setting of this mode and forces it to ON.
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?
:ACQuire:HRESolution
Command :ACQuire:HRESolution {AUTO | BITS9 | BITS10 | BITS11 | BITS12
| BITF11 | BITF12 | BITF13 | BITF14 | BITF15 | BITF16}
Some of the BITS settings may not be valid in certain 9000H Series models.
N OT E
Example This example sets the bit resolution setting to a minimum of 11 bits.
myScope.WriteString ":ACQuire:HRESolution BITS11"
Query :ACQuire:HRESolution?
Example 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
:ACQuire:INTerpolate
Command :ACQuire:INTerpolate {{ON | 1} | {OFF | 0} | INT1 | INT2 | INT4 | INT8
| INT16}
:ACQuire:MODE
Command :ACQuire:MODE {ETIMe | RTIMe | PDETect | HRESolution | SEGMented
| SEGPdetect | SEGHres}
In the 9000H Series oscilloscopes, HRESolution and SEGHres are the only valid options.
N OT E
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
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 224.
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 224.
Example This example sets the acquisition mode to Real Time Normal.
myScope.WriteString ":ACQuire:MODE RTIMe"
Query :ACQuire:MODE?
Example 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
Query :ACQuire:POINts[:ANALog]?
Example 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)
:ACQuire:POINts:AUTO
Command :ACQuire:POINts:AUTO {{ON | 1} |{OFF | 0}}
Query :ACQuire:POINts:AUTO?
Example 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)
: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).
:ACQuire:POINts:TESTLIMITS?
Query :ACQuire:POINts:TESTLIMITS?
Query :ACQuire:REDGe?
The :ACQuire:REDGe? query returns the current setting for RealEdge channel
inputs.
Returned Format [:ACQuire:REDGe] {1 | 0}<NL>
Example 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
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?
Example 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)
:ACQuire:SEGMented:AUToplay
Command :ACQuire:SEGMented:AUToplay {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:ACQuire:SEGMented:COUNt
Command :ACQuire:SEGMented:COUNt <#segments>
Query :ACQuire:SEGMented:COUNt?
Example 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)
:ACQuire:SEGMented:INDex
Command :ACQuire:SEGMented:INDex <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.
<index#> 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?
Example 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)
:ACQuire:SEGMented:PLAY
Command :ACQuire:SEGMented:PLAY {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:ACQuire:SEGMented:PRATe
Command :ACQuire:SEGMented:PRATe <time_per_seg>
: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?
Example 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)
Query :ACQuire:SRATe[:ANALog]?
Example 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
:ACQuire:SRATe[:ANALog]:AUTO
Command :ACQuire:SRATe[:ANALog]:AUTO {{ON | 1} | {OFF | 0}}
Query :ACQuire:SRATe[:ANALog]:AUTO?
Example 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)
Example 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
:ACQuire:SRATe:DIGital:AUTO
Command :ACQuire:SRATe:DIGital:AUTO {{ON | 1} | {OFF | 0}}
Query :ACQuire:SRATe:DIGital:AUTO?
Example 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)
:ACQuire:SRATe:TESTLIMITS?
Query :ACQuire:SRATe:TESTLIMITS?
11 Analyze Commands
:ANALyze:AEDGes / 249
:ANALyze:CLOCk / 250
:ANALyze:CLOCk:METHod / 251
:ANALyze:CLOCk:METHod:ALIGn / 254
:ANALyze:CLOCk:METHod:DEEMphasis / 255
:ANALyze:CLOCk:METHod:EDGE / 256
:ANALyze:CLOCk:METHod:IDLe / 258
:ANALyze:CLOCk:METHod:JTF / 259
:ANALyze:CLOCk:METHod:OJTF / 261
:ANALyze:CLOCk:METHod:PLLTrack / 264
:ANALyze:CLOCk:METHod:SKEW / 265
:ANALyze:CLOCk:METHod:SKEW:AUTomatic / 266
:ANALyze:CLOCk:METHod:SOURce / 267
:ANALyze:CLOCk:VERTical / 268
:ANALyze:CLOCk:VERTical:OFFSet / 269
:ANALyze:CLOCk:VERTical:RANGe / 270
:ANALyze:SIGNal:DATarate / 271
:ANALyze:SIGNal:SYMBolrate / 273
:ANALyze:SIGNal:MIXer:CABLeloss / 275
:ANALyze:SIGNal:MMWave:CALibrate / 276
:ANALyze:SIGNal:MMWave:CFRequency / 277
:ANALyze:SIGNal:MMWave:CONNect / 278
:ANALyze:SIGNal:MMWave:LOADdress / 279
:ANALyze:SIGNal:MMWave:MBANdwidth / 280
:ANALyze:SIGNal:PATTern:CLEar / 281
:ANALyze:SIGNal:PATTern:LOAD / 282
:ANALyze:SIGNal:PATTern:PLENgth / 283
:ANALyze:SIGNal:PATTern:SMAP / 284
:ANALyze:SIGNal:TYPE / 285
:ANALyze:VIEW / 288
247
11 Analyze Commands
where:
:ANALyze:AEDGes
Command :ANALyze:AEDGes {{0 | OFF} | {1 | ON}}
:ANALyze:CLOCk
Command :ANALyze:CLOCk {{{ON|1},<source>} | {OFF|0}}
The :ANALyze:CLOCk command turns the recovered clock display on or off and
sets the clock recovery channel source.
<source> {CHANnel<N> | DIFF<D> | COMMonmode<C> | FUNCtion<F> | WMEMory<R>}
For more information on <source> parameters, see "Sources for Analyze
Commands" on page 248.
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 [:ANALyze:CLOCk] {1 | 0}<NL>
Example 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 New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk" on page 1586.
:ANALyze:CLOCk:METHod
Command :ANALyze:CLOCk:METHod
{FC,{FC1063 | FC2125 | FC425}}
| {EXPlicit,<source>,{RISing | FALLing | BOTH}[,<multiplier>]}
| {FIXed,{AUTO | {SEMI[,<data_rate>]} | <data_rate>}}
| {FLEXR,<baud_rate>}
| {FLEXT,<baud_rate>}
| {PWM}
| {CPHY[,<symbol_rate>[,<setup_UI>]]}
| {BMC}
| {LFPS}
<symbol_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.
<setup_UI> 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?
You can use the :ANALyze:CLOCk:METHod? query when phase-locked loop (PLL) clock
N OT E
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 261.
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?"
strSetting = myScope.ReadString
Debug.Print strSetting
:ANALyze:CLOCk:METHod:ALIGn
Command :ANALyze:CLOCk:METHod:ALIGn {CENTer | EDGE}
Query :ANALyze:CLOCK:METHod:ALIGn?
Example 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
:ANALyze:CLOCk:METHod:DEEMphasis
Command :ANALyze:CLOCk:METHod:DEEMphasis {OFF | ON}
Query :ANALyze:CLOCk:METHod:DEEMphasis?
Example 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
:ANALyze:CLOCk:METHod:EDGE
Command :ANALyze:CLOCk:METHod:EDGE {RISing | FALLing | BOTH}
Query :ANALyze:CLOCK:METHod:EDGE?
Example 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.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:METHod:EDGE?"
strSetting = myScope.ReadString
Debug.Print strSetting
:ANALyze:CLOCk:METHod:IDLe
Command :ANALyze:CLOCk:METHod:IDLe <#_idle_clocks>
:ANALyze:CLOCk:METHod:JTF
Command :ANALyze:CLOCk:METHod:JTF
{FOPLL,<data_rate>,<jtf_loop_bandwidth>}
| {EQFOPLL,<data_rate>,<jtf_loop_bandwidth>}
| {SOPLL,<data_rate>,<jtf_loop_bandwidth>, <peaking>}
| {EQSOPLL,<data_rate>,<jtf_loop_bandwidth>, <peaking>}
| {EXPFOPLL,<source>,{RISing | FALLing | BOTH},
<multiplier>,<clock_freq>,<jtf_loop_bandwidth>}
| {EXPSOPLL,<source>,{RISing | FALLing | BOTH},
<multiplier>,<clock_freq>,<jtf_loop_bandwidth>,<peaking>}
<jtf_loop_ A real number for the cutoff frequency for the PLL to track.
bandwidth>
<multiplier> An integer used as the multiplication factor.
<clock_freq> 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?
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:JTF?"
strSetting = myScope.ReadString
Debug.Print strSetting
:ANALyze:CLOCk:METHod:OJTF
Command :ANALyze:CLOCk:METHod:OJTF
{FOPLL,<data_rate>,<ojtf_loop_bandwidth>}
| {EQFOPLL,<data_rate>,<ojtf_loop_bandwidth>}
| {SOPLL,<data_rate>,<ojtf_loop_bandwidth>, <damping_factor>}
| {EQSOPLL,<data_rate>,<ojtf_loop_bandwidth>, <damping_factor>}
| {TOPLL,<data_rate>,<natural_frequency>,<pole_frequency>,
<damping_factor>[,<PLL_settling_time>]}
| {EQTOPLL,<data_rate>,<natural_frequency>,<pole_frequency>,
<damping_factor>[,<PLL_settling_time>]}
| {EXPFOPLL,<source>,{RISing | FALLing | BOTH},
<multiplier>,<clock_freq>,<ojtf_loop_bandwidth>}
| {EXPSOPLL,<source>,{RISing | FALLing | BOTH},
<multiplier>,<clock_freq>,<ojtf_loop_bandwidth>,<damping_factor>}
| {EXPTOPLL,<source>,{RISing | FALLing | BOTH},
<multiplier>,<clock_freq>,<natural_frequency>,<pole_frequency>,
<damping_factor>}
Query :ANALyze:CLOCk:METHod:OJTF?
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.
:ANALyze:CLOCk:METHod:PLLTrack
Command :ANALyze:CLOCk:METHod:PLLTrack {OFF | ON}
Query :ANALyze:CLOCk:METHod:PLLTrack?
Example 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
:ANALyze:CLOCk:METHod:SKEW
Command :ANALyze:CLOCk:METHod:SKEW <time>
:ANALyze:CLOCk:METHod:SKEW:AUTomatic
Command :ANALyze:CLOCk:METHod:SKEW:AUTomatic
:ANALyze:CLOCk:METHod:SOURce
Command :ANALyze:CLOCk:METHod:SOURce {ALL | <source>}
:ANALyze:CLOCk:VERTical
Command :ANALyze:CLOCk:VERTical {AUTO | MANual}
Query :ANALyze:CLOCk:VERTical?
Example This example places the current setting of the recovered clock vertical scale mode
in the string variable strSetting, then prints the contents of the variable to the
computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":ANALyze:CLOCk:VERTical?"
strSetting = myScope.ReadString
Debug.Print strSetting
History New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:VERTical" on page 1601.
:ANALyze:CLOCk:VERTical:OFFSet
Command :ANALyze:CLOCk:VERTical:OFFSet <offset>
Query :ANALyze:CLOCk:VERTical:OFFSet?
History New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:VERTical:OFFSet" on page 1602.
:ANALyze:CLOCk:VERTical:RANGe
Command :ANALyze:CLOCk:VERTical:RANGe <range>
Query :ANALyze:CLOCk:VERTical:RANGe?
History New in version 5.30. This command replaces the now deprecated command
":MEASure:CLOCk:VERTical:RANGe" on page 1603.
:ANALyze:SIGNal:DATarate
Command :ANALyze:SIGNal:DATarate <source>,<data_rate>
The :ANALyze:SIGNal:DATarate? query returns the data rate of the source signal.
Returned Format [:ANALyze:SIGNal:DATarate] <data_rate><NL>
:ANALyze:SIGNal:SYMBolrate
Command :ANALyze:SIGNal:SYMBolrate <source>,<symbol_rate>
When the source signal type is PAM-4 (see :ANALyze:SIGNal:TYPE), this command
specifies the edge rate of the signal. The inverse of this rate is the unit interval (UI).
With PAM-4, the data rate is twice the symbol rate because each voltage level
represents two bits of data. Changing the symbol rate also changes the data rate
(see :ANALyze:SIGNal:DATarate) and vice-versa.
<N> An integer, 1-4 in a single oscilloscope, 1-40 in a MultiScope system.
<D>, <C> <D> is an integer, 1-2. <C> 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).
<F> An integer, 1-16.
<R> An integer, 1-4.
<symbol_rate> Baud in NR3 format.
Query :ANALyze:SIGNal:SYMBolrate? <source>
The :ANALyze:SIGNal:SYMBolrate? query returns the symbol rate for the specified
source signal.
Returned Format [:ANALyze:SIGNal:SYMBolrate] <symbol_rate><NL>
:ANALyze:SIGNal:MIXer:CABLeloss
Command :ANALyze:SIGNal:MIXer:CABLeloss <source>,<loss>
:ANALyze:SIGNal:MMWave:CALibrate
Command :ANALyze:SIGNal:MMWave:CALibrate
:ANALyze:SIGNal:MMWave:CFRequency
Command :ANALyze:SIGNal:MMWave:CFRequency <center_freq>
:ANALyze:SIGNal:MMWave:CONNect
Command :ANALyze:SIGNal:MMWave:CONNect <source>,{{0 | OFF} | {1 | ON}}
<status> ::= {0 | 1}
:ANALyze:SIGNal:MMWave:LOADdress
Command :ANALyze:SIGNal:MMWave:LOADdress <string>
:ANALyze:SIGNal:MMWave:MBANdwidth
Command :ANALyze:SIGNal:MMWave:MBANdwidth <meas_bandwidth>
:ANALyze:SIGNal:PATTern:CLEar
Command :ANALyze:SIGNal:PATTern:CLEar <source>
:ANALyze:SIGNal:PATTern:LOAD
Command :ANALyze:SIGNal:PATTern:LOAD <source>,"<pattern_file_path>"
:ANALyze:SIGNal:PATTern:PLENgth
Command :ANALyze:SIGNal:PATTern:PLENgth <source>,{AUTO | <pattern_length>}
:ANALyze:SIGNal:PATTern:SMAP
Command :ANALyze:SIGNal:PATTern:SMAP <source>,{UNCoded | GRAYcoded}
:ANALyze:SIGNal:TYPE
Command :ANALyze:SIGNal:TYPE <source>,{UNSPecified | NRZ | PAM4 | PAM3
| MMWave | CPHY, <source_B-C>, <source_C-A>}
:ANALyze:VIEW
Command :ANALyze:VIEW <data>
The :ANALyze:VIEW command specify whether to use the data on screen or the
entire acquisition for measurements, functions, and analysis.
This command maps to the "Window All Data" control in the user interface's
Measurement Setup dialog box.
When all edges in an acquisition are used for horizontal measurements (see
:ANALyze:AEDGes), this command's setting becomes "ALL" and the entire
acquisition is used for measurements, functions, and analysis.
Query :ANALyze:VIEW?
12 Bus Commands
:BUS:B<N>:TYPE / 290
:BUS<B>:BIT<M> / 292
:BUS<B>:BITS / 293
:BUS<B>:CLEar / 294
:BUS<B>:CLOCk / 295
:BUS<B>:CLOCk:SLOPe / 296
:BUS<B>:DISPlay / 297
:BUS<B>:LABel / 298
:BUS<B>:READout / 299
289
12 Bus Commands
:BUS:B<N>:TYPE
Command :BUS:B<N>:TYPE {<protocol> | <hs_protocol>}
This BUS command only applies to oscilloscopes with protocol decode licenses installed.
N OT E
The :BUS:B<N>:TYPE command sets the type of protocol being analyzed for a
serial bus waveform.
<protocol> {A429 | CAN | CPHY | DDR | E10BASET | E10GBASEKR | E100GBASEKRCR | EPSI |
FLEXray | GENRaw | I3C | IIC | JTAG | LIN | MAN | M1553 | MIPI | RFFE | SENT | SPI |
SPMI | SPW | SVID | UART | USB2}
<hs_protocol> {BRR | CSI3 | DIGRf | DVI | E100BASETX | FIBRechannel | {GEN8B10B | GENeric} |
INFiniband | JESD204B | LLI | PCI3 | PCI4 | PCIExpress | QSPI | SAS | SATA | SSIC |
UFS | UNIPro | USB3 | USB31 | USB32 | USBPD | XAUI}
<N> An integer, 1-4.
Example This example sets the serial bus waveform number one protocol type to FLEXray.
myScope.WriteString ":BUS:B1:TYPE FLEXray"
Query :BUS:B<N>:TYPE?
The :BUS:B<N>:TYPE? query returns the name of the protocol being used for the
serial bus.
Returned Format [:BUS:B<N>:TYPE] {<protocol> | <hs_protocol>}<NL>
Version 6.10: Added support for new CPHY (MIPI C-PHY), BRR (BroadR-Reach),
SPW (SpaceWire), and MAN (Manchester) protocols.
Version 6.20: Added support for new PCI4 (PCI Express Gen4) and SENT (Single
Edge Nibble Transmission) protocols.
Version 6.30: Added support for new QSPI (Quad SPI) and USB32 (USB 3.2)
protocols.
:BUS<B>:BIT<M>
Command :BUS<B>:BIT<M> {ON | OFF | 1 | 0}
Query :BUS<B>:BIT<M>?
The :BUS<B>:BIT<M>? query returns the value indicating whether the specified bit
is included or excluded from the specified bus definition.
Returned Format [:BUS<B>:BIT<M>] {1 | 0}<NL>
:BUS<B>:BITS
Command :BUS<B>:BITS <channel_list>,{ON | OFF| 1 | 0}
The :BUS<B>:BITS command includes or excludes the selected bits in the channel
list in the definition of the selected bus. If the parameter is a 1 (ON) then the bits in
the channel list are included as part of the selected bus definition. If the parameter
is a 0 (OFF) then the bits in the channel list are excluded from the definition of the
selected bus. The digital subsystem must be enabled for this command will work.
See ENABle command in the root subsystem.
<N> An integer, 1- 4.
<channel_list> The channel range is from 0 to 15 in the following format.
Example This example includes bits 1, 2, 4, 5, 6, 7, 8, and 9 as part of the bus 1 definition.
myScope.WriteString ":ENABle DIGital"
myScope.WriteString ":BUS1:BITS (@1,2,4:9),ON"
Query :BUS<B>:BITS?
The :BUS<B>:BITS? query returns the definition for the specified bus.
Returned Format [:BUS<B>:BITS] <channel_list>,{1 | 0}<NL>
:BUS<B>:CLEar
Command :BUS<B>:CLEar
The :BUS<B>:CLEar command excludes all of the digital channels from the
selected bus definition.
<N> An integer, 1-4.
Example This example excludes all the digital channels from the bus 1 definition.
myScope.WriteString ":BUS1:CLEar"
:BUS<B>:CLOCk
Command :BUS<B>:CLOCk {CHANnel<N> | DIGital<M> | NONE}
The :BUS<B>:CLOCk command sets the digital or analog channel used as the
clock for decoding the bus values.
<M> An integer, 0-15.
<N> An integer, 1-4 in a single oscilloscope, 1-40 in a MultiScope system.
<O> An integer, 1-4.
Example This example sets the clock to channel 1 for bus 1.
myScope.WriteString ":ENABle DIGital"
myScope.WriteString ":BUS1:CLOCk CHANnel1"
Query :BUS<B>:CLOCK?
The :BUS<B>:CLOCk query returns the channel being used for the specified bus.
Returned Format [:BUS<B>:CLOCk] {CHANnel<O> | DIGital<M> | NONE}<NL>
:BUS<B>:CLOCk:SLOPe
Command :BUS<B>:CLOCk:SLOPe {RISing | FALLing | EITHer}
The :BUS<B>:CLOCk:SLOPe command sets the clock edge used for decoding the
bus values.
<O> An integer, 1-4.
Example This example sets the clock edge to falling for bus 1.
myScope.WriteString ":ENABle DIGital"
myScope.WriteString ":BUS1:CLOCk:SLOPE FALLING"
Query :BUS<B>:CLOCK:SLOPe?
The :BUS<B>:CLOCk:SLOPe query returns the clock edge being used for the
specified bus.
Returned Format [:BUS<B>:CLOCk:SLOPe] {RISing | FALLing | EITHer}<NL>
:BUS<B>:DISPlay
Command :BUS<B>[:DISPlay] {ON | OFF | 1 | 0}
The :BUS<B>:DISPlay command enables or disables the view of the selected bus.
The digital subsystem must be enabled before this command will work. See the
ENABle command in the root subsystem.
<N> An integer, 1- 4.
Example This example enables the viewing of bus 1.
myScope.WriteString ":ENABle DIGital"
myScope.WriteString ":BUS1 ON"
Query :BUS<B>[:DISPlay]?
The :BUS<B>[:DISPlay]? query returns the display value of the selected bus.
Returned Format [:BUS<B>] {1 | 0}<NL>
:BUS<B>:LABel
Command :BUS<B>:LABel <quoted_string>
The :BUS<B>:LABel command sets the bus label to the quoted string. Setting a
label for a bus will also result in the name being added to the label list.
Label strings are 16 characters or less, and may contain any commonly used ASCII characters.
N OT E
Labels with more than 16 characters are truncated to 16 characters.
<N> An integer, 1- 4.
<quoted_string> A series of 6 or less characters as a quoted ASCII string.
Example This example sets the bus 1 label to Data.
myScope.WriteString ":BUS1:LABel ""Data"""
Query :BUS<B>:LABel?
:BUS<B>:READout
Command :BUS<B>:READout {DECimal | HEX | SIGNed | SYMBol}
Query :BUS<B>:READout?
13 Calibration Commands
:CALibrate:DATE? / 303
:CALibrate:OUTPut / 304
:CALibrate:OUTPut:AUX / 306
:CALibrate:OUTPut:AUX:RTIMe / 307
:CALibrate:OUTPut:CAL / 308
:CALibrate:SKEW / 309
:CALibrate:STATus? / 310
:CALibrate:TEMP? / 311
301
13 Calibration Commands
Probe Calibration Probe calibration establishes the gain and offset of a probe that is connected to a
channel of the oscilloscope, and applies these factors to the calibration of that
channel.
• Initiate probe calibration from the "Setup > Channel > Probes > Calibrate Probe"
menu.
To achieve the specified accuracy (±2%) with a probe connected to a channel,
make sure the oscilloscope is calibrated.
• For probes that the oscilloscope can identify through the probe power
connector, like the 1158A, the oscilloscope automatically adjusts the
vertical scale factors for that channel even if a probe calibration is not
performed.
• For nonidentified probes, the oscilloscope adjusts the vertical scale factors
only if a probe calibration is performed.
• If you do not perform a probe calibration but want to use an unidentified probe,
enter the attenuation factor in the "Setup > Channel > Probes > Configure
Probing System > User Defined Probe" menu.
• If the probe being calibrated has an attenuation factor that allows the
oscilloscope to adjust the gain (in hardware) to produce even steps in the
vertical scale factors, the oscilloscope will do so.
• If the probe being calibrated has an unusual attenuation, like 3.75, the
oscilloscope may have to adjust the vertical scale factors to an unusual
number, like 3.75 V/div.
Typically, probes have standard attenuation factors such as divide by 10, divide
by 20, or divide by 100.
:CALibrate:DATE?
Query :CALibrate:DATE?
:CALibrate:OUTPut
Command :CALibrate:OUTPut {AC | TRIGOUT | DC,<dc_value> | ZERO | ONE | DPULse
| SOSC | HFOSC | PRBS7 | PRBS15 | PRBS31}
Query :CALibrate:OUTPut?
Example This example places the current selection for the DC calibration to be printed in
the string variable, strSelection, then prints the contents of the variable to the
computer's screen.
Dim strSelection As String 'Dimension variable
myScope.WriteString ":CALibrate:OUTPut?"
strSelection = myScope.ReadString
Debug.Print strSelection
:CALibrate:OUTPut:AUX
Command :CALibrate:OUTPut:AUX {{0 | OFF} | {1 | ON}}
On the Infiniium S-Series, 9000 Series, or 90000A Series oscilloscopes, the only valid setting
N OT E
for this command is ON or 1.
Query :CALibrate:OUTPut:AUX?
<setting> ::= {0 | 1}
:CALibrate:OUTPut:AUX:RTIMe
Command :CALibrate:OUTPut:AUX:RTIMe <risetime>
The RFAST option is available with the 9000 Series oscilloscopes only.
N OT E
Query :CALibrate:OUTPut:AUX:RTIMe?
The :CALibrate:OUTPut:AUX:RTIMe? query returns the Aux Out rise time setting.
Returned Format <risetime><NL>
:CALibrate:OUTPut:CAL
Command :CALibrate:OUTPut:CAL {{0 | OFF} | {1 | ON}}
On the Infiniium S-Series, 9000 Series, or 90000A Series oscilloscopes, the only valid setting
N OT E
for this command is OFF or 0 because there is no Cal Out connector.
Query :CALibrate:OUTPut:CAL?
<setting> ::= {0 | 1}
:CALibrate:SKEW
Command :CALibrate:SKEW <source>,<skew_value>
:CALibrate:STATus?
Query :CALibrate:STATus?
:CALibrate:TEMP?
Query :CALibrate:TEMP?
For example, the string returned could be "-1,0". A difference in the two delta
values of one degree is not uncommon.
History Legacy command (existed before version 3.10).
14 Channel Commands
:CHANnel<N>:BWLimit (9000 Series, 9000H Series, S-Series) / 316
:CHANnel<N>:COMMonmode / 317
:CHANnel<N>:DIFFerential / 318
:CHANnel<N>:DIFFerential:SKEW / 319
:CHANnel<N>:DISPlay / 320
:CHANnel<N>:DISPlay:AUTO / 321
:CHANnel<N>:DISPlay:OFFSet / 323
:CHANnel<N>:DISPlay:RANGe / 325
:CHANnel<N>:DISPlay:SCALe / 327
:CHANnel<N>:INPut / 329
:CHANnel<N>:INVert / 330
:CHANnel<N>:ISIM:APPLy / 331
:CHANnel<N>:ISIM:BANDwidth / 332
:CHANnel<N>:ISIM:BWLimit / 334
:CHANnel<N>:ISIM:BWLimit:TYPE / 336
:CHANnel<N>:ISIM:CONVolve / 337
:CHANnel<N>:ISIM:CORRection / 338
:CHANnel<N>:ISIM:DEConvolve / 340
:CHANnel<N>:ISIM:DELay / 341
:CHANnel<N>:ISIM:NORMalize / 342
:CHANnel<N>:ISIM:PEXTraction / 343
:CHANnel<N>:ISIM:SPAN / 345
:CHANnel<N>:ISIM:STATe / 346
:CHANnel<N>:LABel / 347
:CHANnel<N>:OFFSet / 348
:CHANnel<N>:PROBe / 349
:CHANnel<N>:PROBe:ACCAL / 350
:CHANnel<N>:PROBe:ATTenuation / 351
:CHANnel<N>:PROBe:AUTozero / 352
:CHANnel<N>:PROBe:COUPling / 353
:CHANnel<N>:PROBe:EADapter / 354
:CHANnel<N>:PROBe:ECOupling / 357
313
14 Channel Commands
:CHANnel<N>:PROBe:EXTernal / 358
:CHANnel<N>:PROBe:EXTernal:GAIN / 359
:CHANnel<N>:PROBe:EXTernal:OFFSet / 360
:CHANnel<N>:PROBe:EXTernal:UNITs / 361
:CHANnel<N>:PROBe:GAIN / 362
:CHANnel<N>:PROBe:HEAD:ADD / 363
:CHANnel<N>:PROBe:HEAD:DELete ALL / 364
:CHANnel<N>:PROBe:HEAD:SELect / 365
:CHANnel<N>:PROBe:HEAD:VTERm / 366
:CHANnel<N>:PROBe:ID? / 367
:CHANnel<N>:PROBe:INFO? / 368
:CHANnel<N>:PROBe:MODE / 369
:CHANnel<N>:PROBe:PRECprobe:BANDwidth / 370
:CHANnel<N>:PROBe:PRECprobe:CALibration / 371
:CHANnel<N>:PROBe:PRECprobe:DELay / 372
:CHANnel<N>:PROBe:PRECprobe:MODE / 373
:CHANnel<N>:PROBe:PRECprobe:ZSRC / 374
:CHANnel<N>:PROBe:PRIMary (9000 Series, 9000H Series, S-Series) / 376
:CHANnel<N>:PROBe:SKEW / 377
:CHANnel<N>:PROBe:STYPe / 378
:CHANnel<N>:RANGe / 379
:CHANnel<N>:SCALe / 380
:CHANnel<N>:SIMulation:AMPLitude / 381
:CHANnel<N>:SIMulation:DATA:LENGth / 382
:CHANnel<N>:SIMulation:DATA:ODD / 383
:CHANnel<N>:SIMulation:DATA:PAM / 384
:CHANnel<N>:SIMulation:DATA:RESeed / 385
:CHANnel<N>:SIMulation:DATA:SELection / 386
:CHANnel<N>:SIMulation:DRATe / 387
:CHANnel<N>:SIMulation:FILTer:ISIM:ADDRess / 388
:CHANnel<N>:SIMulation:FILTer:ISIM:PEXTraction / 389
:CHANnel<N>:SIMulation:FILTer:SELection / 390
:CHANnel<N>:SIMulation:FLOad:ADDRess / 391
:CHANnel<N>:SIMulation:FLOad:LOOP / 392
:CHANnel<N>:SIMulation:FREQuency / 393
:CHANnel<N>:SIMulation:FUNCtion:SELection / 394
:CHANnel<N>:SIMulation:FUNCtion:SQUare:DCYCle / 395
:CHANnel<N>:SIMulation:FUNCtion:SQUare:FTIMe / 396
:CHANnel<N>:SIMulation:FUNCtion:SQUare:RTIMe / 397
:CHANnel<N>:SIMulation:JITTer / 398
:CHANnel<N>:SIMulation:JITTer:ABUJ / 399
:CHANnel<N>:SIMulation:JITTer:PERiodic<M>:ENABle / 400
:CHANnel<N>:SIMulation:JITTer:PERiodic<M>:FREQuency / 401
:CHANnel<N>:SIMulation:JITTer:PERiodic<M>:MAGNitude / 402
:CHANnel<N>:SIMulation:JITTer:PERiodic<M>:SHAPe / 403
:CHANnel<N>:SIMulation:JITTer:RANDom / 404
:CHANnel<N>:SIMulation:NOISe / 405
:CHANnel<N>:SIMulation:NOISe:BWLimit / 406
:CHANnel<N>:SIMulation:NOISe:PERiodic<M>:ENABle / 407
:CHANnel<N>:SIMulation:NOISe:PERiodic<M>:FREQuency / 408
:CHANnel<N>:SIMulation:NOISe:PERiodic<M>:MAGNitude / 409
:CHANnel<N>:SIMulation:NOISe:PERiodic<M>:SHAPe / 410
:CHANnel<N>:SIMulation:NOISe:RANDom / 411
:CHANnel<N>:SIMulation:OFFSet / 412
:CHANnel<N>:SIMulation:WAVeform / 413
:CHANnel<N>:UNITs / 414
The CHANnel subsystem commands control all vertical (Y axis) functions of the
oscilloscope. You may toggle the channel displays on and off with the root level
commands :VIEW and :BLANk, or with :CHANnel:DISPlay.
In this section, you can specify differential and/or common mode channels using the following
N OT E
convention. If you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:BWLimit?
The :CHANnel<N>:BWLimit? query returns the current state of the low-pass filter
for the specified channel.
Returned Format [:CHANnel<N>:BWLimit] {1 | 0}<NL> for 9000, 9000H Series
Example This example places the current setting of the low-pass filter in the variable
varLimit, then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:BWLimit?"
varLimit = myScope.ReadNumber
Debug.Print FormatNumber(varLimit, 0)
:CHANnel<N>:COMMonmode
Command :CHANnel<N>:COMMonmode {{ON | 1} | {OFF | 0}}
Query :CHANnel<N>:COMMonmode?
Example This example places the current common mode setting of the channel 1 display in
the variable varComm, then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:COMMonmode?"
varComm = myScope.ReadNumber
Debug.Print FormatNumber(varComm, 0)
:CHANnel<N>:DIFFerential
Command :CHANnel<N>:DIFFerential {{ON | 1} | {OFF | 0}}
Query :CHANnel<N>:DIFFerential?
Example This example places the current differential setting of the channel 1 display in the
variable varDiff, then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:DIFFerential?"
varDiff = myScope.ReadNumber
Debug.Print FormatNumber(varDiff, 0)
:CHANnel<N>:DIFFerential:SKEW
Command :CHANnel<N>:DIFFerential:SKEW <skew>
Query :CHANnel<N>:DIFFerential:SKEW?
Example This example places the current skew setting of the channel 1 - channel 3
differential channel in the variable varSkew, then prints the contents of the
variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:DIFFerential:SKEW?"
varSkew = myScope.ReadNumber
Debug.Print FormatNumber(varSkew, 0)
:CHANnel<N>:DISPlay
Command :CHANnel<N>:DISPlay {{ON | 1} | {OFF | 0}}
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:DISPlay?
The :CHANnel<N>:DISPlay? query returns the current display condition for the
specified channel.
Returned Format [:CHANnel<N>:DISPlay] {1 | 0}<NL>
Example This example places the current setting of the channel 1 display in the variable
varDisplay, then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:DISPlay?"
varDisplay = myScope.ReadNumber
Debug.Print FormatNumber(varDisplay, 0)
:CHANnel<N>:DISPlay:AUTO
Command :CHANnel<N>:DISPlay:AUTO {{ON | 1} | {OFF | 0}}
This command only works when differential channel modes are turned on (using the
N OT E
:CHANnel<N>:DIFFerential command).
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Example This example sets the channel 1 - channel 3 differential channel display scale and
offset to track the acquisition scale and offset.
myScope.WriteString ":CHANnel1:DISPlay:AUTO ON"
Query :CHANnel<N>:DISPlay:AUTO?
Example This example places whether or not the channel 1 - channel 3 differential channel
display scale and offset is tracking the acquisition scale and offset in the variable
varAuto, then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:DISPlay:AUTO?"
varAuto = myScope.ReadNumber
Debug.Print FormatNumber(varAuto, 0)
:CHANnel<N>:DISPlay:OFFSet
Command :CHANnel<N>:DISPlay:OFFSet <value>
This command only works when differential channel modes are turned on (using the
N OT E
:CHANnel<N>:DIFFerential command).
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:DISPlay:OFFSet?
Example This example places the displayed offset of channel 1 in the variable varOffset,
then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:DISPlay:OFFSet?"
varOffset = myScope.ReadNumber
Debug.Print FormatNumber(varOffset, 0)
:CHANnel<N>:DISPlay:RANGe
Command :CHANnel<N>:DISPlay:RANGe <range>
This command only works when differential channel modes are turned on (using the
N OT E
:CHANnel<N>:DIFFerential command).
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Example This example sets the display range of the display of channel 1 to
myScope.WriteString ":CHANnel1:DISPlay:RANGe 10e-6"
Query :CHANnel<N>:DISPlay:RANGe?
Example This example places the range of channel 1 in the variable varRange, then prints
the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:DISPlay:RANGe?"
varRange = myScope.ReadNumber
Debug.Print FormatNumber(varRange, 0)
:CHANnel<N>:DISPlay:SCALe
Command :CHANnel<N>:DISPlay:SCALe <scale>
This command only works when differential channel modes are turned on (using the
N OT E
:CHANnel<N>:DIFFerential command).
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Example This example sets the display scale of channel 1 per division to
myScope.WriteString ":CHANnel1:DISPlay:SCALe 10e-6"
Query :CHANnel<N>:DISPlay:SCALe?
Example This example places the display scale of channel 1 in the variable varScale, then
prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:DISPlay:SCALe?"
varScale = myScope.ReadNumber
Debug.Print FormatNumber(varScale, 0)
:CHANnel<N>:INPut
Command :CHANnel<N>:INPut <parameter>
Query :CHANnel<N>:INPut?
Example This example puts the current input for channel 1 in the string variable, strInput.
The program then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:INPut?"
strInput = myScope.ReadString
Debug.Print strInput
:CHANnel<N>:INVert
Command :CHANnel<N>:INVert {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:CHANnel<N>:ISIM:APPLy
Command :CHANnel<N>:ISIM:APPLy "<transfer_funct_file>"
This CHANnel command only applies if you have purchased the InfiniiSim software
N OT E
application.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:ISIM:APPLy?
Example This example puts the current transfer function file name in the variable strFile. The
program then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:ISIM:APPLy?"
strFile = myScope.ReadString
Debug.Print strFile
:CHANnel<N>:ISIM:BANDwidth
Command :CHANnel<N>:ISIM:BANDwidth <bw_value>
• On Infiniium 9000 Series oscilloscopes, you can use the :CHANnel<N>:BWLimit command to enable
N OT E or disable a 20 MHz low-pass filter on the input channel.
• On Infiniium S-Series oscilloscopes, you can use the :CHANnel<N>:BWLimit command to enable or
disable a 20 MHz or 200 MHz low-pass filter on the input channel.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:ISIM:BANDwidth?
Example This example puts the current input for channel 1 in the string variable,
varBwLimit. The program then prints the contents of the variable to the
computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:ISIM:BANDwidth?"
varBwLimit = myScope.ReadNumber
Debug.Print FormatNumber(varBwLimit, 0)
:CHANnel<N>:ISIM:BWLimit
Command :CHANnel<N>:ISIM:BWLimit {{ON | 1} | {OFF | 0}}
• On Infiniium 9000 Series oscilloscopes, you can use the :CHANnel<N>:BWLimit command to enable
N OT E or disable a 20 MHz low-pass filter on the input channel.
• On Infiniium S-Series oscilloscopes, you can use the :CHANnel<N>:BWLimit command to enable or
disable a 20 MHz or 200 MHz low-pass filter on the input channel.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:ISIM:BWLimit?
Example This example puts the current bandwidth limit state for channel 1 in the string
variable, varLimit. The program then prints the contents of the variable to the
computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:ISIM:BWLimit?"
varLimit = myScope.ReadNumber
Debug.Print FormatNumber(varLimit, 0)
:CHANnel<N>:ISIM:BWLimit:TYPE
Command :CHANnel<N>:ISIM:BWLimit:TYPE <filter_type>
To achieve the 4th Order Bessel response, the maximum bandwidth you can specify is about
N OT E
2/3 of the maximum bandwidth you could specify with the Brick-Wall filter. Also with the 4th
Order Bessel filter, the brick-wall response takes over at what would be the brick-wall filter's
maximum bandwidth. Therefore, you can have a combination of roll-off responses with this
selection.
• BANDpass — This option is for use with the Phase Noise analysis application
(see ":MEASure:PN:STATe" on page 917) and is not intended as a
general-purpose bandpass filter.
Query :CHANnel<N>:ISIM:BWLimit:TYPE?
:CHANnel<N>:ISIM:CONVolve
Command :CHANnel<N>:ISIM:CONVolve "<s_parameter_file>", {OFF | ON}
This CHANnel command is available when you have purchased the InfiniiSim software
N OT E
application.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
:CHANnel<N>:ISIM:CORRection
Command :CHANnel<N>:ISIM:CORRection <percent>
This CHANnel command only applies if you have purchased the InfiniiSim software
N OT E
application.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
<percent> If you are making averaged mode measurements or applying a transfer function
that does not magnify the noise, use the full correction by setting this field to
100%.
However, if you are working with eye diagrams or making jitter measurements and
the transfer function is magnifying the noise, you may want to limit the correction
by selecting a lower percentage.
Example This example sets the channel 1 InfiniiSim correction factor to 80%.
myScope.WriteString ":CHANnel1:ISIM:CORRection 80"
Query :CHANnel<N>:ISIM:CORRection?
Example This example gets the current channel 1 InfiniiSim correction percentage and
places it in the numeric variable, varIsimCorrection. The program then prints the
contents of the variable to the computer's screen.
:CHANnel<N>:ISIM:DEConvolve
Command :CHANnel<N>:ISIM:DEConvolve "<s_parameter_file>", {OFF | ON}
This CHANnel command is available when you have purchased the InfiniiSim software
N OT E
application.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
:CHANnel<N>:ISIM:DELay
Command :CHANnel<N>:ISIM:DElay {OFF | ON | TRIG}
This CHANnel command only applies if you have purchased the InfiniiSim software
N OT E
application.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:ISIM:DELay?
Example This example puts whether or not the transfer function delay is included in the
resultant waveform for channel 1 in the string variable, strDelay. The program then
prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:ISIM:DELay?"
strDelay = myScope.ReadString
Debug.Print strDelay
:CHANnel<N>:ISIM:NORMalize
Command :CHANnel<N>:ISIM:NORMalize {{ON | 1} | {OFF | 0}}
This CHANnel command only applies if you have purchased the InfiniiSim software
N OT E
application.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:ISIM:NORMalize?
Example This example puts the current InfiniiSim normalize gain state for channel 1 in the
string variable, varNormalizeGain. The program then prints the contents of the
variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:ISIM:NORMalize?"
varNormalizeGain = myScope.ReadNumber
Debug.Print FormatNumber(varLimit, 0)
:CHANnel<N>:ISIM:PEXTraction
Command :CHANnel<N>:ISIM:PEXTraction {P12 | P32 | P34 | P14 | DIFFerential
| COMMonmode}
This CHANnel command only applies if you have purchased the InfiniiSim software
N OT E
application.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:ISIM:PEXTraction?
Example This example puts the current InfiniiSim port extraction selection for channel 1 in
the string variable, strMode. The program then prints the contents of the variable
to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:ISIM:PEXTraction?"
strMode = myScope.ReadString
Debug.Print strMode
:CHANnel<N>:ISIM:SPAN
Command :CHANnel<N>:ISIM:SPAN <max_time_span>
This CHANnel command only applies if you have purchased the InfiniiSim software
N OT E
application.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:ISIM:SPAN?
Example This example puts the InfiniiSim filter's maximum time span value in the variable
varTspan. The program then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:ISIM:SPAN?"
varTspan = myScope.ReadNumber
Debug.Print FormatNumber(varTspan, 0)
:CHANnel<N>:ISIM:STATe
Command :CHANnel<N>:ISIM:STATe {OFF | PORT2 | PORT4 | PORT41}
This CHANnel command only applies if you have purchased the InfiniiSim software
N OT E
application.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:ISIM:STATe?
Example This example puts the current InfiniiSim state for channel 1 in the string variable,
strMode. The program then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:ISIM:STATe?"
strMode = myScope.ReadString
Debug.Print strMode
:CHANnel<N>:LABel
Command :CHANnel<N>:LABel <string>
The :CHANnel<N>:LABel command sets the channel label to the quoted strin
g.
You can specify differential and/or common mode channels using the following convention. If
N OT E
you have differential or common mode channels enabled (using either the
:CHANnel<N>:DIFFerential or :CHANnel<N>:COMMonmode commands) then:
• :CHANnel1 would refer to the Channel 1 - Channel 3 differential channel
• :CHANnel2 would refer to the Channel 2 - Channel 4 differential channel
• :CHANnel3 would refer to the Channel 1 + Channel 3 common mode channel
• :CHANnel4 would refer to the Channel 2 + Channel 4 common mode channel
Query :CHANnel<N>:LABel?
:CHANnel<N>:OFFSet
Command :CHANnel<N>:OFFSet <offset_value>
Query :CHANnel<N>:OFFSet?
The :CHANnel<N>:OFFSet? query returns the current offset value for the specified
channel.
Returned Format [CHANnel<N>:OFFSet] <offset_value><NL>
Example This example places the offset value of the specified channel in the variable,
varOffset, then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:OFFSet?"
varOffset = myScope.ReadNumber
Debug.Print FormatNumber(varOffset, "Scientific")
:CHANnel<N>:PROBe
Command :CHANnel<N>:PROBe <attenuation_factor>[,{RATio | DECibel}]
The :CHANnel<N>:PROBe command sets the probe attenuation factor and the
units (ratio or decibels) for the probe attenuation factor for a user-defined probe.
The DECibel and RATio parameters also set the "mode" for the probe attenuation.
These parameters, along with attenuation factor, determine the scaling of the
display and affect automatic measurements and trigger levels.
This mode also determines the units (ratio or decibels) that may be used for a
subsequent command.
<N> An integer, 1-4
<attenuation A real number from 0.0001 to 1000 for the RATio attenuation units or from -80 dB
_factor> to 60 dB for the DECibel attenuation units.
Example This example sets the probe attenuation factor for a 10:1 probe on channel 1 in
ratio units.
myScope.WriteString ":CHANnel1:PROBe 10,RAT"
Query :CHANnel<N>:PROBe?
Example This example places the current attenuation setting for channel 1 in the string
variable, strAtten, then the program prints the contents.
Dim strAtten As String ' Dimension variable.
myScope.WriteString ":CHANnel1:PROBe?"
strAtten = myScope.ReadString
Debug.Print strAtten
If you use a string variable, the query returns the attenuation value and the factor
(decibel or ratio). If you use an integer variable, the query returns the attenuation
value. You must then read the attenuation units into a string variable.
History Legacy command (existed before version 3.10).
:CHANnel<N>:PROBe:ACCAL
Command :CHANnel<N>:PROBe:ACCAL {AUTO | OFF | PRECprobe}
You are not able to start a PrecisionProbe or PrecisionCable calibration using remote SCPI
N OT E
commands. However, you can enter SCPI commands to use the results of calibrations
performed using the front panel wizards.
Query :CHANnel<N>:PROBe:ACCAL?
:CHANnel<N>:PROBe:ATTenuation
Command :CHANnel<N>:PROBe:ATTenuation {DIV1 | DIV10}
Query :CHANnel<N>:PROBe:ATTenuation?
:CHANnel<N>:PROBe:AUTozero
Command :CHANnel<N>:PROBe:AUTozero
:CHANnel<N>:PROBe:COUPling
Command :CHANnel<N>:PROBe:COUPling {DC | AC}
This command is for probes only. To set the input channel coupling, see :CHANnel<N>:INPut.
N OT E
Query :CHANnel<N>:PROBe:COUPling?
:CHANnel<N>:PROBe:EADapter
Command :CHANnel<N>:PROBe:EADapter {NONE | DIV10 | DIV20 | DIV100 | DIV1000
| CUR0002VA | CUR001VA | CUR002VA | CUR01VA | CUR1VA | CUR10VA
| CURN2893 | CUR1147 | HIVOLTN2790}
This command is valid only for the 1153A, 1154A, and 1159A probes and the E2697A and
N OT E
N5449A high impedance adapters.
With the E2697A When the :CHANnel<N>:PROBe:EADapter command is used with either the
and N5449A high E2697A or N5449A high impedance adapter, the behavior is the same as with the
impedance 115x probes; however, there are more parameters available to choose from. The
adapters: following table describes which probes are available with which adapters and what
the parameter string is:
Lastly, the N5449A adapter has the ability to automatically detect supported
probes. If a supported probe (most passive probes) is attached to the N5449A
adapter, the :CHANnel<N>:PROBe:EADapter command will not have any effect
until the attached probe is removed. If, on the other hand, an unsupported probe
(BNC cable, etc.) is attached to the N5449A adapter, the
:CHANnel<N>:PROBe:EADapter command will work as normal. The
:CHANnel<N>:PROBe:EADapter? query will work in either case.
<N> An integer, 1-4.
Example This example sets the external adapter for channel 1 to divide by 10:
myScope.WriteString ":CHANnel1:PROBe:EADapter DIV10"
Query :CHANnel<N>:PROBe:EADapter?
Example This example places the external adapter value of the specified channel in the
string variable, strAdapter, then prints the contents of the variable to the
computer's screen.
Dim strAdapter As String 'Dimension variable
myScope.WriteString ":CHANnel1:PROBe:EADapter?"
strAdapter = myScope.ReadString
Debug.Print strAdapter
:CHANnel<N>:PROBe:ECOupling
Command :CHANnel<N>:PROBe:ECOupling {NONE | AC}
This command is valid only for the 1153A, 1154A, and 1159A probes.
N OT E
Parameter Description
NONE Use this setting when there is no adapter connected to the end of your
probe.
AC Use this setting when you have an ac coupling adapter connected to the
end of your probe.
If an 1153A, 1154A, or 1159A probe is not connected to the channel you will get a
settings conflict error.
<N> An integer, 1-4.
Example This example sets the external coupling adapter for channel 1 to ac:
myScope.WriteString ":CHANnel1:PROBe:ECOupling AC"
Query :CHANnel<N>:PROBe:ECOupling?
Example This example places the external coupling adapter value of the specified channel
in the string variable, strAdapter, then prints the contents of the variable to the
computer's screen.
Dim strAdapter As String ' Dimension variable.
myScope.WriteString ":CHANnel1:PROBe:ECOupling?"
strAdapter = myScope.ReadString
Debug.Print strAdapter
:CHANnel<N>:PROBe:EXTernal
Command :CHANnel<N>:PROBe:EXTernal {{ON | 1} | {OFF | 0}}
Query :CHANnel<N>:PROBe:EXTernal?
Example This example places the current setting of the external probe mode on channel 1 in
the variable varMode, then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:PROBe:EXTernal?"
varMode = myScope.ReadNumber
Debug.Print FormatNumber(varMode, 0)
:CHANnel<N>:PROBe:EXTernal:GAIN
Command :CHANnel<N>:PROBe:EXTernal:GAIN <gain_factor>[,{RATio | DECibel}]
Query :CHANnel<N>:PROBe:EXTernal:GAIN?
Example This example places the external gain value of the probe on the specified channel
in the variable, varGain, then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":CHANnel1:PROBe:EXTernal ON"
myScope.WriteString ":CHANnel1:PROBe:EXTernal:GAIN?"
varGain = myScope.ReadString
Debug.Print varGain
:CHANnel<N>:PROBe:EXTernal:OFFSet
Command :CHANnel<N>:PROBe:EXTernal:OFFSet <offset_value>
Query :CHANnel<N>:EXTernal:PROBe:OFFSet?
Example This example places the external offset value of the probe on the specified channel
in the variable, Offset, then prints the contents of the variable to the computer's
screen.
myScope.WriteString ":SYSTem:HEADer OFF"
myScope.WriteString ":CHANnel1:PROBe:EXTernal ON"
myScope.WriteString ":CHANnel1:PROBe:EXTernal:OFFSet?"
varOffset = myScope.ReadNumber
Debug.Print FormatNumber(varOffset, 0)
:CHANnel<N>:PROBe:EXTernal:UNITs
Command :CHANnel<N>:PROBe:EXTernal:UNITs {VOLT | AMPere | WATT | UNKNown}
Query :CHANnel<N>:PROBe:EXTernal:UNITs?
Example This example places the external vertical units for the probe on the specified
channel in the string variable, strUnits, then prints the contents of the variable to
the computer's screen.
Dim strUnits As String
myScope.WriteString ":CHANnel1:PROBe:EXTernal ON"
myScope.WriteString ":CHANnel1:PROBe:EXTernal:UNITs?"
strUnits = myScope.ReadString
Debug.Print strUnits
:CHANnel<N>:PROBe:GAIN
Command :CHANnel<N>:PROBe:GAIN {X1 | X10}
Query :CHANnel<N>:PROBe:GAIN?
The :CHANnel<N>:PROBe:GAIN? query returns the current probe gain setting for
the selected channel.
Returned Format [:CHANnel<N>:PROBe:GAIN] {X1 | X10}<NL>
:CHANnel<N>:PROBe:HEAD:ADD
Command :CHANnel<N>:PROBe:HEAD:ADD "head", ["label"]
:CHANnel<N>:PROBe:HEAD:DELete ALL
Command :CHANnel<N>:PROBe:HEAD:DELete ALL
:CHANnel<N>:PROBe:HEAD:SELect
Command :CHANnel<N>:PROBe:HEAD:SELect {<int> | <quoted_label_string>}
:CHANnel<N>:PROBe:HEAD:VTERm
Command :CHANnel<N>:PROBe:HEAD:VTERm {FLOating | EXTernal
| {INTernal,<voltage>}}
Query :CHANnel<N>:PROBe:HEAD:VTERm?
:CHANnel<N>:PROBe:ID?
Query :CHANnel<N>:PROBe:ID?
Example This example reports the probe type connected to channel 1, if one is connected.
myScope.WriteString ":CHANnel1:PROBe:ID?"
:CHANnel<N>:PROBe:INFO?
Query :CHANnel<N>:PROBe:INFO?
:CHANnel<N>:PROBe:MODE
Command :CHANnel<N>:PROBe:MODE {DIFF | SEA | SEB | CM}
Query :CHANnel<N>:PROBe:MODE?
:CHANnel<N>:PROBe:PRECprobe:BANDwidth
Command :CHANnel<N>:PROBe:PRECprobe:BANDwidth {AUTO | {MANual, <bandwidth>}
| {BOOSt, <boost_dB>}}
Query :CHANnel<N>:PROBe:PRECprobe:BANDwidth?
:CHANnel<N>:PROBe:PRECprobe:CALibration
Command :CHANnel<N>:PROBe:PRECprobe:CALibration <cal_string>[,<cal_string2]
Query :CHANnel<N>:PROBe:PRECprobe:CALibration?
:CHANnel<N>:PROBe:PRECprobe:DELay
Command :CHANnel<N>:PROBe:PRECprobe:DELay {{ON | 1} | {OFF | 0}}
Query :CHANnel<N>:PROBe:PRECprobe:DELay?
:CHANnel<N>:PROBe:PRECprobe:MODE
Command :CHANnel<N>:PROBe:PRECprobe:MODE {PROBe | CABLe}
Query :CHANnel<N>:PROBe:PRECprobe:MODE?
:CHANnel<N>:PROBe:PRECprobe:ZSRC
Command :CHANnel<N>:PROBe:PRECprobe:ZSRC {VIN | {VSRC, <impedance>}
| {VSRC, <file_string>}}
Query :CHANnel<N>:PROBe:PRECprobe:ZSRC?
See Also • ":MEASure:CHARge (9000 Series, 9000H Series, S-Series)" on page 786
History New in version 5.60.
:CHANnel<N>:PROBe:SKEW
Command :CHANnel<N>:PROBe:SKEW <skew_value>
Query :CHANnel<N>:PROBe:SKEW?
The :CHANnel<N>:PROBe:SKEW? query returns the current probe skew setting for
the selected channel.
Returned Format [:CHANnel<N>:PROBe:SKEW] <skew_value><NL>
:CHANnel<N>:PROBe:STYPe
Command :CHANnel<N>:PROBe:STYPe {DIFFerential | SINGle}
This command is valid only for the 113xA series probes, 1168A probe, and 1169A probe.
N OT E
Query :CHANnel<N>:PROBe:STYPe?
:CHANnel<N>:RANGe
Command :CHANnel<N>:RANGe <range_value>
Query :CHANnel<N>:RANGe?
The :CHANnel<N>:RANGe? query returns the current full-scale vertical axis setting
for the selected channel.
Returned Format [:CHANnel<N>:RANGe]<range_value><NL>
Example This example places the current range value in the number variable, varSetting,
then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF" ' Response headers off.
myScope.WriteString ":CHANnel1:RANGe?"
varSetting = myScope.ReadNumber
Debug.Print FormatNumber(varSetting, 0)
:CHANnel<N>:SCALe
Command :CHANnel<N>:SCALe <scale_value>
The :CHANnel<N>:SCALe command sets the vertical scale, or units per division, of
the selected channel. This command is the same as the front-panel channel scale.
<N> An integer, 1-4 in a single oscilloscope, 1-40 in a MultiScope system.
<scale_value> A real number for the vertical scale of the channel in units per division.
Example This example sets the scale value for channel 1 to 500 mV/div.
myScope.WriteString ":CHANnel1:SCALe 500E-3"
Query :CHANnel<N>:SCALe?
The :CHANnel<N>:SCALe? query returns the current scale setting for the specified
channel.
Returned Format [:CHANnel<N>:SCALe] <scale_value><NL>
Example This example places the current scale value in the number variable, varSetting,
then prints the contents of the variable to the computer's screen.
myScope.WriteString ":SYSTem:HEADer OFF" ' Response headers off.
myScope.WriteString ":CHANnel1:SCALe?"
varSetting = myScope.ReadNumber
Debug.Print FormatNumber(varSetting, 0)
:CHANnel<N>:SIMulation:AMPLitude
Command :CHANnel<N>:SIMulation:AMPLitude <value>
:CHANnel<N>:SIMulation:DATA:LENGth
Command :CHANnel<N>:SIMulation:DATA:LENGth <length_exp>
:CHANnel<N>:SIMulation:DATA:ODD
Command :CHANnel<N>:SIMulation:DATA:ODD {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:CHANnel<N>:SIMulation:DATA:PAM
Command :CHANnel<N>:SIMulation:DATA:PAM <num_of_symbols>
:CHANnel<N>:SIMulation:DATA:RESeed
Command :CHANnel<N>:SIMulation:DATA:RESeed {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:CHANnel<N>:SIMulation:DATA:SELection
Command :CHANnel<N>:SIMulation:DATA:SELection <type>
:CHANnel<N>:SIMulation:DRATe
Command :CHANnel<N>:SIMulation:DRATe <data_rate>
:CHANnel<N>:SIMulation:FILTer:ISIM:ADDRess
Command :CHANnel<N>:SIMulation:FILTer:ISIM:ADDRess <file_path>
:CHANnel<N>:SIMulation:FILTer:ISIM:PEXTraction
Command :CHANnel<N>:SIMulation:FILTer:ISIM:PEXTraction <port_extraction>
:CHANnel<N>:SIMulation:FILTer:SELection
Command :CHANnel<N>:SIMulation:FILTer:SELection <filter_type>
Query :CHANnel<N>:SIMulation:FILTer:SELection?
:CHANnel<N>:SIMulation:FLOad:ADDRess
Command :CHANnel<N>:SIMulation:FLOad:ADDRess <load_file_path>
:CHANnel<N>:SIMulation:FLOad:LOOP
Command :CHANnel<N>:SIMulation:FLOad:LOOP {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:CHANnel<N>:SIMulation:FREQuency
Command :CHANnel<N>:SIMulation:FREQuency <freq>
:CHANnel<N>:SIMulation:FUNCtion:SELection
Command :CHANnel<N>:SIMulation:FUNCtion:SELection <type>
:CHANnel<N>:SIMulation:FUNCtion:SQUare:DCYCle
Command :CHANnel<N>:SIMulation:FUNCtion:SQUare:DCYCle <duty_cycle>
:CHANnel<N>:SIMulation:FUNCtion:SQUare:FTIMe
Command :CHANnel<N>:SIMulation:FUNCtion:SQUare:FTIMe <fall_time>
:CHANnel<N>:SIMulation:FUNCtion:SQUare:RTIMe
Command :CHANnel<N>:SIMulation:FUNCtion:SQUare:RTIMe <rise_time>
:CHANnel<N>:SIMulation:JITTer
Command :CHANnel<N>:SIMulation:JITTer {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:CHANnel<N>:SIMulation:JITTer:ABUJ
Command :CHANnel<N>:SIMulation:JITTer:ABUJ <magnitude>
:CHANnel<N>:SIMulation:JITTer:PERiodic<M>:ENABle
Command :CHANnel<N>:SIMulation:JITTer:PERiodic<M>:ENABle {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:CHANnel<N>:SIMulation:JITTer:PERiodic<M>:FREQuency
Command :CHANnel<N>:SIMulation:JITTer:PERiodic<M>:FREQuency <freq>
:CHANnel<N>:SIMulation:JITTer:PERiodic<M>:MAGNitude
Command :CHANnel<N>:SIMulation:JITTer:PERiodic<M>:MAGNitude <magnitude>
:CHANnel<N>:SIMulation:JITTer:PERiodic<M>:SHAPe
Command :CHANnel<N>:SIMulation:JITTer:PERiodic<M>:SHAPe <shape>
:CHANnel<N>:SIMulation:JITTer:RANDom
Command :CHANnel<N>:SIMulation:JITTer:RANDom <standard_deviation>
:CHANnel<N>:SIMulation:NOISe
Command :CHANnel<N>:SIMulation:NOISe {{0 | OFF} | {1 | ON}}
<setting ::= {0 | 1}
:CHANnel<N>:SIMulation:NOISe:BWLimit
Command :CHANnel<N>:SIMulation:NOISe:BWLimit {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:CHANnel<N>:SIMulation:NOISe:PERiodic<M>:ENABle
Command :CHANnel<N>:SIMulation:NOISe:PERiodic<M>:ENABle {{0 | OFF} | {1 | ON}}
<setting> ::= {0 | 1}
:CHANnel<N>:SIMulation:NOISe:PERiodic<M>:FREQuency
Command :CHANnel<N>:SIMulation:NOISe:PERiodic<M>:FREQuency <freq>
:CHANnel<N>:SIMulation:NOISe:PERiodic<M>:MAGNitude
Command :CHANnel<N>:SIMulation:NOISe:PERiodic<M>:MAGNitude <magnitude>
:CHANnel<N>:SIMulation:NOISe:PERiodic<M>:SHAPe
Command :CHANnel<N>:SIMulation:NOISe:PERiodic<M>:SHAPe <shape>
:CHANnel<N>:SIMulation:NOISe:RANDom
Command :CHANnel<N>:SIMulation:NOISe:RANDom <standard_deviation>
:CHANnel<N>:SIMulation:OFFSet
Command :CHANnel<N>:SIMulation:OFFSet <offset_value>
:CHANnel<N>:SIMulation:WAVeform
Command :CHANnel<N>:SIMulation:WAVeform <type>
:CHANnel<N>:UNITs
Command :CHANnel<N>:UNITs {VOLT | AMPere | WATT | UNKNown}
The :CHANnel<N>:UNITs command sets the vertical units. You can specify Y-axis
units of VOLTs, AMPs, WATTs, or UNKNown. The units are implied for other
pertinent channel commands (such as :CHANnel<N>:RANGe and
:CHANnel<N>:OFFSet). See the Probe Setup dialog box for more information.
<N> An integer, 1-4 in a single oscilloscope, 1-40 in a MultiScope system.
Example This example sets the units for channel 1 to amperes.
myScope.WriteString ":CHANnel1:UNITs AMPere"
Query :CHANnel<N>:UNITs?
The :CHANnel<N>:UNITs? query returns the current units setting for the specified
channel.
Returned Format [:CHANnel<N>:UNITs] {VOLT | AMPere | WATT | UNKNown}<NL>
Example This example places the vertical units for the specified channel in the string
variable, strUnits, then prints the contents of the variable to the computer's
screen.
Dim strUnits As String
myScope.WriteString ":CHANnel1:UNITs?"
strUnits = myScope.ReadString
Debug.Print strUnits
15 Common Commands
*CLS — Clear Status / 417
*ESE — Event Status Enable / 418
*ESR? — Event Status Register / 420
*IDN? — Identification Number / 421
*LRN? — Learn / 422
*OPC — Operation Complete / 424
*OPT? — Option / 425
*PSC — Power-on Status Clear / 432
*RCL — Recall / 433
*RST — Reset / 434
*SAV — Save / 435
*SRE — Service Request Enable / 436
*STB? — Status Byte / 438
*TRG — Trigger / 440
*TST? — Test / 441
*WAI — Wait / 442
Common commands are defined by the IEEE 488.2 standard. They control generic
device functions that are common to many different types of instruments.
Common commands can be received and processed by the oscilloscope, whether
they are sent over the remote interface as separate program messages or within
other program messages.
Receiving Common commands can be received and processed by the oscilloscope, whether
Common they are sent over the remote interface as separate program messages or within
Commands other program messages. If a subsystem is currently selected 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 sets the acquire type, clears the
status information, then sets the number of averages without leaving the selected
subsystem.
415
15 Common Commands
Status Registers The following two status registers used by common commands have an enable
(mask) register. By setting bits in the enable register, you can select the status
information for use. Refer to the chapter, "Status Reporting," for a complete
discussion of status.
See Also • Chapter 7, “Status Reporting,” starting on page 157 for a complete discussion
of status.
• "Example: Blocking and Polling Synchronization" on page 193
• "Example: Checking for Armed Status" on page 182
History Legacy command (existed before version 3.10).
The *ESE command sets the Standard Event Status Enable Register bits.
<mask> An integer, 0 to 255, representing a mask value for the bits to be enabled in the
Standard Event Status Register as shown in Table 7.
Example This example enables the User Request (URQ) bit of the Standard Event Status
Enable Register. When this bit is enabled and a front-panel key is pressed, the
Event Summary bit (ESB) in the Status Byte Register is also set.
myScope.WriteString "*ESE 64"
Query *ESE?
The *ESE? query returns the current contents of the Standard Event Status Enable
Register.
Returned Format <mask><NL>
<mask> An integer, +0 to +255 (the plus sign is also returned), representing a mask value
for the bits enabled in the Standard Event Status Register as shown in Table 7.
Example This example places the current contents of the Standard Event Status Enable
Register in the numeric variable, varEvent. The value of the variable is printed on
the computer's screen.
myScope.WriteString "*ESE?"
varEvent = myScope.ReadNumber
Debug.Print FormatNumber(varEvent, 0)
The Standard Event Status Enable Register contains a mask value for the bits to be
enabled in the Standard Event Status Register. A "1" in the Standard Event Status
Enable Register enables the corresponding bit in the Standard Event Status
Register. A "0" in the enable register disables the corresponding bit.
See Also Refer to Chapter 7, “Status Reporting,” starting on page 157 for a complete
discussion of status.
History Legacy command (existed before version 3.10).
The *ESR? query returns the contents of the Standard Event Status Register.
Reading this register clears the Standard Event Status Register, as does a *CLS.
Returned Format <status><NL>
<status> An integer, 0 to 255, representing the total bit weights of all bits that are high at
the time you read the register.
Example This example places the current contents of the Standard Event Status Register in
the numeric variable, varEvent, then prints the value of the variable to the
computer's screen.
myScope.WriteString "*ESR?"
varEvent = myScope.ReadNumber
Debug.Print FormatNumber(varEvent, 0)
Table 8 lists each bit in the Event Status Register and the corresponding bit
weights.
The *IDN? query returns the company name, oscilloscope model number, serial
number, and software version by returning this string:
Keysight Technologies,<Model #>,<USXXXXXXXX>,<Rev #>[,<Options>]
Example This example places the oscilloscope's identification information in the string
variable, strIdentify, then prints the identification information to the computer's
screen.
Dim strIdentify As String ' Dimension variable.
myScope.WriteString "*IDN?"
strIdentify = myScope.ReadString
Debug.Print strIdentify
*LRN? — Learn
Query *LRN?
The *LRN? query returns a block of data that contains the oscilloscope's current
setup. You can store the oscilloscope's setup and send it back to the oscilloscope
at a later time. This block of setup data should be sent to the oscilloscope just as it
is. It works because of its embedded ":SYST:SET" header.
Returned Format :SYST:SET<setup><NL>
# Import modules.
# ---------------------------------------------------------
import visa
import string
import sys
# =========================================================
# Check for instrument errors:
# =========================================================
def check_instrument_errors():
while True:
error_string = Infiniium.query(":SYSTem:ERRor? STRing")
if error_string: # If there is an error string value.
# =========================================================
# Main program:
# =========================================================
rm = visa.ResourceManager()
Infiniium = rm.open_resource("TCPIP0::141.121.237.226::hislip0::INSTR")
Infiniium.timeout = 20000
Infiniium.clear()
f = open("learn.stp", "wb")
f.write("%s" % sLearn)
f.close()
print "Learn string bytes saved: %d" % len(sLearn)
See Also :SYSTem:SETup command and query. When HEADers is ON and LONGform is
OFF, the :SYSTem:SETup command performs the same function as the *LRN?
query. However, *LRN and SETup block setup data are not interchangeable.
The *OPC command sets the operation complete bit in the Standard Event Status
Register when all pending device operations have finished.
Example This example sets the operation complete bit in the Standard Event Status
Register when the DIGitize operation is complete.
myScope.WriteString ":DIGitize CHANnel1;*OPC"
Query *OPC?
The *OPC? query places an ASCII character "1" in the oscilloscope's output queue
when all pending selected device operations have finished.
Returned Format 1<NL>
Example This example places an ASCII character "1" in the oscilloscope's output queue
when the AUToscale operation is complete. Then the value in the output queue is
placed in the numeric variable var"varComplete."
myScope.WriteString ":AUToscale;*OPC?"
varComplete = myScope.ReadNumber
Debug.Print FormatNumber(varComplete, 0)
The *OPC? query allows synchronization between the computer and the
oscilloscope by using the message available (MAV) bit in the Status Byte or by
reading the output queue. Unlike the *OPC command, the *OPC query does not
affect the OPC Event bit in the Standard Event Status Register.
History Legacy command (existed before version 3.10).
*OPT? — Option
Query *OPT?
The *OPT? query returns a string with a list of installed options. If no options are
installed, the string will have a 0 as the first character.
The length of the returned string may increase as options become available in the
future. Once implemented, an option name will be appended to the end of the
returned string, delimited by a comma.
Returned Format [002,EZP,EZJ,SDA,LSS,ABD,ABC,ABB,NRD,ERC,AIP,PCI1,ETH,DVI,HDM,B30,CAN,
SA1,DDR]<NL>
Example This example places all options into the string variable, strOptions, then prints the
option name to the computer's screen.
Dim strOptions As String
myScope.WriteString "*OPT?"
strOptions = myScope.ReadString
Debug.Print strOptions
The *PSC command determines whether or not the SRQ line is set upon the
completion of the oscilloscope's boot process. When the *PSC flag is set to 1, the
Power On (PON) bit of the Standard Event Status Register is 0 during the boot
process. When the *PSC flag is set to 0, the PON bit is set to a 1 during the boot
process.
When the *PSC flag is set to 0, the Standard Event Status Enable Register must be
set to 128 decimal and the Service Request Enable Register must be set to 32
decimal. This allows the Power On (PON) bit to set the SRQ line when the
oscilloscope is ready to receive commands.
If you are using a LAN interface rather than a GPIB interface, it is not possible to receive the
N OT E
SRQ during the boot process.
Example This example sets the *PSC flag to 0 which sets the SRQ line during the boot
process.
myScope.WriteString "*PSC 0;*SRE 32;*ESE 128"
Query The *PSC? query returns the value of the *PSC flag.
Returned Format 1<NL>
Example This example places the *PSC flag into the integer variable varPscflag.
myScope.WriteString "*PSC?"
varPscflag = myScope.ReadNumber
Debug.Print FormatNumber(varPscflag, 0)
*RCL — Recall
Command *RCL <register>
The *RCL command restores the state of the oscilloscope to a setup previously
stored in the specified save/recall register. An oscilloscope setup must have been
stored previously in the specified register. Registers 0 through 9 are
general-purpose registers and can be used by the *RCL command.
<register> An integer, 0 through 9, specifying the save/recall register that contains the
oscilloscope setup you want to recall.
Example This example restores the oscilloscope to the oscilloscope setup stored in register
3.
myScope.WriteString "*RCL 3"
See Also *SAV (Save). An error message appears on the oscilloscope's display if nothing has
been previously saved in the specified register.
History Legacy command (existed before version 3.10).
*RST — Reset
Command *RST
The *RST command performs a default setup which is the same as pressing the
oscilloscope front panel [Default Setup] key.
Example This example resets the oscilloscope to a known state.
myScope.WriteString "*RST"
See Also • ":SYSTem:PRESet" on page 1233 (where the default values for Infiniium
oscilloscope controls are described)
History Legacy command (existed before version 3.10).
*SAV — Save
Command *SAV <register>
The *SAV command stores the current state of the oscilloscope in a save register.
<register> An integer, 0 through 9, specifying the register used to save the current
oscilloscope setup.
Example This example stores the current oscilloscope setup to register 3.
myScope.WriteString "*SAV 3"
The *SRE command sets the Service Request Enable Register bits. By setting the
*SRE, when the event happens, you have enabled the oscilloscope's interrupt
capability. The oscilloscope will then do an SRQ (service request), which is an
interrupt.
<mask> An integer, 0 to 255, representing a mask value for the bits to be enabled in the
Service Request Enable Register as shown in Table 10.
Example This example enables a service request to be generated when a message is
available in the output queue. When a message is available, the MAV bit is high.
myScope.WriteString "*SRE 16"
Query *SRE?
The *SRE? query returns the current contents of the Service Request Enable
Register.
Returned Format <mask><NL>
<mask> An integer, 0 to 255, representing a mask value for the bits enabled in the Service
Request Enable Register.
Example This example places the current contents of the Service Request Enable Register
in the numeric variable, varValue, then prints the value of the variable to the
computer's screen.
myScope.WriteString "*SRE?"
varValue = myScope.ReadNumber
Debug.Print FormatNumber(varValue, 0)
The Service Request Enable Register contains a mask value for the bits to be
enabled in the Status Byte Register. A "1" in the Service Request Enable Register
enables the corresponding bit in the Status Byte Register. A "0" disables the bit.
The *STB? query returns the current contents of the Status Byte, including the
Master Summary Status (MSS) bit. See Table 11 for Status Byte Register bit
definitions.
Returned Format <value><NL>
<value> An integer, 0 to 255, representing a mask value for the bits enabled in the Status
Byte.
Example This example reads the contents of the Status Byte into the numeric variable,
varValue, then prints the value of the variable to the computer's screen.
myScope.WriteString "*STB?"
varValue = myScope.ReadNumber
Debug.Print FormatNumber(varValue, 0)
*TRG — Trigger
Command *TRG
The *TRG command has the same effect as the Group Execute Trigger message
(GET) or RUN command. It acquires data for the active waveform display, if the
trigger conditions are met, according to the current settings.
Example This example starts the data acquisition for the active waveform display according
to the current settings.
myScope.WriteString "*TRG"
*TST? — Test
Query *TST?
The *TST? query causes the oscilloscope to perform a self-test, and places a
response in the output queue indicating whether or not the self-test completed
without any detected errors. Use the :SYSTem:ERRor command to check for
errors. A zero indicates that the test passed and a non-zero indicates the self-test
failed.
*WAI — Wait
Command *WAI
The *WAI command has no function in the oscilloscope, but is parsed for
compatibility with other instruments.
Example myScope.WriteString "*WAI"
16 Digital Commands
:DIGital<N>:DISPlay / 444
:DIGital<N>:LABel / 445
:DIGital<N>:SIZE / 446
:DIGital<N>:THReshold / 447
443
16 Digital Commands
:DIGital<N>:DISPlay
Command
The DIGital commands only apply to the MSO oscilloscopes.
N OT E
The :DIGital<N>:DISPlay command enables or disables the view for the selected
digital channel.
<N> An integer, 0-15.
Example This example turns on the display of bit 5 for the digital channels.
myScope.WriteString ":DIGital5:DISPlay ON"
Query :DIGital<N>[:DISPlay]?
The :DIGital<N>:DISPlay? query returns the value of the display setting for the
selected digital channel.
Returned Format [:DIGital<N>:DISPlay] {1 | 0}<NL>
:DIGital<N>:LABel
Command
The DIGital commands only apply to the MSO oscilloscopes.
N OT E
:DIGital<N>:LABel <quoted_string>
The :DIGital<N>:LABel command sets the digital channel label to the quoted
string. Setting a label for a digital channel will also result in the name being added
to the label list.
Label strings are 16 characters or less, and may contain any commonly used ASCII characters.
N OT E
Labels with more than 16 characters are truncated to 16 characters.
Query :DIGital<N>:LABel?
The :DIGital<N>:LABel? query returns the name of the specified digital channel.
Returned Format [:DIGital<N>:LABel] <quoted_string><NL>
:DIGital<N>:SIZE
Command
The DIGital commands only apply to the MSO oscilloscopes.
N OT E
The :DIGital<N>:SIZE command changes the vertical size of all the displayed
digital channels. The digital subsystem must be enabled before this command will
work. See ENABle command in the root subsystem.
<N> An integer, 0-15.
Example This example changes the size to medium for all displayed digital channels or
buses.
myScope.WriteString ":ENABle DIGital"
myScope.WriteString ":DIGital5:SIZE MEDium"
Query :DIGital<N>:SIZE?
:DIGital<N>:THReshold
Command
The DIGital commands only apply to the MSO oscilloscopes.
N OT E
The :DIGital<N>:THReshold command sets the logic threshold value for a pod.
Setting the threshold for digital channels 0 through 7 sets the threshold for pod 1
while setting the threshold for digital channels 8 through 15 sets the threshold for
pod 2. This command is equivalent to the POD<N>:THReshold command.
The threshold is used for triggering purposes and for displaying the digital data as
high (above the threshold) or low (below the threshold). The voltage values for the
predefined thresholds are:
• CMOS50 = 2.5 V
• CMOS33 = 1.65 V
• CMOS25 = 1.25 V
• ECL = -1.3 V
• PECL = 3.7 V
• TTL = 1.4 V
• DIFFerential = 0 V
<N> An integer, 0-15.
<value> A real number representing the voltage value which distinguishes a 1 logic level
from a 0 logic level. Waveform voltages greater than the threshold are 1 logic
levels while waveform voltages less than the threshold are 0 logic levels.
On 9000 Series, 9000H Series, and S-Series mixed-signal oscilloscopes, the range
of the threshold voltage is from -8 volts to 8 volts.
On 90000 X-Series and V-Series mixed-signal oscilloscopes, the range of the
threshold voltage is from -3.75 volts to 3.75 volts.
Example This example sets the threshold to 1.8 volts for bits D15 through D8.
myScope.WriteString ":DIGital8:THReshold 1.8"
Query :DIGital<N>:THReshold?
The :DIGital<N>:THReshold? query returns the threshold value for the specified
pod.
Returned Format [:DIGital<N>:THReshold] {CMOS50 | CMOS33 | CMOS25 | ECL | PECL | TTL
| DIFF | <value>}<NL>
17 Disk Commands
:DISK:CDIRectory / 450
:DISK:COPY / 451
:DISK:DELete / 452
:DISK:DIRectory? / 453
:DISK:LOAD / 454
:DISK:MDIRectory / 456
:DISK:PWD? / 457
:DISK:SAVE:COMPosite / 458
:DISK:SAVE:IMAGe / 459
:DISK:SAVE:JITTer / 460
:DISK:SAVE:LISTing / 461
:DISK:SAVE:MEASurements / 462
:DISK:SAVE:PRECprobe / 463
:DISK:SAVE:SETup / 464
:DISK:SAVE:WAVeform / 465
:DISK:SEGMented / 467
The DISK subsystem commands perform the disk operations as defined in the File
menu. This allows saving and loading of waveforms and setups, as well as saving
screen images to bitmap files.
449
17 Disk Commands
:DISK:CDIRectory
Command :DISK:CDIRectory "<directory>"
:DISK:COPY
Command :DISK:COPY "<source_file>","<dest_file>"
The :DISK:COPY command copies a source file from the disk to a destination file on
the disk. An error is displayed on the oscilloscope screen if the requested file does
not exist. Use full directory paths for the source and destination files.
<source_file> A character-quoted ASCII string which can include subdirectories with the name of
<dest_file> the file.
Example This example copies C:\Users\Public\Documents\Infiniium\File1.wfm to C:\Temp\
File1b.wfm on the disk.
myScope.WriteString ":DISK:COPY ""C:\Users\Public\Documents\Infiniium\
File1.wfm"",""C:\Temp\File1b.wfm""
:DISK:DELete
Command :DISK:DELete "<file_name>"
The :DISK:DELete command deletes a file from the disk. An error is displayed on
the oscilloscope screen if the requested file does not exist. The default path is C:\
Users\Public\Documents\Infiniium.
<file_name> A character-quoted ASCII string which can include subdirectories with the name of
the file.
Example This example deletes FILE1.SET from the disk.
myScope.WriteString ":DISK:DELete ""FILE1.SET"""
:DISK:DIRectory?
Query :DISK:DIRectory? ["<directory>"]
The :DISK:DIRectory? query returns the requested directory listing. Each entry is
63 bytes long, including a carriage return and line feed. The default path is C:\
Users\Public\Documents\Infiniium.
<directory> The list of filenames and directories.
Returned Format [:DISK:DIRectory]<n><NL><directory>
<n> The specifier that is returned before the directory listing, indicating the number of
lines in the listing.
<directory> The list of filenames and directories. Each line is separated by a <NL>.
Example This example displays a number, then displays a list of files and directories in the
current directory. The number indicates the number of lines in the listing.
Dim varResults As Variant
Dim lngI As Long
myScope.WriteString ":DISK:DIR?"
varResults = myScope.ReadList(ASCIIType_BSTR, vbLf)
Debug.Print FormatNumber(varResults(0), 0)
:DISK:LOAD
Command :DISK:LOAD "<file_name>"[,<destination>,<interp>]
The :DISK:LOAD command restores from the disk a setup file, composite file, or a
waveform file into a waveform memory destination. The type of file is determined
by the filename suffix if one is present, or by the destination field if one is not
present. You can load .WFM, .CSV, .TSV, .TXT, .BIN, .H5, .SET, and .OSC file types.
The destination is only used when loading a waveform memory.
CAUTION Setups saved from Infiniium software versions prior to 2.00 may not load correctly in
software versions 4.30 and greater.
You can remedy this by re-saving any pre-2.00 setups using any version of software
from version 2.00 to version 4.20.
Setups saved from software versions between 2.00 and 4.20 should load correctly into
version 4.30 and greater.
<file_name> A quoted ASCII string with a maximum of 254 characters including the entire path
name, if used. You can use either .WFM, .CSV, .TSV, .TXT, .BIN, .H5, .SET, or .OSC
as a suffix after the filename. If no file suffix is specified, the default is .wfm.
The present working directory is assumed, or you can specify the entire path. For
example, you can load the standard setup file "SETUP0.SET" using the command:
:DISK:LOAD "C:\Users\Public\Documents\Infiniium\Setups\SETUP0.SET"
Or, you can use :DISK:CDIRectory to change the present working directory to C:\
Users\Public\Documents\Infiniium\Setups, then just use the file name
("SETUP0.SET", for example). The default path is C:\Users\Public\Documents\
Infiniium\Setups.
When setup files are loaded, touch screen settings are ignored.
<destination> WMEMory<R>.
Where <R> is an integer from 1-4.
If a destination is not specified, waveform memory 1 is used.
<interp> {OFF | INT1 | INT2 | INT4 | INT8 | INT16}
When loading waveform data into a waveform memory, you can specify the
Sin(x)/x interpolation ratio that is used. OFF means no interpolation. You can also
specify the 1, 2, 4, 8, or 16 point Sin(x)/x interpolation ratios using INT1, INT2,
INT4, INT8, or INT16.
Example This example restores the waveform in FILE1.WFM to waveform memory 1 with no
Sin(x)/x interpolation.
myScope.WriteString ":DISK:LOAD ""FILE1.WFM"",WMEM1,OFF"
:DISK:MDIRectory
Command :DISK:MDIRectory "<directory>"
Example 2 This example creates the directory CPROGRAMS in the present working directory
set by the :DISK:CDIRectory command.
myScope.WriteString ":DISK:MDIRectory ""CPROGRAMS"""
:DISK:PWD?
Query :DISK:PWD?
The :DISK:PWD? query returns the name of the present working directory
(including the full path). If the default path (C:\Users\Public\Documents\Infiniium)
has not been changed by the :DISK:CDIRectory command, the :DISK:PWD? query
will return an empty string.
Returned Format :DISK:PWD? <present_working_directory><NL>
Example This example places the present working directory in the string variable strWdir,
then prints the contents of the variable to the computer's screen.
Dim strWdir As String
myScope.WriteString ":DISK:PWD?"
str Wdir = myScope.ReadString
Debug.Print strWdir
:DISK:SAVE:COMPosite
Command :DISK:SAVE:COMPosite "<file_name>"
:DISK:SAVE:IMAGe
Command :DISK:SAVE:IMAGe "<file_name>" [,<format>
[,{SCReen | GRATicule}
[,{ON | 1} | {OFF | 0}
[,{NORMal | INVert}
[,{ON | 1} | {OFF | 0}]]]]]
The DISK:SAVE:IMAGe command saves a screen image. The default path is C:\
Users\Public\Documents\Infiniium.
<format> The image format can be: BMP, GIF, TIF, PNG, or JPEG. The extension is supplied
by the oscilloscope depending on the selected file format.
If you do not include the format in the command, the file is saved in the format
shown in the Save Screen dialog box.
<file_name> A quoted ASCII string with a maximum of 254 characters including the entire path
name, if used.
(First) ON | OFF ON means that compression is on for the bitmap format (BMP). OFF means
compression is off.
(Second) ON | OFF The second ON/OFF selection indicates to save the setup information in the image
or not.
<format> {BMP | GIF | TIF | JPEG | PNG}
Examples myScope.WriteString ":DISK:SAVE:IMAGe ""FILE1"",BMP,SCR,ON,INVERT"
or:
myScope.WriteString ":DISK:SAVE:IMAGe ""FILE1"",TIF,GRAT,ON"
or:
myScope.WriteString ":DISK:SAVE:IMAGe ""FILE1"""
:DISK:SAVE:JITTer
Command :DISK:SAVE:JITTer "<file_name>"
The DISK:SAVE:JITTer command saves the jitter measurements shown in the RJDJ
tab at the bottom of the oscilloscope screen along with the RJDJ graph data in a
comma separated variables (CSV) file format. The csv extension is supplied by the
oscilloscope. The default path is C:\Users\Public\Documents\Infiniium.
<file_name> A quoted ASCII string with a maximum of 254 characters including the entire path
name, if used.
Example myScope.WriteString ":DISK:SAVE:JITTer ""FILE1"""
:DISK:SAVE:LISTing
Command :DISK:SAVE:LISTing [<source>,] "<file_name>" [,<format>[,<type>]]
The DISK:SAVE:LISTing command saves the contents of the bus listing window to
a file in either a .csv or .txt format. The default path is C:\Users\Public\
Documents\Infiniium.
<source> {SERial<N>} — The default serial bus is the one currently displayed in the listing
window.
<N> An integer 1 - 4.
<file_name> A quoted ASCII string with a maximum of 254 characters including the entire path
name, if used.
<format> {CSV | TXT}
<type> {PACKets | SYMBols}
Specifies which display window to save.
Example myScope.WriteString ":DISK:SAVE:LISTing SERial3, ""FILE1"", CSV"
:DISK:SAVE:MEASurements
Command :DISK:SAVE:MEASurements "<file_name>"[,<legacy_save_mode>]
:DISK:SAVE:PRECprobe
Command :DISK:SAVE:PRECprobe "<file_name>.csv", {CHAN1 | CHAN2 | CHAN3 | CHAN4}
:DISK:SAVE:SETup
Command :DISK:SAVE:SETup "<file_name>"
:DISK:SAVE:WAVeform
Command :DISK:SAVE:WAVeform <source>,"<file_name>" [,<format>[,<header>]]
See the ":WAVeform:VIEW" on page 1501 command to determine how much data is saved.
N OT E
When an acquisition is made on multiple channels, the data for each channel has the same
N OT E
X origin and the same number of points.
:DISK:SEGMented
Command :DISK:SEGMented {ALL | CURRent}
The :DISK:SEGMented command sets whether all segments or just the current
segment are saved to a file when the :DISK:SAVE:WAVeform command is issued
and the source is a channel but not a waveform memory or function. Before
segments can be saved, the :ACQuire:MODE must be set to the SEGMented mode
and segments must be acquired.
Example This example sets the disk segmented memory store method to CURRent.
myScope.WriteString ":DISK:SEGMented CURRent"
Query :DISK:SEGMented?
Example This example places the disk store method in the string variable strMethod, then
prints the contents of the variable to the computer's screen.
Dim strMethod As String
myScope.WriteString ":DISK:SEGMented?"
strMethod = myScope.ReadString
Debug.Print strMethod
18 Display Commands
:DISPlay:BOOKmark<N>:DELete / 471
:DISPlay:BOOKmark<N>:SET / 472
:DISPlay:BOOKmark<N>:VERTical? / 474
:DISPlay:BOOKmark<N>:XPOSition / 475
:DISPlay:BOOKmark<N>:YPOSition / 476
:DISPlay:CGRade / 477
:DISPlay:CGRade:LEVels? / 479
:DISPlay:CGRade:SCHeme / 481
:DISPlay:CONNect / 483
:DISPlay:DATA? / 484
:DISPlay:GRATicule / 485
:DISPlay:GRATicule:AREA<N>:STATe / 486
:DISPlay:GRATicule:INTensity / 487
:DISPlay:GRATicule:NUMBer / 488
:DISPlay:GRATicule:SETGrat / 489
:DISPlay:ISIM:GCOunt / 490
:DISPlay:ISIM:SELectgraph / 491
:DISPlay:ISIM:SOURce / 492
:DISPlay:JITTer:GCOunt / 493
:DISPlay:JITTer:SELectgraph / 494
:DISPlay:JITTer:THReshold / 496
:DISPlay:LABel / 497
:DISPlay:LAYout / 498
:DISPlay:MAIN / 499
:DISPlay:NOISe:LEVel / 500
:DISPlay:PERSistence / 501
:DISPlay:PRECprobe:GCOunt / 505
:DISPlay:PRECprobe:SELectgraph / 506
:DISPlay:PRECprobe:SOURce / 507
:DISPlay:PROPortion / 503
:DISPlay:PROPortion:RESults / 504
:DISPlay:SCOLor / 508
469
18 Display Commands
:DISPlay:STATus:COLumn / 510
:DISPlay:STATus:ROW / 511
:DISPlay:WINDow:MAXimize / 512
The DISPlay subsystem controls the display of data, text, and graticules, and the
use of color.
:DISPlay:BOOKmark<N>:DELete
Command :DISPlay:BOOKmark<N>:DELete
:DISPlay:BOOKmark<N>:SET
Command :DISPlay:BOOKmark<N>:SET NONE,"label"[,<color>[,"content"]]
:DISPlay:BOOKmark<N>:SET <source>,"label"[,"content"[,<time>]]
:DISPlay:BOOKmark<N>:VERTical?
Query :DISPlay:BOOKmark<N>:VERTical?
:DISPlay:BOOKmark<N>:XPOSition
Command :DISPlay:BOOKmark<N>:XPOSition <x_pos>
:DISPlay:BOOKmark<N>:YPOSition
Command :DISPlay:BOOKmark<N>:YPOSition <y_pos>
:DISPlay:CGRade
Command :DISPlay:CGRade {{ON | 1} | {OFF | 0}}[,<source>]