红绿灯PLC控制系统编程方法
2018-01-24刘福禄
刘福禄
【摘要】本文介绍了交通红绿灯基本控制形式,针对带绿闪的红绿灯和带数显的红绿控制和实现方法,详细论述了相应的编程方法和技巧。实验证明编制的程序运行可靠,简单实用。
【关键词】PLC 红绿灯 绿闪
1.概述
随着社会经济和城市交通快速发展,城市规模不断扩大,交通日益繁忙,红绿灯保障了城市交通有序、安全、快速运行。现在城市十字路口的红绿灯基本都是采用程序控制,其中采用可编程控制器(PLC)程序控制的,在实际使用中占有很大的比例,在工科院校的PLC课程及实验教学中,红绿灯程序控制作为典型的编程范例。十字路口交通信号红绿灯通常为三种控制形式。第一种为传统红绿灯,即绿灯切换到红灯之前,车辆由动到静,用黄灯缓冲过度;红灯切换到绿灯时,车辆由静到动没有缓冲过度;第二种是在传统红绿灯控制形式的基础上增加绿灯闪烁(简称绿闪)功能,即在绿灯时段行将结束的最后秒闪烁三次,其目的是提示绿灯时段行将结束,并保留黄灯缓冲过度;第三种是数显红绿灯,即倒计时数字显示红绿黄灯的时段。由于全过程有时间显示,不要绿闪,但可以保留黄灯。现在绝大多数红绿灯数显屏能显示红绿两色,目前带方向指示的数显红绿灯也不在少数。如果按红绿灯是否带数显的功能来分,红绿灯可分成非数显和数显两大类。在这两大类中均可附带人行横道红绿灯。
2.红绿灯PLC控制程序编制方法
2.1带绿闪的红绿灯程序编制方法
带绿闪的红绿灯编程方法的探讨,来研究非数显红绿灯PLC控制编程的一般方法。
带绿闪的交通红绿灯运行时序图如图所示。可以用多种编程方法来实现,例如基本逻辑接点法、S/R指令法、$CR顺序控制法、环形分配器法(或鼓型控制器法),以及采用上述两种以上编程法组合的综合编程法。基本逻辑接点法,即采用计时器,计数器结合基本逻辑接点实现时序输出。这种编程法编出的程序短小精悍,但要求编程者有较丰富的编程经验;S/R指令法,应当说没有什么鲜明的特点,它既可以靠基本逻辑接点法,又可以按照顺序控制法的思路来编程;SCR顺序控制法,由于利用了SCR顺序指令,编程上手十分容易,但梯形图程序的网络行很多,且调试较难;环形分配器法(或鼓型控制器法),一般是用SHRB移位寄存器“做”一个环形分配器(PLC本身有鼓型控制器编程更为方便),再按时序图的时刻分别输出到红绿黄灯上即可。此类编程法最适合编按时序图输出的程序。为了采众编程法之长,也可采用两种编程法。
此类按时序图输出的PLC控制程序,不管采用什么编程法编程,编程难度并不是绝对的,一般采用自己比较熟悉的编程法编程即可。
2.2数显类红绿灯编程技巧
数显类交通信号红绿灯的程序设计,一般有两大类编程法:其一,是先有一段非数显红绿灯大控制程序(有没有绿闪均可),再配以同步的倒计时计数器即可;其二,无须有非数显红绿灯控制程序,直接依托倒计时计数器内部的减计数值,给倒计时数显设备显示和红绿黄灯转换用。此外,如果数据显示屏有接收数据的功能,也可用数据传输的方式传输倒计时数据,但在PLC控制的交通红绿灯较少采用。
数显红绿灯程序一般使用CTD减计数器来做倒计时计数器。以第二类为例,又可分两种编程方法:一是按红灯或绿灯+黄灯总时间计数,然后读出减计数值,供数字显示、切换红绿黄灯用。二是按数显位分位减计数、输出,切换信号通过两位比较器接点读出。
这两种编程方法的主要区别是:前者能在刻度值范围内对CTD置任意正整数。但如果采用SEG段码指令输出,必须要按十进制的各位进行分位以后,才能在软段码译码器上译码到输出端,sEG段码指令只接收低4位,而一般需要数显的是两位数以上,这给编程带来了一些困难。后者是将前者需要段码显示的十进制数分位,即将个位和十位分别采用各自的CTD减计数器计数,这样减少了编程的难度。但数显的十进制数个位必须是9,如30s只能置29s、40s只能置39s,因此它在实际应用中较少采用。如果采用BCD码数字输出,前者只需一个字节的BCD码,就可以数显两位十进制数,不需要分位。显然比后一种显示方式简便得多。
在该例程中,通过巧妙地运用SHR-B指令和INV-B指令,使得編出的程序短小、精悍,大大缩小了程序的程度和执行时间。该方法也可运用到其它需要数显的工程项目中。
人行横道红绿灯,没有黄灯,一般为红绿灯、数显、图显三种。前两种参考车行道红绿灯编程即可。后一种一般又分站立红灯/行走绿灯、手掌红灯/行走绿灯两种。由于显示图形是预先做在显示屏上,所以红灯图形只占1位输出,行走绿灯动画图形一般不超过3位输出,很容易通过编程实现。
3.结束语
交通信号红绿灯PLC控制的编程,总的来说,不是特别困难,但编程方法繁多,编程的随意性很强,有的方法编制的程序很长、难以理解。本文对带绿闪的红绿灯程序编制和数显类红绿灯编程方法和技巧进行了研究,并在PLC实验系统进行了调试和运行,实验证明运用一些编程技巧后,编出来的程序短小、精炼,运行可靠。endprint