恭喜,你发布的帖子
发布于 2017-05-22 10:06:51
3楼
我们来分析下上面得程序,由于定时器得异步刷新机制,把定时器定时时间到得可能发生时间用2个分割点分成3个区域,一个是NETWORK1的.Q常闭点前,一个是NETWORK3的.Q常开点前。我们按3个不同的情况分别讨论
区域1:由于定时时间已经到了,那么的结果就为0了,TON的EN为0,则执行完随后的TON指令之后,.Q就为0了
区域2:执行完network1的时候定时器时间还没到,那么TON的EN为1,定时器继续计时,在network3之前定时时间到,那么.Q为1,则MW30=MW30+1。
区域3:和正常的定时时间未到的情况一样,然后下一个扫描周期就是区域1的状态了。
楼主的第一个测试程序可以认为是区域2的时间为0。所以之后的置位指令不会被执行。
中间的NEWWORK2就是为了人为加大区域2的区间。当MW0为0时,MW30为0不变(如果运行足够长的时间,可能会增加),当逐渐加大MW0的值,MW30增加的几率逐渐增大,然后几乎每隔1s都会增加
请填写推广理由:
分享
只看
楼主