Keysight 双向直流电源(N7900/N6700 系列)通过 SCPI 查询比较器触发历史记录 的完整、可直接套用方案(含命令、寄存器、事件日志、查询示例)。先明确:电源没有一条叫 :COMP:TRIG:HIST? 的直接指令,但可以通过 状态寄存器 + 事件日志 + 保护状态 + 错误队列 完整还原比较器(OVP/OCP/ 峰值检测比较器)的触发历史。
一、先理清:“比较器触发历史” 指什么
在双向电源里,比较器 = 电压 / 电流峰值检测比较器、OVP/OCP 保护比较器。“触发历史” 包括:
是否触发过(历史标志)
最近一次触发时间戳
触发类型(OVP / OCP / 正峰值 / 负峰值 / 过流 / 反向过流)
触发时的电压 / 电流值
触发次数(部分机型支持)
下面分 寄存器快照、事件日志、保护状态、错误队列、波形追溯 五块给 SCPI。
二、SCPI:查询比较器触发历史(核心命令,N7900 为主)
1. 状态寄存器:快速判断 “是否触发过”(最常用)
所有比较器触发都会锁存在 QUESTIONABLE 状态寄存器,读一次即可知道历史:
scpi
; 1. 可疑条件寄存器(含 OVP/OCP/峰值比较器触发)
:STAT:QUES:COND? ; 实时状态(当前是否触发)
:STAT:QUES:EVENT? ; 历史事件(**关键:是否曾经触发过,读一次清零**)
位定义(N7900):
Bit 0:OVP 比较器触发
Bit 1:OCP 比较器触发
Bit 2:峰值电压比较器触发
Bit 3:峰值电流比较器触发
Bit 4:反向 OCP(负电流比较器)触发
示例返回:5 → 二进制 101 → OVP + 峰值电压比较器都触发过。
2. 保护事件日志:最近一次触发详情(时间戳 + 类型)
N7900 有 保护事件缓冲区,SCPI 可直接读最近一次:
scpi
; 2. 保护事件日志(最近一次比较器触发)
:SOUR:PROT:EVENT? ; 返回:<时间戳>,<事件类型>,<通道>
事件类型码:
0:无事件
1:OVP(电压比较器)
2:OCP(电流比较器)
3:正峰值电压比较器
4:负峰值电压比较器
5:正峰值电流比较器
6:负峰值电流比较器
示例返回:125.3.1.1 → 125.3 秒时,通道 1 OVP 比较器触发。
3. 触发时的电压 / 电流快照(还原当时工况)
读事件同时抓取触发瞬间的测量值:
scpi
; 3. 触发瞬间的电压/电流(比较器触发时的阈值点)
:SOUR:PROT:EVENT:VOLT? ; 触发时电压
:SOUR:PROT:EVENT:CURR? ; 触发时电流
4. 错误队列:完整触发历史(含多次触发)
所有比较器触发都会进 系统错误队列,可逐条读取,直到空:
scpi
; 4. 系统错误队列(逐条读,直到返回 0."No error")
:SYST:ERR?
常见错误码(比较器触发):
+501:OVP 比较器触发
+502:OCP 比较器触发
+503:峰值电压比较器触发
+504:峰值电流比较器触发
示例读取(多次触发):
plaintext
:SYST:ERR? → +501."OVP occurred"
:SYST:ERR? → +503."Peak voltage detect"
:SYST:ERR? → 0."No error"
5. 峰值比较器专用历史(仅峰值检测)
如果你特指 峰值检测比较器(不是 OVP/OCP):
scpi
; 5. 峰值比较器触发历史
:MEAS:PEAK:VOLT:TRIG? ; 电压峰值比较器是否触发过(1=是,0=否)
:MEAS:PEAK:CURR:TRIG? ; 电流峰值比较器是否触发过
:MEAS:PEAK:COUNT? ; 峰值触发次数(部分固件支持)
6. 清除历史记录(重置,便于新一轮统计)
scpi
; 6. 清除所有比较器触发历史
:STAT:QUES:EVENT:CLE
:SOUR:PROT:EVENT:CLE
:SYST:ERR:CLE
三、完整查询脚本(直接复制,一次读全历史)
scpi
*RST;:SYST:REM
; 1. 读历史事件寄存器
:STAT:QUES:EVENT?
; 2. 读最近一次保护事件(时间+类型+通道)
:SOUR:PROT:EVENT?
:SOUR:PROT:EVENT:VOLT?
:SOUR:PROT:EVENT:CURR?
; 3. 读峰值比较器历史
:MEAS:PEAK:VOLT:TRIG?
:MEAS:PEAK:CURR:TRIG?
:MEAS:PEAK:COUNT?
; 4. 逐条读错误队列(完整历史)
:SYST:ERR?
:SYST:ERR?
:SYST:ERR?
四、关键说明(避坑)
:STAT:QUES:EVENT? 读一次清零:要先读再清,否则历史丢失。
事件日志最多存 1 条:N7900 仅保留最近一次;多次触发需靠 :SYST:ERR? 队列。
双向电源需查正负通道:反向电流比较器触发在 Bit4(QUES 寄存器)。
固件版本差异:N6700 命令几乎一致,仅 :MEAS:PEAK:COUNT? 可能不支持。
五、一句话总结
快速查是否触发过::STAT:QUES:EVENT?
最近一次触发详情::SOUR:PROT:EVENT?
完整多次触发历史:循环读 :SYST:ERR?
峰值比较器专用::MEAS:PEAK:VOLT:TRIG?