Keysight 双向直流电源(N6705C/N6790A/N8900 等)没有单独一条 SCPI 叫 “校准数据版本号”,但可以用系统信息 + 校准日期 / 次数 + 安全日志,组合判定当前 EEPROM 里校准数据的 “版本 / 批次”。
下面给你直接可用的 SCPI 命令和解读方式。
一、查校准相关核心信息(最接近 “版本”)
1. 校准日期(最关键,可当作版本时间戳)
scpi
:SYSTem:CALibration:DATE?
; 返回格式:YYYY,MM,DD(例如 2025.11.20)
这是最近一次完整校准日期,EEPROM 校准区更新时会写这个时间。
不同日期 → 不同 “校准版本”。
2. 校准次数(判断是否重校过)
scpi
:SYSTem:CALibration:COUNt?
; 返回整数:已执行完整校准次数
次数变了 → 校准数据版本更新。
3. 固件版本(校准数据常与固件绑定)
scpi
*IDN?
; 返回:Keysight Technologies,model,serial,FWversion
; 例:Keysight Technologies,N6705C,US12345678.A.02.05
同一固件 + 同一校准日期 = 同一校准版本。
4. 安全日志(查校准修改记录,溯源版本变更)
scpi
:SYSTem:SECurity:LOG?
; 返回最近安全事件,包含:
; - CALIBRATION UNLOCKED
; - CALIBRATION WRITTEN(带时间戳)
出现 CALIBRATION WRITTEN → 校准数据被写入,版本更新。
二、没有 “版本号”,怎么判定版本?
Keysight 电源不提供 “校准数据版本号” 字段,行业通用做法是:
校准日期 + 固件版本 + 校准次数 三元组 = 唯一标识当前校准数据版本。
示例:
固件:A.02.05
校准日期:2025.11.20
校准次数:3→ 记作:Cal-V3-20251120-FW-A.02.05
三、完整 SCPI 查询脚本(一次性发)
scpi
*IDN?
:SYSTem:CALibration:DATE?
:SYSTem:CALibration:COUNt?
:SYSTem:SECurity:LOG?
四、Python 示例(自动解析 “版本指纹”)
python
运行
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm.open_resource("TCPIP0::192.168.1.100::INSTR")
idn = inst.query("*IDN?").strip().split(',')
model = idn[1]
fw = idn[3]
cal_date = inst.query(":SYSTem:CALibration:DATE?").strip()
cal_cnt = inst.query(":SYSTem:CALibration:COUNt?").strip()
cal_version_fingerprint = f"Cal-V{cal_cnt}-{cal_date.replace(',','')}-FW-{fw}"
print("校准数据版本指纹:", cal_version_fingerprint)
inst.close()
五、注意(非常重要)
*RST 不影响校准数据,不会改变日期 / 次数 / 版本。
校准锁锁定(:SYSTem:SECurity:CALibration? → 1)时,无法修改校准数据,版本固定。
EEPROM 写入次数上限是另一参数,和校准版本无关,之前已给过命令。