要将双向直流电源的输出电流序列步进模式设置为手动触发(即每一步需通过外部或软件指令触发),可按照以下步骤使用SCPI指令进行配置,同时需注意不同厂商电源的指令差异:
启用序列模式
发送指令开启序列功能,确保电源进入序列输出状态:
plaintextSOURce:LIST:FUNCtion ON
部分电源(如ITECH IT6000系列)可能需先配置序列参数后再启用模式。
设置序列点数
定义电流序列的总点数(如3点序列):
plaintextSOURce:LIST:COUNt 3
定义电流序列参数
为每个序列点设置电流值和持续时间(单位依设备而定,如秒或毫秒):
plaintextSOURce:LIST:CURRent:DATA1 0, 2 ; 第1点:0A,持续2秒SOURce:LIST:CURRent:DATA2 5, 2 ; 第2点:5A,持续2秒
SOURce:LIST:CURRent:DATA3 0, 2 ; 第3点:0A,持续2秒
部分电源(如Chroma 62000P系列)可能使用PROG:LIST:CURR:DATA#指令。
设置步进模式为手动触发
发送指令将步进模式设为手动,每一步需通过触发指令推进:
plaintextSOURce:LIST:ADVance MANual
plaintextSOURce:LIST:ADVance:TRIGger SINGle ; 设置为单步触发模式TRIGger:INITiate ; 每发送一次推进一步
plaintextLIST:ADVance:MODE MAN ; 手动模式LIST:ADVance:TRIGger ; 推进一步(需配合软件按钮或脚本)
开启输出
发送指令启动电源输出,但序列不会自动运行,需等待触发:
plaintextOUTPut ON
手动推进序列
TRIGger:INITiate指令推进至下一步(如Keysight电源需先设置SOURce:LIST:ADVance:TRIGger SINGle)。TRIGger:SOURce EXTernal),需通过TTL信号推进序列。SOURce:LIST:ADVance:TRIGger SINGle和TRIGger:INITiate。plaintextSOURce:LIST:ADVance:TRIGger SINGleTRIGger:INITiate ; 执行第1步
TRIGger:INITiate ; 执行第2步
LIST:ADVance:MODE MAN启用手动模式,通过LIST:ADVance:TRIGger推进。plaintextLIST:ADVance:MODE MANLIST:ADVance:TRIGger ; 推进一步
SOURce:LIST:STEP:MODE MAN和SOURce:LIST:STEP:TRIGger。plaintextSOURce:LIST:STEP:MODE MANSOURce:LIST:STEP:TRIGger ; 触发下一步
plaintextTRIGger:SOURce EXTernal ; 选择外部触发TRIGger:SLOPe POSitive ; 上升沿触发(或NEGative)
plaintextSOURce:LIST:ADVance:COUNter?
plaintextOUTPut:STATe? ; 确认输出是否开启
SYSTem:ERRor?):-400 Parameter Error:参数超出范围(如步进模式不支持MANual)。-350 Command Error:指令语法错误(如拼写错误)。pythonimport pyvisa# 连接电源rm = pyvisa.ResourceManager()power_supply = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR") # 替换为实际地址# 初始化power_supply.write("SYSTem:REMote")power_supply.write("*RST")# 配置序列power_supply.write("SOURce:LIST:COUNt 3")power_supply.write("SOURce:LIST:CURRent:DATA1 0, 2")power_supply.write("SOURce:LIST:CURRent:DATA2 5, 2")power_supply.write("SOURce:LIST:CURRent:DATA3 0, 2")# 设置为手动步进(通用指令)power_supply.write("SOURce:LIST:ADVance MANual")# 启动输出并手动推进power_supply.write("OUTPut ON")input("按Enter键触发第一步...")power_supply.write("TRIGger:INITiate") # 第1步input("按Enter键触发第二步...")power_supply.write("TRIGger:INITiate") # 第2步input("按Enter键触发第三步...")power_supply.write("TRIGger:INITiate") # 第3步# 关闭连接power_supply.close()