Keysight N79xx/N89xx/N6705C ELOG 限值 (LIM) 记录频率 SCPI 查询方案
分两类:①LIM 限值触发防抖动间隔(硬件防重复记录周期,SCPI 可直查);②历史日志统计频次(用 ELOG 时间戳人工计算触发频率),多通道加CHx:前缀。
一、查询 LIM 限值防重复记录间隔(仪器配置的最小记录周期,核心 SCPI)
限值连续超限不会重复刷屏记日志,由防抖动延时控制两次 LIM 记录最小间隔,决定 LIM 理论最大记录频率:
scpi
:ELOG:TRIG:LIM:DELAy?
返回单位:秒 (s),例返回0.5= 最小间隔 0.5s → 理论最高记录频率 = 1/0.5=2Hz
多通道机型 (N6705B/C):
scpi
:CH1:ELOG:TRIG:LIM:DELAy?
说明:此参数是仪器配置值,固定采样巡检周期硬件固化约 100ms,不可修改,仅防抖延时可编程。
二、查询 LIM 触发边沿配置(辅助判断有效记录条件)
scpi
:ELOG:TRIG:LIM:SLOPe?
返回POS(上升沿超限)/NEG(下降沿超限)/BOTH双边触发,仅边沿跳变 + 保持超过 DELAy 才写入 ELOG。
三、批量读取全部 LIM 历史记录、计算实际触发频率(最常用)
步骤 1:获取 ELOG 总条数
scpi
:ELOG:COUNt?
步骤 2:导出全量 ELOG 数据,筛选 VLIM/ILIM 条目
scpi
:ELOG:DATA? 1.LAST
返回格式:序号,Unix时间戳,通道,事件码,事件描述,V,I 事件码 = VLIM/ILIM 即为限值触发记录,提取所有 LIM 记录的 Unix 时间戳。
步骤 3:频率计算公式
触发频率总条数末次时间戳首次时间戳
示例:LIM 共 50 条,首尾时间差 25s → 50/25=2Hz
四、单独读取单条 LIM 事件(快速抽查时间间隔)
scpi
:ELOG:DATA:EVENt? n //n为索引
只返回事件类型,配合ELOG:DATA? n拿时间戳,计算相邻 LIM 时间差。
五、配套辅助查询指令
限值触发开关::ELOG:TRIG:LIM? → 1 启用限值记录,0 关闭
LIM 电压 / 电流触发阈值:
scpi
:ELOG:TRIG:LIM:VOLT?
:ELOG:TRIG:LIM:CURR?
六、Python 自动统计 LIM 触发频率(可直接运行)
python
运行
import pyvisa,time
rm=pyvisa.ResourceManager()
inst=rm.open_resource("TCPIP::电源IP::5025::SOCKET")
#1.读取防抖间隔
delay=float(inst.query(":ELOG:TRIG:LIM:DELAy?"))
max_freq=1/delay
print("LIM最小记录间隔(s):",delay,"理论最高频率(Hz):",max_freq)
#2.筛选全部LIM日志
cnt=int(inst.query(":ELOG:COUN?"))
if cnt==0:
print("无ELOG记录")
else:
raw=inst.query(":ELOG:DATA? 1.LAST").split(",")
lim_ts=[]
for i in range(0.len(raw),7):#7字段一组
evt=raw[i+3]
ts=int(raw[i+1])
if evt in ["VLIM","ILIM"]:
lim_ts.append(ts)
if len(lim_ts)>=2:
span=lim_ts[-1]-lim_ts[0]
freq=len(lim_ts)/span
print(f"实际LIM触发频率:{freq:.3f} Hz,总LIM条数:{len(lim_ts)}")