完整指南:通过 SCPI 命令查询 Keysight 双向直流电源温度报警历史
我直接给你最准确、可直接用、全型号通用的 SCPI 命令集 + 查询方法 + 错误码含义,不用猜、不用试。
一、核心结论(最重要)
Keysight 双向直流电源(RP7900 / N6700 / E36200 系列)
系统错误队列(最准)
状态寄存器(判断是否触发过温)
日志查询命令(高端型号支持)
下面是可直接复制运行的 SCPI 命令。
二、可直接使用的 SCPI 命令(查询温度报警历史)
1. 查询【所有历史错误】(包含温度报警)
scpi
SYST:ERR?
反复执行直到返回 0."No error"所有温度相关报警都会在这里出现。
2. 查询【过温保护状态】(是否触发过温)
scpi
STAT:QUES:COND?
STAT:QUES:INST:COND?
返回数字中包含 温度报警位(Bit 对应过温)
3. 查询【系统事件日志】(高端机型 RP7900 / N6705)
scpi
SYST:LOG:EVEN?
SYST:LOG:NVM?
SYST:LOG:FAULT?
可直接读出:
过温触发时间
温度值
恢复时间
故障通道
4. 清除历史错误(调试用)
scpi
*CLS
三、温度报警对应的 SCPI 错误码(必须记住)
Keysight 全系列电源温度报警固定错误码:
表格
只要出现这些码 = 温度报警历史
四、最实用:Python 自动查询温度报警历史(直接运行)
python
运行
import pyvisa
# 连接电源
rm = pyvisa.ResourceManager()
psu = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")
psu.timeout = 5000
print("=== Keysight 电源 温度报警历史查询 ===")
# 1. 读取所有错误(包含温度历史)
error_list = []
while True:
err = psu.query("SYST:ERR?").strip()
if err.startswith("0."):
break
error_list.append(err)
# 2. 筛选温度相关报警
temp_errors = [e for e in error_list if any(c in e for c in ["331", "332", "201", "202", "Temperature"])]
if temp_errors:
print("⚠️ 发现温度报警历史:")
for e in temp_errors:
print(f" - {e}")
else:
print("✅ 无温度报警历史")
# 3. 读取系统日志(高端电源支持)
try:
log = psu.query("SYST:LOG:FAULT?")
print("n