资讯中心

联系我们

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

如何通过SCPI命令查询Keysight双向直流电源输出限制历史记录的峰值?

2026-06-04 09:34:37  点击:

  Keysight N79xx/N89xx/N6705C 限值 (LIM/OVP/OCP) 历史峰值 SCPI 查询

  ELOG(事件日志)无内置 MAX/MIN 寄存器,不能单条 SCPI 直读历史峰值;分 2 种方案:ELOG 全量导出筛选峰值、DLOG 定时采样内置极值查询,多通道前缀:CHx:。

  一、ELOG 限值历史峰值(VLIM/ILIM 保护超限记录)

  ELOG 每条日志字段:索引,Unix时间,通道,事件码,事件说明,Vout,Iout 事件码 =VLIM/ILIM/OVP/OCP即为输出限值触发记录,需要全读日志后 PC 端筛选电压 / 电流峰值。

  1、SCPI 读取全量 ELOG 数据

  scpi

  :ELOG:COUN? //读取总日志条数N

  :ELOG:DATA? 1.LAST //导出全部缓存日志(首条~末条)

  //单通道筛选::CH1:ELOG:DATA? 1.LAST

  示例返回:1.1775521122.1.VLIM,Voltage Limit,28.62.12.55

  第 6 列 = 超限电压,第 7 列 = 超限电流;筛选全部 VLIM/ILIM 条目取 Max 即为限值历史峰值

  2、单条抽查限值数据(快速核对极值)

  scpi

  :ELOG:DATA? LAST //读取最新一条限值记录

  :ELOG:DATA? n //n=指定索引序号

  :ELOG:DATA:EVENt? n //只返回事件类型(VLIM/ILIM/OVP)

  3、限值触发配置阈值(设定限值,≠历史超限峰值)

  scpi

  :ELOG:TRIG:LIM:VOLT? //LIM电压触发设定阈值

  :ELOG:TRIG:LIM:CURR? //LIM电流触发设定阈值

  注意:配置阈值是设定限值,设备超限实际值(峰值)存于 ELOG 日志,必须读 DATA 提取

  二、DLOG 定时采样:内置硬件历史最大 / 最小值(可直接 SCPI 读峰值,最优方案)

  DLOG 为周期采样记录仪,硬件自动缓存采样区间 V/I最大值 MAX、最小值 MIN,无需全量导出,直接指令查询历史峰值。

  1、查询 DLOG 全局状态

  scpi

  :DLOG:ENAB? //DLOG开启状态

  :DLOG:SAMP:PER? //DLOG采样周期(s)

  :DLOG:COUN? //DLOG已存储采样点数

  2、DLOG 历史电压 / 电流峰值(关键 SCPI)

  scpi

  :DLOG:DATA:VOLT? MAX //DLOG采样区间历史最高电压(峰值)

  :DLOG:DATA:VOLT? MIN //DLOG采样区间历史最低电压

  :DLOG:DATA:CURR? MAX //DLOG采样区间历史最大电流(峰值)

  :DLOG:DATA:CURR? MIN //DLOG采样区间历史最小电流

  //多通道

  :CH1:DLOG:DATA:VOLT? MAX

  :CH1:DLOG:DATA:CURR? MAX

  适用:需要连续采样、自动抓取输出全程峰值,优先用 DLOG 而非 ELOG

  三、实时瞬时峰值(当前运行最大,非历史记录)

  scpi

  :MEAS:VOLT:MAX?

  :MEAS:CURR:MAX?

  仅上电 / 本次输出周期实时极值,掉电 / 重启清零,不存历史

  四、Python 自动筛选 ELOG 限值峰值(直接运行)

  python

  运行

  import pyvisa

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP::电源IP::5025::SOCKET")

  #读取全部ELOG

  total = int(inst.query(":ELOG:COUN?"))

  if total == 0:

  print("无ELOG记录")

  else:

  raw = inst.query(":ELOG:DATA? 1.LAST").split(",")

  v_list,i_list = [],[]

  for idx in range(0.len(raw),7):

  evt = raw[idx+3]

  v = float(raw[idx+5])

  i = float(raw[idx+6])

  if evt in ["VLIM","ILIM","OVP","OCP"]:

  v_list.append(v)

  i_list.append(i)

  if v_list:

  print("限值历史最高电压Vmax=",max(v_list))

  print("限值历史最大电流Imax=",max(i_list))

  else:

  print("无LIM/保护超限记录")

  五、关键区分

  ELOG:事件触发记录:只在超限瞬间存一组 V/I,无硬件极值寄存器,只能导出全量算峰值;

  DLOG:周期连续采样:仪器硬件自动统计区间 MAX/MIN,SCPI 一键直读历史峰值;

  :ELOG:TRIG:LIM:VOLT?=限值设定值≠实际超限峰值。