引言
網路分析儀在射頻微波領域應用廣泛,本文通過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://www.uj5u.com/qita/274474.html
標籤:其他
下一篇:小程式訂餐系統——后端開發
