资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何用SCPI指令实现双向直流电源输出电压与电流的时序控制?

2025-12-22 09:56:31  点击:

要实现双向直流电源输出电压与电流的时序控制(即在不同时间点切换电压/电流值并控制过渡斜率),需结合电源的序列模式(List Mode)触发功能(Trigger)斜坡功能(Ramp)。以下是具体实现方法及SCPI指令示例:


一、核心控制逻辑

  1. 定义时序序列:设置电压(VOLT)和电流(CURR)的目标值、保持时间(DWELL)和斜坡时间(RAMP)。
  2. 配置触发源:选择内部触发(立即执行)、外部触发(如TTL信号)或总线触发(如*TRG命令)。
  3. 启动序列:通过指令或外部信号触发序列执行。

二、SCPI指令实现

1. 基本序列配置

(1)设置序列点参数

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

(2)启用序列模式

plaintextSOURce:LIST:FUNCtion ON                ; 启用序列模式OUTPut ON                              ; 开启输出

2. 触发控制

(1)设置触发源

plaintextTRIGger:SOURce <source>                ; 设置触发源
  • <source>
    • IMMediate(立即触发,默认)
    • EXTernal(外部TTL信号触发)
    • BUS(通过*TRG命令触发)

(2)外部触发边沿(可选)

plaintextTRIGger:SLOPe POSitive                 ; 上升沿触发(外部触发时有效)

(3)启动序列

  • 内部触发:配置为IMMediate后,执行OUTP ON自动启动。
  • 外部触发:发送外部TTL信号到电源的Trigger In接口。
  • 总线触发
    plaintext*TRG                                 ; 发送软件触发命令

3. 高级功能

(1)循环序列

plaintextSOURce:LIST:CYCLes INFinite            ; 无限循环序列SOURce:LIST:CYCLes 5                   ; 循环5次

(2)暂停与恢复

plaintextABORt                                  ; 停止序列OUTPut OFF                             ; 关闭输出
OUTPut ON                              ; 重新启动(从序列起点开始)

三、完整示例(Python + PyVISA)

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()

四、关键注意事项

  1. 斜坡时间限制
    • 部分电源的斜坡时间有最小值(如10ms),需查阅手册确认。
    • 若需快速切换,可设ramp_time=0(瞬时跳变)。
  2. 双向控制
    • 电压和电流需分别设置序列,电源会优先满足电压或电流限制(取决于工作模式,如CCCV)。
  3. 触发同步
    • 多台设备同步时,需统一触发源(如外部TTL信号)。
  4. 错误处理
    • 若序列执行失败,检查SYST:ERR?返回的错误代码(如-400表示参数错误)。

五、厂商差异

  • Keysight N6700系列:支持全局斜坡设置(SOUR:VOLT:RAMP:TIME)。
  • Chroma 62000P系列:可能使用PROG:LIST:VOLT:RAMP指令。
  • ITECH IT6000系列:需分别配置电压/电流序列(LIST:VOLT:DATALIST:CURR:DATA)。

通过上述方法,可实现双向直流电源的电压/电流时序控制,适用于电池充放电测试、动态负载模拟等场景。