恭喜,你发布的帖子
发布于 2025-08-25 13:23:11
15楼
能用上位机的话,可以做循环队列。原理如下:
尾指针每次计数+1,直到限值归0,依此循环;
头指针不动,但尾指针循环追上头指针时,头指针和尾指针一起+1,并将溢出标记置true(此时头尾指针数值相同,溢出代表通讯频率跟不上可以加大本地缓存大小);
上位机部分读取DB,获得数据长度等信息,将读取到的尾部指针值写入到头指针(表示读取这个区间段内容),并复位溢出标记,此时PLC若新增数据也不影响,因为PLC端尾指针依然在增长,满足异步读写要求。
贴个Demo
FC定义
程序连接:
这里t1,t2,t3模拟的传入数据,50Hz(20MS)的记录频率,
上位机端:
用S7Net包做的通讯,页面比较简陋,可以参考下,通讯做了点简单的封装,但不影响,可以看S7Net手册。
程序部分:
请填写推广理由:
分享
只看
楼主