1354
Keysight InfiniiVision M9241/42/43A PXIe Oscilloscopes SCPI Programmer's Guide
38
Synchronizing Acquisitions
Synchronization with an Averaging Acquisition
When averaging, it is necessary to know when the average count has been
reached. The :SINGle command does not average.
If it is known that a trigger will occur, a :DIGitize will acquire the complete number
of averages, but if the number of averages is large, a timeout on the connection
can occur.
The example below polls during the :DIGitize to prevent a timeout on the
connection.
'
' Synchronizing in averaging acquisition mode.
' ===================================================================
Option Explicit
Public myMgr As VisaComLib.ResourceManager
Public myScope As VisaComLib.FormattedIO488
Public varQueryResult As Variant
Public strQueryResult As String
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Main()
On Error GoTo VisaComError
' Create the VISA COM I/O resource.
Set myMgr = New VisaComLib.ResourceManager
Set myScope = New VisaComLib.FormattedIO488
Set myScope.IO = myMgr.Open("TCPIP0::130.29.69.12::inst0::INSTR")
myScope.IO.Clear
' Clear the interface.
myScope.IO.Timeout = 5000
' Set up.
' -----------------------------------------------------------------
' Set up the trigger and horizontal scale.
myScope.WriteString ":TRIGger:SWEep NORMal"
myScope.WriteString ":TRIGger:MODE EDGE"
myScope.WriteString ":TRIGger:EDGE:LEVel 2"
myScope.WriteString ":TIMebase:SCALe 5e-8"
' Stop acquisitions and wait for the operation to complete.
myScope.WriteString ":STOP"
myScope.WriteString "*OPC?"
strQueryResult = myScope.ReadString
' Set up average acquisition mode.
Dim lngAverages As Long
lngAverages = 256
myScope.WriteString ":ACQuire:COUNt " + CStr(lngAverages)
myScope.WriteString ":ACQuire:TYPE AVERage"