资讯中心

联系我们

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

如何用SCPI指令配置双向直流电源输出电流序列?

2025-12-19 10:54:33  点击:

使用SCPI指令配置双向直流电源输出电流序列,需通过序列模式(List Mode)定义电流值、持续时间及运行逻辑,并结合触发同步与状态查询实现精确控制。以下是具体步骤与指令示例:

一、核心配置步骤

  1. 进入远程模式(可选)
    确保电源处于软件控制状态,避免本地操作冲突:

    plaintextSYSTem:REMote
  2. 复位设备(可选)
    恢复出厂默认设置,避免参数冲突:

    plaintext*RST
  3. 设置序列点数
    定义序列中包含的电流点数量(如3个点):

    plaintextSOURce:LIST:COUNt 3
  4. 定义每个序列点的电流值与持续时间
    为每个点设置目标电流(支持负值实现双向输出)及保持时间(单位依设备而定,如秒或毫秒):

    plaintextSOURce:LIST:CURRent:DATA1 -5, 2  // 第1点:-5A,持续2秒SOURce:LIST:CURRent:DATA2 0, 1   // 第2点:0A,持续1秒
    SOURce:LIST:CURRent:DATA3 10, 3  // 第3点:10A,持续3秒
  5. 启用序列模式
    激活序列功能,使电源按预设顺序输出:

    plaintextSOURce:LIST:FUNCtion ON
  6. 禁用循环(可选)
    若需单次执行序列(不自动重复),关闭循环模式:

    plaintextSOURce:LIST:CYCLe OFF

二、触发与同步控制

  1. 内部触发(软件触发)
    通过软件指令立即启动序列:

    plaintextTRIGger:SOURce IMMediate  // 选择内部触发源TRIGger:INITiate          // 发送触发信号
  2. 外部触发(硬件触发)
    通过TTL信号同步启动序列(如与示波器或数据采集卡联动):

    plaintextTRIGger:SOURce EXTernal  // 选择外部触发源TRIGger:SLOPe POSitive    // 上升沿触发(或NEGative)
    OUTPut:STATe ON           // 准备输出,等待触发
  3. 多设备同步(主从模式)
    若需多台电源同步执行序列(如三相测试),配置主从设备:

    • 主设备
      plaintextSYSTem:COMMunicate:SYNC:ROLE MASTER  // 设为主设备SYSTem:COMMunicate:SYNC:OUTput ON    // 输出同步信号
    • 从设备
      plaintextSYSTem:COMMunicate:SYNC:ROLE SLAVE  // 设为从设备SYSTem:COMMunicate:SYNC:INput ON     // 接收同步信号

三、状态查询与调试

  1. 查询序列是否启用

    plaintextSOURce:LIST:FUNCtion?  // 返回"ON"表示已激活
  2. 查询当前序列点位置

    plaintextSOURce:LIST:INDEx?  // 返回当前执行的点序号(如"2"表示第2点)
  3. 查询实际输出电流

    plaintextMEASure:CURRent?  // 返回当前输出电流值(单位:A)
  4. 错误处理
    若序列执行失败,查询错误代码定位问题:

    plaintextSYSTem:ERRor?  // 例如返回"-400"表示参数超出范围

四、完整Python脚本示例(PyVISA库)

pythonimport pyvisaimport time# 连接电源rm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")  # 替换为实际地址# 初始化配置power.write("SYSTem:REMote")power.write("*RST")# 配置序列参数power.write("SOURce:LIST:COUNt 3")power.write("SOURce:LIST:CURRent:DATA1 -5, 2")  # 第1点:-5A,2秒power.write("SOURce:LIST:CURRent:DATA2 0, 1")   # 第2点:0A,1秒power.write("SOURce:LIST:CURRent:DATA3 10, 3")  # 第3点:10A,3秒power.write("SOURce:LIST:FUNCtion ON")           # 启用序列power.write("SOURce:LIST:CYCLe OFF")            # 禁用循环# 启动序列(内部触发)power.write("TRIGger:SOURce IMMediate")power.write("TRIGger:INITiate")# 实时监控输出try:    while True:        current = float(power.query("MEASure:CURRent?"))        point_index = int(power.query("SOURce:LIST:INDEx?"))        print(f"当前序列点: {point_index}, 输出电流: {current:.2f}A")        time.sleep(0.5)  # 采样间隔500msexcept KeyboardInterrupt:    power.close()

五、关键注意事项

  1. 单位一致性:确保电流值(A/mA)与时间单位(秒/毫秒)符合电源规格。
  2. 序列点范围:跳转时索引不得超过SOURce:LIST:COUNt?返回的总点数。
  3. 保护功能:设置序列前确认电流值未触发过流保护(OCP)。
  4. 厂商差异:不同品牌电源指令可能不同(如Chroma使用PROG:LIST:CURR:DATA),需参考具体型号手册。