使用SCPI指令设置双向直流电源输出电流序列的过流保护,需结合序列模式配置、过流保护阈值设定及保护动作触发等核心环节,以下是具体实现方法与指令示例:
切换至远程模式:使用SYSTem:REMote指令确保电源处于软件控制状态,避免本地操作干扰。
复位电源(可选):通过*RST指令恢复出厂默认设置,清除潜在参数冲突。
配置电流序列参数:
设置序列点数:使用SOURce:LIST:COUNt <N>指令定义序列包含的点数(如SOUR:LIST:COUN 3表示3个点)。
定义每个序列点的电流值与持续时间:通过SOURce:LIST:CURRent:DATA<n> <I_n>, <T_n>指令设置每个点的电流值(单位:A,支持双向,如-10表示-10A)和持续时间(单位:秒或电源支持的单位,如2表示2秒)。例如:
SOUR:LIST:CURR:DATA1 -5, 2:第1点电流为-5A,持续2秒。SOUR:LIST:CURR:DATA2 0, 1:第2点电流为0A,持续1秒。SOUR:LIST:CURR:DATA3 10, 3:第3点电流为10A,持续3秒。启用序列模式:使用SOURce:LIST:FUNCtion ON指令激活序列功能。
设置过流保护阈值:通过SOURce:CURRent:PROTection:LEVel <I_limit>指令设定过流保护阈值(如SOUR:CURR:PROT:LEV 15表示过流保护阈值为15A)。需确保阈值高于序列中的最大电流值,但低于电源安全限值。
启用过流保护功能:使用SOURce:CURRent:PROTection:STATe ON指令激活过流保护(如SOUR:CURR:PROT:STAT ON)。
配置保护动作(可选):部分电源支持通过SOURce:CURRent:PROTection:ACTion <action>指令设置保护动作类型(如跳闸、报警或限制输出),需参考具体型号手册。
启动输出:使用OUTPut:STATe ON指令开启输出,电源将按序列输出电流,并在超过阈值时触发保护。
pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替换为实际电源地址# 1. 初始化与复位power.write("SYST:REM") # 切换至远程模式power.write("*RST") # 复位设备(可选)# 2. 配置电流序列参数power.write("SOUR:LIST:COUN 3") # 设置3个序列点power.write("SOUR:LIST:CURR:DATA1 -5, 2") # 第1点:-5A,2秒power.write("SOUR:LIST:CURR:DATA2 0, 1") # 第2点:0A,1秒power.write("SOUR:LIST:CURR:DATA3 10, 3") # 第3点:10A,3秒# 3. 启用序列模式power.write("SOUR:LIST:FUNC ON")# 4. 设置过流保护阈值与启用保护power.write("SOUR:CURR:PROT:LEV 15") # 过流保护阈值15Apower.write("SOUR:CURR:PROT:STAT ON") # 启用过流保护# 5. 启动输出power.write("OUTP ON")# 6. 监控与验证(示例:查询当前序列点索引)try: while True: current_index = int(power.query("SOUR:LIST:INDEx?")) print(f"当前序列点: {current_index}") time.sleep(0.1) # 采样间隔100msexcept KeyboardInterrupt: power.close()
LIST:LOOP代替CYCL),需参考具体型号手册。SYST:ERRor?)定位问题,常见错误包括参数超限(-400 Parameter Error)、序列未启用(-107 No Sequence Active)等。