Keysight 双向直流电源(N6790A/N6705C 等)没有一条 SCPI 命令能 “一键恢复出厂并自动保留校准”,但可以用标准 SCPI 做到 恢复用户设置 + 不触碰校准数据(官方设计就是:普通复位不删校准)。
下面分:原理 → 安全前提 → SCPI 步骤 → 验证命令 → Python 示例。
一、原理:哪些数据会被复位?哪些不会?
以 N6705C / N6790A / N8900 系列为准:
*会被 RST 恢复出厂的:
输出电压 / 电流预设值
OVP/OCP 保护阈值(用户设定部分)
通讯参数、显示设置、前面板锁定
用户保存的 *SAV 状态(1–9 号)
LAN/USB/GPIB 配置、日期时间等
不会被 *RST 清除的(校准 / 安全区):
出厂校准系数、增益 / 偏移校准表(核心)
EEPROM 校准区、校准保护锁状态
校准密码、安全日志
硬件序列号、出厂日期等只读信息
也就是说:直接发 *RST,本身就会 “恢复用户设置、保留校准”;你要做的只是不要发格式化 / 出厂全清命令(这类命令通常需要校准密码且不公开)。
二、安全前提:先确认校准锁是锁定状态
防止复位过程中意外写入校准区(虽然 *RST 不会写校准,但养成习惯):
scpi
:SYSTem:SECurity:CALibration? ; 查询校准锁
; 返回 1 = 锁定(推荐),0 = 解锁
若返回 1:安全,可直接 *RST
若返回 0:建议先锁定(需校准密码):
scpi
:SYSTem:PASSword:CALibration <你的密码>
:SYSTem:SECurity:CALibration 1
三、SCPI 命令:恢复出厂、保留校准(直接可用)
1. 标准复位(核心命令,保留校准)
scpi
*RST ; 恢复用户设置到出厂默认,**不碰校准**
*CLS ; 清除事件状态寄存器、错误队列
2. 额外同步系统参数(可选,更干净)
scpi
:SYSTem:PRESet ; 系统级预设(与 *RST 效果接近,仍保留校准)
:OUTPut:PROTection:CLEar; 清除所有保护锁存(OVP/OCP/OTP)
3. 确认校准区未被修改(关键验证)
复位后查询校准锁和 EEPROM 状态,确认没变:
scpi
:SYSTem:SECurity:CALibration? ; 应仍为 1(锁定)
:SYSTem:SECurity:EEPROM? ; 应仍为 1(写保护)
:SYSTem:PASSword:CALibration:ENABle? ; 密码启用状态不变
四、完整 Python 脚本(一键执行 + 验证)
python
运行
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm.open_resource("TCPIP0::192.168.1.100::INSTR") # 改你的地址
# 1. 先查校准锁状态
cal_lock = inst.query(":SYSTem:SECurity:CALibration?").strip()
print("复位前 校准锁(1=锁定):", cal_lock)
# 2. 执行恢复出厂(保留校准)
inst.write("*RST")
inst.write("*CLS")
inst.write(":SYSTem:PRESet")
inst.write(":OUTPut:PROTection:CLEar")
# 3. 等待复位完成(约2–3秒)
import time
time.sleep(3)
# 4. 验证校准区未变
cal_lock_after = inst.query(":SYSTem:SECurity:CALibration?").strip()
eeprom_wp_after = inst.query(":SYSTem:SECurity:EEPROM?").strip()
print("复位后 校准锁:", cal_lock_after)
print("复位后 EEPROM写保护:", eeprom_wp_after)
if cal_lock_after == "1" and eeprom_wp_after == "1":
print("✅ 成功:已恢复出厂设置,校准数据完整保留")
else:
print("❌ 异常:校准锁/EEPROM 状态改变,请检查")
inst.close()
五、关键注意事项
不要使用厂商内部的 “全清 / 格式化” 命令(如 :SYSTem:FORMat),这类命令会清空校准区,且通常需要校准密码才能执行。
*RST 不会重置校准密码,复位后仍需原密码才能解锁校准锁。
安全日志会记录复位事件,可通过 :SYSTem:SECurity:LOG? 追溯。
总结
无需特殊命令:直接用 *RST + *CLS 即可恢复出厂、保留校准。
核心保障:复位前确认 CAL=1(校准锁锁定),复位后验证 CAL=1、EEPROM=1.
风险规避:远离 :SYSTem:FORMat 等内部全清命令。