要实现双向直流电源输出电压与电流的时序控制(即在不同时间点切换电压/电流值并控制过渡斜率),需结合电源的序列模式(List Mode)、触发功能(Trigger)和斜坡功能(Ramp)。以下是具体实现方法及SCPI指令示例:
VOLT
)和电流(
CURR
)的目标值、保持时间(
DWELL
)和斜坡时间(
RAMP
)。
*TRG
命令)。
plaintextSOURce:LIST:COUNt ; 设置序列点数量(N)SOURce:LIST:VOLTage:DATA , , ; 第n点电压参数
SOURce:LIST:CURRent:DATA , , ; 第n点电流参数
:目标电压(支持双向,如
-12
)。
:目标电流(如
1.5
)。
:达到目标值后的保持时间(秒)。
:过渡到目标值的斜坡时间(秒)。
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 ; 设置触发源
:
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
)。
通过上述方法,可实现双向直流电源的电压/电流时序控制,适用于电池充放电测试、动态负载模拟等场景。