要通过SCPI指令配置双向直流电源输出电流序列的触发模式,需结合序列编程(List Mode)、触发源配置及输出控制指令,以下是具体实现步骤与指令示例:
SOURce:LIST:COUNt <N>(N为序列点数量)。plaintextSOURce:LIST:CURRent:DATA<X> <I>, <T>
<X>:序列点索引(如1, 2, 3)。<I>:电流值(单位:A,如2A)。<T>:持续时间(单位:秒或100μs,需参考设备手册)。plaintextSOUR:LIST:COUN 3
SOUR:LIST:CURR:DATA1 0, 2 ; 第1点: 0A, 持续2秒
SOUR:LIST:CURR:DATA2 2, 2 ; 第2点: 2A, 持续2秒
SOUR:LIST:CURR:DATA3 4, 2 ; 第3点: 4A, 持续2秒
plaintextTRIGger:SOURce EXTernal ; 选择外部触发源
TRIGger:SLOPe POSitive ; 上升沿触发(或NEGative下降沿)
plaintextTRIGger:SOURce IMMediate ; 内部触发(软件直接启动)
plaintextOUTPut:TRIGger:DELay <T> ; 触发后延迟T秒输出(如0.5秒)
plaintextOUTPut:STATe ON
plaintextTRIGger:INITiate
初始化与复位
plaintextSYSTem:REMote ; 进入远程模式
*RST ; 复位设备(可选)
配置电流序列
plaintextSOUR:LIST:COUN 3
SOUR:LIST:CURR:DATA1 0, 2
SOUR:LIST:CURR:DATA2 2, 2
SOUR:LIST:CURR:DATA3 4, 2
设置触发模式
plaintextTRIG:SOUR EXT ; 外部触发
TRIG:SLOP POS ; 上升沿触发
OUTP:STAT ON ; 启用输出(等待触发)
外部触发信号
Trigger In接口,电源在检测到上升沿后立即启动序列。验证序列执行
plaintextSOUR:LIST:INDEx?
0(未触发)。1(第1点输出),随后依次变为2、3。plaintextSOUR:LIST:GOTO 3 ; 跳转到第3点(部分型号支持)
plaintextSOUR:LIST:FUNC REPeat
plaintextLIST:CURR:DATA1 0, 2000 ; 2000=200ms
plaintextLIST:JUMP:INDEx 2 ; 跳转到第2点
plaintextPROG:LIST:CURR:DATA1 0, 2
PROG:LIST:LOOP 3 ; 循环3次
SYST:TIME:SYNC:EXT ON)。plaintextSYSTem:ERRor?
502表示过压保护(OVP)触发。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 0, 2")power.write("SOUR:LIST:CURR:DATA2 2, 2")power.write("SOUR:LIST:CURR:DATA3 4, 2")power.write("TRIG:SOUR EXT") # 外部触发power.write("TRIG:SLOP POS") # 上升沿触发power.write("OUTP ON") # 启用输出# 模拟外部触发(实际需硬件信号)print("等待外部触发信号...")time.sleep(5) # 模拟触发延迟# 查询序列执行状态for _ in range(3): index = int(power.query("SOUR:LIST:INDEx?")) print(f"当前序列点: {index}") # 应依次输出1→2→3 time.sleep(2) # 等待序列点切换power.close()
SOUR:LIST:CURR:DATA1 -2, 2)。SYST:COMM:SYNC:ROLE MASTER)。SOUR:LIST:CURR:DATA2 3, 2)。