回复:不同精度定时器刷新规律

hizzana

  • 帖子

    15
  • 精华

    0
  • 被关注

    0

论坛等级:游民

注册时间:2013-09-03

普通 普通 如何晋级?

发布于 2014-02-17 12:08:51

2楼

quote:以下是引用youhm在2014-02-14 09:55:38的发言:
1.你可以把定时器看做是一个独立的部件,扫描周期时间不参与定时器时间计算,10ms定时器在每个扫描周期开始刷新,也就相当于只在扫描周期开始去看一下定时器走了几个10ms,一直到下一个扫描周期开始之前,定时器位状态和定时器值都保持不变。
2.还是一样扫描周期时间不参与定时器时间计算,我觉得帮助有一点描述的不是很细致,我理解是每个扫描周期会查看相对于上个扫描周期100ms定时器经过了多少100ms间隔,由于扫描循环一般都会小于100ms,所以这100ms间隔通常为0或1,间隔为0的话,定时器自然不会更新,那就说间隔为1的情况,当执行到定时器指令时,定时器值加1并根据值更新定时器位状态,如果当前扫描周期又执行一次定时器指令,那么定时器值又会加1,这就是说执行多次定时器,定时器值会多次累计,如果没有执行定时器指令,那么本扫描周期里的100ms间隔丢失。

有点懂了,如果用事件驱动去解释的话,10ms定时器在扫描周期开始时这个触发点去检查一次,一个周期仅有一次。100ms定时器在遇到100ms定时器指令盒时就去检查一次,如果程序10ms循环一次,理论上在第10的整数倍数次时就需要更新计数器,如果程序中出现多次100ms定时器指令,就会错误的累加,就如文档中强调的那样。

10ms 和 100ms 的区别就在于触发刷新计时器动作的时间和周期内是否为常量(10ms一个周期内状态位和当前值只接受一次赋值)。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33297条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。