一、先明确:Keysight 电源温度保护机制(非常关键)
过温保护(OTP)是硬件硬保护:不可修改阈值
内部固定阈值:约 85℃(预警)/90℃(关断)
触发:报 Error 504.输出关断,必须降温后复位
无法通过 SCPI 改写 OTP 阈值(原厂硬写死,防止误设烧毁)
用户可做的:温度监控 + 软件级报警(软阈值)
读内部温度(SCPI 可读)
在上位机(Python/LabVIEW)设定软件告警阈值(如 75℃ 预警、80℃ 告警)
超温时上位机弹窗 / 声音 / 邮件告警,甚至提前降功率 / 停机
下面全部是可实际部署的 SCPI + 软件告警方案。
二、读取电源内部温度的 SCPI 指令(所有系列通用)
1. 读取当前内部温度(℃)
scpi
SYST:TEMP?
返回:如 38.5(℃)
适用:N6705B、N6900、E36300、E36400 全系
2. 查询过温保护状态(是否触发)
scpi
SYST:ERR?
返回 +0.No error:正常
返回 504.Over temperature:过温保护已触发
三、软件温度告警阈值配置(上位机实现,推荐)
因为硬件 OTP 不可改,工程上标准做法是:
上位机循环读 SYST:TEMP?
设置软阈值:
预警:75℃
告警:80℃
紧急:85℃(接近硬件保护)
Python 示例(可直接运行,含阈值告警)
python
运行
import pyvisa
import time
rm = pyvisa.ResourceManager()
psu = rm.open_resource("USB0::0x0957::0x1707::MY49001234::INSTR")
psu.timeout = 3000
# 用户自定义软件阈值
TEMP_WARN = 75.0 # 预警
TEMP_ALARM = 80.0 # 告警
TEMP_CRIT = 85.0 # 紧急(接近硬件OTP)
while True:
# 读温度
temp = float(psu.query("SYST:TEMP?"))
print(f"当前温度:{temp:.1f}℃")
# 软件告警判断
if temp >= TEMP_CRIT:
print("