国产呦萝小初合集密码

资讯中心

联系我们

国产呦萝小初合集密码·(中国)官方网站
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@qihuisz.com

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

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

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

一、核心步骤

  1. 确认设备支持的功能
    查阅电源手册,确认其支持序列输出功能(如
    PROG:LIST PROG:ARB 指令)。部分设备可能使用 SOUR:LIST:CURR SOUR: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 设置电流序列的幅值列表(如 1.0,1.5,2.0 ),多个值用逗号分隔。
PROG:LIST:TIME 设置每个电流幅值的持续时间(如 2.0,2.0,2.0 ),单位秒。
PROG:LIST:LOAD 将序列加载到指定位置(如位置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()


m wap