资讯中心

联系我们

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

如何通过SCPI指令实现双向直流电源的步进输出?

2025-12-09 09:19:46  点击:

通过SCPI指令实现双向直流电源的步进输出(即电压或电流按预设步长逐步变化),需结合序列模式(List Mode)步进控制指令,具体实现方式取决于电源的功能支持。以下是分步说明及示例:


方法一:使用序列模式(List Mode)实现步进输出

适用场景:电源支持通过列表配置多个输出点,并自动按顺序切换。

操作步骤

  1. 配置步进参数
    设置电压/电流的步进值、步数及每步持续时间(驻留时间)。
    示例指令(以电压步进为例):

    plaintext// 设置步进点数(如5个点:0V → 5V → 10V → 15V → 20V)SOURce:VOLTage:LIST:COUNt 5

    // 设置每个步进点的电压值(单位:V)
    SOURce:VOLTage:LIST 0, 5, 10, 15, 20

    // 设置每步的持续时间(单位:秒)
    SOURce:VOLTage:LIST:DWELl 1, 1, 1, 1, 1  // 每步1秒

    // 启用序列模式循环(可选:设置循环次数)
    SOURce:VOLTage:LIST:CYCLe ON
    SOURce:VOLTage:LIST:COUNt:REPeat 1  // 循环1次(不循环则设为0)
  2. 启动输出
    发送触发命令启动步进序列:

    plaintextTRIGger:INITiate
  3. 查询状态(可选)
    监控当前步进点或输出状态:

    plaintextSOURce:VOLTage:LIST:INDEx?  // 查询当前步进点索引(1-based)MEASure:VOLTage?           // 查询实际输出电压

方法二:使用步进控制指令(部分电源支持)

适用场景:电源提供专门的步进控制指令(如SOURce:STEP),可直接设置步长和方向。

操作步骤

  1. 配置步进参数
    设置步进方向、步长及触发方式:

    plaintext// 设置电压步进方向(INCREase/DECREase)SOURce:VOLTage:STEP:DIRection INCREase  // 递增

    // 设置步长(单位:V)
    SOURce:VOLTage:STEP:SIZE 2.5  // 每次步进2.5V

    // 设置步数(可选)
    SOURce:VOLTage:STEP:COUNt 10  // 共10步
  2. 启动步进
    通过触发信号或单次指令执行步进:

    plaintextTRIGger:INITiate  // 触发一次步进(若电源支持)// 或
    SOURce:VOLTage:STEP ON  // 持续步进(需配合其他指令控制)
  3. 停止步进
    终止步进操作:

    plaintextSOURce:VOLTage:STEP OFF

方法三:结合外部脚本实现动态步进

适用场景:电源功能有限,需通过外部脚本(如Python)动态发送SCPI指令控制步进。

操作步骤

  1. 初始化电源连接

    pythonimport pyvisarm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")
  2. 定义步进参数

    pythonstart_voltage = 0      # 起始电压end_voltage = 20       # 终止电压step_size = 5          # 步长dwell_time = 1         # 每步驻留时间(秒)steps = int((end_voltage - start_voltage) / step_size) + 1
  3. 动态发送步进指令

    pythonfor i in range(steps):    voltage = start_voltage + i * step_size    power.write(f"SOUR:VOLT {voltage}")  # 设置电压    power.write("OUTP ON")               # 启用输出    time.sleep(dwell_time)              # 等待驻留时间
  4. 关闭输出

    pythonpower.write("OUTP OFF")

关键注意事项

  1. 指令兼容性
    • 不同厂商的电源指令可能不同(如Keysight使用SOUR:VOLT:LIST,ITECH使用LIST:VOLT)。
    • 参考电源的编程手册确认支持的指令集。
  2. 双向输出控制
    • 若需电流步进,将VOLTage替换为CURRent(如SOUR:CURR:LIST)。
    • 双向电源需先设置输出极性(如SOUR:POLarity POS/NEG)或通过负值表示反向电流。
  3. 触发方式
    • 序列模式通常支持内部触发(自动切换)或外部触发(如TTL信号)。
    • 示例:TRIG:SOUR IMM(立即触发)或TRIG:SOUR BUS(总线触发)。
  4. 错误处理
    • 查询错误代码以调试问题:
      plaintextSYST:ERR?  // 查询错误信息

示例:Keysight N6700系列电源的电压步进

plaintext// 配置电压步进序列(0V → 5V → 10V,每步2秒)SOUR:VOLT:LIST:COUN 3
SOUR:VOLT:LIST 0, 5, 10
SOUR:VOLT:LIST:DWEL 2, 2, 2
SOUR:VOLT:LIST:CYCL OFF  // 不循环

// 启动输出
TRIG:INIT

通过上述方法,可灵活实现双向直流电源的步进输出,适用于电池充放电测试、材料特性分析等场景。