资讯中心

联系我们

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

如何用SCPI指令查询双向直流电源输出电流序列的当前状态?

2025-12-24 09:31:30  点击:

要使用SCPI指令查询双向直流电源输出电流序列的当前状态,需结合序列模式(List Mode)的相关指令,通过查询当前执行的序列点索引或状态寄存器来实现。以下是具体步骤和指令说明:

一、核心查询指令

  1. 查询当前序列点索引

    • 指令:SOURce:LIST:INDEx?
    • 说明:返回当前正在执行的序列点序号(如1表示第1点)。
    • 示例响应:+1(表示当前执行到第1个序列点)。
  2. 查询序列点参数

    • 指令:SOURce:LIST:CURRent:DATA<n>?<n>为序列点序号)
    • 说明:返回指定序列点的电流值与持续时间。
    • 示例:SOURce:LIST:CURRent:DATA1?(查询第1点的电流值与时间)。
  3. 查询序列状态(部分型号支持)

    • 指令:STATus:OPERation:EVENt? 或 STATus:QUEStionable:EVENt?
    • 说明:查询操作状态寄存器或可疑事件寄存器,判断序列是否正常运行或发生错误。
    • 示例响应:+0(无错误)或错误代码(如-400表示参数错误)。

二、完整操作流程示例

  1. 初始化与复位

    • SYSTem:REMote:进入远程模式。
    • *RST:复位设备(可选)。
  2. 配置序列参数

    • SOURce:LIST:COUNt 3:设置序列包含3个点。
    • SOURce:LIST:CURRent:DATA1 -5, 2:第1点电流-5A,持续2秒。
    • SOURce:LIST:CURRent:DATA2 0, 1:第2点电流0A,持续1秒。
    • SOURce:LIST:CURRent:DATA3 10, 3:第3点电流10A,持续3秒。
  3. 启用序列模式

    • SOURce:LIST:FUNCtion ON:激活序列功能。
  4. 启动输出

    • OUTPut:STATe ON:开启输出,电源将按序列输出电流。
  5. 查询当前状态

    • SOURce:LIST:INDEx?:查询当前执行的序列点序号。
    • SOURce:LIST:CURRent:DATA<n>?:查询指定序列点的参数(如SOURce:LIST:CURRent:DATA1?)。
    • STATus:OPERation:EVENt?:查询操作状态寄存器(判断序列是否正常运行)。

三、厂商差异与指令扩展

  1. Keysight N6700系列

    • 使用SOURce:LIST:CURRent直接定义序列点,如SOURce:LIST:CURRent -5, 0, 10(需结合时间参数)。
    • 跳转指令:SOURce:LIST:GOTO 2(跳转到第2点)。
  2. ITECH IT6000系列

    • 时间单位可能为100μs(需确认手册),如LIST:CURR:DATA1 -5, 2000(2000=200ms)。
    • 跳转指令:LIST:JUMP:INDEx 2(跳转到第2点)。
  3. Chroma 62000P系列

    • 使用PROG:LIST:CURR:DATA定义序列点,如PROG:LIST:CURR:DATA1 -5, 2(第1点-5A,2秒)。

四、验证与调试

  1. 错误处理

    • 检查错误代码:SYSTem:ERRor?
    • 常见错误:-400(参数超出范围)、-107(序列未启用时查询状态)。
  2. 自动化脚本示例(Python)

pythonimport pyvisarm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")  # 替换为实际IP地址# 配置序列power.write("SYST:REM")power.write("SOUR:LIST:COUN 3")power.write("SOUR:LIST:CURR:DATA1 -5, 2")power.write("SOUR:LIST:CURR:DATA2 0, 1")power.write("SOUR:LIST:CURR:DATA3 10, 3")power.write("SOUR:LIST:FUNC ON")# 启动输出power.write("OUTP ON")# 查询当前状态current_index = int(power.query("SOUR:LIST:INDEx?"))print(f"当前序列点: {current_index}")# 查询第1点参数data1 = power.query("SOUR:LIST:CURR:DATA1?")print(f"第1点参数: {data1.strip()}")power.close()