资讯中心

联系我们

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

如何通过SCPI指令实现双向直流电源输出电压序列与示波器触发同步?

2025-12-16 09:23:25  点击:

要通过SCPI指令实现双向直流电源输出电压序列与示波器触发同步,需结合电源的序列编程、触发配置以及示波器的触发设置,以下是具体步骤和指令示例:

一、电源侧配置:定义序列并设置触发同步

  1. 定义电压序列:使用SOURce:LIST:VOLTage指令预设每个序列点的电压值及持续时间。例如:

    plaintextSOUR:LIST:COUN 3 ; 设置3个序列点SOUR:LIST:VOLT 0, 12, 0 ; 电压序列:0V → 12V → 0V
    SOUR:LIST:DWEL 2, 2, 2 ; 每段持续时间2秒
  2. 启用序列模式:使用SOURce:LIST:FUNCtion ON指令激活序列功能。若需禁用循环(避免自动重复),使用SOURce:LIST:CYCLe OFF指令。

  3. 配置触发同步

    • 外部触发(TTL信号):选择外部触发源并设置触发边沿(如上升沿触发):

      plaintextTRIG:SOUR EXT ; 选择外部触发源TRIG:SLOP POS ; 上升沿触发
    • 内部触发(软件触发):若无需外部信号,可使用软件触发启动序列:

      plaintextTRIG:SOUR IMM ; 选择内部触发TRIG:INIT ; 立即启动序列
  4. (可选)多设备同步:若需多台电源同步执行序列,可通过总线协议(如IEEE 488.2、LXI)或专用同步接口(如Sync Out/In)配置主从设备。例如:

    • 主设备

      plaintextSYST:COMM:SYNC:ROLE MASTER ; 设为主设备SYST:COMM:SYNC:OUT ON ; 输出同步信号
    • 从设备

      plaintextSYST:COMM:SYNC:ROLE SLAVE ; 设为从设备SYST:COMM:SYNC:INP ON ; 接收同步信号

二、示波器侧配置:设置触发与同步

  1. 硬件连接:将电源的触发输出信号(Trigger Out)连接到示波器的外部触发输入(External Trigger Input),确保信号连接牢固,避免干扰。

  2. 触发设置

    • 触发源:选择外部触发(External Trigger)。
    • 触发边沿:根据电源触发配置选择上升沿(Positive)或下降沿(Negative)触发。
    • 触发电平:设置为信号幅值的50%左右,确保触发点稳定。
    • (可选)触发延迟:若需捕捉切换后的特定事件(如电流过零点),可设置触发延迟以定位关键时间点。
  3. 同步验证

    • 时间戳记录:若电源和示波器均支持时间戳功能,可启用时间戳记录以量化同步精度。例如,在电源上启用外部时间同步(如GPS或IEEE 1588),并查询序列启动时间戳;在示波器上记录触发信号与电压变化的时间差。
    • 手动测量误差:若电源不支持高精度时间戳,可用示波器同时捕捉触发信号和电压变化,手动测量误差。

三、完整操作流程示例(Python脚本)

以下是一个使用Python和PyVISA库实现双向直流电源输出电压序列与示波器触发同步的示例脚本:

pythonimport pyvisaimport time# 初始化资源管理器rm = pyvisa.ResourceManager()# 连接电源和示波器(替换为实际设备地址)power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")scope = rm.open_resource("TCPIP0::192.168.1.101::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:FUNC ON")power.write("SOUR:LIST:CYCL OFF")power.write("TRIG:SOUR EXT")power.write("TRIG:SLOP POS")power.write("OUTP:STAT ON")  # 准备输出,等待触发# 示波器配置:设置外部触发scope.write("TRIG:MODE EXT")  # 外部触发模式scope.write("TRIG:EDGE:SOUR EXT")  # 外部触发源scope.write("TRIG:EDGE:SLOP POS")  # 上升沿触发scope.write("TRIG:LEV 1.5")  # 触发电平(根据实际信号调整)# 启动电源序列(外部触发)# 此时需通过外部信号(如手动触发或另一台设备)发送TTL信号至电源的Trigger In接口# 电源接收到触发信号后自动开始执行序列# 示波器捕获波形(可选)# 配置示波器采样率、存储深度等参数后,启动单次捕获scope.write("ACQ:MODE SINGLE")scope.write("DIGitize")  # 启动单次捕获# 查询电源当前序列点索引(验证同步)current_index = int(power.query("SOUR:LIST:INDEx?"))print(f"当前序列点索引: {current_index}")# 关闭设备连接power.close()scope.close()