一、查询过流状态(OC)的命令
1. 查询状态寄存器(推荐方式)
STATus:QUEStionable:CONDition? ; 查询 questionable 状态寄存器条件
STATus:QUEStionable:EVENt? ; 查询 questionable 状态寄存器事件(读取后清除)
过流状态通常映射在 Questionable Status Register 中。具体位定义需查阅对应型号的编程手册。
2. 查询操作状态寄存器
STATus:OPERation:CONDition? ; 查询操作状态条件
STATus:OPERation:EVENt? ; 查询操作状态事件
3. 查询仪器状态字节(快速检查)
*STB? ; 读取状态字节(bit 3 = questionable summary, bit 5 = standard event)
二、N8900系列专用命令
| 命令 | 功能 |
|---|
CURR:PROT:STAT? | 查询过流保护(OCP)是否启用 |
CURR:PROT:LEV? | 查询过流保护设定值 |
OUTP:PROT:TRIP? | 查询输出保护是否已触发(包括过流、过压等) |
具体查询示例
; 查询过流保护是否已触发
OUTPut:PROTection:TRIPped?
; 返回 0 = 未触发,1 = 已触发(过流/过压/过温等)
查询过流保护设定与状态
CURR:PROT:STAT? ; 查询OCP是否开启(ON/OFF)
CURR:PROT:LEV? ; 查询OCP设定值(A)
CURR? ; 查询当前电流设定值
MEAS:CURR? ; 查询实际输出电流
三、完整过流检测流程
; 1. 检查OCP是否启用
CURR:PROT:STAT?
; 返回 ON
; 2. 检查OCP设定值
CURR:PROT:LEV?
; 返回 110.0(假设满量程110A)
; 3. 检查实际输出电流
MEAS:CURR?
; 返回 105.5
; 4. 检查保护是否已触发
OUTP:PROT:TRIP?
; 返回 0(未触发)或 1(已触发)
; 5. 若已触发,查询具体故障
STAT:QUES:EVEN?
; 解析返回的位值判断是否为过流
四、Python自动化检测示例
import pyvisa
rm = pyvisa.ResourceManager()inst = rm.open_resource('TCPIP0::192.168.1.10::inst0::INSTR')def check_overcurrent():
"""检测过流状态"""
# 读取实际电流
current = float(inst.query('MEAS:CURR?'))
# 读取OCP设定值
ocp_level = float(inst.query('CURR:PROT:LEV?'))
# 检查保护是否触发
tripped = int(inst.query('OUTP:PROT:TRIP?'))
# 读取 questionable 状态
q_status = int(inst.query('STAT:QUES:EVEN?'))
print(f"实际电流: {current:.3f} A")
print(f"OCP设定: {ocp_level:.3f} A")
print(f"保护触发: {'是' if tripped else '否'}")
print(f"Questionable状态: 0x{q_status:04X}")
# 判断是否过流
if tripped:
print("⚠️ 过流保护已触发!")
# 清除保护状态
inst.write('OUTP:PROT:CLE')
elif current > ocp_level * 0.95:
print("⚡ 接近过流阈值(95%)")
else:
print("✅ 电流正常")
return tripped
check_overcurrent()
五、注意事项
| 项目 | 说明 |
|---|
OUTP:PROT:TRIP? | 返回的保护触发是综合状态,包括过压(OVP)、过流(OCP)、过温(OTP)等,无法直接区分具体类型 |
| 状态寄存器解析 | 需查阅具体型号的编程手册确认过流对应的位定义 |
| 清除保护 | 触发后需发送 OUTP:PROT:CLE 清除,否则无法重新输出 |
| 双向电源特性 | N8900作为双向电源,过流保护在源模式和载模式下均有效 |
六、总结
| 需求 | 命令 | 说明 |
|---|
| 查询OCP是否启用 | CURR:PROT:STAT? | 返回 ON/OFF |
| 查询OCP设定值 | CURR:PROT:LEV? | 单位:A |
| 查询实际输出电流 | MEAS:CURR? | 实时测量值 |
| 查询保护是否触发 | OUTP:PROT:TRIP? | 0=正常, 1=触发 |
| 清除保护状态 | OUTP:PROT:CLE | 触发后必须清除 |
| 详细状态位查询 | STAT:QUES:EVEN? | 需按位解析 |
如需区分具体是过流还是过压触发,建议结合 MEAS:CURR? 与 MEAS:VOLT? 的实际测量值进行判断,或查阅具体型号的 Questionable Status Register 位定义表。