资讯中心

联系我们

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

如何通过SCPI指令查询双向直流电源序列输出是否暂停?

2026-03-04 10:16:57  点击:

  要通过SCPI指令查询双向直流电源的序列输出是否暂停,需结合序列模式的状态查询指令,获取序列的运行状态(如是否暂停)。以下是关键指令和步骤:

  核心查询指令

  查询序列是否启用/运行

  指令:SOURce:LIST:FUNCtion?

  返回值:ON(序列已激活)或 OFF(序列未启用)。

  说明:若返回 OFF,则序列未运行(可能处于暂停或未启动状态)。

  查询序列运行状态

  指令:SOURce:LIST:STATe?(部分型号支持,如Keysight N6700系列)

  返回值:RUNNING(序列运行中)或 IDLE(序列暂停或未启动)。

  说明:直接返回序列的当前状态,明确是否暂停。

  查询输出是否开启

  指令:OUTPut:STATe?

  返回值:ON(输出开启)或 OFF(输出关闭)。

  说明:若输出关闭且序列已启用,可能因暂停或保护触发导致。

  查询当前序列点位置

  指令:SOURce:LIST:ADVance:COUNter?

  返回值:已执行的序列点序号(从1开始计数)。

  说明:若返回值长时间未变化,可能序列暂停或卡住。

  完整查询流程示例

  检查序列是否启用

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

  检查序列运行状态(若支持)

  plaintextSOURce:LIST:STATe?  ; 返回"RUNNING"或"IDLE"

  检查输出状态

  plaintextOUTPut:STATe?  ; 返回"ON"表示输出开启

  检查当前序列点位置

  plaintextSOURce:LIST:ADVance:COUNter?  ; 返回当前点序号(如"2"表示第2点)

  厂商差异与指令扩展

  Keysight N6700系列:

  使用 SOURce:LIST:STATe? 直接查询序列状态(RUNNING/IDLE)。

  示例:

  plaintextSOURce:LIST:STATe?  ; 返回"RUNNING"(运行中)或"IDLE"(暂停)

  ITECH IT6000系列:

  通过 LIST:ADVance:COUNter? 查询当前点位置,结合 OUTPut:STATe? 判断输出是否暂停。

  示例:

  plaintextLIST:ADVance:COUNter?  ; 返回当前点序号OUTPut:STATe?  ; 返回"ON"或"OFF"

  Chroma 62000P系列:

  支持 SOURce:LIST:STEP:ACTual? 查询当前步数。

  示例:

  plaintextSOURce:LIST:STEP:ACTual?  ; 返回当前步数(1-based)

  错误处理与调试

  常见错误:

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

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

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

  调试建议:

  先确认序列是否启用(SOURce:LIST:FUNCtion?)。

  逐步查询运行状态、输出状态和当前点位置。

  记录查询结果的时间戳,分析序列运行规律。

  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:    # 查询序列运行状态(Keysight示例)    try:        state = power_supply.query("SOURce:LIST:STATe?").strip()        print(f"序列状态: {state}")  # 返回"RUNNING"或"IDLE"    except:        print("序列状态查询指令不支持或未启用")    # 查询输出状态    output_state = power_supply.query("OUTPut:STATe?").strip()    print(f"输出状态: {'开启' if output_state == 'ON' else '关闭'}")    # 查询当前序列点位置    current_point = power_supply.query("SOURce:LIST:ADVance:COUNter?").strip()    print(f"当前序列点: {current_point}")else:    print("序列未启用,请先配置并启动序列")# 关闭连接power_supply.close()