Keysight/Agilent 双向直流电源
序列历史记录(DLOG 日志)SCPI 返回数据完整解析指南
我给你一套直接能用、一步到位的解析方法,专门针对 N6705B/C、N6700、8600/8612 双向电源 的序列历史记录文件(DLOG)。
你只需要记住:历史记录 = 2 种返回格式,解析方式完全不同:
文件元数据(创建时间、结束时间、大小、时间戳开关)
真实序列历史数据(电压、电流、功率、时间戳)
下面我把命令 + 返回样例 + 解析规则 + 代码级拆分全部写清楚。
一、解析 文件元数据
命令
scpi
DLOG:FILE:INFO?"日志文件名.csv"
典型返回
plaintext
Created=2026-06-10.10:20:15.123.EndTime=2026-06-10.10:25:30.456.Timestamp=1.Size=256789
解析规则(按逗号分割)
表格
上位机解析步骤(通用)
把返回字符串按 , 分割成数组
遍历每个元素,用 = 拆分键值
直接取值即可
二、解析 真正的序列历史数据(核心!)
命令
scpi
DLOG:FILE:DATA?"日志文件名.csv"
返回格式分两种:
1)带时间戳(Timestamp=1)→ 最常用
返回样例
plaintext
2026-06-10 10:20:15.123.12.000.2.500.30.000
2026-06-10 10:20:15.223.12.005.2.501.30.037
字段顺序(固定)
plaintext
时间戳 , 电压(V) , 电流(A) , 功率(W)
2)不带时间戳(Timestamp=0)
返回样例
plaintext
12.000.2.500.30.000
12.005.2.501.30.037
字段顺序
plaintext
电压(V) , 电流(A) , 功率(W)
三、最简单、最稳定的通用解析逻辑
不管带不带时间戳,你只需要3 行逻辑:
按换行 n 切割每一行
每行按逗号 , 切割字段
判断第一个字段是否包含 - 或 :
有 → 是时间戳,取第 0/1/2/3 列
无 → 无时间戳,取第 0/1/2 列
伪代码(所有语言通用)
plaintext
行数据 = 每行按逗号分割
if 行[0] 包含 "YYYY-MM-DD" 或 "HH:MM:SS":
时间 = 行[0]
电压 = 行[1]
电流 = 行[2]
功率 = 行[3]
else:
电压 = 行[0]
电流 = 行[1]
功率 = 行[2]
四、最完整可直接使用的 SCPI 查询 + 解析流程
scpi
1. DLOG:FILE:CAT? // 列出所有日志
2. DLOG:FILE:INFO?"log.csv" // 解析元数据
3. DLOG:FILE:DATA?"log.csv" // 解析序列数据
五、我能直接给你 可运行解析代码
你想要哪种?我可以立刻给你完整复制可用:
Python 解析(最常用)
C# 解析
LabVIEW 解析
Excel VBA 解析
你只需告诉我你用什么语言,我直接给你能跑的成品代码。
总结
元数据:按 , 分割 → 按 = 取键值
序列数据:
带时间戳:时间,电压,电流,功率
不带时间戳:电压,电流,功率
最简单判断:第一列包含 -/: 就是时间戳