Keysight N6705/E3630 等双向直流电源,SCPI 没有专门查询 “EEPROM 保护密码修改历史” 的命令;仪器本身也不保存密码变更日志。下面把现状、替代方案和可查信息讲清楚。
一、SCPI 现状:无密码历史查询命令
你关心的是 :DATA:LOG:PASS(EEPROM / 数据记录保护密码),但:
官方 SCPI 命令集里没有类似下面的指令:
scpi
:DATA:LOG:PASS:HIST?
:SYSTEM:AUDIT?
仪器不存储历次旧密码、修改时间、操作接口(前面板 / USB/LAN)等审计日志。
同样,校准密码(:CAL:SEC:PASS)也没有历史查询命令。
能查的只有当前状态:
scpi
:DATA:LOG:PASS? ; 返回当前密码(出厂为空)
:DATA:LOG:LOCK? ; 是否写保护锁定
二、那 “修改历史” 怎么查?(仅两种间接途径)
1. 查看仪器系统日志(部分型号有)
部分 Keysight 电源(如 N6705B)有系统事件日志,可能记录 “密码被更改” 这类事件(但不记录旧密码)。
SCPI(若支持):
scpi
:SYSTEM:LOG?
返回:时间戳 + 事件码 + 简要文本,例如:2026-05-20T14:23:10.PASSWORD_CHANGED,DATA_LOG
不会显示旧密码、新密码,只告诉你 “改过”。
2. 前面板查看事件日志(更可靠)
操作路径:System → Event Log → View
能看到:时间、事件类型(如 Data Log Password Changed),但无密码明文。
三、EEPROM 密码 vs 校准密码:都无历史记录
EEPROM / 数据密码(:DATA:LOG):保护用户日志 / 配置;无历史;*RST 可清空。
校准密码(:CAL:SEC):保护校准系数;无历史;*RST 不动。
四、如果你需要 “可追溯”,只能自己做上位机日志
因为仪器本身不记,要追溯密码修改,必须在你的控制程序里记录。
Python + SCPI 示例(记录每次改密码):
python
运行
import pyvisa
import datetime
rm = pyvisa.ResourceManager()
inst = rm.open_resource('TCPIP::192.168.1.100::INSTR')
def change_eeprom_password(old_pwd, new_pwd):
# 执行改密码
inst.write(f':DATA:LOG:PASS {old_pwd},"{new_pwd}"')
# 本地记录历史
with open('eeprom_pwd_history.log', 'a') as f:
f.write(f"{datetime.datetime.now()}, OLD: {old_pwd}, NEW: {new_pwd}n")
# 使用
change_eeprom_password("", "MySecurePwd123")