要通過SCPI指令設(shè)置雙向直流電源輸出電壓序列的步進(jìn)模式,需結(jié)合序列編程(List Mode)、序列點(diǎn)參數(shù)配置、步進(jìn)控制指令及狀態(tài)查詢功能,以下是具體步驟與指令示例:
使用SOURce:LIST:VOLTage:DATA#指令設(shè)置每個(gè)序列點(diǎn)的電壓值及持續(xù)時(shí)間(部分設(shè)備支持時(shí)間參數(shù),單位可能為秒或100μs):
plaintextSOURce:LIST:COUNt 5 ; 設(shè)置序列包含5個(gè)點(diǎn)SOURce:LIST:VOLTage:DATA1 0, 2 ; 第1點(diǎn):0V,持續(xù)2秒
SOURce:LIST:VOLTage:DATA2 12, 2 ; 第2點(diǎn):12V,持續(xù)2秒
SOURce:LIST:VOLTage:DATA3 24, 2 ; 第3點(diǎn):24V,持續(xù)2秒
SOURce:LIST:VOLTage:DATA4 12, 2 ; 第4點(diǎn):12V,持續(xù)2秒
SOURce:LIST:VOLTage:DATA5 0, 2 ; 第5點(diǎn):0V,持續(xù)2秒
注意:部分設(shè)備(如Chroma 62000P系列)可能使用PROG:LIST:VOLT:DATA#指令,需參考具體型號手冊。
通過指令激活序列功能,并禁用循環(huán)(步進(jìn)模式通常需單次執(zhí)行):
plaintextSOURce:LIST:FUNCtion ON ; 啟用序列模式SOURce:LIST:CYCLe OFF ; 禁用循環(huán)(若需單次步進(jìn))
手動步進(jìn):通過直接設(shè)置序列索引實(shí)現(xiàn)跳轉(zhuǎn):
plaintextSOURce:LIST:INDEx 3 ; 跳轉(zhuǎn)到第3個(gè)序列點(diǎn)(24V)
索引通常從1開始(如INDEx 1表示第1點(diǎn))。
自動步進(jìn):部分設(shè)備支持通過觸發(fā)信號(如外部TTL)或內(nèi)部定時(shí)器自動推進(jìn)序列點(diǎn)。例如,使用內(nèi)部觸發(fā)啟動序列:
plaintextTRIGger:INITiate ; 內(nèi)部觸發(fā)啟動序列
驗(yàn)證步進(jìn)是否成功,查詢當(dāng)前序列點(diǎn)索引及輸出狀態(tài):
plaintextSOURce:LIST:INDEx? ; 查詢當(dāng)前執(zhí)行的序列點(diǎn)索引(返回示例:3)OUTPut:STATe? ; 查詢輸出狀態(tài)(1為開啟,0為關(guān)閉)
以下示例通過Python腳本實(shí)現(xiàn)雙向直流電源的電壓序列步進(jìn)控制:
pythonimport pyvisaimport time# 連接電源rm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")# 初始化與復(fù)位power.write("SYSTem:REMote") # 切換至遠(yuǎn)程模式power.write("*RST") # 復(fù)位設(shè)備(可選)# 配置電壓序列power.write("SOUR:LIST:COUN 5")power.write("SOUR:LIST:VOLT:DATA1 0, 2")power.write("SOUR:LIST:VOLT:DATA2 12, 2")power.write("SOUR:LIST:VOLT:DATA3 24, 2")power.write("SOUR:LIST:VOLT:DATA4 12, 2")power.write("SOUR:LIST:VOLT:DATA5 0, 2")# 啟用序列模式(禁用循環(huán))power.write("SOUR:LIST:FUNC ON")power.write("SOUR:LIST:CYCL OFF")# 手動步進(jìn)控制示例print("跳轉(zhuǎn)到第3點(diǎn)(24V)...")power.write("SOUR:LIST:INDEx 3")time.sleep(0.1) # 等待跳轉(zhuǎn)完成# 查詢當(dāng)前狀態(tài)current_index = int(power.query("SOUR:LIST:INDEx?"))output_state = int(power.query("OUTPut:STATe?"))print(f"當(dāng)前序列點(diǎn): {current_index}, 輸出狀態(tài): {'開啟' if output_state else '關(guān)閉'}")# 關(guān)閉輸出power.write("OUTPut OFF")power.close()
SOURce:LIST:GOTO 3指令直接跳轉(zhuǎn)到第3點(diǎn)。SOURce:LIST:STATus?。LIST:VOLT:DATA1 0, 2000表示200ms)。LIST:JUMP:INDEx 2。PROG:LIST:VOLT:DATA#設(shè)置序列點(diǎn)。PROG:LIST:GOTO 3(需確認(rèn)支持)。SOUR:LIST:COUNt?查詢)。time.sleep(0.1)),確保電源完成狀態(tài)切換。SOUR:LIST:VOLT:DATA1 -12, 2)。SOUR:VOLTage:PROTection:LEVel?查詢保護(hù)閾值。通過上述方法,可靈活實(shí)現(xiàn)雙向直流電源的電壓序列步進(jìn)控制,適用于電池測試、動態(tài)負(fù)載模擬等場景。