Keysight 双向直流电源(如 N6705B、N6785A)没有直接 SCPI 命令可导出完整的 “校准系数修改历史日志”;仪器内部只保存当前校准系数和最近几次校准的元数据,不保留全量变更日志。下面给出可实际执行的 SCPI 查询与审计方案。
一、能直接读的校准元数据(SCPI)
scpi
; 1. 基础校准信息
*IDN? ; 型号/序列号(用于追溯)
CAL:DATE? ; 上次校准日期 YYYY,MM,DD
CAL:TIME? ; 上次校准时间 HH,MM,SS(部分型号支持)
CAL:STR? ; 校准备注串(可存:系数版本、操作者、原因)
CAL:STAT? ; 校准状态:0=正常,1=失败/异常
; 2. 读取当前校准系数(核心)
CAL:COEF:VOLT? ; 电压校准系数(增益/偏置)
CAL:COEF:CURR? ; 电流校准系数
CAL:COEF:ALL? ; 一次性返回所有系数(部分型号支持)
; 3. 校准安全与修改记录(间接判断)
CAL:SEC:STAT? ; 校准锁状态:1=锁定(需密码),0=未锁
CAL:SEC:PWD? ; 读当前密码(仅高权限账户)
SYST:ERR:ALL? ; 校准过程错误日志(含系数修改失败记录)
二、“修改历史” 的获取方法(无原生日志,只能回溯)
1. 定期快照对比(推荐,可自建历史)
原理:定期用 SCPI 读取CAL:COEF:ALL? 并存档,对比前后差异即可发现修改。
示例流程:
初始快照:CAL:COEF:ALL? → 存为 coef_20260101.txt
周期快照:每月执行一次,命名含时间戳
差异对比:用文本对比工具(如 Beyond Compare)或脚本分析系数变化
2. 校准备注串(CAL:STR)写入变更记录(实验室操作)
每次修改系数前,解锁校准锁并写入变更日志:
scpi
CAL:SEC:STAT 0 ; 解锁(输入密码)
CAL:STR "20260514: 电压系数调整 +0.002%;操作者:QA;原因:年度校准"
CAL:SEC:STAT 1 ; 重新加锁
后续查询:CAL:STR? 即可看到最近一次修改记录。
3. 错误日志(SYST:ERR:ALL?)查异常修改
系数修改失败、非法操作等会记录在系统错误日志:
scpi
SYST:ERR:ALL?
典型返回:-241."Calibration data write error"(校准数据写入错误)
三、Python 脚本:快照 + 对比 + 日志(自建修改历史)
python
运行
import pyvisa
import time
import difflib
rm=pyvisa.ResourceManager()
psu=rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")
# 1. 读取当前系数
def read_coefficients():
return psu.query("CAL:COEF:ALL?").strip()
# 2. 保存快照(带时间戳)
timestamp=time.strftime("%Y%m%d_%H%M%S")
current_coef=read_coefficients()
with open(f"coef_snapshot_{timestamp}.txt", "w") as f:
f.write(current_coef)
# 3. 对比历史快照(示例:对比最近两次)
def compare_snapshots(old_path, new_path):
with open(old_path) as f1. open(new_path) as f2:
old=f1.readlines()
new=f2.readlines()
diff=difflib.unified_diff(old, new, fromfile='旧系数', tofile='新系数')
return ''.join(diff)
# 示例:打印差异
diff_result=compare_snapshots("coef_snapshot_20260501.txt", f"coef_snapshot_{timestamp}.txt")
print("校准系数变更:n", diff_result)
psu.close()
四、关键限制与说明
无原生历史日志:仪器固件不存储 “每次修改的时间、操作者、前后值” 的完整日志,只能自建快照库。
系数只读不写(普通用户):CAL:COEF 命令默认只读,修改需校准密码解锁(CAL:SEC:STAT 0)。
备注串长度有限:CAL:STR 通常最多 80 字符,仅适合记录关键变更信息。
原厂日志渠道:如需出厂至今的完整历史,需联系 Keysight 技术支持,通过维修诊断模式读取内部日志(需授权)。
五、审计建议
建立校准系数快照库:每次校准 / 修改后自动存档,保留至少 3 年。
强制CAL:STR 填写规范:包含日期、变更内容、操作者、原因。
定期错误日志巡检:用脚本每周读取 SYST:ERR:ALL?,告警校准相关错误。