资讯中心

联系我们

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

SCPI指令如何实现双向直流电源输出电压序列的循环播放?

2025-12-19 11:11:58  点击:

要通过SCPI指令实现双向直流电源输出电压序列的循环播放,需启用序列模式(List Mode)并配置循环功能(Cycle Mode),使电源在完成一次序列后自动重复执行。以下是具体步骤和指令示例:


一、核心配置步骤

  1. 设置序列点数与参数
    定义电压序列的点数、目标电压值及持续时间(单位:秒):

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

    plaintextSOURce:LIST:FUNCtion ON
  3. 启用循环模式
    设置序列循环执行(次数可选,设为
    INF表示无限循环):

    plaintextSOURce:LIST:CYCLe ON                   ; 启用循环SOURce:LIST:CYCLe:COUNt INF            ; 无限循环(或指定次数,如10)
  4. 触发序列启动
    通过软件或硬件触发执行序列:

    • 软件触发
      plaintextTRIGger:SOURce IMMediateTRIGger:INITiate
    • 硬件触发(需外部TTL信号):
      plaintextTRIGger:SOURce EXTernalTRIGger:SLOPe POSitive

二、关键指令详解

  1. 循环次数控制

    • SOURce:LIST:CYCLe ON:启用循环。
    • SOURce:LIST:CYCLe:COUNt N:设置循环次数(N为整数,INF表示无限循环)。
    • 查询当前循环次数:
      plaintextSOURce:LIST:CYCLe:COUNt?
  2. 停止循环
    在无限循环模式下,可通过以下指令中断:

    plaintextABORt                                  ; 立即停止输出SOURce:LIST:FUNCtion OFF               ; 禁用序列模式
  3. 查询序列状态

    • 当前执行的序列点索引:
      plaintextSOURce:LIST:INDEx?
    • 输出是否处于活动状态:
      plaintextOUTPut:STATe?                         ; 返回"1"表示输出开启

三、完整Python示例(PyVISA库)

pythonimport pyvisa# 连接电源rm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")  # 替换为实际地址# 初始化配置power.write("*RST")power.write("SYSTem:REMote")# 设置电压序列(3点,含双向电压)power.write("SOURce:LIST:COUNt 3")power.write("SOURce:LIST:VOLTage:DATA1 -5, 2")  # -5V,持续2秒power.write("SOURce:LIST:VOLTage:DATA2 0, 1")   # 0V,持续1秒power.write("SOURce:LIST:VOLTage:DATA3 10, 3")  # 10V,持续3秒# 启用序列与循环power.write("SOURce:LIST:FUNCtion ON")power.write("SOURce:LIST:CYCLe ON")power.write("SOURce:LIST:CYCLe:COUNt INF")     # 无限循环# 启动序列(软件触发)power.write("OUTPut ON")power.write("TRIGger:SOURce IMMediate")power.write("TRIGger:INITiate")print("序列循环已启动,按Enter键停止...")input()  # 等待用户输入# 停止循环power.write("ABORt")power.write("OUTPut OFF")power.close()

四、注意事项

  1. 厂商差异

    • 部分电源(如Keysight N6700系列)支持SOURce:LIST:CYCLe指令,而其他品牌可能使用PROGram:CYCLe或类似指令,需参考具体手册。
    • 例如,Chroma 62000P系列可能使用:
      plaintextPROGram:CYCLe ONPROGram:REPeat ALL
  2. 斜坡过渡
    若需电压点之间平滑过渡(斜坡),需额外配置斜坡时间(见前文斜率设置方法):

    plaintextSOURce:LIST:VOLTage:DATA1 -5, 2, 0.5    ; 斜坡时间0.5秒
  3. 保护机制
    循环过程中若触发过压/过流保护(OVP/OCP),电源可能自动停止。需检查保护阈值:

    plaintextSOURce:VOLTage:PROT:LEV?      ; 查询过压保护值SOURce:CURRent:PROT:LEV?      ; 查询过流保护值
  4. 硬件限制
    某些低端电源可能不支持无限循环,需通过外部编程(如Python循环发送触发指令)模拟循环。


五、总结

通过SOURce:LIST:CYCLe ONSOURce:LIST:CYCLe:COUNt指令可轻松实现序列循环。结合触发控制与状态查询,可构建自动化测试流程。务必参考电源手册确认指令兼容性,并在循环前测试单个序列点以确保安全。