资讯中心

联系我们

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

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

2026-06-02 10:23:00  点击:

  和 “开始时间” 一样:Keysight RP7900 双向电源没有直接返回 “限制历史结束时间” 的专用 SCPI 命令,只能从 ELOG(事件日志)的最后一条记录来取。

  下面直接给你可执行 SCPI 步骤 + 只看 “输出限制” 的结束时间方法。

  一、先查 ELOG 总条数

  scpi

  SYSTem:ELOG:COUNt? ; 返回当前事件总数 N

  SYSTem:ELOG:DEPTH? ; 最大可存条数(内存深度)

  示例:

  plaintext

  23 ; 现有 23 条(索引 0~22)

  100 ; 最多 100 条

  二、读最后一条事件的时间戳(全部日志的结束时间)

  最后一条索引 = N−1

  scpi

  SYSTem:ELOG:DATA? (N-1)

  例如 N=23:

  scpi

  SYSTem:ELOG:DATA? 22

  返回:

  plaintext

  1718925678.456.4.1."Reverse Power Limit",-125.3

  1718925678.456:Unix 时间戳 → 整个日志的最后事件时间

  event_code=4:反向功率限制触发

  三、只看 “输出限制类事件” 的最后时间(推荐)

  你关心的是输出限制历史记录的结束时间,要过滤:

  1 = OVP 过压限制

  2 = OCP 过流限制

  4 = 反向功率限制

  步骤:

  读 N = SYSTem:ELOG:COUNt?

  遍历 i = 0 … N−1

  只保留 code ∈ {1.2.4} 的记录

  取其中最大时间戳 → 输出限制历史的结束时间

  伪代码:

  python

  运行

  max_ts = None

  N = int(inst.query("SYSTem:ELOG:COUNt?"))

  for i in range(N):

  data = inst.query(f"SYSTem:ELOG:DATA? {i}")

  ts, code, ch, desc, val = data.split(',')

  code = int(code)

  ts = float(ts)

  if code in (1.2.4): # 输出限制事件

  if max_ts is None or ts > max_ts:

  max_ts = ts

  # max_ts 即为“输出限制历史最后一次触发时间”

  四、时间戳转成可读时间(上位机)

  Python:

  python

  运行

  import time

  print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(max_ts)))

  五、一句话总结

  无专用 SCPI 直接返回结束时间。

  全日志结束时间:SYSTem:ELOG:DATA? (N-1) 的时间戳。

  输出限制历史结束时间:遍历 ELOG,取 code=1/2/4 的最大时间戳。