当前位置:主页 > 查看内容

Python控制仪器【2 ,控制矢量网络分析仪】

发布时间:2021-05-28 00:00| 位朋友查看

简介:引言 网络分析仪在射频微波领域应用广泛本文通过Python语言控制仪器实现自动化测试并保存相应数据帮助工程师实现自己的自动化测试系统。 代码功能 使用Python控制并设置网络分析仪测试状态和参数完成S参数测试的整个过程并将测试数据保存为S2P文件。 话不多……

引言

网络分析仪在射频微波领域应用广泛,本文通过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

欢迎交流、转载、点赞 ~

;原文链接:https://blog.csdn.net/weixin_44783617/article/details/115530093
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:小程序订餐系统——后端开发 下一篇:没有了

推荐图文


随机推荐