资讯中心

联系我们

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

如何通过SCPI指令查询Keysight双向直流电源列表模式是否支持步进时间抖动?

2026-06-12 09:59:17  点击:

  一、核心判断逻辑

  仪器无单一 “是否支持抖动” 查询位,依靠试探下发抖动捕获根指令 + 读取系统错误码判定固件 / 机型是否具备 LIST 步进时序抖动采集统计能力;可用指令集完整度区分支持等级。

  判定基准指令

  时序抖动整套子系统根指令:SOURce:LIST:TIMing 第一步试探开启捕获,通过报错区分兼容性:

  scpi

  *CLS

  SOUR:LIST:TIM:CAPT?

  SYST:ERR?

  错误码判定对照表

  返回 +0.No error ✅ 完整支持 LIST 步进时间抖动采集,拥有全套:捕获开关、原始抖动数据、均值 / 最大 / 最小 / 标准差统计、时序分辨率配置。 适用:N79xxA / N89xxA 固件 ≥6.02

  返回 -113.Undefined header ❌ 完全不支持时序抖动子系统,无任何抖动捕获、读取、统计指令; 适用:E36100 BT 低配、老旧 N6705B、低版本 N79/N89 固件(<6.02)

  返回 -222.Data out of range /-214 Trigger ignored 指令头识别存在,但无有效缓存数据(只是没运行 LIST,不是不支持功能),仍属于支持机型。

  二、分层校验全套抖动子指令(精细区分功能完整度)

  1. 基础捕获能力(必过门槛)

  scpi

  *CLS

  SOUR:LIST:TIM:CLE

  SYST:ERR?

  无报错:具备时序缓存存储结构

  -113:彻底无抖动功能

  2. 抖动数据读取能力

  scpi

  SOUR:LIST:TIM:JIT:DATA? 0.MAX

  SYST:ERR?

  3. 内置统计值(高版本固件独有)

  scpi

  SOUR:LIST:TIM:JIT:MEAN?

  SOUR:LIST:TIM:JIT:MAX?

  SOUR:LIST:TIM:JIT:MIN?

  SOUR:LIST:TIM:JIT:STD?

  全部无报错:固件新版,内置硬件统计

  仅 DATA 可用、统计指令报 - 113:老固件仅能读原始抖动数组,均值 / 标准差需上位机计算

  4. 时序分辨率微调(高精度机型)

  scpi

  SOUR:LIST:TIM:RES?

  SYST:ERR?

  三、一键快速检测 SCPI 块(复制直接下发)

  scpi

  *RST;*CLS

  ! 1 探测时序抖动顶层指令

  SOUR:LIST:TIM:CAPT?

  SYST:ERR?

  ! 2 探测缓存清空

  SOUR:LIST:TIM:CLE

  SYST:ERR?

  ! 3 探测抖动数据节点

  SOUR:LIST:TIM:JIT:DATA? 0.1

  SYST:ERR?

  ! 4 探测内置均值统计

  SOUR:LIST:TIM:JIT:MEAN?

  SYST:ERR?

  结果速判

  全部返回 0 错误 → 完整全功能支持

  CAPT/CLE 无错、MEAN 报 - 113 → 仅原始抖动数组可读,无板载统计

  第一条 CAPT 就报 - 113 → 机型 / 固件完全不支持 LIST 步进抖动采集

  四、ARB 序列模式补充区分

  若设备用 ARB 波形分段阶梯而非 LIST 指令,探测 ARB 时序抖动分支:

  scpi

  *CLS

  SOUR:ARB:TIM:CAPT?

  SYST:ERR?

  报错规则和 LIST 完全一致,二者指令树独立,支持性不一定同步。

  五、机型固件支持总览

  N79xxA / N89xxA

  固件≥6.02:全套 LIST TIM JITTER(捕获、原始数据、四大统计量、分辨率)

  固件 < 6.02:TIM 子系统存在,但无 MEAN/MAX/MIN/STD 统计指令,仅可读原始抖动数组

  E36100 BT 系列 全系无SOUR:LIST:TIM时序抖动子系统,下发直接 - 113;无法仪器内部采集步进抖动,只能外部示波器测量

  N6705B / N6700B 基础 LIST 功能,但无时序抖动捕获整套指令,-113 报错

  六、Python 自动化检测函数

  python

  运行

  import pyvisa

  def check_list_jitter_support(inst):

  inst.write("*CLS")

  # 第一层探测根指令

  inst.write("SOUR:LIST:TIM:CAPT?")

  err = inst.query("SYST:ERR?").split(',')

  code = int(err[0])

  if code == -113:

  print("❌ 本机完全不支持LIST步进时序抖动采集")

  return False, "No TIM subsystem"

  elif code == 0 or code in (-222.-214):

  # 基础功能存在,再校验统计指令

  inst.write("SOUR:LIST:TIM:JIT:MEAN?")

  err_stat = int(inst.query("SYST:ERR?").split(',')[0])

  if err_stat == -113:

  print("⚠️ 支持原始抖动数组读取,无内置均值/标准差统计")

  return True, "Raw data only"

  else:

  print("✅ 完整支持:捕获+原始数据+内置四项统计")

  return True, "Full jitter stats"

  else:

  print(f"未知错误码 {code}")

  return False, f"Error code {code}"

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP::IP::5025::INSTR")

  support, level = check_list_jitter_support(inst)

  inst.close()

  七、补充说明

  支持不代表一定有抖动数值:必须先开启SOUR:LIST:TIM:CAPT ON、运行一次完整 LIST 列表,缓存才会填充抖动差值;未运行查询只会返回无数据报错-222.不属于不支持功能。

  若设备不支持仪器内置采集,替代方案:外部示波器采集输出电压 / 电流切换边沿,手动测量步进时序抖动。