要使用SCPI指令查詢雙向直流電源當(dāng)前輸出電流序列的狀態(tài),需結(jié)合序列模式(List Mode)的狀態(tài)查詢指令,獲取序列的運行進(jìn)度、當(dāng)前點位置、循環(huán)次數(shù)等信息。以下是詳細(xì)步驟和示例:
plaintextSOURce:LIST:FUNCtion?
ON或OFF,表示序列功能是否激活。plaintextSOURce:LIST:ADVance:COUNter?
2,表示當(dāng)前處于第2個序列點。plaintextSOURce:LIST:COUNt?
3表示3個點)。plaintextSOURce:LIST:CYCLe:STATe?
ON或OFF,表示是否啟用循環(huán)模式。plaintextSOURce:LIST:CYCLe:COUNt:REMaining?
INF或特定值)。plaintextMEASure:CURRent?
plaintextOUTPut:STATe?
ON或OFF,確認(rèn)輸出是否開啟(序列運行時輸出應(yīng)為ON)。檢查序列是否啟用
plaintextSOURce:LIST:FUNCtion? ; 返回"ON"表示序列已激活
獲取序列總點數(shù)
plaintextSOURce:LIST:COUNt? ; 假設(shè)返回"3",表示3個序列點
查詢當(dāng)前序列點位置
plaintextSOURce:LIST:ADVance:COUNter? ; 假設(shè)返回"2",表示當(dāng)前在第2點
檢查循環(huán)狀態(tài)
plaintextSOURce:LIST:CYCLe:STATe? ; 返回"ON"表示啟用循環(huán)SOURce:LIST:CYCLe:COUNt:REMaining? ; 返回剩余循環(huán)次數(shù)(如"1"表示還剩1次)
獲取實際輸出電流
plaintextMEASure:CURRent? ; 返回當(dāng)前輸出電流值(如"5.000"A)
SOURce:LIST:STATe?:plaintextSOURce:LIST:STATe? ; 返回"RUNNING"或"IDLE"
plaintextSOURce:LIST:CURRent:DATA? (@<n>) ; 查詢第<n>點電流值(如@2)
LIST:ADVance:COUNter?查詢當(dāng)前點位置,LIST:LOOP:COUNter?查詢循環(huán)次數(shù):plaintextLIST:ADVance:COUNter? ; 當(dāng)前點序號LIST:LOOP:COUNter? ; 已完成循環(huán)次數(shù)
SOURce:LIST:STEP:ACTual?查詢當(dāng)前步數(shù):plaintextSOURce:LIST:STEP:ACTual? ; 返回當(dāng)前步數(shù)(1-based)
-400 Parameter Error:參數(shù)超出范圍(如查詢未啟用的序列狀態(tài))。-350 Command Error:指令語法錯誤(如拼寫錯誤)。-107 No Sequence Active:序列未啟用時查詢狀態(tài)。MEASure:CURRent?確認(rèn)輸出是否符合預(yù)期。pythonimport pyvisa# 連接電源rm = pyvisa.ResourceManager()power_supply = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替換為實際地址# 查詢序列狀態(tài)is_list_active = power_supply.query("SOURce:LIST:FUNCtion?").strip() == "ON"print(f"序列是否啟用: {is_list_active}")if is_list_active: # 查詢總點數(shù) total_points = int(power_supply.query("SOURce:LIST:COUNt?").strip()) print(f"序列總點數(shù): {total_points}") # 查詢當(dāng)前點位置 current_point = int(power_supply.query("SOURce:LIST:ADVance:COUNter?").strip()) print(f"當(dāng)前序列點: {current_point}/{total_points}") # 查詢循環(huán)狀態(tài)(Keysight示例) try: is_loop_enabled = power_supply.query("SOURce:LIST:CYCLe:STATe?").strip() == "ON" remaining_loops = power_supply.query("SOURce:LIST:CYCLe:COUNt:REMaining?").strip() print(f"循環(huán)啟用: {is_loop_enabled}, 剩余循環(huán)次數(shù): {remaining_loops}") except: print("循環(huán)查詢指令不支持或未啟用") # 查詢實際輸出電流 output_current = float(power_supply.query("MEASure:CURRent?").strip()) print(f"當(dāng)前輸出電流: {output_current:.3f}A")else: print("序列未啟用,請先配置并啟動序列")# 關(guān)閉連接power_supply.close()
SYSTem:REMote)且未被其他程序鎖定。