施耐德PLC中用单定时器实现多段时间控制程序,在某些工业控制应用中会用到纯时间控制功能,例如没有交互控制功能的交通灯控制,在这种应用中,大的特点是逻辑动作仅受几个时间段的影响。一般情况下,技术人员会采用多个定时器级联的方式来实现这种控制,其中每个定时器完成一个时间段的计时功能。这种编程方式也是大多数PLC资料或教材是的方法。用这种方法编写出的程序比本文介绍的方法多占用定时器,程序篇幅也比较长。
施耐德PLC的解决方法
如果使用施耐德PLC,则可在程序中用一个定时器实现,而且从程序的长度及程序的可读性上来看,会更加有优势。
如果你对施耐德电气的PLC不是很熟悉,请参考施耐德电气PLC (Neza系列/Twido系列/Mirco系列/及Premium系列)的手册或其相应编程软件的帮助文件。为便于说明,这里以施耐德电气的Twido系列为例进行介绍,其它系列产品均可实现同样功能。
施耐德PLC中用单定时器实现多段时间控制程序主要使用定时器的当前值可随时访问的特征来实现。下面用一个小例子来说明,我们来做一个红绿灯控制,控制要求为:南北方向:红灯10s,绿灯5s,绿灯闪3s,黄灯2s;东西方向:绿灯5s,绿灯闪3s,黄灯2s,红灯10s。
为便于简单地说明本文的方法,在这里只做南北方向的信号灯控制,如您对此感兴趣,可自己将东西方向的信号灯控制加进来,在这里提示一下您,即使将东西方向的信号灯控制加进来,同样也只需要一个定时器就可完成。
以下是在Twidosoft中实现此功能的梯形图及源代码:

(* 红绿灯控制用的定时器,20秒后自动复位 *)
BLK %TM0
LD %M0
ANDN %TM0.Q
IN
END_BLK
(* 红黄绿灯控制,注意%TM0.V=16&%TM0.V=18用来控制绿灯的闪烁功能 *)
LD 1
MPS
AND [ %TM0.V <= 10 ]
ST %Q0.0.0
MRD
AND( [ %TM0.V > 10 ]
AND [ %TM0.V < 15 ]
OR [ %TM0.V = 16 ]
OR [ %TM0.V = 18 ]
)
ST %Q0.0.1
MPP
AND [ %TM0.V > 18 ]
AND [ %TM0.V <= 20 ]
ST %Q0.0.2
可以看到,在Twido系列施耐德PLC实现上述功能的程序段非常简洁明了。如果在您的程序中需要用纯多时间段控制,不妨试一下本文介绍的方法,使你的程序可以做的更加高效简洁。