资讯中心

联系我们

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

如何通过SCPI命令查询Keysight双向直流电源ELOG缓冲区的当前写入位置?

2026-06-04 09:23:28  点击:

  Keysight N79xx/N89xx/N6705 系列 ELOG 缓冲区写入指针(当前写入位置)SCPI 查询

  ELOG 采用环形循环缓冲区,无单独ELOG:POINTER?原生指令,依靠总容量、当前记录总数、最大缓存容量三个参数换算实时写入下标,搭配 DLOG 指针区分使用。

  一、三条核心查询指令(单通道机型 N79/N89)

  1. 查询 ELOG 已存储条目(当前有效记录数 = 当前写入已落盘条数)

  scpi

  :ELOG:COUNt?

  返回N:最新写入条目索引,等价当前写入位置下标(新事件继续写入 N+1 位)。

  2. 查询 ELOG 硬件最大缓存总深度(环形总容量上限)

  scpi

  :ELOG:SIZE? MAX

  返回MAX_N:缓冲区满值,写满后从索引 1 循环覆盖(环形 WRAP)。

  3. 多通道机型(N6705B/C 模块化,分通道独立 ELOG 缓存)

  scpi

  :CH1:ELOG:COUN?

  :CH1:ELOG:SIZE? MAX

  :CH2:ELOG:COUN?

  二、当前写入位置数学换算(环形缓存指针)

  缓存未满(COUN<MAX):当前写入指针 = :ELOG:COUN? + 1

  例:COUNT=35.MAX=250 → 下一条写入第 36 号位

  缓存写满(COUN=MAX):指针 = 1(回到缓冲区头部覆盖最早记录)

  三、区分:DLOG 波形缓存原生写入指针(DLOG 有专用 POINTER)

  DLOG 采样缓存可直接读实时写入下标,ELOG 无原生指针指令:

  scpi

  :DLOG:POINter? //DLOG专属,返回当前正在写入的采样点位置

  四、配套辅助指令

  清空 ELOG 缓存(指针重置为 1.COUNT 清零)

  scpi

  :ELOG:CLEar

  读取单索引日志验证指针位置(读取即将写入位的前一条)

  scpi

  :ELOG:DATA?

  五、Python 示例:自动计算 ELOG 实时写入位置

  python

  运行

  import pyvisa

  rm = pyvisa.ResourceManager()

  inst = rm.open_resource("TCPIP::IP::5025::SOCKET")

  cnt = int(inst.query(":ELOG:COUN?"))

  max_size = int(inst.query(":ELOG:SIZE? MAX"))

  if cnt < max_size:

  write_ptr = cnt + 1

  else:

  write_ptr = 1

  print(f"ELOG当前待写入缓冲区位置:{write_ptr}/{max_size}")

  六、关键说明

  ELOG 固件固定环形覆盖模式,不可关闭 WRAP,满容量强制从头覆写;

  ELOG:COUN?永远返回有效现存日志条数,不是物理指针,但业务上等效当前写入位置基准;

  若需要实时监控新增事件:轮询ELOG:COUN?,数值增大即有新数据写入对应指针位。