若需为双向直流电源的电流序列设置延迟时间(即每个序列点的持续时间),可使用 SOURce:LIST:DWELl 指令,该指令用于定义每个序列点在达到目标电流值后的保持时间,具体操作如下:
SOURce:LIST:DWELl <T1>, <T2>, ..., <TN><T1>, <T2>, ..., <TN>:对应每个序列点的持续时间,数量需与序列点数(SOURce:LIST:COUNt)一致。scpiSOURce:LIST:DWELl 2, 5, 3 ; 第1点持续2秒,第2点持续5秒,第3点持续3秒
切换至远程模式
scpiSYSTem:REMote
复位设备(可选)
scpi*RST
设置序列点数
scpiSOURce:LIST:COUNt 3 ; 定义3个序列点
配置电流序列值
scpiSOURce:LIST:CURRent:DATA1 0, 2 ; 第1点:0A,持续2秒(时间参数在此处可省略,由DWELl统一设置)SOURce:LIST:CURRent:DATA2 5, 5 ; 第2点:5A,持续5秒
SOURce:LIST:CURRent:DATA3 -5, 3 ; 第3点:-5A,持续3秒
或简化写法(部分设备支持):
scpiSOURce:LIST:CURRent 0, 5, -5 ; 仅定义电流值,持续时间由DWELl统一设置
设置延迟时间(持续时间)
scpiSOURce:LIST:DWELl 2, 5, 3 ; 明确每个点的持续时间
启用序列模式
scpiSOURce:LIST:FUNCtion ON
启动输出(可选)
scpiTRIGger:SOURce IMMediateTRIGger:INITiate
scpiTRIGger:SOURce EXTernalTRIGger:SLOPe POSitive ; 上升沿触发
OUTPut:STATe ON ; 准备输出,等待触发
SOURce:LIST:DWELl 设置时间,且时间单位为秒。LIST:CURR:DATA1 0, 2000 表示200ms)。PROG:LIST:DWELl 或类似指令,需参考具体型号手册。scpiSOURce:LIST:DWELl 2, 10, 3 ; 修改第2点持续时间为10秒
scpiSOURce:LIST:INDEx?
scpiOUTPut:STATe?
pythonimport pyvisarm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替换为实际电源地址# 配置序列power.write("SYST:REM")power.write("*RST")power.write("SOUR:LIST:COUN 3")power.write("SOUR:LIST:CURR 0, 5, -5") # 电流序列power.write("SOUR:LIST:DWEL 2, 5, 3") # 延迟时间power.write("SOUR:LIST:FUNC ON")# 启动输出(内部触发)power.write("TRIG:SOUR IMM")power.write("TRIG:INIT")# 查询当前序列点(验证)current_index = int(power.query("SOUR:LIST:INDEx?"))print(f"当前序列点: {current_index}")power.close()