摘要: 此篇文档分析描述了定时器在程序中如何动作的问题,为客户更好的理解定时器提供了帮助。
作者:西门子
文档类型:常问问题
产品类别:自动化系统工业软件Step 7
图1
问题1:M10.2能否被置位?
图2
问题2:S_CU计数有无问题,M6.2能否被置位?
先来了解一下都有哪几个计时器,以及它们的特性如何
图3
从以图3可以看出5个计时器的基本特性,可以简单的从中挑选与控制工艺相符合的计时器使用,如果想了解计时器的详细信息,可以选择计时器,并按F1看帮助信息中的具体逻辑图。
以计时器SD为例,参见图4
图4
我们从中可以知道,当触发端S的信号为上升沿时,触发计时器开始运行,时间结束后计时器输出端为1,S信号为下降沿时,计时器输出端为0
那么根据此情况,以图1为例,咱们可以把刚才的梯形图程序通过时序图表示如下图5
其中a,b之间是在扫描此段程序两个周期之间的间隙。
图5
经过分析,可以看出,M10.2(S)是可以被置位的,那为什么没有看见其被置位呢?
大家注意,这里t的时间是8s,我们知道,一个程序的扫描周期很短,可能才十几----几十毫秒,在线时候可以监控到Scan Cycle Time。如图6
图6
那这个时间不是远远超过了扫描周期么?
我们又知道,如果程序扫描周期大于最大扫描周期监控时间Scan Cycle Monitoring Time,那么将会触发中断,甚至造成CPU进入STOP状态。
其实,计时器的执行是异步于OB1循环扫描的,只要计时器运行后,在每一周期扫描到计时器的触发端S信号如果为1,那么计时器就将在此周期继续计时。因此,它对于最大周期监控时间并没有太大的影响,只是调用语句时占用了少许us的时间。
怎么来验证这个说法呢?就是说计时器的执行并不同步于OB1程序扫描周期。
1,可以在程序中加入若干SFC47增大程序扫描周期(保证小于Scan Cycle Monitoring Time),通过监控计时器的时间,可以看出,计时器的时间是跳跃式的变化的,也就是说,也就是说,当程序扫描完计时器,继续往下进行时,计时器满足触发条件进行计时,此周期往后的计时是一直在进行的。
2,可以通过在中断来证明
3,通过程序死循环监视计时证明
4,通过多个计时器监视时间来证明等等各种方法
联系客服