资讯中心

联系我们

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

如何通过SCPI指令查询双向直流电源序列输出延迟?

2026-03-09 10:58:37  点击:

  若需通过SCPI指令查询Keysight双向直流电源的序列输出延迟,需结合序列模式(List Mode)的配置指令和状态查询指令,重点关注与序列点时间参数相关的指令。以下是具体方法:

  核心查询指令

  查询序列点时间参数

  若序列中每个点配置了延迟时间(如SOURce:LIST:VOLTage:DWELl或SOURce:LIST:CURRent:DWELl),可通过以下指令查询特定点的延迟时间:

  plaintextSOURce:LIST:VOLTage:DWELl? (@)

  SOURce:LIST:CURRent:DWELl? (@)

  为序列点序号(从1开始)。

  示例:查询第2个电压点的延迟时间:

  plaintextSOURce:LIST:VOLTage:DWELl? (@2)

  查询序列总长度与当前点位置

  查询序列总点数:

  plaintextSOURce:LIST:COUNt?

  查询当前执行的序列点序号:

  plaintextSOURce:LIST:ADVance:COUNter?

  查询序列运行状态

  确认序列是否启用:

  plaintextSOURce:LIST:FUNCtion?

  返回ON表示序列已激活。

  查询输出状态(确认序列运行时输出是否开启):

  plaintextOUTPut:STATe?

  完整查询流程示例

  检查序列是否启用

  plaintextSOURce:LIST:FUNCtion?

  返回ON表示序列已激活。

  查询序列总点数

  plaintextSOURce:LIST:COUNt?

  假设返回3.表示序列包含3个点。

  查询特定点的延迟时间

  查询第1个电压点的延迟时间:

  plaintextSOURce:LIST:VOLTage:DWELl? (@1)

  返回结果(如0.1)表示延迟时间为0.1秒。

  查询当前点位置

  plaintextSOURce:LIST:ADVance:COUNter?

  假设返回2.表示当前处于第2个点。

  厂商差异与指令扩展

  Keysight N6700系列:

  若需查询序列的整体延迟配置(如循环间隔),可尝试:

  plaintextSOURce:LIST:CYCLe:DELay?

  (部分型号可能不支持此指令,需参考具体手册。)

  ITECH IT6000系列:

  使用LIST:STEP:DELay?查询步进延迟:

  plaintextLIST:STEP:DELay? (@)

  错误处理与调试

  常见错误代码

  -400 Parameter Error:参数超出范围(如查询未配置延迟的点)。

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

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

  调试建议

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

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

  厂商支持:若指令不生效,查阅设备手册或联系Keysight技术支持确认指令兼容性。

  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}")    # 查询第1个点的电压延迟时间    try:        delay = power_supply.query("SOURce:LIST:VOLTage:DWELl? (@1)").strip()        print(f"第1个电压点的延迟时间: {delay}秒")    except:        print("延迟时间查询指令不支持或未配置")    # 查询当前点位置    current_point = int(power_supply.query("SOURce:LIST:ADVance:COUNter?").strip())    print(f"当前序列点: {current_point}/{total_points}")else:    print("序列未启用,请先配置并启动序列")# 关闭连接power_supply.close()