Keysight 双向直流电源无直接 SCPI 命令查询 “校准密码是否被更改”,只能通过密码验证 + 状态读取间接判断,核心依赖 CAL:SEC 子系统。
一、核心 SCPI 命令(校准安全锁)
1. 查询校准安全锁状态
scpi
CAL:SEC:STAT?
返回 0:未锁定(密码未启用或已解锁)
返回 1:已锁定(密码生效)
2. 验证当前密码是否为默认值(间接判断是否更改)
Keysight 电源默认校准密码通常为 0000 或 1234(不同型号一致)。
scpi
; 尝试用默认密码解锁
CAL:SEC:PWD 0000
CAL:SEC:STAT?
若返回 0:默认密码有效 → 密码未被更改
若返回 1:默认密码无效 → 密码已被更改
3. 写入 / 查询自定义密码(仅管理员)
scpi
; 写入新密码(解锁状态下)
CAL:SEC:PWD 123456
; 查询当前密码(仅高权限账户可用,普通用户禁用)
CAL:SEC:PWD?
二、判断密码是否被更改的完整流程(SCPI 脚本)
scpi
1. *IDN? ; 读取仪器型号/序列号(日志记录)
2. CAL:SEC:STAT? ; 读锁状态
; 若返回 0 → 直接用默认密码解锁验证
; 若返回 1 → 先尝试默认密码解锁
3. CAL:SEC:PWD 0000 ; 输入默认密码
4. CAL:SEC:STAT? ; 再次读状态
; 返回 0 → 密码未改
; 返回 1 → 密码已改
5. CAL:SEC:PWD 原密码 ; 恢复原密码(如需)
三、Python 自动化判断脚本
python
运行
import pyvisa
rm = pyvisa.ResourceManager()
psu = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")
# 1. 查询锁状态
lock_status=psu.query("CAL:SEC:STAT?").strip()
print("校准锁状态(1=锁定,0=未锁定):", lock_status)
# 2. 尝试默认密码解锁
psu.write("CAL:SEC:PWD 0000")
new_status=psu.query("CAL:SEC:STAT?").strip()
if new_status == "0":
print("✅ 密码未被更改(默认密码有效)")
else:
print("❌ 密码已被更改(默认密码无效)")
psu.close()
四、关键说明
无直接查询命令:仪器不提供 “密码是否修改” 的专用 SCPI 位,只能通过默认密码验证间接判断。
默认密码:Keysight 双向直流电源(如 N6785A、N6705B)默认校准密码为0000.
权限限制:CAL:SEC:PWD?仅原厂 / 管理员账户可调用,普通用户无法读取明文密码。
审计建议:定期执行上述脚本,将结果写入日志;密码更改后,需同步更新校准证书的 “安全锁状态” 字段。