要通过SCPI命令查询Keysight双向直流电源的过流保护(OCP)恢复时间,需结合电源型号特性与SCPI指令规范,采用分步查询与参数解析的方法。以下是具体操作流程及技术要点:
一、确认电源型号与OCP机制
型号差异
Keysight双向直流电源(如N6700系列、IT6000系列)的OCP恢复时间可能由硬件或软件控制:
硬件OCP:恢复时间固定(如<10μs),无法通过SCPI查询,需参考手册参数。
软件OCP:支持可编程延迟时间(如0-100ms),可通过SCPI读取或设置。
查询前提
确保电源已启用OCP功能(命令示例:SOUR:CURR:PROT:STAT ON)。
确认OCP触发后电源处于可恢复状态(如非“Latch Off”模式)。
二、SCPI命令查询流程
1. 查询OCP触发状态
scpiSOUR:CURR:PROT:TRIP?
返回值:1表示OCP已触发,0表示未触发。
作用:确认OCP是否激活,避免无效查询。
2. 查询OCP恢复模式
scpiSOUR:CURR:PROT:ACTION?
典型返回值:
AUTO:自动恢复(恢复时间由电源内部逻辑决定)。
LATCH:锁定输出(需手动复位,无自动恢复时间)。
RECOV:XXms:可恢复模式,XX为延迟时间(如RECOV:50ms)。
注意:部分型号可能使用不同指令(如OUTP:PROT:CLE:AUTO ON)。
3. 查询OCP阈值与延迟参数
阈值查询:
scpiSOUR:CURR:PROT:LEV?
返回当前OCP阈值(单位:A),用于验证保护设置是否合理。
延迟时间查询(若支持可编程延迟):
scpiSOUR:CURR:PROT:DEL?
返回OCP触发后的恢复延迟时间(单位:ms或s)。
4. 查询电源状态寄存器(高级调试)
scpiSYST:ERR?
若OCP恢复异常,查询错误代码(如-350表示命令语法错误,-107表示OCP未启用)。
三、完整Python示例(PyVISA)
pythonimport pyvisa# 连接电源rm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替换为实际地址# 查询OCP状态is_tripped = power.query("SOUR:CURR:PROT:TRIP?").strip() == "1"print(f"OCP触发状态: {'已触发' if is_tripped else '未触发'}")if is_tripped: # 查询恢复模式 recovery_mode = power.query("SOUR:CURR:PROT:ACTION?").strip() print(f"恢复模式: {recovery_mode}") # 查询延迟时间(若支持) try: delay_time = power.query("SOUR:CURR:PROT:DEL?").strip() print(f"恢复延迟时间: {delay_time}") except pyvisa.Error: print("电源不支持延迟时间查询") # 清除OCP状态(恢复输出) power.write("OUTP:PROT:CLE") print("已清除OCP状态")else: print("OCP未触发,无需查询恢复时间")power.close()
四、关键注意事项
厂商差异
Keysight N6700系列可能使用SOUR:LIST:CURR:DATA?查询序列模式下的OCP参数。
ITECH IT6000系列需通过LIST:LOOP:COUNter?查询循环次数以间接推算恢复时间。
实时性
部分电源的查询结果可能存在延迟(如100ms),需结合实际需求调整查询频率。
权限控制
确保电源处于远程模式(SYST:REMote)且未被其他程序锁定。
错误处理
若查询失败,优先检查命令语法(如是否缺少问号?)或参数范围(如延迟时间是否超出电源支持范围)。