Пример #1
0
def vna(paras=default_paras):
	if paras['test_mode'] is not 'VNA':
		raise Exception("Wrong test mode :%s" % paras['test_mode'])
		exit()
	if paras['angle_mode'].upper() == 'SWEEP':
		angle_list  = range(int(paras['angle_start']),int(paras['angle_stop']+paras['angle_step']),int(paras['angle_step']))
	elif paras['angle_mode'].upper() =='SINGLE':
		angle_list = [paras['angle_single']]
	else:
		raise Exception("Wrong angle mode :%s, angle mode should be either SINGLE or SWEEP " % paras['angle_mode'])
		exit()

	timestamp = datetime.now().strftime("%Y_%m_%d_%H_%M_%S")
	file_name = 'Sparameter_' + timestamp + '.csv'
	res_file = os.path.expanduser(paras['save_location']) + file_name
	output=open(res_file,'w')
	tr_name = ['CH1Tr1','CH1Tr2','CH1Tr3']
	meas_obj = ['S14','S24','S34']
	znb = rs.spawn('10.0.1.3')
	lt = tt.spawn(ipAddr='10.0.1.253',port =9001)

	znb.set_freq_range(paras['freq_start'],paras['freq_stop'])
	znb.set_sweep_params(paras['freq_step'],auto=1)

	#--------Set turn table to zeo position, turn turntable to certain degree--------------
	lt.zero()
	output.write("Angle,Freq[Hz],")
	for i in range(len(tr_name)):
		output.write("%s_%s_re,%s_%s_im," % (tr_name[i],meas_obj[i],tr_name[i],meas_obj[i]))
	output.write("\n")

	for angle in angle_list:
		lt.ccw(angle)
		print "Turn table set to %s degree\n" % angle
		sleep(3)
	#--------Create New trace for S21,31,41 measurement, trace name format should follow 'CH#Tr#'------------
		znb.delete_all_trace()
		for i in range(len(tr_name)):
			znb.create_new_trace(tr_name[i],meas_obj[i])

	#--------Set sweep to single mode nad start sweep once-------------
		znb.set_sweep_control(1,single=True)
		sleep(2)
		re,im = [[],[],[]],[[],[],[]]
		for i in range(len(tr_name)):
			znb.select_active_trace(tr_name[i])
			re[i],im[i] = znb.save_trace_data()
			znb.update_display('ON')
		
		for i in range(len(re[0])):
			output.write("%.15f,%.15f," % (angle,paras['freq_start']+paras['freq_step']*i))	
			for j in range(len(tr_name)):
		 	#print"%f,%f,%f\n" % (START_FREQ+STEP_SIZE*i,re[i],im[i])
		 		output.write("%.15f,%.15f," % (re[j][i],im[j][i]))
			output.write("\n")
	#data = znb.interpret("TRAC? CH1DATA").split(',')
	output.close()
    'angle_start': 0,
    'angle_step': 5,
    'angle_single': 30,
    'angle_mode': 'SWEEP',
    'angle_stop': 359,
    'freq_start': 6.25e9,
    'txpower': 10,
    'test_mode': 'VNA',
    'freq_stop': 6.75e9,
    'freq_step': 10e6,
    'save_location': "~/Documents/R1/"
}
paras = default_paras
tr_name = ['CH1Tr1', 'CH1Tr2']  #, 'CH1Tr3']
meas_obj = ['S14', 'S24']  #, 'S34']
znb = rs.spawn('10.0.1.88')
# znb.interpret('*RST\n')
znb.set_freq_range(paras['freq_start'], paras['freq_stop'])
znb.set_sweep_params(paras['freq_step'], auto=1)
znb.interpret("BANDwidth:RESolution {}".format(0.01e6))
znb.delete_all_trace()
for i in range(len(tr_name)):
    znb.create_new_trace(tr_name[i], meas_obj[i])
znb.set_sweep_control(1, single=True)

# znb.update_display('OFF')

# global root
root = Tk()
root.title('R1  Demo')
root.geometry("{0}x{1}+0+0".format('1200', '420'))
Пример #3
0
def vna(paras=default_paras):
	if paras['test_mode'] is not 'VNA':
		raise Exception("Wrong test mode :%s" % paras['test_mode'])
		exit()
	if paras['angle_mode'].upper() == 'SWEEP':
		angle_list  = range(int(paras['angle_start']),int(paras['angle_stop']+paras['angle_step']),int(paras['angle_step']))
	elif paras['angle_mode'].upper() =='SINGLE':
		angle_list = [paras['angle_single']]
	else:
		raise Exception("Wrong angle mode :%s, angle mode should be either SINGLE or SWEEP " % paras['angle_mode'])
		exit()

	for test_attempt in range(1, 5):
		timestamp = datetime.now().strftime("%Y_%m_%d_%H_%M_%S")
		file_name = 'Sparameter_' + timestamp + '.csv'
		res_file = os.path.expanduser(paras['save_location']) + file_name
		output=open(res_file,'w')
		tr_name = ['CH1Tr1','CH1Tr2','CH1Tr3']
		meas_obj = ['S14','S24','S34']
		znb = rs.spawn('10.0.1.88')
		try:
			lt = tt.spawn(ipAddr='10.0.1.253',port =9001)

			znb.set_freq_range(paras['freq_start'],paras['freq_stop'])
			znb.set_sweep_params(paras['freq_step'],auto=1)

			#--------Set turn table to zeo position, turn turntable to certain degree--------------
			lt.zero()
			output.write("Angle,Freq[Hz],")
			for i in range(len(tr_name)):
				output.write("%s_%s_re,%s_%s_im," % (tr_name[i],meas_obj[i],tr_name[i],meas_obj[i]))
			output.write("\n")

			for angle in angle_list:
				lt.ccw(angle)
				print "Turn table set to %s degree\n" % angle
				sleep(5)
			#--------Create New trace for S21,31,41 measurement, trace name format should follow 'CH#Tr#'------------
				znb.delete_all_trace()
				for i in range(len(tr_name)):
					znb.create_new_trace(tr_name[i],meas_obj[i])

			#--------Set sweep to single mode nad start sweep once-------------
				znb.set_sweep_control(1,single=True)
				sleep(2)
				re,im = [[],[],[]],[[],[],[]]
				for i in range(len(tr_name)):
					znb.select_active_trace(tr_name[i])
					re[i],im[i] = znb.save_trace_data()
					znb.update_display('ON')

				for i in range(len(re[0])):
					output.write("%.15f,%.15f," % (angle,paras['freq_start']+paras['freq_step']*i))
					for j in range(len(tr_name)):
					#print"%f,%f,%f\n" % (START_FREQ+STEP_SIZE*i,re[i],im[i])
						output.write("%.15f,%.15f," % (re[j][i],im[j][i]))
					output.write("\n")
			#data = znb.interpret("TRAC? CH1DATA").split(',')
			break
		except (timeout, error) as socket_Error:
			print('Oops! Socket ethernet issue. Most likely powerline ethernet connection failure. Will re-initiate test for a maximum of 4 times. This is testrun #' + str(test_attempt + 1))
			output.close()
			continue
Пример #4
0
from datetime import datetime

angle_step = 10
angle_list = [angle_step * x for x in range(360 / angle_step)]
START_FREQ = 3e9
END_FREQ = 8e9
STEP_SIZE = 1000000
timestamp = datetime.now().strftime("%Y_%m_%d_%H_%M_%S")
file_location = "~/Documents/R1/"
file_name = 'Sparameter_' + timestamp + '.csv'
res_file = os.path.expanduser(file_location) + file_name
output = open(res_file, 'w')
tr_name = ['CH1Tr1', 'CH1Tr2', 'CH1Tr3']
meas_obj = ['S14', 'S24', 'S34']

znb = rs.spawn('10.0.1.3')
lt = tt.spawn(ipAddr='10.0.1.253', port=9001)

znb.set_freq_range(START_FREQ, END_FREQ)
znb.set_sweep_params(STEP_SIZE, auto=1)

#--------Set turn table to zeo position, turn turntable to certain degree--------------
lt.zero()
output.write("Angle,Freq[Hz],")
for i in range(len(tr_name)):
    output.write("%s_%s_re,%s_%s_im," %
                 (tr_name[i], meas_obj[i], tr_name[i], meas_obj[i]))
output.write("\n")

for angle in angle_list:
    lt.ccw(angle)