国产呦萝小初合集密码

资讯中心

联系我们

国产呦萝小初合集密码·(中国)官方网站
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@qihuisz.com

如何用SCPI指令查询双向直流电源输出电流序列的延迟时间?

2025-12-24 09:58:13  点击:

要使用SCPI指令查询双向直流电源输出电流序列的步进执行时间(包括延迟时间),核心在于利用序列模式下的索引查询指令和参数读取功能,结合电源的序列配置指令实现。以下是具体步骤和指令说明:

一、核心指令与功能

  1. 查询当前序列点索引
    指令
    SOURce:LIST:INDEx?
    功能:返回当前正在执行的序列点序号(从1开始)。通过连续查询该指令,可计算从一个序列点切换到下一个序列点所需的时间,即步进执行时间。

  2. 查询序列点参数
    指令
    SOURce:LIST:CURRent:DATA?
    功能:返回第 n 个序列点的电流值和持续时间(如 -5,2 表示-5A持续2秒)。部分电源支持通过该指令间接验证步进时间设置。

  3. 查询序列状态
    指令
    SOURce:LIST:FUNCtion?
    功能:确认序列模式是否已启用(返回 1 表示启用, 0 表示禁用)。若未启用,需先通过 SOURce:LIST:FUNCtion ON 激活序列模式。

二、操作流程

  1. 进入远程模式并复位设备(可选)

    										plaintextSYSTem:REMote  // 进入远程控制模式*RST           // 复位设备(恢复默认设置)
  2. 配置序列参数(示例:3个序列点)

    										plaintextSOURce:LIST:COUNt 3               // 设置序列点数量为3SOURce: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秒
    SOURce:LIST:FUNCtion ON           // 启用序列模式
  3. 启动输出并监控步进时间

    										plaintextOUTPut:STATe ON  // 开启输出
    • 连续查询索引:通过 SOURce:LIST:INDEx? 记录索引变化时刻,计算步进时间。
      Python示例
      												pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")prev_index = 0start_time = time.time()while True:    current_index = int(power.query("SOUR:LIST:INDEx?"))    if current_index != prev_index and prev_index != 0:        elapsed_time = time.time() - start_time        print(f"步进 {prev_index}→{current_index}: {elapsed_time:.3f}秒")        start_time = time.time()  # 重置计时器    prev_index = current_index    time.sleep(0.01)  # 避免频繁查询
  4. 验证序列点参数

    										plaintextSOURce:LIST:CURRent:DATA1?  // 查询第1点参数(应返回“-5,2”)

三、厂商差异与指令扩展

  • Keysight N6700系列
    支持直接通过
    SOURce:LIST:CURRent 定义序列点,但需结合时间参数(如 SOUR:LIST:CURR -5,0,10 需额外配置时间)。

  • ITECH IT6000系列
    时间单位可能为100μs,需确认手册(如
    LIST:CURR:DATA1 -5,2000 表示200ms)。

  • Chroma 62000P系列
    使用
    PROG:LIST:CURR:DATA 定义序列点(如 PROG:LIST:CURR:DATA1 -5,2 )。

四、错误处理与调试

  1. 查询错误代码
    										plaintextSYSTem:ERRor?  // 返回错误信息(如“-400 Parameter Error”表示参数错误)
  2. 常见问题
    • 索引不更新:检查序列是否启用( SOUR:LIST:FUNC? 应返回 1 )。
    • 时间误差:确认电源是否进入保护状态(如过流/过压触发 OCP / OVP )。
    • 指令报错:检查语法是否符合SCPI规范(如参数分隔符为逗号,指令结尾需加 ? 查询)。

五、自动化脚本示例(完整流程)

								pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource("TCPIP0::192.168.1.100::inst0::INSTR")# 1. 初始化设备power.write("SYST:REM")power.write("*RST")# 2. 配置序列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")# 3. 启动输出并监控步进时间power.write("OUTP ON")time.sleep(0.1)  # 等待输出稳定prev_index = 0step_times = []while True:    current_index = int(power.query("SOUR:LIST:INDEx?"))    if current_index != prev_index and prev_index != 0:        elapsed_time = time.time() - start_time        step_times.append(elapsed_time)        print(f"步进 {prev_index}→{current_index}: {elapsed_time:.3f}秒")        start_time = time.time()    prev_index = current_index    # 检查是否完成所有步进    if current_index == 3 and len(step_times) == 2:        break    time.sleep(0.01)# 4. 输出结果print("n步进时间统计:")for i in range(len(step_times)):    print(f"步进 {i+1}: {step_times[i]:.3f}秒")power.close()


m wap