要用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
|
设置电流序列的幅值列表(如
1.0,1.5,2.0
),多个值用逗号分隔。
|
PROG:LIST:TIME
|
设置每个电流幅值的持续时间(如
2.0,2.0,2.0
),单位秒。
|
PROG:LIST:LOAD
|
将序列加载到指定位置(如位置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()