资讯中心

联系我们

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

如何通过SCPI命令设置双向直流电源文件存储的文件大小限制?

2026-06-09 09:58:10  点击:

  一、核心前置结论(N6705C / N7900 / N6900 双向电源)

  无专用 SCPI 指令直接设置单文件最大字节上限(FILE:SIZE:LIMIT这类指令不存在)

  有两套可控容量约束:

  ELOG 保护事件日志:按记录条数硬性容量上限(可读写配置)

  DLOG 波形日志:靠采样点数 DLOG:POIN间接锁定单文件体积;整机 INT 盘有物理总存储上限

  磁盘全局无配额分区限制,只能上位机逻辑判断文件大小、做切分 / 删除保护

  二、ELOG(输出限制 OVP/OCP 历史)容量限制配置

  1. 查询 ELOG 分区最大存储条数(硬件固定分区上限)

  scpi

  ELOG:CAP?

  返回格式:最大总条数, 当前已存条数 例:1000.216 → 分区最多存 1000 条故障记录,满了循环覆盖最早记录

  2. 无法修改 ELOG 分区硬件总容量,但可手动控制有效存储量

  没有ELOG:CAP写入指令,分区大小固件固化;控制手段:

  定时导出 + 清空日志,人为限制实际存量

  scpi

  ELOG:EXPORT "INT:/logs/elog_back.csv"

  ELOG:CLE

  上位机轮询ELOG:CAP?,当前条数达到阈值就自动备份清理

  python

  运行

  cap_ret = inst.query("ELOG:CAP?")

  max_cap, curr = map(int, cap_ret.split(","))

  if curr >= max_cap * 0.9: # 90%阈值触发备份

  inst.write('ELOG:EXPORT "INT:/logs/auto_back.csv"')

  inst.write("ELOG:CLE")

  3. 原生 event.log 文件行为

  文件持续追加,分区塞满自动轮转覆盖旧事件;不能设置单文件 KB/MB 尺寸阈值。

  三、DLOG 波形日志:间接控制单文件大小(唯一可靠硬件约束)

  DLOG 单文件体积完全由总采样点数 + 存储格式(ASC/BIN) 决定,通过DLOG:POIN精准锁定文件大小。

  1. 配置采样点数(核心大小约束)

  scpi

  DLOG:POIN

  DLOG:POIN?

  N6705C 单通道最大:500.000.000 点

  N7900/N6900 模块型:单通道上限百万~千万级(看机型内存)

  2. 点数 → 文件大小快速估算

  BIN 二进制:每个点 (电压 + 电流)≈8 Byte 文件字节 ≈ POIN × 8

  ASCII CSV:每个点文本约 60~90 Byte,体积大很多 文件字节 ≈ POIN × 70(均值估算)

  示例:限制单 BIN 文件最大 1MB 1MB = 1048576 Byte 最大点数 = 1048576 ÷ 8 = 131072 点

  scpi

  DLOG:FORM BIN

  DLOG:POIN 131072

  采集保存后文件体积严格约束在 1MB 以内。

  3. 采集缓存与存盘逻辑

  DLOG:STAT ON开始采集,填满 POIN 点数自动停止;再执行DLOG:SAVE生成固定大小文件

  若用DLOG:TRIG:MODE PROT保护触发:预点数 + 后点数之和 = 总点数,同样锁定触发后波形文件大小

  scpi

  DLOG:TRIG:PRE 2000

  DLOG:TRIG:POST 8000

  ! 总点数10000.文件体积固定

  四、整机内置盘 INT: 全局空间监控(防止磁盘爆满)

  1. 查询 INT 总空间、已用、空闲字节

  scpi

  SYST:FILE:SIZE? INT:

  返回:总字节,已用字节,空闲字节

  2. 上位机磁盘满保护逻辑(无 SCPI 配额开关,软件实现)

  python

  运行

  disk_info = inst.query("SYST:FILE:SIZE? INT:")

  total, used, free = map(int, disk_info.split(","))

  free_ratio = free / total

  # 空闲低于10%自动删除最旧DLOG文件

  if free_ratio < 0.10:

  file_list = inst.query('SYST:FILE:LIST? "INT:/dlog/"').split(",")

  # 删除最早一批日志文件

  for old_file in file_list[:3]:

  inst.write(f'SYST:FILE:DEL "INT:/dlog/{old_file}"')

  五、单文件尺寸校验(保存后读取真实大小做校验)

  任意仪器内文件(ELOG 导出、DLOG 波形)读取实际字节:

  scpi

  SYST:FILE:SIZE? "INT:/dlog/chan1_wave.bin"

  返回首数值 = 文件 Byte 大小,上位机可判断是否超限、是否重新采集 / 分割。

  六、USB 外接盘同样适用逻辑

  导出到 USB 存储时,大小约束规则完全一致:

  ELOG 导出文件大小由当前事件条数决定

  DLOG 文件大小由 DLOG:POIN 决定

  SYST:FILE:SIZE? USB:可查 U 盘总容量

  七、完整约束配置示例(限制 DLOG 单文件≤2MB,ELOG 存量预警)

  scpi

  *CLS

  INST:SEL 1

  ! DLOG限制单BIN文件最大2MB

  DLOG:FORM BIN

  DLOG:POIN 262144 ! 262144 ×8 = 2.097.152 Byte ≈2MB

  DLOG:SAMP:PER 0.001

  DLOG:TRIG:MODE PROT

  DLOG:TRIG:PRE 5000

  DLOG:TRIG:POST 257144

  DLOG:TRIG:PROT:ENAB ON

  DLOG:STAT ON

  ! 定时查询ELOG占用

  ELOG:CAP?

  ! 保存波形后校验文件大小

  DLOG:SAVE "INT:/dlog/limit_wave.bin"

  SYST:FILE:SIZE? "INT:/dlog/limit_wave.bin"

  速查指令汇总

  表格

  

  关键局限重申

  仪器固件没有 SCPI 参数可以直接写 “单文件最大 5MB” 这种字节阈值;只能通过点数、条数间接管控。

  ELOG 无法扩容分区,只能靠定期备份清理;DLOG 靠点数精准控单文件尺寸是工业标准方案。

  老款 E36xx 无 DLOG 大容量存储,仅 ELOG 少量事件,无尺寸管控能力。