要用SCPI指令设置双向直流电源输出电流序列的步进值,需结合设备支持的序列编程功能(如PROG:LIST或PROG:ARB指令),通过定义电流幅值列表和持续时间来实现步进控制。以下是具体步骤和示例:
确认设备支持的功能
查阅电源手册,确认其支持序列输出功能(如PROG:LIST或PROG:ARB指令)。部分设备可能使用SOUR:LIST:CURR或SOUR:ARB:CURR等指令。
设置电流序列参数
使用SCPI指令定义电流幅值列表和每个幅值的持续时间。例如:
PROG:LIST:CURR 1.0,2.0,3.0(设置电流序列为1A→2A→3A)。PROG:LIST:TIME 1.0,1.0,1.0(每个幅值持续1秒)。加载并触发序列
将配置好的序列加载至设备,并触发输出:
PROG:LIST:LOAD 1(加载序列到指定位置)。OUTP ON(开启输出)。TRIG(手动触发序列,或通过外部信号触发)。PROG:LIST指令)假设需设置一个电流序列,从1A开始,每次步进0.5A,持续2秒,共5个步进点:
scpi# 进入远程控制模式SYST:REM
# 设置电流序列幅值(1.0A, 1.5A, 2.0A, 2.5A, 3.0A)
PROG:LIST:CURR 1.0,1.5,2.0,2.5,3.0
# 设置每个幅值的持续时间(2秒)
PROG:LIST:TIME 2.0,2.0,2.0,2.0,2.0
# 加载序列到位置1
PROG:LIST:LOAD 1
# 开启输出
OUTP ON
# 触发序列输出
TRIG
| 指令 | 功能 |
|---|---|
PROG:LIST:CURR <values> | 设置电流序列的幅值列表(如1.0,1.5,2.0),多个值用逗号分隔。 |
PROG:LIST:TIME <times> | 设置每个电流幅值的持续时间(如2.0,2.0,2.0),单位秒。 |
PROG:LIST:LOAD <n> | 将序列加载到指定位置(如位置1)。 |
OUTP ON/OFF | 开启或关闭电源输出。 |
TRIG | 手动触发序列输出(若触发模式设置为内部触发)。 |
参数范围限制
确保设置的电流幅值不超过电源的最大输出能力(如设备支持0~10A,则序列值需在此范围内)。
触发模式
若需通过外部信号触发序列,需先配置触发源(如TRIG:SOUR EXT)。
序列循环与保持
PROG:LIST:COUN设置循环次数(0表示无限循环)。PROG:LIST:HOLD ON(若设备支持)。错误处理
发送指令后,可通过SYST:ERR?查询错误代码(如-113, 'Undefined header'表示指令错误),或使用*CLS清除状态寄存器。
以下是一个使用Python通过PyVISA控制电源设置电流序列的示例:
pythonimport pyvisarm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::INSTR") # 替换为实际设备地址# 设置电流序列(1A→1.5A→2A,每个幅值持续2秒,循环1次)power.write("SYST:REM") # 进入远程模式power.write("PROG:LIST:CURR 1.0,1.5,2.0") # 设置电流幅值power.write("PROG:LIST:TIME 2.0,2.0,2.0") # 设置持续时间power.write("PROG:LIST:COUN 1") # 循环次数power.write("PROG:LIST:LOAD 1") # 加载序列到位置1power.write("OUTP ON") # 开启输出power.write("TRIG") # 触发序列# 读取当前输出电流(可选)current = power.query("MEAS:CURR?")print(f"当前输出电流: {current}A")power.close()