资讯中心

联系我们

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

如何通过SCPI查询Agilent双向直流电源序列历史文件保护?

2026-06-09 10:11:36  点击:

  一、两类历史文件保护体系(安捷伦 / 是德 Keysight 同源机型 N6705、N7900、N6900 双向电源)

  历史记录分 ELOG 输出限制事件记录、DLOG 波形采样文件,保护分为:ELOG 专属写保护、全局文件系统锁定保护,两套独立 SCPI 查询。 Agilent 时期固件 SCPI 指令集与后期 Keysight 完全兼容,指令无更名。

  1、查询 ELOG(OVP/OCP 输出限制历史)专属写保护状态

  作用:开启后禁止清空 ELOG、禁止覆盖旧故障记录,原始 event.log 历史事件防擦除。

  查询指令

  scpi

  ELOG:PROT?

  返回值:

  1:ELOG 历史记录写保护开启,无法执行ELOG:CLE清空、旧记录不会被循环覆盖

  0:写保护关闭,可清空、日志满后自动覆盖最早记录

  配套操作指令(仅查询用,供参考)

  scpi

  ELOG:PROT 1 // 开启保护

  ELOG:PROT 0 // 关闭保护

  校验指令是否存在(老 Agilent 低固件)

  scpi

  *CLS

  ELOG:PROT?

  SYST:ERR?

  返回-113代表极早期固件无 ELOG 写保护功能。

  2、查询全局文件系统锁定保护(所有 DLOG/ELOG 导出文件通用)

  锁定后所有 INT:/、USB:/ 内的历史日志文件禁止删除、重命名、覆盖写入,仅可读;文件内容明文、非加密。

  查询全局锁状态

  scpi

  SYST:FILE:LOCK?

  返回值:

  1:全局文件锁定开启,所有历史文件只读保护

  0:文件锁定关闭,可修改 / 删除 / 导出覆盖文件

  分区独立锁(新版 Agilent/Keysight 高固件)

  可单独查内置盘、U 盘锁定状态

  scpi

  SYST:FILE:LOCK? INT:

  SYST:FILE:LOCK? USB:

  锁定生效限制(历史文件行为)

  不能执行:ELOG:EXPORT覆盖旧导出 csv、DLOG:SAVE覆盖波形文件、SYST:FILE:DEL删除历史、SYST:FILE:RENAME改名

  允许执行:SYST:TRANSFER?下载历史文件、SYST:FILE:ATTR?查创建时间、ELOG:DATA?读取限制历史内容

  3、区分三个易混淆保护(不要混淆概念)

  表格

  

  4、完整批量查询保护状态 SCPI 脚本

  scpi

  *CLS

  !1 查询输出限制ELOG历史写保护

  ELOG:PROT?

  !2 查询全局文件锁

  SYST:FILE:LOCK?

  !3 分盘锁定查询

  SYST:FILE:LOCK? INT:

  SYST:FILE:LOCK? USB:

  !4 读取错误判断指令是否支持

  SYST:ERR?

  5、Agilent 老旧机型兼容说明

  N6705A/B、N7900 早期 Agilent 固件:支持ELOG:PROT、SYST:FILE:LOCK全套指令

  E36xx 老款 Agilent 简易双向电源:无文件系统锁SYST:FILE:LOCK,仅极简故障码,无完整 ELOG 历史保护;只能读取瞬时故障STAT:QUES?

  Agilent 与 Keysight 同硬件机型 SCPI 完全互通,无需替换指令名称

  6、Python 一键读取全部历史文件保护状态

  python

  运行

  import pyvisa

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP::仪器IP::INSTR")

  inst.timeout = 5000

  # ELOG历史事件写保护

  elog_prot = inst.query("ELOG:PROT?").strip()

  # 全局文件锁

  file_lock = inst.query("SYST:FILE:LOCK?").strip()

  # 分区锁

  lock_int = inst.query("SYST:FILE:LOCK? INT:").strip()

  lock_usb = inst.query("SYST:FILE:LOCK? USB:").strip()

  print(f"ELOG输出限制历史写保护:{elog_prot}(1开启/0关闭)")

  print(f"全局文件系统锁定:{file_lock}")

  print(f"INT内置盘锁定:{lock_int}")

  print(f"USB外接盘锁定:{lock_usb}")

  err = inst.query("SYST:ERR?")

  print(f"指令错误状态:{err}")

  inst.close()

  关键补充

  这两类仅防篡改、防删除保护,Agilent 原厂机型无文件加密功能,所有历史文件明文存储;加密只能上位机后处理实现。

  ELOG:PROT 只保护原生 event.log,不保护你手动 ELOG:EXPORT 导出的备份 csv,导出文件安全依靠SYST:FILE:LOCK管控。