资讯中心

联系我们

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

如何通过SCPI指令设置双向直流电源的循环次数?

2025-12-04 10:04:12  点击:

要通过SCPI指令设置双向直流电源的循环次数,需结合序列模式(List Mode)循环控制指令,具体步骤如下:

一、核心指令与功能

  1. 序列模式(List Mode)
    允许预设一组电压/电流值,电源按顺序依次输出每个值,每个点可设置电压、电流、持续时间等参数。
    • 示例指令
      plaintextSOURce:LIST:COUNt 5      // 设置序列包含5个点SOURce:LIST:VOLTage 0, 12, 24, 12, 0  // 电压序列:0V→12V→24V→12V→0V
      SOURce:LIST:DWELl 5, 5, 5, 5, 5      // 每段持续时间5秒
  2. 循环控制指令
    通过
    SOURce:LIST:CYCLe指令启用循环,并设置循环次数(部分电源支持无限循环)。
    • 示例指令
      plaintextSOURce:LIST:CYCLe ON      // 启用循环SOURce:LIST:COUNt:REPeat 3  // 设置循环次数为3次(部分型号支持)
    • 替代方案
      若电源不支持直接设置循环次数,可通过外部脚本(如Python)循环发送触发命令实现重复执行。

二、完整操作流程

  1. 初始化与复位

    plaintextSYSTem:REMote      // 切换至远程模式*RST               // 复位设备(可选)
  2. 配置序列参数

    plaintextSOURce:LIST:COUNt 3              // 3个序列点SOURce:LIST:VOLTage 0, 12, 0    // 电压序列:0V→12V→0V
    SOURce:LIST:DWELl 2, 2, 2       // 每段持续时间2秒
  3. 启用循环功能

    plaintextSOURce:LIST:CYCLe ON  // 启用循环(部分电源需结合REPeat指令)
    • 若支持循环次数设置
      plaintextSOURce:LIST:COUNt:REPeat 5  // 循环5次(需参考具体型号手册)
  4. 启动输出

    plaintextTRIGger:INITiate      // 内部触发启动序列// 或通过外部TTL信号触发:
    TRIGger:SOURce EXT    // 外部触发源
    TRIGger:SLOPe POS     // 上升沿触发

三、厂商差异与指令扩展

不同品牌电源的循环控制指令可能存在差异,以下为常见型号的示例:

  • Keysight N6700系列
    plaintextSOURce:LIST:FUNC REPeat  // 启用循环SOURce:LIST:COUNt 3      // 序列点数
  • Chroma 62000P系列
    plaintextSOURce:LIST:LOOP 3       // 循环3次
  • ITECH IT6000系列
    plaintextLIST:CYCLe:STATe ON      // 启用循环LIST:CYCLe:COUNt 5       // 循环5次

四、验证与调试

  1. 查询当前序列状态
    plaintextSOURce:LIST:INDEx?  // 返回当前执行的序列点序号OUTPut:STATe?       // 返回输出状态(ON/OFF)
  2. 错误处理
    plaintextSYSTem:ERRor?       // 查询错误代码(如参数越限、触发未配置)

五、自动化脚本示例(Python)

若需通过脚本实现循环控制,可结合SCPI指令与编程逻辑:

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:VOLT 0, 12, 0")power.write("SOUR:LIST:DWEL 2, 2, 2")power.write("SOUR:LIST:CYCL ON")  # 启用循环# 启动输出(内部触发)power.write("TRIG:INIT")# 监控状态(示例:循环3次后停止)for _ in range(3):    while True:        index = int(power.query("SOUR:LIST:INDEX?"))        if index == 1:  # 检测序列重新开始(循环点)            break    time.sleep(6)  # 等待一个完整循环power.write("OUTP OFF")power.close()

六、注意事项

  1. 参数范围验证:确保电压/电流值不超过电源规格(如最大电压40V、最大电流100A)。
  2. 触发时序:若使用外部触发,需确保触发信号与序列启动同步。
  3. 厂商手册:不同型号的循环控制指令可能不同,需参考具体编程手册(如Keysight的《N6700系列编程指南》)。