资讯中心

联系我们

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

如何通过SCPI指令查询双向直流电源输出序列的驻留时间是否可编程?

2026-03-04 10:00:14  点击:

  要通过SCPI指令查询双向直流电源输出序列的驻留时间(即每步的持续时间)是否可编程,需结合序列模式参数查询指令和设备功能验证,以下是具体步骤和示例:

  一、核心查询指令与参数

  查询序列是否启用

  指令:SOURce:LIST:FUNCtion?

  返回值:ON或OFF,表示序列功能是否激活。若返回OFF,则无需进一步查询驻留时间可编程性。

  查询序列总点数

  指令:SOURce:LIST:COUNt?

  返回值:序列中定义的总点数(如3表示3个点)。若返回0.可能表示序列未配置或设备不支持序列功能。

  查询当前点驻留时间

  指令:SOURce:LIST:DWELl?

  返回值:当前序列点的驻留时间(单位:秒)。若指令执行成功并返回有效数值(如0.5),则说明驻留时间可编程;若返回错误(如-400 Parameter Error),则可能不支持该功能。

  查询特定点的驻留时间(部分型号支持)

  指令:SOURce:LIST:DWELl?(为点序号,如1、2)

  返回值:指定序列点的驻留时间。若支持该指令,则进一步确认驻留时间可按点独立编程。

  二、完整查询流程示例

  检查序列是否启用

  plaintextSOURce:LIST:FUNCtion?  ; 返回"ON"表示序列已激活

  查询序列总点数

  plaintextSOURce:LIST:COUNt?  ; 假设返回"3",表示3个序列点

  查询当前点驻留时间

  plaintextSOURce:LIST:DWELl?  ; 假设返回"0.5",表示当前点驻留时间为0.5秒

  查询特定点的驻留时间(可选)

  plaintextSOURce:LIST:DWELl1?  ; 查询第1点驻留时间SOURce:LIST:DWELl2?  ; 查询第2点驻留时间

  三、厂商差异与指令扩展

  Keysight N6700系列

  查询序列状态:SOURce:LIST:STATe?(返回RUNNING或IDLE)。

  查询特定点参数:SOURce:LIST:VOLTage:DATA?(查询第点电压值,需结合DWELl指令确认驻留时间)。

  ITECH IT6000系列

  使用LIST:ADVance:COUNter?查询当前点位置,LIST:DWELl?查询驻留时间。

  示例:

  plaintextLIST:ADVance:COUNter?  ; 查询当前点序号LIST:DWELl1?  ; 查询第1点驻留时间

  Chroma 62000P系列

  支持SOURce:LIST:STEP:ACTual?查询当前步数,SOURce:LIST:DWELl?查询驻留时间。

  示例:

  plaintextSOURce:LIST:STEP:ACTual?  ; 返回当前步数SOURce:LIST:DWELl1?  ; 查询第1点驻留时间

  四、错误处理与调试

  常见错误代码

  -400 Parameter Error:参数超出范围(如查询未启用的序列状态)。

  -350 Command Error:指令语法错误(如拼写错误)。

  -107 No Sequence Active:序列未启用时查询状态。

  调试建议

  分步查询:先确认序列是否启用,再查询具体参数。

  日志记录:连续查询时记录时间戳和返回值,分析序列运行规律。

  厂商文档:参考设备《编程手册》中的“序列模式”章节,确认支持的指令和参数范围。

  五、Python脚本示例(PyVISA)

  pythonimport pyvisa# 连接电源rm = pyvisa.ResourceManager()power_supply = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")  # 替换为实际地址# 查询序列状态is_list_active = power_supply.query("SOURce:LIST:FUNCtion?").strip() == "ON"print(f"序列是否启用: {is_list_active}")if is_list_active:    # 查询总点数    total_points = int(power_supply.query("SOURce:LIST:COUNt?").strip())    print(f"序列总点数: {total_points}")    # 查询当前点驻留时间    current_dwell = power_supply.query("SOURce:LIST:DWELl?").strip()    print(f"当前点驻留时间: {current_dwell}秒")    # 查询特定点驻留时间(示例:查询第1点)    try:        dwell_1 = power_supply.query("SOURce:LIST:DWELl1?").strip()        print(f"第1点驻留时间: {dwell_1}秒")    except:        print("设备不支持查询特定点驻留时间")else:    print("序列未启用,请先配置并启动序列")# 关闭连接power_supply.close()