回复:定时器循环运行一段时间自己停止,为什么?

maidou

  • 帖子

    6
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2008-06-30

普通 普通 如何晋级?

发布于 2011-12-23 17:39:28

9楼

看了各位大侠的回复,颇受启发,特别是火麒麟的提醒
现在感觉基本上找到出现此问题的原因了,主要问题就是定时器与程序扫描是异步的。定时器状态改变可能发生在程序扫描时的任意时刻。请各位大侠看看是否是这样
下面看看为什么T101无法启动:
AN T 101
L W#16#2009
SD T 101
(在某一个扫描周期的,程序扫描到这里,T101定时时间正好到,状态改变由0变1,这是小概率事件,但是也是必然事件,就跟日食肯定会发生差不多)
A T 101
R T 101
在第N个程序扫描周期
扫描AN T 101 ,假设T101状态为0。RLO结果为1
扫描SD T 101指令时,T101定时时间正好到,状态改变由0变1。
扫描指令A T 101, T101的状态为1。
扫描指令R T 101,T101的状态变为0。

在第N+1个程序扫描周期
扫描AN T 101 , T101状态为0,RLO结果为1。
对于这条指令的结果来说和上一个扫描周期N没有任何变化,RLO结果一直为1,没有上升沿,所以T101当然不会被启动。

如果在程序中有多处检查定时器状态的指令时,一定要注意此问题。有可能在同一个扫描周期内定时器状态不一样。
静心学习!!!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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