要实现双向直流电源输出电压与电流的时序控制(即在不同时间点切换电压/电流值并控制过渡斜率),需结合电源的序列模式(List Mode)、触发功能(Trigger)和斜坡功能(Ramp)。以下是具体实现方法及SCPI指令示例:
VOLT)和电流(CURR)的目标值、保持时间(DWELL)和斜坡时间(RAMP)。*TRG命令)。plaintextSOURce:LIST:COUNt <N> ; 设置序列点数量(N)SOURce:LIST:VOLTage:DATA<n> <voltage>, <dwell_time>, <ramp_time> ; 第n点电压参数
SOURce:LIST:CURRent:DATA<n> <current>, <dwell_time>, <ramp_time> ; 第n点电流参数
<voltage>:目标电压(支持双向,如-12)。<current>:目标电流(如1.5)。<dwell_time>:达到目标值后的保持时间(秒)。<ramp_time>:过渡到目标值的斜坡时间(秒)。plaintextSOUR:LIST:COUN 3 ; 3个序列点SOUR:LIST:VOLT:DATA1 0, 1, 0.5 ; 第1点:0V,保持1秒,斜坡0.5秒
SOUR:LIST:CURR:DATA1 0.1, 1, 0 ; 第1点:0.1A(电流斜坡禁用)
SOUR:LIST:VOLT:DATA2 12, 1, 1 ; 第2点:12V,保持1秒,斜坡1秒
SOUR:LIST:CURR:DATA2 0.5, 1, 0.5 ; 第2点:0.5A,电流斜坡0.5秒
SOUR:LIST:VOLT:DATA3 0, 1, 0.5 ; 第3点:0V,保持1秒,斜坡0.5秒
SOUR:LIST:CURR:DATA3 0, 1, 0 ; 第3点:0A
plaintextSOURce:LIST:FUNCtion ON ; 启用序列模式OUTPut ON ; 开启输出
plaintextTRIGger:SOURce <source> ; 设置触发源
<source>:IMMediate(立即触发,默认)EXTernal(外部TTL信号触发)BUS(通过*TRG命令触发)plaintextTRIGger:SLOPe POSitive ; 上升沿触发(外部触发时有效)
IMMediate后,执行OUTP ON自动启动。Trigger In接口。plaintext*TRG ; 发送软件触发命令
plaintextSOURce:LIST:CYCLes INFinite ; 无限循环序列SOURce:LIST:CYCLes 5 ; 循环5次
plaintextABORt ; 停止序列OUTPut OFF ; 关闭输出
OUTPut ON ; 重新启动(从序列起点开始)
pythonimport pyvisarm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替换为实际地址# 配置序列(3个点:电压+电流)power.write("SOUR:LIST:COUN 3")power.write("SOUR:LIST:VOLT:DATA1 0, 1, 0.5")power.write("SOUR:LIST:CURR:DATA1 0.1, 1, 0")power.write("SOUR:LIST:VOLT:DATA2 12, 1, 1")power.write("SOUR:LIST:CURR:DATA2 0.5, 1, 0.5")power.write("SOUR:LIST:VOLT:DATA3 0, 1, 0.5")power.write("SOUR:LIST:CURR:DATA3 0, 1, 0")# 启用序列模式并设置触发power.write("SOUR:LIST:FUNC ON")power.write("TRIG:SOUR IMM") # 立即触发power.write("OUTP ON") # 启动输出# 可选:通过总线触发(若触发源设为BUS)# power.write("*TRG")power.close()
ramp_time=0(瞬时跳变)。CC或CV)。SYST:ERR?返回的错误代码(如-400表示参数错误)。SOUR:VOLT:RAMP:TIME)。PROG:LIST:VOLT:RAMP指令。LIST:VOLT:DATA和LIST:CURR:DATA)。通过上述方法,可实现双向直流电源的电压/电流时序控制,适用于电池充放电测试、动态负载模拟等场景。