资讯中心

联系我们

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

如何通过SCPI命令查询双向直流电源文件名前缀的当前设置?

2026-06-09 09:53:16  点击:

  一、关键底层事实(N6705C / N7900 / N6900 全系双向电源)

  没有全局 SCPI 指令 DLOG:PREF? / ELOG:PREF? 预设固定文件名前缀 仪器固件不存在可读写的 “默认前缀配置寄存器”,无法一键查询全局预设前缀;

  分两种场景:手动自定义导出、保护触发自动存盘默认命名,二者查询方式完全不同。

  场景 1:DLOG 保护触发自动保存(仪器自动生成文件名,有固定默认前缀模板)

  保护触发自动录波时,仪器自动生成文件名格式: YYYYMMDD_chanX_prot.后缀

  固定前缀片段:YYYYMMDD_chanX_prot

  无用户可修改的全局前缀开关,模板固化;只能读取已生成文件反推当前自动前缀

  查询自动生成的 DLOG 文件(拿到当前自动前缀)

  列出 DLOG 目录全部自动存储文件

  scpi

  DLOG:FILE:CAT?

  返回示例:20260609_chan1_prot.csv,20260609_chan2_prot.bin 2. 查看单文件完整路径(校验前缀)

  scpi

  SYST:FILE:LIST? "INT:/dlog/"

  如需提取当前日期 + 通道构成的动态前缀,可先读系统时间与选中通道:

  scpi

  SYST:TIME? // 获取仪器系统时间,拼接日期前缀

  INST:SEL? // 获取当前选中通道号

  上位机脚本可拼接出本次触发会使用的自动前缀字符串。

  场景 2:手动 DLOG:SAVE / ELOG:EXPORT(文件名、前缀完全由用户在指令内手写)

  每次保存 / 导出时,前缀、主体、后缀全部手动填写,仪器无记忆式默认前缀:

  scpi

  ! 手动自定义前缀:limit_test_

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

  ! 手动自定义前缀:wave_prot_

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

  这种模式下仪器没有存储 “上次使用的前缀” 参数,没有 SCPI 可以查询上一次手写的前缀;只能通过读取磁盘目录里已存在的文件,人工解析文件名里的前缀文本。

  二、如何反向查询历史导出文件里使用过的前缀

  1. ELOG 导出日志目录遍历

  scpi

  ! 列出ELOG导出文件夹所有文件

  SYST:FILE:LIST? "INT:/logs/"

  返回例如:limit_2026.csv,ovp_back.bin,event.log limit_、ovp_ 就是过往使用的自定义前缀。

  2. DLOG 波形目录遍历

  scpi

  SYST:FILE:LIST? "INT:/dlog/"

  提取所有文件名开头字符串即为历史前缀。

  3. Python 示例:自动提取目录内所有文件前缀

  python

  运行

  import pyvisa

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP::192.168.1.100::INSTR")

  # 读取ELOG目录文件列表

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

  print("ELOG目录文件列表:", file_list)

  # 简单拆分提取前缀(示例逻辑)

  for fname in file_list:

  if "event.log" not in fname:

  prefix = fname.split("_")[0]

  print(f"识别文件前缀:{prefix}")

  inst.close()

  三、ELOG 原生系统日志说明

  内置常驻保护日志 INT:/logs/event.log 文件名永久固定、不可改前缀,不存在前缀配置参数,无需查询。

  四、补充:有没有替代方案实现 “固定可查询自定义前缀”

  虽然没有硬件寄存器存前缀,但可以用两种标准化方案实现可读写、可查询的自定义前缀:

  方案 A:用仪器内部文本文件存储自定义前缀(读写查询)

  写入自定义前缀文本文件(只写一次)

  scpi

  SYST:TRANSFER "INT:/prefix.txt",#0limit_prot_

  随时查询读取预设前缀

  python

  运行

  inst.write('SYST:TRANSFER? "INT:/prefix.txt"')

  custom_prefix = inst.read_raw().decode().strip()

  # 后续导出拼接使用

  export_name = f"INT:/logs/{custom_prefix}chan1.csv"

  inst.write(f'ELOG:EXPORT "{export_name}"')

  方案 B:上位机变量托管前缀(最常用自动化架构)

  Python/LabVIEW 脚本内部定义全局前缀变量,全程由 PC 程序保存、修改、读取,仪器仅负责存储文件,无需依赖仪器寄存器。

  五、速查总结

  无专用 XXX:PREF? SCPI 指令读取全局预设前缀(硬件无此参数)

  DLOG 保护自动存盘:固定模板YYYYMMDD_chanX_prot,通过DLOG:FILE:CAT?看生成文件拿到前缀

  手动 ELOG:EXPORT / DLOG:SAVE:前缀手写在路径内,只能遍历目录文件反向提取历史前缀

  如需持久可查询自定义前缀,用SYST:TRANSFER读写一个 txt 配置文件托管前缀字符串