要通过SCPI指令实现双向直流电源的自动测试序列,需结合双向电源的功率限制指令、多命令串联语法及自动化脚本控制,具体实现步骤如下:
SOURce:POWer:ULIMit
(单位:kW)
SOUR:POW:ULIM 20.00
(设置正向功率上限为20kW)
SOURce:POWer:LLIMit
SOUR:POW:LLIM -15.00
(设置反向功率下限为-15kW,适用于能量回馈场景)
SOURce:POWer:PROTection
SOUR:POW:PROT 22.00
(设置功率保护阈值为22kW,超过时触发保护)
SOURce:VOLTage[:DC]
SOUR:VOLT:DC 220.00
(设置输出电压为220V)
SOURce:CURRent:POSitive
SOUR:CURR:POS 50.00
(设置正向电流为50A)
SOURce:CURRent:NEGative
SOUR:CURR:NEG -30.00
(设置反向电流为-30A)
OUTPut:STATe
OUTP:ON
(开启输出)
OUTPut:STATe?
1
表示输出开启,
0
表示关闭。
python
# 示例:Python脚本初始化双向电源
import
pyvisa
rm = pyvisa.ResourceManager()
psu = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")# 替换为实际IP
# 设置功率限制
psu.write("SOUR:POW:ULIM 20.00")# 正向上限20kW
psu.write("SOUR:POW:LLIM -15.00")# 反向下限-15kW
psu.write("SOUR:POW:PROT 22.00")
# 保护阈值22kW
# 设置电压/电流
psu.write("SOUR:VOLT:DC 220.00")
# 电压220V
psu.write("SOUR:CURR:POS 50.00")
# 正向电流50A
psu.write("SOUR:CURR:NEG -30.00")# 反向电流-30A
python
# 正向测试:逐步增加负载
for
load
in
range(10,
51,
10):
psu.write(f"SOUR:CURR:POS
{load}.00")# 设置正向电流
psu.write("OUTP:ON")# 开启输出
time.sleep(2)# 稳定时间
power =
float(psu.query("MEAS:POW?"))# 查询实际功率
print(f"正向负载{load}A时功率:
{power:.2f}kW")
psu.write("OUTP:OFF")
# 反向测试:能量回馈模拟
for
regen
in
range(5,
31,
5):
psu.write(f"SOUR:CURR:NEG -{regen}.00")# 设置反向电流
psu.write("OUTP:ON")
time.sleep(2)
power =
float(psu.query("MEAS:POW?"))
print(f"反向回馈{-regen}A时功率:
{power:.2f}kW")
psu.write("OUTP:OFF")
python# 触发过功率保护psu.write("SOUR:CURR:POS 60.00") # 超过正向上限50Apsu.write("OUTP:ON")time.sleep(1)status = psu.query("OUTP:STATe?") # 查询输出状态if status.strip() == "0":print("过功率保护触发,输出已关闭")psu.write("OUTP:ON") # 恢复输出
;
串联多条命令,减少通信次数:
pythonpsu.write("SOUR:VOLT:DC 220.00;SOUR:CURR:POS 50.00;OUTP:ON")
SOUR:VOLT:DC
可简写为
SOUR:VOLT
)。
SYSTem:ERRor?
err = psu.query("SYST:ERR?")
(返回错误代码和描述)
STATus:OPERation:CONDition?
(监控输出、保护等状态)。
pythonpsu.write("INITiate:IMMediate") # 启动测量time.sleep(0.1)data = psu.query("FETCh:ARRay?") # 获取数组格式数据
MEASure:ALL?
查询多参数(电压、电流、功率等)。
SOUR:POW:ULIM 50.00
,防止超功率)。
SOUR:POW:LLIM -45.00
)。