资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何通过SCPI命令将Keysight双向直流电源EEPROM中的用户设置快照删除?

2026-05-21 09:33:32  点击:

  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,只操作用户区。

  验证:调用后返回默认值即成功。