s7200定时中断里的计算结果数据如何保存

就是我用一个100ms定时中断,里边一个加法指令之类的,算的数我想先保存起来然后延时0-5秒取出来,我之前试过sm0.0驱动填表指令,1ms定时器+上升沿驱动先入先出指令,通过改变定时器的pt值来改变延时,但是它们之间本身就有一个延时,就是我把定时器pt设为1ms,填表也比取数快很多
希望大家帮我做一个这个具有延时功能的程序。

问题补充:
更正一下,就是在100ms的定时中断中对一个v区的数比如vw0里的数据先保存起来,然后延时0-5s取出来放到vw10中,而vw0中的数据通过主程序里的计算时刻在变化,这个数据要一个一个的延时取出来,有详细的解决办法吗

最佳答案

直接用堆栈指令就可以实现,可以按照以下步骤来做:
1、建立一个堆栈区域,长度根据需要延时时间来确定,每100ms存一个数据,延时3s取出来,堆栈长度就是3s÷100ms=30.
2、定时中断时,向堆栈区域写入数据,需要取出来时就用出栈指令先入先出,读出的数据就可以保证是准确延时3s后的数据
     定时器在主程序中受扫描周期影响,定时器结束后并不能马上执行,而中断中的定时器不能正常使用,所以需要使用上述的方式。
      也可以建立一个5s÷100ms=50的表格长度,每100ms入栈1个数据,读取时读取制定位置的数据,通过改变读取数据位置,可以实现改变延时时间

提问者对于答案的评价:
xiexie

专家置评

也可参考WWCWWC工程师的回复

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc159847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月8日
下一篇 2017年6月8日

相关推荐