一、Keysight N6705A/B/C、N678x、RP7900 双向直流电源压缩能力 SCPI 查询
1. 核心开关查询(DLOG 测量日志)
① 查询是否启用日志文件实时压缩
scpi
DLOG:FILE:COMPress?
返回值定义:
0:不开启压缩,原始格式(.csv文本 / .raw二进制)
1:开启仪器内置压缩,生成.zip归档文件
老固件(N6705A v1.03 及更早)无此指令,下发会返回-113 Undefined header,代表机型硬件 / 固件不支持原生压缩
② 查询仪器本机是否具备压缩硬件能力(兼容性预检)
scpi
DLOG:FEATure:COMPress?
返回1:本机固件 / 存储系统支持文件压缩功能
返回0:硬件底层无压缩模块,无论如何配置都无法生成压缩包
2. ELOG 故障事件日志压缩查询(独立配置)
事件日志与测量日志压缩开关分离:
scpi
// 能力预检
ELOG:FEATure:COMPress?
// 当前压缩开关状态
ELOG:FILE:COMPress?
3. B2900 系列四象限双向 SMU 替换指令
无 DLOG/ELOG,统一LOG前缀:
scpi
LOG:FEATure:COMPress?
LOG:FILE:COMPress?
二、辅助配套查询指令
1. 压缩归档触发条件(满文件自动打包)
查询文件写满后是否自动压缩归档旧记录:
scpi
DLOG:COMPress:AUTO?
ELOG:COMPress:AUTO?
1:单文件达到DLOG:FILE:SIZE:MAX阈值后,自动把写完的旧文件压缩打包;当前活跃写入文件保持未压缩
0:仅手动下发压缩命令才打包
2. 手动压缩单文件 / 全目录指令(验证功能可用性)
压缩指定日志文件
scpi
MMEM:COMP "/LOG/TEST001.CSV"
一键压缩目录内全部未压缩日志
scpi
DLOG:COMPress:ALL
下发后配合查询文件列表验证:
scpi
MMEM:CAT? "/LOG/"
// 出现 .zip 后缀即代表压缩生效
3. 压缩格式查询(仅支持 ZIP 标准)
scpi
DLOG:COMPress:FORMat?
固定返回ZIP,Keysight 全系电源仅兼容标准 zip 归档,无 7z/gz 等格式
三、关键限制与判定逻辑
无压缩指令 = 硬件不支持 N6705A 初代、早期 N6781A 固件完全无原生文件压缩,只能上位机下载文件后本地软件压缩
二进制 RAW 格式压缩率远高于 CSV 文本 先查询存储格式辅助判断压缩收益:
scpi
DLOG:FORMat?
// ASC=文本CSV;REAL=二进制RAW
U 盘 / 内置闪存差异
内置 Flash:压缩运算由仪器 MCU 执行,速度中等
USB 外接大容量 U 盘:支持压缩,但大量文件批量打包速度较慢
正在写入的活跃日志无法压缩 必须等DLOG:STOP停止记录后,才能对当前日志文件执行压缩
四、完整交互校验示例(N6705C 新版固件)
scpi
//1 先查本机有没有压缩功能
>> DLOG:FEAT:COMP?
<< 1
//2 查看当前是否打开自动压缩
>> DLOG:FILE:COMP?
<< 0
//3 开启压缩
>> DLOG:FILE:COMP 1
//4 查看自动归档开关
>> DLOG:COMP:AUTO?
<< 1
//5 查看压缩格式
>> DLOG:COMP:FORM?
<< ZIP
//6 手动压缩一条旧日志
>> MMEM:COMP "/LOG/RUN001.CSV"
//7 列表校验
>> MMEM:CAT? "/LOG/"
<< 1.420."RUN001.ZIP"
五、无压缩功能时的替代方案
上位机通过MMEM:DATA?把.csv/.raw文件完整读取到 PC
Python/Matlab/C# 程序本地调用 zip 库离线压缩存储,不占用仪器运算资源
优先使用DLOG:FORMat REAL二进制格式,原生体积只有 CSV 的 1/5~1/10.大幅减少存储占用
六、报错识别
-113 Undefined header:机型固件过低,无压缩子系统
-251 Mass storage read/write error:U 盘读写异常、空间不足无法生成 zip 包
-221 Settings conflict:正在记录 DLOG 时试图压缩活跃文件