在编程时遇到一个困难,本以为用填表指令可以解决的,但是仔细观察后还是不行,
要求如下:
定时有新数据从vw100流入,以vw100到vw900的400字为一个数据长管(堆栈),填满长管后,最早的数据从vw900溢出,丢失(没用),要求中间不能有断点停顿,请问大家,用如何编程最简洁,能达到目的?
我最开始用的ATT-TBL和FIFO指令结合,本以为可以解决问题,但是实际上是填成“小——大”,“小——大”,“小——大”等好几列数据,不能满足统一的“小————大”的要求,而且其中还有某些储存器是要用于存储表长度和实际填表数的,满足不了统一的都是装数据的要求,具体什么情况大家可以试一试。
谢谢!
问题补充:
谢谢sangshunyang大侠的提醒,现在已经测试成功了!如下图,同时也谢谢各位!
图片说明:
最佳答案
先用一个比较指令比较比较新值与暂存值,如果不同触发一个上升沿
上升沿执行下列指令:
用间接寻址,把地址指针指向vb900
接着用循环指令
指针减2
取值
指针加2
传值
指针减2
循环399次
退出循环
把新赋给 vw100
把新值赋给暂存比较区。
传送程序结束‘’
提问者对于答案的评价:
谢谢~!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc368542.html