资讯中心

联系我们

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

如何通过SCPI查询Keysight双向直流电源输出限制历史记录次数?

2026-06-04 09:39:31  点击:

  Keysight N79xx/N89xx/N6705B/C 输出限制(VLIM/ILIM/OVP/OCP)历史次数 SCPI 查询

  本机无单条 SCPI 直接筛选 LIM 事件计数寄存器,分两步:①读取 ELOG 总条数;②全量导出日志,上位机筛选 VLIM/ILIM/OVP/OCP 统计次数,通道指令前缀:CH1:/:CH2:。

  一、基础 SCPI 指令

  1. 查询 ELOG 全部日志总条数

  scpi

  :ELOG:COUN? //整机全部事件总记录数

  :CH1:ELOG:COUN? //通道1单独日志总数

  返回:十进制数字,代表 ELOG 缓存存储总条目。

  2. 导出全量 ELOG 日志(筛选限值记录必备)

  scpi

  :ELOG:DATA? 1.LAST

  :CH1:ELOG:DATA? 1.LAST

  日志字段格式:索引,时间戳,通道,事件码,备注,Vout,Iout 限制类事件码:VLIM (电压限值)、ILIM (电流限值)、OVP (过压保护)、OCP (过流保护),匹配以上字段即为输出限制记录。

  3. 分段读取(日志量大时分批导出)

  scpi

  :ELOG:DATA? start,stop

  例::ELOG:DATA? 1.500 //读取1~500条日志

  二、快速筛选 4 类限值总次数(Python 脚本,直接运行)

  python

  运行

  import pyvisa

  rm = pyvisa.ResourceManager()

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

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

  lim_code = {"VLIM","ILIM","OVP","OCP"}

  lim_count = 0

  if cnt_all > 0:

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

  #每7个字段为1条日志

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

  evt_name = raw[i+3]

  if evt_name in lim_code:

  lim_count +=1

  print(f"输出限制历史总触发次数 = {lim_count}")

  #分项单独统计

  vlim_cnt = raw.count("VLIM")

  ilim_cnt = raw.count("ILIM")

  ovp_cnt = raw.count("OVP")

  ocp_cnt = raw.count("OCP")

  print(f"VLIM:{vlim_cnt} ILIM:{ilim_cnt} OVP:{ovp_cnt} OCP:{ocp_cnt}")

  三、补充:单次运行统计(非掉电保存,上电清零)

  仅本次开机运行过程中限值次数,不存入 ELOG 历史:

  scpi

  :STAT:LIM:VOLT? //本次开机VLIM触发次数

  :STAT:LIM:CURR? //本次开机ILIM触发次数

  :STAT:PROT:OVP? //本次开机OVP保护次数

  :STAT:PROT:OCP? //本次开机OCP保护次数

  重点::STAT寄存器断电清零,不能查历史全生命周期次数;历史永久记录只在 ELOG。

  四、辅助配置指令

  开启限值事件记录到 ELOG

  scpi

  :ELOG:TRIG:LIM ON

  :ELOG:TRIG:PROT ON

  清空 ELOG 全部历史(谨慎使用)

  scpi

  :ELOG:CLE

  总结

  全生命周期历史限值次数 → ELOG 导出 + 软件统计(唯一可靠方案)

  单次上电限值次数 → :STAT:xxx? 直接 SCPI 读数

  区分:LIM = 软硬件输出限流限压;PROT = 硬件 OVP/OCP 保护闭锁。