资讯中心

联系我们

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

如何用SCPI指令设置双向直流电源的序列输出与软件同步?

2025-12-03 09:18:10  点击:

使用SCPI指令设置双向直流电源的序列输出与软件同步,需结合序列模式配置、触发同步设置、软件编程控制三大核心环节,以下是具体实现步骤与指令示例:

一、序列模式配置:定义多段输出参数

通过SCPI指令预设一组电压/电流值及持续时间,电源按顺序依次输出每个点,适用于模拟电池充放电、电机驱动波形等复杂场景。

  1. 初始化设置

    • 切换至远程模式:SYSTem:REMote(确保电源处于软件控制状态)。
    • 复位电源(可选):*RST(恢复出厂默认设置,避免参数冲突)。
  2. 配置序列参数

    • 设置序列点数:SOURce:LIST:COUNt <N>(如SOURce:LIST:COUNt 5定义5个输出点)。

    • 设置电压/电流列表值:

      • 电压列表:SOURce:LIST:VOLTage <V1>, <V2>, ..., <VN>(如SOURce:LIST:VOLTage 0, 24, 12, 6, 0)。
      • 电流列表:SOURce:LIST:CURRent <I1>, <I2>, ..., <IN>(如SOURce:LIST:CURRent 0, 0, 5, -5, 0)。
    • 设置每个点的持续时间(可选):SOURce:LIST:DWELl <T1>, <T2>, ..., <TN>(如SOURce:LIST:DWELl 5, 10, 5, 10, 5)。

二、触发同步设置:实现多设备或软件协同

通过内部触发(软件指令)或外部触发(如TTL信号)同步启动序列输出,确保多台电源或软件逻辑时序对齐。

  1. 选择触发源

    • 内部触发(软件触发):TRIGger:SOURce IMMediate
    • 外部触发(如TTL信号):TRIGger:SOURce EXTernal,并设置触发边沿(如上升沿触发:TRIGger:SLOPe POSitive)。
  2. 多设备同步(可选)

    • 若需多台电源同步执行序列,通过总线协议(如IEEE 488.2、LXI)或专用同步接口(如Sync Out/In)配置主从设备:

      • 主设备:SYSTem:COMMunicate:SYNC:ROLE MASTERSYSTem:COMMunicate:SYNC:OUTput ON
      • 从设备:SYSTem:COMMunicate:SYNC:ROLE SLAVESYSTem:COMMunicate:SYNC:INput ON

三、软件编程控制:启动序列与状态监控

通过Python等编程语言发送SCPI指令,实现序列启动、状态查询及错误处理。

  1. 启动序列输出

    • 内部触发:发送TRIGger:INITiate启动序列。
    • 外部触发:当TTL信号到达电源Trigger In接口时,电源自动开始执行序列。
  2. 查询序列状态

    • 查询当前序列点索引:SOURce:LIST:INDEx?(返回当前正在执行的点序号,如“2”表示第2个点)。
    • 查询输出状态:OUTPut:STATe?(返回“ON”表示输出中,“OFF”表示停止)。
  3. 错误处理与调试

    • 若序列执行失败,查询错误代码定位问题:SYSTem:ERRor?(如返回“-221”表示“Settings conflict”设置冲突)。
    • 检查参数范围(如电压/电流是否超过电源规格)、触发时序(外部触发时确保信号与序列启动同步)、设备模式(部分命令在特定模式下不可用)。

四、完整操作示例:模拟电池充放电循环

场景:电源按“充电→恒压→放电→恒流→静置”顺序输出,序列包含5个点。

  1. 配置序列参数

    plaintextSYSTem:REMote*RST
    SOURce:LIST:COUNt 5
    SOURce:LIST:VOLTage 0, 24, 24, 12, 0
    SOURce:LIST:CURRent 0, 0, 5, -5, 0
    SOURce:LIST:DWELl 5, 10, 5, 10, 5
  2. 设置触发与输出

    plaintextTRIGger:SOURce IMMediateOUTPut:STATe ON  // 准备输出(等待触发)
  3. 启动序列输出

    plaintextTRIGger:INITiate
  4. 监控执行状态

    plaintext// 查询当前序列点索引SOURce:LIST:INDEx?
    // 查询输出状态
    OUTPut:STATe?