利用PLC实现交通信号灯控制的编程方法

2011-04-23 12:11宋秀玲晋城职业技术学院机械与电子工程系山西晋城048000
长江大学学报(自科版) 2011年7期
关键词:黄灯梯形图信号灯

宋秀玲 (晋城职业技术学院机械与电子工程系,山西晋城048000))

三菱FX2N系列可编程控制器的PLC功能指令较多[1],可通过其编程实现对交通信号灯的控制。为此,笔者分别应用基本指令、步进指令、传送指令、比较指令、区间比较指令和触点比较指令编写程序,同时编制出对应的梯形图,从而实现对交通信号灯的自动控制。

1 系统控制要求

现有一个位于十字路口的交通信号灯控制系统,其对交通信号灯的控制要求如下:交通信号灯一个周期为76s,南北向信号灯和东西向信号灯同时工作。0~30s期间,南北向信号灯绿灯亮,东西向信号灯红灯亮;30~33s期间,南北向信号灯黄灯亮,东西向信号灯仍是红灯亮;33~73s期间,南北向信号灯红灯亮,东西向信号灯绿灯亮;73~76s期间,南北向信号灯仍是红灯亮,东西向信号灯黄灯亮。I/O分配表如表1所示。

表1 I/O分配表

2 编程方法

2.1 使用基本指令进行编程

在进行编程时,仅使用与触点和线圈有关的基本逻辑指令进行编写。为了满足不同时间段各个线圈通电、断电状态 (不同方向红绿灯的发光时间),使用4个定时器进行定时,常开触点用来控制输出线圈通电,常闭触点用来控制输出线圈断电。基本指令控制的梯形图如图1所示。按下起按钮使X0接通后,辅助继电器M0线圈通电并进行自锁,M0的常开触点作为条件,使线圈Y0和Y5通电 (南北方向绿灯和东西向红灯发光),同时定时器T0、T1、T2和T3开始定时。30s后,定时器T0的常开触点接通,线圈Y1通电 (南北向黄灯发光),与此同时,T0常闭触点断开,线圈Y0断电 (南北向绿灯熄灭)。33s后,定时器T1的常闭触点断开,常开触点接通,线圈Y1和Y5断电 (南北向黄灯和东西向红灯熄灭),同一时刻,线圈Y2和Y3通电 (南北向红灯和东西向绿灯发光)。73s后,定时器T2的常闭触点断开,线圈Y3断电 (东西向绿灯熄灭),同时定时器T2的常开触点接通,线圈Y4通电 (东西向黄灯发光)。76s后,定时器T3的常闭触点用来瞬间断开所有定时器,使程序进入下1个循环周期。系统在定时器常开、常闭触点控制下正常运行。

2.2 使用步进指令进行编程

步进指令是专门为顺序控制设计提供的指令,该指令必须与状态继电器配合使用[1]。

使用步进指令进行编程时,红绿灯控制程序不仅要求南北向和东西向同时输出,而且两方向红绿灯的循环周期必须相同,均为76S,所以采用并行结构流程控制。程序在初始状态S0等待,X0接通后,步S20和S30同时变为活动步,并行结构流程的2个分支同时工作,线圈Y0和Y5同时通电 (南北向绿灯和东西向红灯同时发光),定时器T0和T3开始定时。30s后,T0的常开触点闭合,状态S20转移到状态S21,使线圈Y1通电 (南北向黄灯发光),上一状态S20控制的线圈Y0自动断电 (南北向绿灯自动熄灭)。再过3s,T1常开触点闭合,状态转移到S22。随着转移条件的满足,另一并行分支也在进行状态转移。76S后,T2和T5常开触点同时闭合,状态由S22和S32返回到初始状态S0,使程序重复上述过程。

使用步进指令编程的关键是绘制状态流程图 (见图2),根据状态流程图可以编写出对应的梯形图程序。

图1 基本指令控制的梯形图

图2 步进指令对应的状态流程图

2.3 使用传送指令进行编程

传送指令的功能是将源数据传送到指定的目标操作数中。使用传送指令进行编程的具体方法如下。通过传送指令把十进制常数传送到目标元件K2Y0中,传入的源数据不同,目标元件K2Y0中各位元件的状态也就不同,通过改变源数据从而对各输出元件的状态进行有序控制。使用传送指令控制的梯形图如图3所示。当M0为ON时,将源操作数K33传送到目标操作元件K2Y0中,此时,Y7~Y0的状态分别为00100001(线圈Y0和Y5通电),定时器T0、T1、T2和T3同时开始定时。30s后,T0的常开触点闭合,执行下1条传送指令,将源操作数K34传送到目标操作元件K2Y0中,Y7~Y0的状态变为00100010(线圈Y1和Y5通电)。33s后,T1的常开触点接通,传送指令将源操作数K12传送到目标操作元件K2Y0中,Y7~Y0的状态为00001100(线圈Y2和Y3通电)。73s后,定时器T2的常开触点接通,把十进制常数K20传送到目标元件K2Y0中,使得Y7~Y0的状态变为00010100(线圈Y2和Y4通电)。76s后,T3的常闭触点断开使所有定时器复位,同时重新执行第1条传送指令,使程序循环执行。

2.4 使用比较指令进行编程

比较指令有3个操作数,其中2个源操作数和1个目标操作数,该指令是将2个源操作数的代数值进行比较,把比较结果送到目标操作数中[1]。使用比较指令进行编程的具体方法如下。为了让程序运行周期为76S的循环过程,利用辅助继电器M8013和计数器C0相结合产生76s的时钟脉冲。把C0当前值和十进制常数作为2个源操作数进行比较,根据比较结果进行不同的输出控制。使用比较指令控制的梯形图如图4所示。当M0的常开触点接通时,计数器C0的当前值从0开始增加,当C0当前值未达到30时,M1为ON,线圈Y0通电 (南北向绿灯发光),置位线圈Y5(东西向红灯发光)。当C0当前值等于30时,M2为ON,驱动线圈Y1(南北向黄灯发光)。当C0当前值大于30时,M3为ON,线圈Y1仍然通电 (南北向黄灯保持发光)。因为M1、M2和M3不能同时为ON状态,所以线圈Y1通电时,Y0断电。在第2条比较指令中,当C0当前值等于33时,M5被接通,线圈Y3通电 (东西向绿灯发光),线圈Y2被置位 (南北向红灯发光),同时复位Y5(东西向红灯熄灭)。C0当前值大于33时,M6被接通,与M5被接通一样,可使东西向绿灯和南北向红灯持续发光。同样道理,在第3条比较指令中,C0当前值等于大于73时,辅助继电器M8和M9分别为ON状态,驱动线圈Y4输出 (东西向黄灯发光)。76S后计数器C0的常开触点接通,复位C0当前值和线圈Y2,使计数器C0重新开始计数,程序进入下1个循环过程。

图3 使用传送指令控制的梯形图

图4 使用比较指令控制的梯形图

2.5 使用触点比较指令进行编程

触点比较指令相当于一个触点,执行触点比较指令时,对2个源数据进行比较,满足比较条件则该触点接通,其逻辑结果为1;如果不满足比较条件则该触点断开,逻辑结果为0[2]。

使用触点比较指令进行编程时,首先利用辅助继电器M8013与计数器C0相结合产生76s的周期脉冲,再利用触点比较指令对不同时段进行控制。使用触点比较指令控制的梯形图如图5所示。Y0(南北向绿灯)要求在0s至30s时间段内通电,可通过使用触点比较指令 “LD<C0 K30”来实现。当C0当前值小于30时该触点接通,从而使线圈Y0通电 (南北向绿灯发光),同时置位Y5(东西向红灯发光)。同理,当C0当前值大于或等于30且小于33时,接通线圈Y1(南北向黄灯发光);当C0的值大于或等于33时,线圈 Y2置位 (南北向红灯发光),Y5复位 (东西向红灯熄灭),同时线圈 Y3通电(东西向绿灯发光),持续到C0当前值等于73;当C0大于或等于73时,线圈Y4通电 (东西向黄灯发光)。计数器C0当前值增大到76时,通过C0常开触点复位,使程序进入下1个循环周期。

2.6 使用区间比较指令编程

区间比较指令有4个操作数,可将1个源操作数中的数据与另外2个源操作数间的数据进行代数比较,比较结果存放在目标操作数中[3]。该编程方法与使用比较指令编程的方法相似,其不同之处是使用区间比较指令编程比较的不是某个值而是几个区间。使用区间比较指令控制的梯形图如图6所示。在图6中,2条区间比较指令可产生与图4中3条比较指令同样的效果。如执行第1条区间比较指令时,当C0当前值小于30时,M1接通,线圈Y0通电,同时置位线圈Y5。C0当前值大于等于30小于等于33时,M2为ON,线圈Y1通电。C0当前值大于33时,M3被驱动,线圈Y3通电,同时置位Y2,复位Y5。当C0当前值介于73和76之间时,M5被接通,线圈Y4通电,并产生与图4同样的效果。

图5 使用触点比较指令控制的梯形图

图6 使用区间比较指令控制的梯形图

3 结 语

通过交通信号灯控制程序的编写,介绍了6种不同指令的编程方法。基本指令编程的特点是要使用较多的定时器,而步进指令编程思路简单明了,但其梯形图比较复杂。由于每种指令都有其对应的应用规则,因而在实际应用中应根据系统控制要求选择合适指令进行编程。

[1]瞿彩萍,张伟林.PLC应用技术[M].北京:人民邮电出版社,2007.

[2]隋振有,隋风香.可编程控制器应用解析 [M].北京:中国电力出版社,2006.

[3]肖明耀.PLC原理与应用[M].北京:中国劳动社会保障出版社,2007.

猜你喜欢
黄灯梯形图信号灯
交通信号灯
信号灯为什么选这三个颜色?
基于VC的梯形图编程软件开发技术
继电器电路转为梯形图教学经验浅谈
安装在路面的交通信号灯
无知之幕与博弈:从“黄灯规则”看博弈论的一种实践方案
一种可编程逻辑控制程序的竞态检测方法
还有94分
PLC梯形图程序设计技巧及应用
考虑黄灯驾驶行为的城市交叉口微观仿真