from agilentmultimeter import AgilentMultimeter # Config settings countergpib = 5 multigpib = None vrange = 1 vresolution = 0.0001 gatetime = 0.1 # in seconds # Setting up frequency counter counter = AgilentCounter(gpib = countergpib) if (counter == None): exit counter.reset() counter.setupFast() counter.write(":FUNC 'FREQ 1'") counter.setupGating(gatetime) # Setting up multimeter multi = AgilentMultimeter(gpib = multigpib) if multigpib else None if multi: multi.reset() # 5-1/2 digits fast multi.write("CONF:VOLT:DC %d" %(vrange)) multi.write("VOLT:DC:NPLC 0.2") multi.write("TRIG:SOUR IMM") # Need to do one reading to set up Wait-For-Trigger state! multi.ask("READ?") # Setting up output file
countergpib = config.getint('Setup','counter_GPIB') measureconf = config.items('Measurements') ## Convert measurement parameters into numbers measureconfarray = [] for m in measureconf: measureconfarray += [[float(m[0]), int(m[1])]] measureconfarray.sort() # Setting up frequency counter counter = AgilentCounter(gpib = countergpib) if (counter == None): exit counter.reset() counter.setupFast() counter.write(":FUNC 'FREQ 1'") counter.write(":FREQ:ARM:STAR:SOUR IMM") counter.write(":FREQ:ARM:STOP:SOUR TIM") for measure in measureconfarray: gatetime = measure[0] repeats = measure[1] counter.write(":FREQ:ARM:STOP:TIM %f" %(gatetime)) counter.write(":INIT:CONT ON") counter.write(":INIT") print "Averaging time: %g" %(gatetime) # # Setting up output file datafile = "allan_%s_%g.log" %(strftime("%y%m%d_%H%M%S"), gatetime)