S7-200 PLC定时器的实际应用
2016-09-10吴国伟
吴国伟
(天津交通职业学院,天津300110)
S7-200 PLC定时器的实际应用
吴国伟
(天津交通职业学院,天津300110)
定时器指令是西门子小型PLC S7-200提供的基本指令之一,主要通过程序实例介绍了3种定时器的工作原理、使用特点和在实际应用过程中需要注意的问题。
S7-200;PLC;定时器
S7-200作为西门子的一款小型PLC,广泛应用于检测、监测及控制的自动化,其不仅可以替代传统继电器进行简单的逻辑控制,还可以实现更为复杂的自动化控制。因此它也成为了众多院校教学所采用的型号之一,具有极高的代表性。
定时器(T)是S7-200系列PLC基本指令中一个重要的方面,依靠PLC内部的时钟脉冲,能够实现基于时间的控制,因此熟练掌握定时器的用法对于自动化控制程序编写是非常必要的。
1 S7-200定时器的类型
S7-200指令提供了下述三种类型的定时器。
(1)接通延时定时器——TON:用于单一间隔的定时。
(2)有记忆的接通延时定时器——TONR:用于累计多个时间间隔。
(3)断开延时定时器——TOF:用于关断或者故障事件后的延时。
定时器对时间间隔计数。定时器的分辨率(时基)决定了每个时间间隔的长短。在S7-200中,定时器号是定时器的分辨率(时基)的依据。S7-200定时器有三种分辨率:1 ms、10 ms和100 ms[1],具体如表1所示。
表1 定时类型与编号
2 S7-200定时器的工作方式
PLC所提供的定时器作用相当于继电器控制系统中的时间继电器,用于定(延)时控制。每个定时器可提供无数对常开和常闭触点供编程使用,其预设时间由程序设置。
2.1定时器的组成
定时器由1个“线圈”(在梯形图中以指令盒表示)、2个16位寄存器(用于存放定时器预设值和当前值)和1个定时器位(标示其工作状态)组成。
定时器预设值(PT)寄存器的数据可以储存常数(1~32767),也可引自某个(字)地址,再用这个地址的数据作为预设值[2]。
定时器当前值寄存器用于存储定时器累计的分辨率的增量值(1~32767)。
定时器位表示定时器的工作状态,其值为“0”或“1”.
2.2定时器的工作过程
(1)接通延时定时器——TON
当输入端接通时,定时器开始计时,当前值开始增长,在当前值与预设时相等时,定时器“动作”,定时器位被置“1”,该定时器的“常开触点”闭合、“常闭触点”断开。此后,如果输入端持续接通,当前值将继续增长,直至达到最大值32 767停止。如果输入端断开,则当前值清零,定时器位被置“0”,各“触点”复位[3]。
(2)有记忆的接通延时定时器——TONR
此定时器与TON的工作原理基本一致,不同的是:当输入端断开时,定时器当前值将保留(不会被清零),直到下一次输入端接通时,当前值继续增长,直至32 767停止。要将定时器当前值清零,就必须使用复位(R)指令。
(3)断开延时定时器——TOF
当输入端接通时,定时器位立即被置“1”,其“常开触点”闭合、“常闭触点”断开,当前值被清零。当输入端断开时,定时器开始计时,当前值开始增长,当当前值达到或超过预设值时,则定时器位被置“0”,各触点复位,定时器当前值停止增长。
当输入断开的时长小于预设时长时,定时器位保持为“1”;下一次输入端断开后,当前值将从零开始重新增长直至达到预设值。
2.3定时器的刷新机制
S7-200是工作方式是循环扫描的,每一次扫描后,将刷新一次输出。S7-200的3种定时器的刷新机制并不相同,这取决于定时器的分辨率。
(1)1 ms分辨率定时器
1 ms分辨率定时器启动后,定时器对1 ms的时间间隔(即时基信号)进行计时。定时器的当前值每隔1ms刷新一次,在一个扫描周期中可能要刷新多次,而不和扫描周期同步。
(2)10ms分辨率定时器
10 ms分辨率定时器启动后,定时器对10 ms的时间间隔进行计时。程序执行时,在每个扫描周期的开始对定时器位和当前值刷新,定时器位和当前值在整个扫描周期内保持不变。
(2)100ms分辨率定时器
100ms分辨率定时器启动后,定时器对100 ms的时间间隔进行计时。只有在执行定时器指令时,定时器的位和当前值才被刷新。为使定时器正确的定时,100 ms定时器只能用于每个扫描周期内同一定时器指令必须执行一次且仅执行一次的场合。
以下通过几个实例来说明刷新机制对程序的影响。程序目的:在定时器计时时间到时产生一个宽度为一个扫描周期的脉冲(以Q0.0对外输出)。
然后我们来分析一下的问题所在:
图1中,左图的错误原因在于:1ms定时器每隔1ms刷新一次定时器的当前值,当前值如果正好在处理动断触点和动合触点时被刷新,此时Q0.0可以被接通1个周期,但是这种情况很少,大多数情况是定时器时间到,定时器刷新,而使得输出Q0.0输出,但是由于是每隔1ms刷新,因此Q0.0还没有来得及置位,就被复位了。因此需要使用右图的非自身激励输入程序。
图2中,左图由于10ms定时器是每个扫描周期前刷新当前值,因此,定时时间到时,定时器输出动作,但是由于动断触点的动作,定时器被立即复位,因此,输出线圈Q0.0不会被置位。
图2 10m s分辨率定时器应用
图3中,因为100 ms定时器是执行指令时刷新,因此Q0.0在T37到时准确的接通一个周期。
图3 100ms分辨率定时器应用
3 定时器的实际应用举例
本程序为一小便池冲水控制。利用人体红外感应装置(I0.0)控制WC冲水(Q0.0),实现如下控制:(1)感应到人体后,延时1 s进行冲水,时长2 s(短冲);(2)感应到人体消失后,立即进行冲水,时长5 s(长冲);(3)未进行短冲,则长冲不启动。
程序梯形图如图4所示。
图1 1m s分辨率定时器应用
(续下图)
(续上图)
图4 冲水控制程序梯形图
本例中,T37起延时1冲水作用;T38控制短冲时长;T39为控制避免在未进行短冲时长冲;T40为长冲延时;M0.0、M0.1和M0.3为中间继电器,起状态标记作用。
4 使用注意事项
(1)不能把一个定时器号同时用作TOF和TON,这将引起逻辑冲突。
(2)使用复位(R)指令对定时器复位后,定时器位置为“0”,定时器当前值也同时置为“0”。
(3)对于TOF,需在输入端有一个负跳变(即由接通状态变为断开状态)的输入信号来启动计时。
(4)需要注意不同分辨率的定时器刷新特性。同时,由于它们当前值的刷新周期是不同的,所以还需要注意子程序与中断程序的使用,具体情况如下:
1)在子程序和中断程序中最好不要使用100 ms定时器。由于子程序和中断程序不是每个扫描周期都执行的,那么在子程序和中断程序中的100 ms定时器的当前值就不能及时刷新,造成时基脉冲丢失,致使计时失准。
2)在主程序中,不能重复使用同一个100ms的定时器号,否则该定时器指令在一个扫描周期中多次被执行,定时器的当前值在一个扫描周期中多次被刷新。这样,定时器就会多计了时基脉冲,同样造成计时失准。
因此,100 ms定时器只能在每个扫描周期内同一定时器指令都执行一次,且仅执行一次的情况下使用。
5 结束语
定时器在自动化控制中可以起到非常重要的作用,S7-200提供的3种定时器对于基本的自动控制支持已经足够。3种定时器在使用过程存在着一些差异,不仅是工作原理不同,而且不同分辨率的定时器其刷新机制也不同,使用不当会造成计时失准。这在实际编写控制程序中必须加以重视。
[1]西门子公司.S7-200可编程序控制器系统手册[Z].2008.
[2]廖常初.S7-200 PLC基础教程[M].第3版.北京:机械工业出版社,2014.
[3]工控学习园地.S7-200PLC的定时器[EB/OL].http://blog. gkong.com/eebeginner_115681.ashx.2010-05-13/2016-04-20.
Some PracticalCases of S7-200 PLC Timer
WU Guo-wei
(Tianjin Transportation Vocational College,Tianjin 300110,China)
The timer is one of Siemens PLC S7-200's basic instructions.Through some example programs,the paper introduced the timer's working principle,characteristic and some problems which need to be paid attention to in practical application.
S7-200;PLC;timer
TP311.1
B
1672-545X(2016)05-0165-03
2016-02-24
吴国伟(1979-),天津市人,讲师,本科,主要从事城市轨道交通车辆技术专业方面的教学及研究。