Keysight 双向直流电源(RP7900/N6700/E36200)无公开 SCPI 命令可直接读取 “上次校准偏差值”;只能读校准日期 / 状态、通过实测回读间接算偏差,或进维修模式读校准系数。
一、可直接查询的校准信息(SCPI)
1. 校准日期 / 时间(推荐)
scpi
; 查询上次校准日期(YYYY,MM,DD)
SYST:CAL:DATE?
; 查询上次校准时间(HH,MM,SS)
SYST:CAL:TIME?
示例返回:2025.11.20、14.30.00
2. 校准状态 / 次数
scpi
; 查询校准状态(0=未校准,1=已校准)
SYST:CAL:STAT?
; 查询校准次数(部分机型支持)
SYST:CAL:NUM?
3. 校准有效期(部分固件)
scpi
; 查询建议校准周期(天)
SYST:CAL:PER?
二、间接计算校准偏差(最实用)
无直接 “偏差值” 指令,通过 “设定值 ↔ 回读值” 差值计算当前偏差(可反映校准漂移)。
1. SCPI 实测 + 回读(算偏差)
scpi
*CLS
; 设电压=24V、电流=5A
VOLT 24.0
CURR 5.0
OUTP ON
; 回读实际输出电压/电流
MEAS:VOLT?
MEAS:CURR?
偏差计算:电压偏差=回读值−24.0;电流偏差=回读值−5.0
示例:设定 24V,回读 24.003V → 偏差 **+3mV**
2. Python 批量测偏差(脚本)
python
运行
import pyvisa
rm = pyvisa.ResourceManager()
psu = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")
def calc_cal_deviation():
test_volts = [5. 12. 24. 48] # 多档位测偏差
print("=== 输出偏差(设定值 vs 回读值)===")
for v in test_volts:
psu.write(f"VOLT {v}")
psu.write("OUTP ON")
actual = float(psu.query("MEAS:VOLT?"))
dev = actual - v
print(f"设定:{v:4.1f}V → 回读:{actual:6.3f}V → 偏差:{dev:+.3f}V")
psu.write("OUTP OFF")
calc_cal_deviation()
psu.close()
三、维修模式读校准系数(原厂 / 授权用)
仅维修密码解锁后可用,普通用户无权限。
scpi
; 1. 进入维修模式(需密码)
SYST:SERV:UNLOCK "123456"
; 2. 读电压/电流校准系数(偏移+增益)
CAL:VOLT:OFFS? ; 电压偏移系数
CAL:VOLT:GAIN? ; 电压增益系数
CAL:CURR:OFFS? ; 电流偏移系数
CAL:CURR:GAIN? ; 电流增益系数
; 3. 退出维修模式
SYST:SERV:LOCK
系数含义:实际值=设定值×增益+偏移;偏差由系数变化量反映。
四、前面板手动查校准信息
按 System → About → Calibration
查看:Last Cal Date、Cal Status、Next Due Date
无直接 “偏差” 显示,需通过输出比对测试获取。
五、关键说明
无公开 “偏差值” SCPI:Keysight 未开放直接读校准偏差的指令,只能间接计算或读系数。
校准偏差≠故障:小偏差(如<0.05%+10mV)属正常漂移;偏差超规格需重新校准。
校准周期:建议每年 1 次;高精密场景每 6 个月 1 次。
六、常见问题
Q:为何查不到 “上次校准偏差”?A:固件不存储 “偏差历史”,仅存校准日期 / 系数;偏差需实测计算。
Q:可以用第三方软件读偏差吗?A:只能通过SCPI 实测回读计算,无软件可直接读取存储的偏差值。