资讯中心

联系我们

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

如何用SCPI指令实现双向直流电源输出电压序列的随机访问?

2025-12-10 09:56:35  点击:

要通过SCPI指令实现双向直流电源输出电压序列的随机访问,需结合序列编程(List Mode)序列点跳转控制状态查询功能。以下是具体实现方法与指令示例:

一、核心思路

  1. 定义电压序列:预设一组电压值及其持续时间(或保持条件)。
  2. 启用序列模式:使电源进入序列输出状态。
  3. 随机跳转控制:通过指令直接跳转到指定序列点,实现随机访问。
  4. 状态查询验证:通过查询当前序列点索引,确认跳转是否成功。

二、SCPI指令实现步骤

1. 定义电压序列

使用SOURce:LIST:VOLTage:DATA#指令设置每个序列点的电压值和持续时间(部分电源支持时间参数,单位可能为秒或100μs):

plaintextSOURce:LIST:COUNt 5                ; 设置序列包含5个点SOURce:LIST:VOLTage:DATA1 0, 2     ; 第1点:0V,持续2秒(或200ms,依设备而定)
SOURce:LIST:VOLTage:DATA2 12, 2    ; 第2点:12V,持续2秒
SOURce:LIST:VOLTage:DATA3 24, 2    ; 第3点:24V,持续2秒
SOURce:LIST:VOLTage:DATA4 12, 2    ; 第4点:12V,持续2秒
SOURce:LIST:VOLTage:DATA5 0, 2     ; 第5点:0V,持续2秒

注意:部分电源(如Chroma 62000P系列)可能使用PROG:LIST:VOLT:DATA#指令,需参考具体型号手册。

2. 启用序列模式

plaintextSOURce:LIST:FUNCtion ON            ; 启用序列功能(部分电源需此指令)SOURce:LIST:CYCLe OFF              ; 禁用循环(若需随机访问,通常不循环)

3. 随机跳转到指定序列点

通过直接设置序列索引实现跳转:

plaintextSOURce:LIST:INDEx 3                ; 跳转到第3个序列点(24V)

关键点

  • 序列索引通常从1开始(如INDEx 1表示第1点)。
  • 跳转后电源会立即输出对应点的电压值。

4. 查询当前序列点索引(验证跳转)

plaintextSOURce:LIST:INDEx?                 ; 查询当前执行的序列点索引

返回示例:

3                                   ; 表示当前为第3点(24V)

三、完整操作流程示例

1. 初始化与复位

plaintextSYSTem:REMote                      ; 进入远程模式*RST                                ; 复位设备(可选)

2. 配置序列

plaintextSOURce:LIST:COUNt 3               ; 3个序列点SOURce:LIST:VOLTage:DATA1 0, 2    ; 0V → 2秒
SOURce:LIST:VOLTage:DATA2 12, 2   ; 12V → 2秒
SOURce:LIST:VOLTage:DATA3 24, 2   ; 24V → 2秒

3. 随机跳转控制(Python脚本示例)

pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")# 配置序列power.write("SYST:REM")power.write("SOUR:LIST:COUN 3")power.write("SOUR:LIST:VOLT:DATA1 0, 2")power.write("SOUR:LIST:VOLT:DATA2 12, 2")power.write("SOUR:LIST:VOLT:DATA3 24, 2")# 随机跳转到第2点(12V)power.write("SOUR:LIST:INDEx 2")time.sleep(0.1)  # 等待跳转完成# 查询当前点验证current_index = int(power.query("SOUR:LIST:INDEx?"))print(f"当前序列点: {current_index}")  # 应输出: 当前序列点: 2power.close()

四、厂商差异与指令扩展

1. Keysight N6700系列

plaintextSOURce:LIST:VOLTage:DATA1 0, 2    ; 设置序列点SOURce:LIST:GOTO 3                 ; 跳转到第3点(部分型号支持)

2. ITECH IT6000系列

plaintextLIST:VOLT:DATA1 0, 2000           ; 时间单位可能为100μs(2000=200ms)LIST:JUMP:INDEx 2                  ; 跳转到第2点

3. Chroma 62000P系列

plaintextPROG:LIST:VOLT:DATA1 0, 2         ; 设置序列点PROG:LIST:GOTO 3                   ; 跳转到第3点(需确认指令支持)

五、注意事项

  1. 索引范围:确保跳转的索引不超过序列点总数(如SOUR:LIST:COUNt?查询总数)。
  2. 跳转时序:跳转后需短暂延迟(如time.sleep(0.1)),确保电源完成状态切换。
  3. 双向输出:若需负电压,需在序列中设置负值(如SOUR:LIST:VOLT:DATA1 -12, 2)。
  4. 保护功能:跳转前确认电压值未触发OVP(过压保护)。

六、扩展应用

  • 动态序列修改:在跳转前动态更新序列点参数(如SOUR:LIST:VOLT:DATA2 15, 2)。
  • 多设备同步:通过主从模式同步多台电源的序列跳转(如SYST:COMM:SYNC:ROLE MASTER)。

通过上述方法,可实现双向直流电源输出电压序列的随机访问,适用于电池测试、动态负载模拟等场景。