资讯中心

联系我们

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

如何通过SCPI命令查询双向直流电源序列历史记录文件的最后访问时间?

2026-06-09 10:37:08  点击:

  一、核心硬件固件限制(N6705C/N7900/N6900 Agilent/Keysight 双向平台)

  仪器文件系统元数据接口 SYST:FILE:ATTR? 只输出两组时间戳:创建时间、修改时间,不存在最后访问时间(Access Time)的返回字段;

  整机固件无任何独立 SCPI 指令(如SYST:FILE:ACCESS?)用于读取文件最后读取 / 访问时刻;

  仪器嵌入式闪存文件系统本身不记录、不存储文件访问时间,底层无该日志条目,所以无法通过 SCPI 调取。

  SYST:FILE:ATTR? 固定返回字段结构

  plaintext

  Y,M,D,H,M,S(创建), Y,M,D,H,M,S(修改), 文件字节大小, 读写权限

  无 Access 时间段。

  二、三个时间定义区分

  创建时间 Create 执行ELOG:EXPORT/DLOG:SAVE生成文件的瞬间时间,永久固定,重命名不会变更。 查询示例:

  scpi

  SYST:FILE:ATTR? "INT:/logs/ovp_record.csv"

  修改时间 Modify 文件内容被覆写、追加后的更新时间;仅写入操作会刷新,单纯下载读取(SYST:TRANSFER?)不会更新 Modify 时间。

  最后访问时间 Access 文件被读取、打开、浏览的时间;仪器系统完全不采集该标记,无数据可查。

  三、替代方案:上位机侧自主记录访问时序(工业可行方案)

  既然仪器无原生 Access 时间,由 PC 上位机管控每次文件读取动作并打时间戳:

  上位机发起文件下载读取时,同步抓取本地 / 仪器系统时间作为本次访问时间;

  把「文件名 + 访问时刻」存入 PC 本地日志存档。

  配套 SCPI 读取仪器基准时钟(对齐时间戳)

  scpi

  SYST:DATE? ! YYYY,MM,DD

  SYST:TIME? ! HH,MM,SS

  Python 简易时序记录示例:

  python

  运行

  import pyvisa

  from datetime import datetime

  rm = pyvisa.ResourceManager()

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

  file_path = 'INT:/logs/limit_history.csv'

  # 读取仪器当前系统时间,作为本次文件访问时间

  date_raw = inst.query("SYST:DATE?").strip().split(",")

  time_raw = inst.query("SYST:TIME?").strip().split(",")

  access_time = f"{date_raw[0]}-{date_raw[1]}-{date_raw[2]} {time_raw[0]}:{time_raw[1]}:{time_raw[2]}"

  # 执行文件读取访问

  inst.write(f'SYST:TRANSFER? "{file_path}"')

  file_data = inst.read_raw()

  # 上位机留存访问记录

  with open(r"C:access_log.txt","a",encoding="utf-8") as f:

  f.write(f"{access_time} | 访问文件:{file_path}n")

  inst.close()

  四、特殊场景补充

  ELOG 原生 event.log 每条 OVP/OCP 故障事件自带独立触发时间戳(ELOG:DATA?内),这是故障发生时间,不是文件访问时间;

  USB 外接 U 盘文件 U 盘 FAT32 文件系统本身支持 Access 时间,但仪器固件读取 U 盘元数据时依旧只解析创建 / 修改,不会上报 Access 给 SCPI;

  老旧 E36xx 机型:无完整文件系统,不存在任何文件时间元数据查询能力。

  五、速查总结

  无 SCPI 指令可查询仪器侧文件最后访问时间;

  仅可读取:创建时间、修改时间;

  标准化替代手段:上位机读取文件前抓取仪器系统时钟,人工登记访问时间。