| 命令 | 功能 | 说明 |
|---|---|---|
CAL:STAT ON|OFF | 进入/退出校准模式 | 需密码 |
CAL:PASS <value> | 设置/输入校准密码 | 出厂默认 0 |
CAL:VOLT / CAL:CURR | 选择电压/电流校准 | — |
CAL:LEV P1|P2|P3|P4 | 选择校准点 | 4点校准 |
CAL:DATA <value> | 输入DMM实测值 | — |
CAL:SAVE | 保存校准常数 | 写入EEPROM |
CAL:DATE "<date>" | 设置校准日期 | — |
CAL:COUN? | 查询校准次数 | — |
CAL:RESet — 不存在CAL:DEFault — 不存在CAL:INITialize — 不存在CAL:FACTory — 不存在| 原因 | 说明 |
|---|---|
| 安全设计 | 防止误操作导致精度丢失 |
| 无出厂默认值存储 | 校准系数为生产时写入,无独立备份 |
| EEPROM覆盖机制 | 新校准直接覆盖旧数据,无法回退 |
; 进入校准模式
CAL:STAT ON
CAL:PASS 0
; 电压校准(本地感测)
CAL:VOLT
CAL:LEV P1
*OPC?
CAL:DATA 0.000 ; DMM实测值
CAL:LEV P2
*OPC?
CAL:DATA 37.500 ; 25%量程
CAL:LEV P3
*OPC?
CAL:DATA 75.000 ; 50%量程
CAL:LEV P4
*OPC?
CAL:DATA 150.000 ; 100%量程(满量程)
; 电流校准
CAL:CURR
CAL:LEV P1
*OPC?
CAL:DATA 0.000
CAL:LEV P2
*OPC?
CAL:DATA 27.500
CAL:LEV P3
*OPC?
CAL:DATA 55.000
CAL:LEV P4
*OPC?
CAL:DATA 110.000
; 保存
CAL:SAVE
CAL:DATE "2026-05-09"
CAL:STAT OFF
; 查询当前固件版本
SYSTem:VERSion?
*IDN?
; 部分仪器在固件更新时会重置校准数据
; 但此为副作用,非官方推荐方式
import pyvisaimport time
rm = pyvisa.ResourceManager()inst = rm.open_resource('TCPIP0::192.168.1.10::inst0::INSTR')def perform_full_calibration(dmm_voltage_readings, dmm_current_readings):
"""执行完整4点校准"""
# 验证输入数据
if len(dmm_voltage_readings) != 4 or len(dmm_current_readings) != 4:
raise ValueError("需提供4个校准点的DMM读数")
# 进入校准模式
inst.write('CAL:STAT ON')
inst.write('CAL:PASS 0')
# 电压校准
print("开始电压校准...")
inst.write('CAL:VOLT')
for i, reading in enumerate(dmm_voltage_readings, 1):
inst.write(f'CAL:LEV P{i}')
inst.query('*OPC?') # 等待稳定
inst.write(f'CAL:DATA {reading:.6f}')
print(f" P{i}: {reading:.6f} V")
time.sleep(0.5)
# 电流校准
print("开始电流校准...")
inst.write('CAL:CURR')
for i, reading in enumerate(dmm_current_readings, 1):
inst.write(f'CAL:LEV P{i}')
inst.query('*OPC?')
inst.write(f'CAL:DATA {reading:.6f}')
print(f" P{i}: {reading:.6f} A")
time.sleep(0.5)
# 保存
inst.write('CAL:SAVE')
inst.write('CAL:DATE "2026-05-09"')
inst.write('CAL:STAT OFF')
# 验证
new_count = int(inst.query('CAL:COUN?'))
new_date = inst.query('CAL:DATE?').strip()
print(f"n校准完成!")
print(f"新校准日期: {new_date}")
print(f"校准次数: {new_count}")# 示例:使用标准源实测值v_points = [0.001, 37.498, 74.995, 149.992] # DMM实测c_points = [0.002, 27.496, 54.993, 109.989] # DMM实测perform_full_calibration(v_points, c_points)
| 项目 | 说明 |
|---|---|
| 校准前备份 | 建议记录当前 CAL:DATE? 和 CAL:COUN? |
| 标准器要求 | 需使用精度高于电源规格3-10倍的标准源 |
| 环境要求 | 建议在25°C±2°C恒温环境进行 |
| 安全警告 | 满量程校准点输出额定最大电压/电流 |
| 需求 | N8900支持情况 | 替代方案 |
|---|---|---|
| 重置校准为默认值 | ❌ 不支持 | 执行完整重新校准 |
| 恢复出厂校准 | ❌ 不支持 | 联系Keysight服务中心 |
| 覆盖当前校准 | ✅ CAL:SAVE | 使用标准源重新标定 |
| 查询校准次数 | ✅ CAL:COUN? | 可追踪校准历史 |