在PLC中一般的定时器时间都是以100ms,10ms或者1ms为计时单位,也就是定时器计数值与计时单位的乘积就是定时器的当前时间。以100ms计时单位为例,当某个定时器Txx的当前值为300时,说明定时器的计时时间为300*100ms=30秒。而在PLC中,定时器当前值的一般都是以16位有符号整型数据存储在寄存器中,如在S7-200SMART系列PLC中,定时器的当前值就是这样存储的,且支持对定时器进行字寻址。(有关定时器指令可以参考:6.实物演示不同的定时器指令在200SMART定时器设置与使用)因此,以100ms为计时单位的定时器的计时范围为0到3276.7秒,也就最大计时值只能是3276.7秒,不到一个小时,而10ms与1ms的计时器的最大计时范围就更小了。
但是,在实际应用中,我们通常需要对设备的运行时间进行统计,这个时间是很长很长的,单位更是以小时计甚至以天计,那么我们如何实现呢。现在以S7-200SMART为例,举例说明。
基本思路就是:当设备启动运行的同时(比如电机M1启动代表设备运行),启动定时器,每隔半小时也就是1800秒,在运行时间上加上0.5小时,运行时间可以保存在V存储区的保持寄存器中。定时器就选用保持型定时器,设备停止运行,定时器不计时,运行时在原来的计时值上继续开始计时。梯形图实例如下:如何用PLC的保持型定时器指令进行设备运行时间统计
计时器T5与VD1000应组态为可保持寄存器,在系统块中打开组态窗口进行组态。
当然这个程序统计的时间只能以半小时为一个计时单位,每半小时才能更新一次,如果想要1分钟更新一次统计时间应该怎么办,感兴趣的可以自己动手去试一试。