
减少短时间内重复写同一数据点导致的无效报文发送 将同地址、同区块、可合并的数据尽量打包,降低总线压力,提高写入效率

功能逻辑
用户执行写操作后,系统先把目标值更新到本地数据缓存中。 当“写指令缓存时间(ms)”不为 0 时,写命令不会立即发送,而是进入写缓存队列。 同一数据点如果在缓存期内被重复修改,缓存中只保留最新值。 设备定时器周期检查缓存队列,某条缓存命令超过设定时间后,会被取出并发送。 实际发送前,系统会根据打包方式按地址/列表顺序进行组包;对可合并的寄存器写请求,会尽量合并成更少的报文。 对“同一寄存器中的部分位数据”写入时,系统依赖已有缓存值来补齐未修改位,避免把其他位误写掉。

适用场景
逻辑控制中执行滑动调节、频繁设定参数,短时间内会连续改值
多个保持寄存器需要连续写入,希望减少报文数量
通讯链路带宽有限,或设备对高频写入较敏感


注意事项
该功能主要针对主站写操作生效。
缓存期内同一数据点多次修改,最终只发送最后一次值。
缓存时间越大,总线压力越小,但写入实时性越差。
对“寄存器中的部分位”写入,必须先有该寄存器当前值缓存,否则系统可能跳过此次写入,以避免误改其他位。
本地缓存会先更新,所以从界面观察时,可能会先看到目标值已变化,而实际报文发送是在缓存超时后执行。