要使用SCPI指令将双向直流电源的输出电流序列步进模式设置为手动触发(即每一步需通过外部或软件指令触发),需结合序列模式(List Mode)与手动步进控制指令。以下是详细步骤和示例:
plaintextSOURce:LIST:FUNCtion ON
plaintextSOURce:LIST:COUNt <N>
<N>为序列总点数(如3点序列:SOURce:LIST:COUNt 3)。plaintextSOURce:LIST:CURRent:DATA<n> <I_value>, <dwell_time>
<n>为序列点序号(如DATA1、DATA2)。<I_value>为电流值(单位:A),<dwell_time>为持续时间(单位依设备而定,如秒或100μs)。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秒
plaintextSOURce:LIST:ADVance MANual
TRIGger:INITiate或外部触发信号推进。plaintextSOURce:LIST:ADVance:TRIGger SINGle
TRIGger:INITiate执行一步。plaintextLIST:ADVance:MODE MAN
初始化与复位
plaintextSYSTem:REMote ; 进入远程模式*RST ; 复位设备(可选)
配置序列参数
plaintextSOURce:LIST:COUNt 3 ; 设置3个序列点SOURce: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秒
设置手动步进模式
plaintextSOURce:LIST:ADVance MANual ; 设置为手动步进
启动输出(第一步)
plaintextOUTPut ON ; 开启输出TRIGger:INITiate ; 触发第一步(或通过外部TTL信号)
手动推进后续步骤
TRIGger:INITiate推进至下一步:plaintextTRIGger:INITiate ; 执行第2步TRIGger:INITiate ; 执行第3步
SOURce:LIST:ADVance:TRIGger SINGle和TRIGger:INITiate:plaintextSOURce:LIST:ADVance:TRIGger SINGle ; 单步触发模式TRIGger:INITiate ; 每发送一次推进一步
LIST:ADVance:MODE MAN启用手动模式,通过LIST:ADVance:TRIGger推进:plaintextLIST:ADVance:MODE MAN ; 手动模式LIST:ADVance:TRIGger ; 推进一步(需配合软件按钮或脚本)
SOURce:LIST:STEP:MODE MAN和SOURce:LIST:STEP:TRIGger:plaintextSOURce:LIST:STEP:MODE MAN ; 手动步进SOURce:LIST:STEP:TRIGger ; 触发下一步
plaintextTRIGger:SOURce EXTernal ; 选择外部触发TRIGger:SLOPe POSitive ; 上升沿触发(或NEGative)
plaintextSOURce:LIST:ADVance:COUNter? ; 返回已执行的步数
plaintextOUTPut:STATe? ; 确认输出是否开启
plaintextSYSTem: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()