双向直流电源无 AUTO 自动保存时 全套数据导出替代方案
针对无 MEM:DLOG:AUTO / MEM:ELOG:AUTO固件机型(典型:N6705B、老旧简易双向源、低配 E36100),分 5 套可落地方案,全部基于 SCPI 程控,优先级从简单到高精度。
方案一:序列跑完后一次性手动缓冲区导出(最通用、零额外硬件)
仪器运行 ARB 序列时,数据先存入板载高速缓冲区,无自动落盘时,序列停止后一次性读取全部缓存,上位机直接存 CSV / 文件。
1.DLOG 波形采样缓存读取 SCPI
scpi
*CLS
! 读取全部DLOG采样点数
SOUR:ARB:DLOG:POINts?
! 批量导出全部电压、电流时序数组(二进制/ASCII可选)
SOUR:ARB:DLOG:DATA?
! 清空缓存,准备下一轮测试
SOUR:ARB:DLOG:CLEar
2.ELOG 事件缓存读取(启停、保护、触发记录)
scpi
! 查询事件总条数
MEM:ELOG:COUNt?
! 读取0~全部条数的事件日志(时间戳+事件类型)
MEM:ELOG:DATA? 0.MAX
! 清空事件缓存
MEM:ELOG:CLEar
上位机处理逻辑
Python/LabVIEW 接收返回数组,直接写入本地.csv,等效自动保存文件;全程数据不落地仪器闪存,避免路径 / 格式兼容问题。
方案二:上位机高频轮询实时采样(长时不间断测试首选)
不等序列结束,PC 定时下发测量指令,每秒 / 毫秒级抓取实时 V/I,电脑本地持续写入日志,完全绕开仪器自带存储限制。
基础轮询 SCPI 读取指令
scpi
! 单次同步测量电压电流
MEAS:SCAL:VOLT?
MEAS:SCAL:CURR?
! 高精度同步采集(ARB序列同步触发采集)
MEAS:ARR:VOLT? 1
MEAS:ARR:CURR? 1
定时循环示例(Python 极简)
python
运行
import pyvisa, time, csv
inst = pyvisa.ResourceManager().open_resource("TCPIP::IP::INSTR")
with open("run_log.csv","w",newline='') as f:
writer=csv.writer(f)
writer.writerow(["时间(s)","电压(V)","电流(A)"])
start=time.time()
while True:
v=inst.query("MEAS:SCAL:VOLT?")
i=inst.query("MEAS:SCAL:CURR?")
t=round(time.time()-start,3)
writer.writerow([t,v.strip(),i.strip()])
time.sleep(0.01) # 10ms采集间隔
优势:不受仪器缓冲区大小限制,几小时 / 几天连续记录;数据直接存在电脑硬盘。
方案三:手动保存至仪器存储(手动触发保存,替代自动 AUTO)
机型支持MEM:DLOG:SAVE但无 AUTO 自动开关时,序列结束用指令一键保存到 INT/USB,只是需要程控触发保存动作。
scpi
*CLS
! 配置存储路径、格式(和自动保存参数完全一致)
MEM:DLOG:MED INT
MEM:DLOG:DIR "MANUAL_LOG"
MEM:DLOG:FORM CSV
! 手动把当前缓存存为日志文件
MEM:DLOG:SAVE "test_run_01"
! ELOG同理
MEM:ELOG:SAVE "event_run_01"
搭配流程:
启动 ARB 序列
等待序列运行完成(可查询SOUR:ARB:STAT?判断结束)
自动下发SAVE指令存文件到仪器闪存 / U 盘
后续用MEM:DATA?把仪器里的文件下载到 PC 归档
查询序列运行状态判断结束:
scpi
SOUR:ARB:STAT?
! 返回0=停止,1=运行中
方案四:U 盘手动批量导出(面板操作 + SCPI 文件下载)
面板手动操作:运行序列后,仪器前面板菜单手动 Save 日志到 FAT32 U 盘;
SCPI 远程下载 U 盘文件到电脑:
scpi
! 列出USB目录全部日志
MEM:CAT? "USB:LOG"
! 读取指定文件完整二进制/文本内容到上位机
MEM:DATA? "USB:LOGtest_run_01.dlog"
适合不方便长时间电脑联机的工位,批量跑完多组测试后统一拷贝 U 盘数据。
方案五:ARB 波形内置标记分段保存(长序列拆分多段日志)
超长输出序列拆成多段 ARB 波形片段,每一段运行结束立刻触发一次手动 SAVE,实现分段归档,替代分片 SPLIT 自动保存。
scpi
! 加载第一段波形
SOUR:ARB:LOAD "seg1.arb"
SOUR:ARB:RUN
*WAI ! 等待本段跑完
MEM:DLOG:SAVE "seg1_log"
! 加载第二段波形
SOUR:ARB:LOAD "seg2.arb"
SOUR:ARB:RUN
*WAI
MEM:DLOG:SAVE "seg2_log"
方案六:硬件外接采集(极致高精度场景,脱离电源内置采集)
电源自身采集精度 / 速率不足、且无存储时,搭配高精度 DAQ / 示波器并联采集 V/I:
电压:差分探头并联输出端;电流:串联高精度分流器 + DAQ 采集;
DAQ 自带连续存储数据流,完全独立于电源设备; 适用:功率动态大、μs 级高速波形捕捉场景。
各方案优劣对比
表格
关键配套校验指令(导出前必用)
确认缓存有有效数据
scpi
SOUR:ARB:DLOG:POINts?
! 返回0=无采样数据,不可导出
读取文件后校验完整性
scpi
SYST:ERR?
MEM:FILE:SIZE? "xxx.dlog"
读取仪器系统时间,给日志打时间戳
scpi
SYST:TIME?;DATE?
最简自动化替代模板(无 AUTO 机型通用)
scpi
*RST;*CLS
! 1.配置DLOG采样参数
SOUR:ARB:DLOG:PER 0.001
SOUR:ARB:DLOG:POINts 50000
! 2.启动序列
SOUR:ARB:RUN
*WAI ! 阻塞等待序列跑完
! 3.导出缓存到上位机
SOUR:ARB:DLOG:DATA?
! 4.清空缓存准备下一次
SOUR:ARB:DLOG:CLEar