资讯中心

联系我们

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

如何通过SCPI指令查询双向直流电源输出序列历史记录文件路径?

2026-06-12 09:27:58  点击:

  一、Keysight N79xxA / N89xxA 双向直流电源(DLOG 序列采样、ELOG 序列事件历史)路径 SCPI 体系

  仪器无单独 MEM:LOG:PATH? 单条路径查询指令,依靠存储介质查询 + 日志根目录枚举 + 文件归属介质三层获取完整路径;默认分内部闪存 INT、外接 USB USB两大存储根。

  1. 查询当前日志默认存储介质(根路径前缀)

  scpi

  ! 全局日志(DLOG+ELOG统一默认存储盘)

  MEMory:LOG:MEDium?

  ! DLOG序列采样日志专属存储盘

  MEMory:DLOG:MEDium?

  ! ELOG序列运行事件历史专属存储盘

  MEMory:ELOG:MEDium?

  返回值含义:

  INT:内部闪存,根路径标识 INT:LOG

  USB:外接 U 盘,根路径标识 USB:LOG

  2. 枚举日志目录内全部历史文件(拿到完整文件名 + 目录)

  scpi

  ! 列出LOG根目录下所有DLOG/ELOG序列历史文件

  MEMory:CATalog? "LOG"

  返回逗号分隔列表示例: "run001.dlog","run002.elog","seq_test.dlog" 完整物理路径拼接规则:

  内部:INT:LOGrun001.dlog

  U 盘:USB:LOGrun001.dlog

  3. 单文件精准查询归属介质(单个历史文件完整路径前缀)

  已知日志文件名时,单独查该文件所在盘:

  scpi

  MEMory:FILE:MEDium? "run001.dlog"

  配合文件名即可拼接完整绝对路径。

  4. 读取日志保存目录配置(可读写目录路径)

  新版固件支持自定义日志存放子目录:

  scpi

  ! 查询全局日志子目录

  MEMory:LOG:DIRectory?

  ! 查询DLOG采样日志子目录

  MEMory:DLOG:DIRectory?

  ! 查询ELOG事件历史子目录

  MEMory:ELOG:DIRectory?

  默认返回空字符串 = 直接存放在LOG根目录;若自定义子文件夹如SEQ_RUN,完整路径变为 INT:LOGSEQ_RUNrun001.dlog

  二、ARB 输出波形序列文件(非运行历史日志)路径查询

  区分:ARB 是编辑好的波形模板文件,DLOG/ELOG 是运行后生成的历史记录

  scpi

  ! 查询ARB序列文件存储介质

  MEMory:ARB:MEDium?

  ! 查询ARB存放子目录

  MEMory:ARB:DIRectory?

  ! 枚举ARB目录全部序列文件

  MEMory:CATalog? "ARB"

  默认路径:INT:ARBxxx.arb

  三、完整自动化路径获取流程(SCPI 指令顺序)

  scpi

  *CLS

  !1 确认ELOG序列事件历史存储盘

  MEM:ELOG:MED?

  !2 确认ELOG子文件夹

  MEM:ELOG:DIR?

  !3 列出所有ELOG历史文件

  MEM:CAT? "LOG"

  !4 取单个文件核对介质

  MEM:FILE:MED? "run001.elog"

  ! DLOG序列采样日志同理替换DLOG指令

  MEM:DLOG:MED?

  MEM:DLOG:DIR?

  四、Python VISA 完整示例(自动拼接完整文件路径)

  python

  运行

  import pyvisa

  rm = pyvisa.ResourceManager()

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

  def get_full_log_path(inst, log_filename, log_type="DLOG"):

  # 1 获取存储介质

  if log_type.upper() == "DLOG":

  media = inst.query("MEM:DLOG:MED?").strip()

  subdir = inst.query("MEM:DLOG:DIR?").strip()

  elif log_type.upper() == "ELOG":

  media = inst.query("MEM:ELOG:MED?").strip()

  subdir = inst.query("MEM:ELOG:DIR?").strip()

  else:

  raise ValueError("仅支持DLOG/ELOG")

  # 拼接路径

  base = f"{media}:LOG\"

  if subdir:

  base = base + subdir + "\"

  full_path = base + log_filename

  return full_path, media, subdir

  # 示例:查询run001.dlog完整路径

  fullpath, med, dirname = get_full_log_path(inst, "run001.dlog", "DLOG")

  print(f"完整路径:{fullpath}")

  print(f"存储介质:{med},子目录:{dirname if dirname else 'LOG根目录'}")

  # 列出全部日志文件

  file_list = inst.query('MEM:CAT? "LOG"').strip().split(',')

  print("目录内所有序列历史文件:", file_list)

  inst.close()

  五、型号兼容说明

  N79xxA / N89xxA:完整支持MEDium/DIRectory/CATalog全套日志路径指令

  E36100 BT 小型双向源:无独立 DLOG/ELOG 分支,统一用MEM:LOG:MED?,日志统一存INT:LOG

  老款 N6705B:无DIRectory子目录指令,仅根目录INT:LOG

  配套路径修改写入指令(按需切换存储位置)

  scpi

  ! 设置ELOG存U盘

  MEM:ELOG:MED USB

  ! 设置DLOG自定义子文件夹SEQ_LOG

  MEM:DLOG:DIR "SEQ_LOG"