资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何用SCPI指令设置双向直流电源输出电流序列的步进值?

2025-12-25 10:12:09  点击:

要用SCPI指令设置双向直流电源输出电流序列的步进值,需结合设备支持的序列编程功能(如PROG:LISTPROG:ARB指令),通过定义电流幅值列表和持续时间来实现步进控制。以下是具体步骤和示例:

一、核心步骤

  1. 确认设备支持的功能
    查阅电源手册,确认其支持序列输出功能(如
    PROG:LISTPROG:ARB指令)。部分设备可能使用SOUR:LIST:CURRSOUR:ARB:CURR等指令。

  2. 设置电流序列参数
    使用SCPI指令定义电流幅值列表和每个幅值的持续时间。例如:

    • 设置电流幅值PROG:LIST:CURR 1.0,2.0,3.0(设置电流序列为1A→2A→3A)。
    • 设置持续时间PROG:LIST:TIME 1.0,1.0,1.0(每个幅值持续1秒)。
  3. 加载并触发序列
    将配置好的序列加载至设备,并触发输出:

    • 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手动触发序列输出(若触发模式设置为内部触发)。

四、注意事项

  1. 参数范围限制
    确保设置的电流幅值不超过电源的最大输出能力(如设备支持0~10A,则序列值需在此范围内)。

  2. 触发模式
    若需通过外部信号触发序列,需先配置触发源(如
    TRIG:SOUR EXT)。

  3. 序列循环与保持

    • 通过PROG:LIST:COUN设置循环次数(0表示无限循环)。
    • 若需序列结束后保持最后一个幅值,可配置PROG:LIST:HOLD ON(若设备支持)。
  4. 错误处理
    发送指令后,可通过
    SYST:ERR?查询错误代码(如-113, 'Undefined header'表示指令错误),或使用*CLS清除状态寄存器。

五、完整示例(Python脚本)

以下是一个使用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()