资讯中心

联系我们

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

如何通过SCPI命令将Keysight双向直流电源恢复出厂设置并保留校准?

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

  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 等内部全清命令。