资讯中心

联系我们

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

如何用SCPI指令设置双向直流电源输出电流序列的延迟时间?

2025-12-22 09:33:14  点击:

若需为双向直流电源的电流序列设置延迟时间(即每个序列点的持续时间),可使用 SOURce:LIST:DWELl 指令,该指令用于定义每个序列点在达到目标电流值后的保持时间,具体操作如下:

核心指令说明

  • SOURce:LIST:DWELl <T1>, <T2>, ..., <TN>
    • 功能:设置每个序列点的持续时间(延迟时间),单位通常为秒(部分设备可能支持毫秒或100μs,需参考手册)。
    • 参数
      • <T1>, <T2>, ..., <TN>:对应每个序列点的持续时间,数量需与序列点数(SOURce:LIST:COUNt)一致。
    • 示例
      scpiSOURce:LIST:DWELl 2, 5, 3  ; 第1点持续2秒,第2点持续5秒,第3点持续3秒

完整操作流程

  1. 切换至远程模式

    scpiSYSTem:REMote
  2. 复位设备(可选)

    scpi*RST
  3. 设置序列点数

    scpiSOURce:LIST:COUNt 3  ; 定义3个序列点
  4. 配置电流序列值

    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统一设置
  5. 设置延迟时间(持续时间)

    scpiSOURce:LIST:DWELl 2, 5, 3  ; 明确每个点的持续时间
  6. 启用序列模式

    scpiSOURce:LIST:FUNCtion ON
  7. 启动输出(可选)

    • 内部触发(软件启动)
      scpiTRIGger:SOURce IMMediateTRIGger:INITiate
    • 外部触发(如TTL信号)
      scpiTRIGger:SOURce EXTernalTRIGger:SLOPe POSitive  ; 上升沿触发
      OUTPut:STATe ON         ; 准备输出,等待触发

厂商差异与注意事项

  1. 指令兼容性
    • Keysight N6700系列:支持直接通过 SOURce:LIST:DWELl 设置时间,且时间单位为秒。
    • ITECH IT6000系列:时间单位可能为100μs,需确认手册(如 LIST:CURR:DATA1 0, 2000 表示200ms)。
    • Chroma 62000P系列:可能使用 PROG:LIST:DWELl 或类似指令,需参考具体型号手册。
  2. 动态修改延迟时间
    • 在序列运行过程中,可通过以下指令实时更新延迟时间(需设备支持):
      scpiSOURce:LIST:DWELl 2, 10, 3  ; 修改第2点持续时间为10秒
  3. 查询当前序列状态
    • 查询当前执行的序列点索引:
      scpiSOURce:LIST:INDEx?
    • 查询输出状态:
      scpiOUTPut:STATe?

示例脚本(Python + PyVISA)

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