要通过SCPI命令查询Keysight双向直流电源的输出是否因过流而锁定,需结合电源型号的保护功能查询指令及输出状态指令,以下是具体步骤:
1. 确认电源型号及保护功能支持
查阅电源手册(如N6700、N8700、RP7900系列等),确认是否支持过流保护(OCP)及锁定功能。
关键指令:部分电源支持通过SYSTem:PROTection:STATe?或OUTPut:PROTection:STATe?查询保护功能状态,但需确认手册中是否提及过流锁定相关指令。
2. 查询过流保护状态(通用方法)
若电源支持通过SCPI查询保护状态,可尝试以下指令:
查询保护触发状态:
scpi
SYSTem:PROTection:TRIGgered?
返回1(或ON)表示保护已触发(如过流锁定),0(或OFF)表示未触发。
注意:部分电源可能使用OUTPut:PROTection:TRIGgered?或STATus:PROTection:CONDition?,需根据手册调整。
查询具体保护类型:
scpi
SYSTem:PROTection:TYPE?
返回结果可能包含OCP(过流保护),需结合手册确认是否支持锁定功能。
3. 查询输出状态(辅助判断)
若过流锁定导致输出关闭,可通过以下指令确认输出状态:
scpi
OUTPut:STATe?
返回0(或OFF)可能表示输出因保护(如过流)被关闭。
4. 清除保护状态(可选)
若需复位保护状态(如解锁过流锁定),可发送:
scpi
SYSTem:PROTection:CLEar
注意:执行此指令前需确认保护触发原因(如负载短路),避免重复触发。
5. 厂商差异与指令扩展
Keysight N6700系列:
查询保护状态:SYSTem:PROTection:STATe?(返回ON/OFF)。
查询触发条件:STATus:PROTection:CONDition?(返回位掩码,需解析手册确认过流位)。
Keysight RP7900系列:
支持通过SOURce:PROTection:OCP:STATe?查询过流保护状态。
其他型号:
若手册未明确支持SCPI查询保护状态,需通过前面板菜单或事件日志(SYSTem:ERRor:LOG?)间接确认。
6. 错误处理与调试
常见错误:
-400 Parameter Error:指令参数超出范围(如查询未启用的保护状态)。
-350 Command Error:指令语法错误(如拼写错误)。
-107 No Protection Active:未触发保护时查询状态。
调试建议:
先确认保护功能已启用(如SYSTem:PROTection:STATe ON)。
逐步查询状态,结合输出电压/电流(MEASure:VOLTage?/MEASure:CURRent?)验证保护触发原因。
记录查询时间戳和返回值,分析保护触发规律。
示例Python脚本(PyVISA)
python
import pyvisa
# 连接电源
rm = pyvisa.ResourceManager()
power_supply = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替换为实际地址
# 查询保护触发状态
try:
is_protected = power_supply.query("SYSTem:PROTection:TRIGgered?").strip() == "1"
print(f"保护是否触发: {is_protected}")
if is_protected:
output_state = power_supply.query("OUTPut:STATe?").strip()
print(f"输出状态: {'开启' if output_state == '1' else '关闭'}")
# 尝试查询具体保护类型(需根据手册调整)
try:
protection_type = power_supply.query("SYSTem:PROTection:TYPE?").strip()
print(f"保护类型: {protection_type}")
except pyvisa.Error:
print("无法查询保护类型,请参考手册")
except pyvisa.Error as e:
print(f"查询失败: {e}")
# 关闭连接
power_supply.close()