资讯中心

联系我们

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

如何用SCPI指令实现双向直流电源的负载测试数据记录和导出?

2025-12-02 09:20:14  点击:

要通过SCPI指令实现双向直流电源的负载测试数据记录和导出,需结合数据采集指令本地存储外部设备记录,并支持后续导出(如至U盘或上位机)。以下是详细实现方法与示例:


一、核心实现原理

双向直流电源的负载测试数据记录通常涉及:

  1. 实时数据采集:通过SCPI指令轮询电压、电流、功率等参数。
  2. 本地存储:部分电源支持内部存储器记录数据(需配置触发条件和存储深度)。
  3. 外部记录:通过编程(如Python、LabVIEW)将数据发送至PC或日志文件。
  4. 数据导出:通过U盘、FTP或串口/网络传输将数据导出。

二、SCPI指令实现步骤

1. 配置测量参数

设置需要记录的测量项目(电压、电流、功率等):

scpiSENSe:FUNCtion "VOLTage", ("CURRent", "POWer")  // 选择测量电压、电流、功率SENSe:VOLTage:RANGe 40  // 设置电压量程(根据实际需求)
SENSe:CURRent:RANGe 10  // 设置电流量程

2. 配置数据记录参数

部分电源支持内部存储器记录,需设置采样间隔和触发条件:

scpiDATA:LOG:STARt  // 开始记录数据(部分电源支持)DATA:LOG:STOP   // 停止记录
DATA:LOG:INTerval 0.1  // 设置采样间隔(单位:秒)
DATA:LOG:COUNt 1000    // 设置记录点数(存储深度)

注意:若电源不支持内部存储,需通过外部设备轮询记录(见第3节)。

3. 实时数据采集与外部记录

通过编程语言(如Python)轮询数据并保存到本地文件:

pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource('TCPIP0::192.168.1.100::INSTR')with open('test_log.csv', 'w') as f:    f.write('Time,Voltage(V),Current(A),Power(W)n')  # CSV表头    for _ in range(1000):  # 记录1000个点        timestamp = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())        voltage = power.query('MEASure:VOLTage?')  # 读取电压        current = power.query('MEASure:CURRent?')  # 读取电流        power_val = power.query('MEASure:POWer?')  # 读取功率        f.write(f'{timestamp},{voltage.strip()},{current.strip()},{power_val.strip()}n')        time.sleep(0.1)  # 采样间隔

4. 数据导出

  • 方式1:导出至U盘(若电源支持)
    scpiMMEMory:STOR:DATA "test_log.csv", "UDISK"  // 存储到U盘根目录
  • 方式2:通过FTP/网络传输
    部分高端电源支持FTP或HTTP导出:
    scpiMMEMory:FTP:OPEN "192.168.1.2", "user", "password"  // 连接FTP服务器MMEMory:FTP:STOR "test_log.csv", "/data/"           // 上传文件
  • 方式3:通过编程读取内部存储(若支持)
    scpiDATA:LOG:DATA?  // 读取内部存储的数据(返回二进制或ASCII格式)

三、完整应用场景示例

场景:记录双向电源在负载测试中的电压、电流和功率,采样间隔1秒,持续10分钟,导出至PC。

  1. 配置测量与记录

    scpiSYSTem:REMote*RST
    SENSe:FUNCtion "VOLTage", "CURRent", "POWer"
    SENSe:VOLTage:RANGe 40
    SENSe:CURRent:RANGe 10
  2. 通过Python记录数据

    pythonimport pyvisaimport timerm = pyvisa.ResourceManager()power = rm.open_resource('TCPIP0::192.168.1.100::INSTR')with open('load_test_log.csv', 'w') as f:    f.write('Time,Voltage(V),Current(A),Power(W)n')    start_time = time.time()    while time.time() - start_time < 600:  # 记录10分钟(600秒)        timestamp = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())        voltage = power.query('MEASure:VOLTage?').strip()        current = power.query('MEASure:CURRent?').strip()        power_val = power.query('MEASure:POWer?').strip()        f.write(f'{timestamp},{voltage},{current},{power_val}n')        time.sleep(1)  # 采样间隔1秒
  3. 导出数据

    • 直接通过Python生成的load_test_log.csv文件在本地保存。
    • 若电源支持U盘导出:
      scpiMMEMory:STOR:DATA "load_test_log.csv", "UDISK"

四、注意事项

  1. 采样间隔与存储深度
    • 内部存储可能受限于存储深度(如最多10万点),需合理设置采样间隔。
    • 外部记录(如PC)无存储限制,但需确保网络或串口通信稳定。
  2. 数据格式
    • 部分电源返回二进制数据,需解析后保存(如FORM:DATA REAL设置数据格式)。
    • CSV格式便于用Excel或Python分析。
  3. 错误处理
    • 查询电源状态,避免通信中断导致数据丢失:
      scpiSYSTem:ERRor?  // 检查错误(如-410,"Query interrupted")
  4. 厂商差异
    • Keysight N6700系列
      scpiDATA:LOG:FUNCtion "VOLTage", "CURRent"DATA:LOG:STARt
    • Chroma 62000P系列
      scpiDATA:RECord:FUNCtion "ALL"DATA:RECord:STARt
    • ITECH IT6000系列
      scpiDATA:LOG:MODE SINGle  // 单次记录模式

五、扩展功能

  1. 触发记录:通过外部信号触发数据记录(如达到某电流时开始):

    scpiTRIGger:SOURce BUS  // 软件触发TRIGger:SOURce EXTernal  // 外部TTL信号触发
    DATA:LOG:TRIGger:STARt  // 触发后开始记录
  2. 实时绘图:结合Python的matplotlib库实现动态曲线显示:

    pythonimport matplotlib.pyplot as pltplt.ion()  # 开启交互模式voltages, currents = [], []fig, ax = plt.subplots()while True:    voltage = float(power.query('MEASure:VOLTage?'))    current = float(power.query('MEASure:CURRent?'))    voltages.append(voltage)    currents.append(current)    ax.clear()    ax.plot(voltages, label='Voltage (V)')    ax.plot(currents, label='Current (A)')    ax.legend()    plt.pause(0.1)

总结

  • 内部存储记录:适用于简单测试,通过DATA:LOG指令配置(需电源支持)。
  • 外部设备记录:通过编程语言(如Python)灵活控制,适合复杂或长时间测试。
  • 数据导出:优先使用U盘或FTP,若不支持则通过编程读取后保存。

建议:参考电源的《编程手册》确认具体指令,尤其是数据格式和存储功能。