引言
网络分析仪在射频微波领域应用广泛,本文通过Python语言控制仪器实现自动化测试并保存相应数据,帮助工程师实现自己的自动化测试系统。
代码功能
使用Python控制并设置网络分析仪测试状态和参数,完成S参数测试的整个过程,并将测试数据保存为S2P文件。
话不多说,直接上代码:
import pyvisa as visa
rm = visa.ResourceManager()
# visa地址需自行添加
vna = rm.open_resource("visa地址")
vna.write_termination = '\n'
fd = vna.query('*IDN?')# 读取仪器识别码
print(fd)
vna.write('*RST;*CLS') # 仪器复位及清除
vna.write(':SYSTEM:DISPLAY:UPDATE ON')
vna.write('INIT:CONT OFF')# 单次扫描模式
vna.write(':INITIATE:IMMEDIATE:ALL; *WAI')# measure a single sweep group for channels
# -----------------------------------------------------------
# 仪器设置:频率范围、扫描点数
# -----------------------------------------------------------
vna.write(":SENSe:FREQ1:STARt 800MHz; :SENSe:FREQ1:STOP 6000MHz; :SENSe:SWEep:POINts 601")
# -----------------------------------------------------------
# 测量项目和窗口曲线显示(四个S参数显示在一个Channel内)
# -----------------------------------------------------------
vna.write('CALCULATE1:PAR:MEAS "Trc1", "S11"') # 第一条默认曲线测试改为S11,默认测试S21
vna.write('CALCULATE1:PAR:SDEFine "Trc2", "S12"') # 增加第二条曲线测试S12
vna.write('CALCULATE1:PAR:SDEFine "Trc3", "S21"') # 增加第三条曲线测试S21
vna.write('CALCULATE1:PAR:SDEFine "Trc4", "S22"') # 增加第四条曲线测试S22
vna.write('DISPlay:WINDow:TRACe2:FEED "Trc2"') # 第二条曲线显示在窗口内
vna.write('DISPlay:WINDow:TRACe3:FEED "Trc3"')
vna.write('DISPlay:WINDow:TRACe4:FEED "Trc4"')
vna.write('SYSTem:DISPlay:UPDate ONCE')
# -----------------------------------------------------------
# 仪器读写同步设置
# -----------------------------------------------------------
vna.timeout = 30000 # 通信超时限值 ms
vna.write('INIT') # 开始扫描
vna.query('*OPC?') # *OPC?同步
# -----------------------------------------------------------
# 将测试数据保存为S2P文件,该文件保存在仪器内
# -----------------------------------------------------------
vna.write('MMEM:STOR:TRAC "Trc1","C:\\Users\\Instrument\\Sdata\\ceshi.s2p"')
#读取当前所有trace的数据并打印在命令窗口,以下两行代码根据实际需要可注释。
# traceASC = vna.query_ascii_values('FORM ASC;CALCulate:DATA:ALL? SDAT;*WAI')
# print(traceASC)
# -----------------------------------------------------------
# 关闭仪器对象和VISA资源管理器
# -----------------------------------------------------------
vna.close()
rm.close()
参考文章: https://mp.weixin.qq.com/s/srvEBPpnfsCJ-LcGcLqtbQ
相关资源:https://blog.csdn.net/weixin_44783617/article/details/115504880?spm=1001.2014.3001.5502
欢迎交流、转载、点赞 ~