资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何通过SCPI命令查询Keysight双向直流电源输出是否过流?

2026-05-09 09:53:27  点击:

一、查询过流状态(OC)的命令

1. 查询状态寄存器(推荐方式)

scpi
复制
STATus:QUEStionable:CONDition?     ; 查询 questionable 状态寄存器条件
STATus:QUEStionable:EVENt?        ; 查询 questionable 状态寄存器事件(读取后清除)
过流状态通常映射在 Questionable Status Register 中。具体位定义需查阅对应型号的编程手册。

2. 查询操作状态寄存器

scpi
复制
STATus:OPERation:CONDition?       ; 查询操作状态条件
STATus:OPERation:EVENt?           ; 查询操作状态事件

3. 查询仪器状态字节(快速检查)

scpi
复制
*STB?                             ; 读取状态字节(bit 3 = questionable summary, bit 5 = standard event)

二、N8900系列专用命令

根据N8900文档
,电源保护相关命令:
表格
命令功能
CURR:PROT:STAT?查询过流保护(OCP)是否启用
CURR:PROT:LEV?查询过流保护设定值
OUTP:PROT:TRIP?查询输出保护是否已触发(包括过流、过压等)

具体查询示例

scpi
复制
; 查询过流保护是否已触发
OUTPut:PROTection:TRIPped?

; 返回 0 = 未触发,1 = 已触发(过流/过压/过温等)

查询过流保护设定与状态

scpi
复制
CURR:PROT:STAT?        ; 查询OCP是否开启(ON/OFF)
CURR:PROT:LEV?         ; 查询OCP设定值(A)
CURR?                  ; 查询当前电流设定值
MEAS:CURR?             ; 查询实际输出电流

三、完整过流检测流程

scpi
复制
; 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自动化检测示例

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 位定义表。