一、区分两大日志体系(Keysight 双向电源通用:DLOG 测量日志 / ELOG 事件故障历史)
1. DLOG:电压电流功率测量历史数据文件读取
适用于 N6705A/B/C、N6781A/N6785A、RP7900 系列双向直流电源
1.1 先获取存储文件列表
scpi
MMEM:CAT? "/LOG/"
返回格式:文件数,大小1."文件名1",大小2."文件名2"... 示例:2.1240."LOG001.CSV",2560."TEST.CSV"
1.2 读取文件内容(两种模式:文本 CSV / 二进制 RAW)
方式 1:逐行读取文本 CSV(适合小文件)
scpi
MMEM:DATA? "/LOG/TEST.CSV"
仪器以 #格式块传输全部文本内容,包含表头、时间戳、V/I/P、通道、触发标记。
方式 2:分段流式读取(大文件防缓冲区溢出)
设置读取起始偏移、字节长度
scpi
MMEM:DATA:START 0
MMEM:DATA:LEN 512
MMEM:DATA? "/LOG/TEST.CSV"
循环递增 START 直到读取完全部文件大小(大小从 MMEM:CAT? 获取)
1.3 DLOG 专属快速读取当前活动日志(无需查文件名)
直接抓取正在记录的日志缓冲区 / 已落地文件
scpi
DLOG:DATA?
返回当前日志完整采样数据流,格式由 DLOG:FORMat 决定(ASC/REAL)
scpi
DLOG:FORMat ASC // 文本CSV格式
DLOG:FORMat REAL // 二进制浮点格式,体积更小
2. ELOG:故障、OVP/OCP、保护触发、开关机事件历史记录
ELOG 存放保护跳闸、过压过流、通讯异常、输出启停事件日志
2.1 查看 ELOG 存储目录文件
scpi
MMEM:CAT? "/ELOG/"
2.2 读取事件文件内容
scpi
MMEM:DATA? "/ELOG/EVENT001.CSV"
字段包含:时间戳、故障类型、通道编号、故障阈值、触发时 V/I 值、持续时长。
2.3 无文件导出,直接读取内存事件队列(快速查最近故障)
scpi
ELOG:DATA?
一次性返回内存中全部未清除事件历史,无需读写存储文件。 清空事件记录:ELOG:CLEar
二、B2900 系列(B2901B/B2902B 四象限双向 SMU)适配指令
日志前缀为 LOG 而非 DLOG/ELOG
列出日志文件
scpi
MMEM:CAT? "/LOGS/"
读取文件
scpi
MMEM:DATA? "/LOGS/RECORD01.CSV"
内存日志直读
scpi
LOG:DATA?
三、SCPI 块数据传输解析要点(MMEM:DATA? 返回格式)
仪器标准 #块协议:
首字符#
第二位数字 N = 后续数字串的位数,例 #6001240
N=6.后面 6 位数字 001240 = 有效数据字节长度
之后跟随对应长度的文件原始文本 / 二进制
末尾无终止符,客户端按长度截断接收
示例返回片段:
plaintext
#500892
Timestamp,Channel,Voltage,Current,Power,Status
2026-06-11 09:20:01.1.24.000.2.150.51.600.ON
2026-06-11 09:20:02.1.24.000.2.148.51.552.ON
四、实用配套辅助指令
查询文件大小
scpi
MMEM:SIZE? "/LOG/TEST.CSV"
判断文件是否存在
scpi
MMEM:EXIS? "/LOG/TEST.CSV"
返回 1 存在,0 不存在 3. 设置日志存储格式(影响读取内容结构)
scpi
DLOG:FORMat ASC|REAL
DLOG:DELIM COMMA|TAB // CSV分隔符
切换存储介质(内置闪存 / 外接 U 盘)
scpi
MMEM:CD "/USB0/" // 切U盘目录
MMEM:CD "/LOG/" // 切内置日志目录
五、常见问题与限制
超大 CSV 文件一次性 MMEM:DATA? 会报错缓冲区溢出 解决:用 MMEM:DATA:START + MMEM:DATA:LEN 分段循环读取
老固件 N6705A 早期版本 ELOG 无 ELOG:DATA?,只能 MMEM 读取磁盘文件
二进制 REAL 格式读取后需要程序解析浮点字节,文本 ASC 可直接字符串分割解析
自动命名的时间戳日志文件无法直接 DLOG:DATA?,必须用 MMEM 指定完整路径读取
六、最简交互示例(读取一条 DLOG 日志文件)
scpi
//1 列文件
MMEM:CAT? "/LOG/"
//返回 1.1240."RUN001.CSV"
//2 读取全部内容
MMEM:DATA? "/LOG/RUN001.CSV"
//3 解析#块数据得到完整测量历史表格