要用SCPI指令配置双向直流电源输出电流序列的重复次数,需结合序列模式(List Mode)与循环控制指令,以下是具体步骤和示例:
设置序列点数量:
SOURce:LIST:COUNt <N><N>为序列点总数(如3表示3个点)。定义每个序列点的电流值与持续时间:
SOURce:LIST:CURRent:DATA<n> <I_n>, <T_n><n>:序列点序号(从1开始,如DATA1表示第1点)。<I_n>:当前点的电流值(单位:A,如-10表示-10A)。<T_n>:当前点的持续时间(单位:秒或电源支持的单位,如2表示2秒)。启用循环功能并设置循环次数:
SOURce:LIST:COUNt:REPeat <M><M>为循环次数(如3表示循环3次)。启用序列模式:
SOURce:LIST:FUNCtion ON初始化与复位:
SYSTem:REMote:进入远程模式。*RST:复位设备(可选)。配置序列参数:
SOURce:LIST:COUNt 3:设置3个序列点。SOURce:LIST:CURRent:DATA1 -5, 2:第1点:-5A,持续2秒。SOURce:LIST:CURRent:DATA2 0, 1:第2点:0A,持续1秒。SOURce:LIST:CURRent:DATA3 10, 3:第3点:10A,持续3秒。启用循环功能并设置循环次数:
SOURce:LIST:CYCLe ON:启用循环。SOURce:LIST:COUNt:REPeat 3:循环3次。启动输出:
OUTPut:STATe ON:开启输出,电源将按序列输出电流。不同品牌电源的循环控制指令可能存在差异,以下为常见型号的示例:
Keysight N6700系列:
SOURce:LIST:FUNC REPeatSOURce:LIST:COUNt 3Chroma 62000P系列:
SOURce:LIST:LOOP 3ITECH IT6000系列:
LIST:CYCLe:STATe ONLIST:CYCLe:COUNt 5查询当前序列状态:
SOURce:LIST:INDEx?:返回当前执行的序列点序号。OUTPut:STATe?:返回输出状态(ON/OFF)。错误处理:
SYSTem:ERRor?:查询错误代码(如参数越限、触发未配置)。若需通过脚本实现循环控制,可结合SCPI指令与编程逻辑:
pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")# 配置序列与循环power.write("SYST:REM")power.write("SOUR:LIST:COUN 3")power.write("SOUR:LIST:CURR:DATA1 -5, 2")power.write("SOUR:LIST:CURR:DATA2 0, 1")power.write("SOUR:LIST:CURR:DATA3 10, 3")power.write("SOUR:LIST:CYCL ON") # 启用循环power.write("SOUR:LIST:COUN:REP 3") # 循环3次(若电源支持)# 启动输出(内部触发)power.write("TRIG:INIT")# 监控状态(示例:循环3次后停止)for _ in range(3): while True: index = int(power.query("SOUR:LIST:INDEX?")) if index == 1: # 检测序列重新开始(循环点) break time.sleep(6) # 等待一个完整循环power.write("OUTP OFF")power.close()