Keysight RP7900 双向直流电源没有一条直接返回 “限制触发次数” 的 SCPI 命令;必须通过 ELOG(事件日志)逐条读取 → 按事件类型 / 通道统计,才能得到 OVP/OCP/ 反向功率限制等的触发次数。
下面给你完整 SCPI 流程、事件码对照表,以及可直接套用的统计思路。
一、先查 ELOG 总体信息
scpi
*IDN? ; 确认仪器型号
SYSTem:ELOG:DEPTH? ; 日志最大条数(内存深度)
SYSTem:ELOG:COUNt? ; 当前已记录事件总数
示例返回:
plaintext
100 ; 最多存 100 条
23 ; 目前有 23 条事件
二、逐条读取事件日志(含限制触发)
命令:
scpi
SYSTem:ELOG:DATA?
返回格式(逗号分隔):
plaintext
常见 “输出限制 / 保护” 事件码(RP7900)
1:OVP 过压保护触发
2:OCP 过流保护触发
3:OTP 过温保护触发
4:Reverse Power Limit(反向功率限制)触发
5:Output On
6:Output Off
示例:
scpi
SYSTem:ELOG:DATA? 0
→ 1718923456.4.1."Reverse Power Limit",-120.5
含义:通道 1 在该时间点触发了 反向功率限制。
三、统计 “输出限制触发次数”(核心)
SCPI 本身不直接汇总次数,需要上位机 / 脚本做循环 + 统计:
1)获取总条数
scpi
SYSTem:ELOG:COUNt? → N
2)循环读取并计数(伪代码)
python
运行
count_ovp_ch1 = 0
count_ocp_ch1 = 0
count_rev_plimit_ch1 = 0
for i in range(N):
data = query(f"SYSTem:ELOG:DATA? {i}")
ts, code, ch, desc, val = data.split(',')
code = int(code)
ch = int(ch)
if ch == 1:
if code == 1: count_ovp_ch1 += 1
if code == 2: count_ocp_ch1 += 1
if code == 4: count_rev_plimit_ch1 += 1
你就能得到:
通道 1 OVP 触发次数
通道 1 OCP 触发次数
通道 1 反向功率限制触发次数
同理 CH2
四、可选:清除历史计数(重置统计)
scpi
SYSTem:ELOG:CLEar ; 清空所有事件日志(次数归零)
五、如果你要 “当前是否处于限制状态”
不是历史次数,而是此刻是否被限制:
scpi
OUTPut:PROTection:STATe? CH1 ; CH1 是否有保护/限制激活
SOURce:VOLTage:PROTection:STATe? CH1 ; OVP 是否触发
SOURce:CURRent:PROTection:STATe? CH1 ; OCP 是否触发
小结
无直接 “触发次数” SCPI,必须读 ELOG 后统计。
关键命令:SYSTem:ELOG:DEPTH?、SYSTem:ELOG:COUNt?、SYSTem:ELOG:DATA? idx。
事件码 1/2/4 对应 OVP/OCP/ 反向功率限制。