资讯中心

联系我们

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

如何通过SCPI查询Keysight双向直流电源输出电压上升沿次数?

2026-05-18 09:36:03  点击:

  下面直接说清楚:Keysight 双向直流电源(N6781A / B2902A / N6705B)本身没有 SCPI 指令 “直接返回上升沿次数”,电源内部不做边沿计数,只能靠:

  SCPI 高速连续读电压 + 上位机做边沿检测与计数(软件计数)

  或 外接示波器 / 高速采集卡做硬件边沿计数

  下面给你完整 SCPI + Python 实现(可直接跑,自动统计上升沿次数)。

  一、为什么没有直接 SCPI?

  Keysight 电源的 SCPI 只有:

  MEAS:VOLT? 读当前电压

  MEAS:VOLT:MAX? / MIN? 极值

  TRIG 触发采集(但不计数边沿)

  电源内部没有 “上升沿计数器” 硬件,所以不存在 COUNt:RISing? 这类指令。

  二、实现思路(SCPI + 上位机软件计数)

  用 SCPI 高速连续读取输出电压波形(采样率~10–100 ms / 点,电源上限)

  上位机(Python)做:

  设定上升沿阈值(如从 10%→90% Vnom)

  逐点判断:低于阈值 → 高于阈值 = 1 次上升沿

  累计次数,得到 “上升沿次数”

  三、关键 SCPI 命令(高速采集)

  scpi

  *RST

  *CLS

  OUTP ON

  VOLT 5.0 ; 设定 Vnom

  CURR 1.0 ; 固定负载

  ; 高速连续采集(最快约 10ms/次)

  SENS:VOLT:AUTO OFF

  TRIG:SOUR IMM ; 立即触发

  四、Python + SCPI 自动统计上升沿次数(直接可用)

  python

  运行

  import pyvisa

  import time

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")

  inst.timeout = 5000

  # 初始化

  inst.write("*RST")

  inst.write("OUTP ON")

  Vnom = 5.0

  inst.write(f"VOLT {Vnom}")

  inst.write("CURR 1.0")

  # 上升沿判定阈值(10% 和 90% Vnom)

  V_low = 0.1 * Vnom

  V_high = 0.9 * Vnom

  # 采集参数

  sample_interval = 0.01 # 10ms 采样(电源极限)

  duration = 10 # 采集 10 秒

  rising_edge_cnt = 0

  prev_above = False

  print(f"开始采集 {duration}s,统计上升沿({V_low:.2f}→{V_high:.2f}V)...")

  t0 = time.time()

  while time.time() - t0 < duration:

  V = float(inst.query("MEAS:VOLT?"))

  now_above = (V >= V_high)

  # 上升沿:之前低于,现在高于

  if now_above and not prev_above:

  rising_edge_cnt += 1

  prev_above = now_above

  time.sleep(sample_interval)

  print(f"采集结束,上升沿次数 = {rising_edge_cnt}")

  inst.close()

  五、精度与限制(必须知道)

  电源 SCPI 最快:~10 ms / 次 → 最高可测 50 Hz 上升沿

  若上升沿 >50 Hz(如 kHz 级脉冲):

  必须外接示波器 / 高速采集卡做硬件计数

  电源 SCPI 跟不上,会漏计

  六、总结(一句话)

  没有原生 SCPI 直读上升沿次数;用 SCPI 高速读电压 + 上位机做边沿检测计数,高频场景需外接示波器。