和 “开始时间” 一样: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 的最大时间戳。