1364
Keysight InfiniiVision M9241/42/43A PXIe Oscilloscopes SCPI Programmer's Guide
38
Synchronizing Acquisitions
try:
KsInfiniiVisionX = rm.open_resource(VISA_ADDRESS)
except Exception:
print "Unable to connect to oscilloscope at " + str(VISA_ADDRESS)\
+ ". Aborting script.\n"
sys.exit()
# Set the Global Timeout
KsInfiniiVisionX.timeout = GLOBAL_TOUT
# Clear the instrument bus
KsInfiniiVisionX.clear()
# Clear all status registers and errors
KsInfiniiVisionX.write("*CLS")
try:
# Set up the oscilloscope
# ----------------------------------------------------------------
# Note that you would normally perform a reset (default setup) if
# you were to create the setup from scratch... But here we will
# use the oscilloscope "as is" for the most part.
# KsInfiniiVisionX.query("*RST;*OPC?")
# Resets the oscilloscope
# Always stop the oscilloscope when making any changes.
KsInfiniiVisionX.query(":STOP;*OPC?")
# For this example, the oscilloscope will be forced to trigger on
# the # (AC input power) LINE voltage so something happens.
# Always use normal trigger sweep, never auto.
KsInfiniiVisionX.write(":TRIGger:SWEep NORMal")
# This line simply gives the oscilloscope something to trigger on.
KsInfiniiVisionX.query(":TRIGger:EDGE:SOURce LINE;*OPC?")
# Clear the display (so you can see the waveform being acquired -
# otherwise, there is no need for this).
KsInfiniiVisionX.write(":CDISplay")
# Calculate acquisition timeout/wait time by short, overestimate
# method
# ----------------------------------------------------------------
# Create some default variables
N_AVERAGES = 1
N_SEGMENTS = 1
# Get some info about the scope time base setup
HO
= float(KsInfiniiVisionX.query(":TRIGger:HOLDoff?"))
T_RANGE
= float(KsInfiniiVisionX.query(":TIMebase:RANGe?"))
T_POSITION = float(KsInfiniiVisionX.query(":TIMebase:POSition?"))
# Determine Acquisition Type and Mode:
ACQ_TYPE = str(KsInfiniiVisionX.query(":ACQuire:TYPE?").strip("\n"))
ACQ_MODE = str(KsInfiniiVisionX.query(":ACQuire:MODE?").strip("\n"))
if ACQ_MODE == "SEGM":