资讯中心

联系我们

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

如何用SCPI指令查询双向直流电源输出电压序列历史最大值及对应时间?

2026-01-12 09:31:17  点击:

要通过SCPI指令查询双向直流电源输出电压序列的历史最大值及其对应时间,需结合电源的数据记录(Data Logging)事件记录(Event Logging)功能。不同厂商的设备实现方式可能不同,但核心逻辑是:启用数据记录功能、配置记录参数、查询历史数据并解析最大值及时间戳。以下是具体方法及示例:


一、核心原理

双向直流电源通常具备以下功能:

  1. 数据记录:按固定时间间隔记录输出电压、电流等参数。
  2. 事件记录:记录特定事件(如过压、欠压)的时间戳和参数值。
  3. 查询接口:通过SCPI命令读取记录的数据或事件日志。

通过配置数据记录功能,可获取输出电压的历史序列,再通过本地处理(如Python脚本)或设备内置统计功能提取最大值及对应时间。


二、操作步骤

1. 确认设备支持的功能

发送以下命令查询设备是否支持数据记录或事件记录:

scpi*IDN?                          ; 查询设备型号和厂商SYSTem:CAPability?             ; 查询设备功能列表
SYSTem:COMMunicate:LOGGing?    ; 查询数据记录功能支持性(部分设备专用命令)

若返回信息中包含LOGDATAEVENT关键字,则支持相关功能。

2. 启用数据记录功能

配置数据记录的采样间隔、存储深度等参数:

scpiLOGGing:STARt                  ; 启动数据记录(部分设备需先配置)LOGGing:INTerval 0.1           ; 设置采样间隔为0.1秒(单位可能为ms或s,需参考手册)
LOGGing:COUNt 1000             ; 设置记录点数为1000(即记录100秒数据,若间隔为0.1s)
LOGGing:SOURce VOLTage         ; 设置记录源为输出电压

注意:部分设备(如是德科技N6700系列)需通过SENS:DATA?TRAC:DATA?命令直接读取实时数据,而非预启动记录。

3. 触发记录(可选)

若需记录特定事件(如负载突变时的电压波动),可配置触发条件:

scpiTRIGger:SOURce EXT              ; 设置触发源为外部信号TRIGger:SLOPe POSitive          ; 设置触发边沿为上升沿
TRIGger:LEVel 2.5               ; 设置触发电平为2.5V
LOGGing:TRIGgered ON            ; 启用触发记录模式

4. 查询历史数据

发送以下命令读取记录的数据(格式可能为时间戳-电压值对):

scpiLOGGing:DATA?                  ; 查询记录的数据(部分设备)TRACe:DATA?                    ; 查询迹线数据(通用命令,适用于多数设备)
FETCH:VOLTage?                 ; 查询当前或历史电压值(部分设备)

示例返回数据(假设格式为CSV):

0.0,10.00.1,10.20.2,10.5...99.9,12.1

其中第一列为时间(秒),第二列为电压(V)。

5. 解析最大值及时间

将返回的数据导入本地工具(如Python、MATLAB)处理,或直接通过设备内置统计功能查询:

python# Python示例:解析返回数据并提取最大值及时间import numpy as np# 假设返回数据为字符串,每行格式为"时间,电压"data = """0.0,10.00.1,10.20.2,10.5...99.9,12.1"""# 解析数据lines = data.split('n')times = []voltages = []for line in lines:    t, v = map(float, line.split(','))    times.append(t)    voltages.append(v)# 计算最大值及对应时间max_voltage = max(voltages)max_time = times[voltages.index(max_voltage)]print(f"历史最大值: {max_voltage}V, 对应时间: {max_time}s")

6. 直接查询统计值(若设备支持)

部分设备(如Chroma 62000H系列)支持直接查询统计值:

scpiMEASure:VOLTage:MAXimum?       ; 查询输出电压历史最大值MEASure:VOLTage:MAXimum:TIME?  ; 查询最大值对应的时间(部分设备支持)

示例返回

12.5                           ; 最大值(V)45.2                           ; 对应时间(秒,若支持)

三、注意事项

  1. 数据格式
    不同设备返回的数据格式可能不同(如二进制、CSV、JSON),需参考设备手册解析。例如,是德科技设备可能返回
    #<数字><数据>格式的二进制块。

  2. 时间戳单位
    时间戳的单位可能是秒、毫秒或设备内部时钟周期,需在手册中确认。例如,
    LOGGing:INTerval 0.1可能表示100ms。

  3. 存储深度限制
    数据记录的点数受设备存储深度限制。若需长时间记录,可降低采样间隔或分多次读取。

  4. 触发同步
    若需记录特定事件(如过压),需提前配置触发条件,避免记录无关数据。

  5. 命令兼容性
    部分SCPI命令可能因设备厂商而异。例如:

    • 是德科技:SENS:DATA?TRAC:DATA?
    • Chroma:MEAS:VOLT:MAX?LOGG:DATA?
    • ITECH:DATA:LOGG:FETCH?

四、示例场景

假设需查询双向直流电源在负载突变后的输出电压历史最大值及时间:

  1. 配置记录
    scpiLOGGing:INTerval 0.01       ; 采样间隔10msLOGGing:COUNt 10000         ; 记录100秒数据
    LOGGing:SOURce VOLTage      ; 记录输出电压
    TRIGger:SOURce EXT           ; 外部触发
    TRIGger:LEVel 2.5            ; 触发电平2.5V
    LOGGing:TRIGgered ON         ; 启用触发记录
  2. 触发记录:在负载突变时发送外部触发信号。
  3. 查询数据
    scpiLOGGing:DATA?               ; 读取记录数据
  4. 解析结果
    python# 假设返回数据为CSV格式data = "0.0,10.0n0.01,10.1n...n50.2,15.3"  # 最大值15.3V出现在50.2s

五、总结

步骤命令示例说明
1. 确认功能SYSTem:CAPability?查询设备是否支持数据记录
2. 配置记录LOGGing:INTerval 0.1设置采样间隔
3. 启动记录LOGGing:STARt开始记录数据
4. 查询数据LOGGing:DATA?读取历史数据
5. 解析结果Python/MATLAB脚本提取最大值及时间

若设备不支持直接查询统计值,需通过本地工具处理数据;若支持,可直接通过MEASure:VOLTage:MAXimum?等命令获取结果。