Keysight RP7900 双向电源没有直接返回 “限制历史记录开始时间” 的单条 SCPI,只能通过 ELOG(事件日志)第一条记录的时间戳,作为 “输出限制历史记录的开始时间”。
下面给出可直接执行的 SCPI 步骤、时间戳含义,以及如何过滤只看 “输出限制” 类事件的最早时间。
一、先查 ELOG 总体信息
scpi
*IDN? ; 确认仪器型号(RP79xx)
SYSTem:ELOG:DEPTH? ; 日志最大条数(内存深度)
SYSTem:ELOG:COUNt? ; 当前已记录事件总数 N
例:
plaintext
100
23
二、读第一条事件(index=0)的时间戳
scpi
SYSTem:ELOG:DATA? 0
返回格式:
plaintext
示例:
plaintext
1718923456.123.4.1."Reverse Power Limit",-120.5
1718923456.123:Unix 时间戳(秒,浮点)→ 这就是日志中最早事件的时间
event_code=4:反向功率限制触发(属于输出限制)
三、时间戳转成可读时间(上位机做)
Python 示例:
python
运行
import time
ts = 1718923456.123
print(time.ctime(ts))
# 或
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(ts)))
四、只看 “输出限制” 类事件的最早时间(推荐)
ELOG 里混杂各种事件(开机、输出开关、保护等),你要的是 **“输出限制” 历史的开始时间 **,需要:
遍历所有事件:for i in 0..N-1
过滤事件码:
1=OVP 过压限制
2=OCP 过流限制
4 = 反向功率限制
取最早一条的时间戳 → 即 “输出限制历史记录的开始时间”
伪代码:
python
运行
min_ts = None
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 min_ts is None or ts < min_ts:
min_ts = ts
# min_ts 即为“输出限制历史最早触发时间”
五、关键结论
无专用 SCPI 命令直接返回 “限制历史开始时间”。
用 SYSTem:ELOG:DATA? 0 得到全部日志最早时间。
过滤 event_code=1/2/4 后,取最小时间戳 → 输出限制历史的开始时间。