quote:以下是引用t1122在2011-08-04 23:14:17的发言:
第一次接触定时器,就把我困扰了将近1个月。
其实,翻翻以前下载的资料,西门子的文档中,定时器几乎是写的最好的!可是还有无数的初学者跟我一样受过定时器的困扰,就连热线的故事里面,定时器的问题也占有很大的比例。
我觉得,作为文档,不得不用规范的语言去描述。不过哪,我们可以用通俗的语言去理解。我就把我的理解用一句白话写出来,总结了一下我所遇到的、看到的定时器的初级问题,希望能对初次接触定时器的同学有所帮助。
入门问题1:定时器到底是个啥物件?
文档中说“异步运行”,初学者很难理解。我们可以这样理解,定时器,其实是plc中的一种物件(元器件,或者说设备),它运行起来,跟我们写的程序不是同时进行的。就好比我们常见的打印机一样,我们调用了word,打印文档,这个时候你把word关了,打印机也会自己打印完成,这就好比我们的fc里面调用了定时器,如果定时器没有运行完,fc执行的条件不满足了,定时器还会在后面继续运行。
请理解:定时器就是一个独立的“物件”。可以测试,在模拟器中,只用你设置了定时器的时间,他就会运行,fc或者fb用到了定时器,即使你想后悔断开执行条件,他也会运行——不带退货的。
入门问题2:定时器到底咋动的?
不扒拉不动。定时器启动的条件是个上升沿,请注意:是个上升沿。开始我就犯过这种错误。在fc里面使用定时器的时候,也许我们经常会给一个timer变量给fc,定时器启动的条件也许在fc内部写,也许会是一个参数指定。在第一次运行的时候往往没有问题,但是就是不能第二次运行。这样的问题往往就在于你没有“扒拉”他:你给fc中的s,没有形成一个上升沿。
请注意:想让定时器启动,就“扒拉”他一下!光按着他不撒手,没用的。
入门问题3:为啥我的不对!
别用没准的东西启动定时器。经常看到有人(包括当初的我)把启动条件写到临时变量里面,然后用来作为定时器的s,这个是错误的。每次启动fc的时候,临时变量的初始值是随机的,所以结果也是随机的。随机的意思就是:没准的。不能用没准的东西启动定时器啊。
请注意:一定要把启动变量放对地方。启动条件要么放到in或者inout中,要么就是静态变量,不能用没有初始化的临时变量。
入门问题4:定时器啥区别?
我学习的时候,匆匆的直接看帮助里面的说明文字,后面的图又懒得看。每次用的时候,都会现去找帮助,总是觉得不好记,不好区分。其实图比字更直观,最直观的资料就是时序图。当然,也要看帮助的文字。还有一点,名字也说明了不同的地方,非常好理解。把5种定时器都写出来,用拟真程序模拟一下,会让你有很直观的印象。
请注意:区分叫啥名,长啥样。名字很形象,时序图能说明具体的功能。
总结来说,入门的四句白话:定时器就是plc的一个物件。你不扒拉他,光按着,他是不会动的。不要用没准的东西启动定时器就不会错。区分定时器,你要记住他叫啥名,长啥样。