一、判断是否达到上限的 SCPI 方法(核心)
1. 先查询两个值
scpi
SYSTem:ELOG:COUNt? // 当前已记录的事件条数
SYSTem:ELOG:DEPTH? // 日志最大可存储条数(内存深度/上限)
2. 判断规则(非常简单)
如果 COUNt = DEPTH → 记录点数已经达到上限! 如果 COUNt < DEPTH → 未达到上限
二、完整 SCPI 执行流程
scpi
*IDN?
SYSTem:ELOG:COUNt? // 返回当前条数,例如 100
SYSTem:ELOG:DEPTH? // 返回最大上限,例如 100
结果判断
返回:100 和 100 → 已达到上限(日志已满)
返回:45 和 100 → 未达到上限
三、仪器日志满了会怎样?
Keysight RP7900 ELOG 默认是 循环缓冲区(FIFO):
满了之后新事件会覆盖最旧的事件
COUNt? 永远等于 DEPTH?(不再增加)
所以只要看到 COUNt == DEPTH,就代表日志已经写满、达到上限。
四、如果你想让仪器 “满了就停止记录”(不覆盖)
scpi
SYSTem:ELOG:MODE STOP
恢复默认循环覆盖:
scpi
SYSTem:ELOG:MODE WRAP
五、一句话总结(最关键)
查询是否达到上限 = 比较 SYSTem:ELOG:COUNt? 和 SYSTem:ELOG:DEPTH? 是否相等 相等 = 已满 不等 = 未满