Keysight 双向直流电源(N6705C/N6790A/N8900 等)没有专门一条 SCPI 叫 “删除 EEPROM 用户快照”,但可以用 覆盖 + 复位 + 清除用户存储 的组合,把 *SAV 存在 EEPROM 里的用户设置快照彻底清空,同时不碰校准区。
下面分:存储机制 → SCPI 清除步骤 → 验证 → Python 示例。
一、用户快照存在哪里?
*SAV 1~*SAV 9:存在 EEPROM(非易失),断电不丢。
*RST:*不删 SAV 快照,只恢复当前会话参数。
校准区(校准系数、校准密码):独立分区,下面方法都不会动。
二、SCPI:删除 / 清空 EEPROM 用户快照(安全、保留校准)
1. 覆盖法(逐个位置清零,最干净)
把每个存储位都用默认空配置覆盖,相当于删除:
scpi
*RST ; 先把当前状态设为出厂默认
*SAV 1 ; 用默认状态覆盖 1 号快照
*SAV 2 ; 覆盖 2 号
*SAV 3
*SAV 4
*SAV 5
*SAV 6
*SAV 7
*SAV 8
*SAV 9
执行后:1–9 号快照全变成空 / 默认,原用户设置被覆盖,EEPROM 写入次数可控。
2. 系统级清除(部分型号支持)
部分固件支持清除所有用户保存态(保留校准):
scpi
:SYSTem:PRESet:USER ; 清除用户预置/用户快照(保留校准)
不是所有型号都有,优先用覆盖法,兼容性最好。
3. 关键:不要用全清命令
绝对避免(会清校准):
scpi
:SYSTem:FORMat ; 内部全清,含校准区(危险!)
三、验证:快照已清空
scpi
*RCL 1 ; 调用 1 号
*OPC? ; 等完成
:OUTPut? ; 应返回 0(输出关,默认)
:VOLTage? ; 应返回 0.000(默认)
所有位置都返回默认值,说明用户快照已清空。
四、EEPROM 保护注意(避免无谓写入)
清快照前:校准锁必须锁定(防止误写校准区)
scpi
:SYSTem:SECurity:CALibration? ; 返回 1 = 锁定(安全)
不要频繁 *SAV/*RCL:每写一次消耗一次 EEPROM 寿命(典型 100 万次上限)。
五、Python 一键脚本(覆盖所有快照 + 验证)
python
运行
import pyvisa
import time
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)
if cal_lock != "1":
print("⚠️ 校准锁未锁定,先锁定再继续!")
inst.close()
exit()
# 2. 恢复默认并覆盖所有用户快照
inst.write("*RST")
time.sleep(1)
for slot in range(1. 10):
inst.write(f"*SAV {slot}")
print(f"已覆盖 {slot} 号快照")
time.sleep(0.2)
# 3. 验证:调用1号,检查是否为默认
inst.write("*RCL 1")
time.sleep(0.5)
outp = inst.query(":OUTPut?").strip()
volt = inst.query(":VOLTage?").strip()
print("验证:输出状态=", outp, " 电压=", volt)
if outp == "0" and float(volt) < 0.001:
print("✅ EEPROM 用户快照已全部清空,校准未受影响")
else:
print("❌ 清空失败,请检查固件型号")
inst.close()
小结
无专用删除命令,用 *RST + *SAV 1~9 覆盖最安全、通用。
保留校准:全程不碰 :SYSTem:FORMat,只操作用户区。
验证:调用后返回默认值即成功。