基于比较指令的交通灯PLC控制程序设计
2019-12-17李言武
李言武
(安徽工贸职业技术学院,安徽 淮南 232007)
目前,采用PLC控制交通灯显示是一种较为稳定可靠的手段,但由于交通灯显示是双向的、同时按照一定的规律变化,在设计控制程序时容易造成逻辑关系不够清晰,可读性差,不易理解掌握。为此,本文根据交通灯显示PLC控制要求,给出交通灯显示控制时序图,利用计数器指令计数秒脉冲实现交通灯显示计时,利用比较指令比较计数器的当前计数值驱动交通灯显示。
图1 交通灯显示示意图
1 交通灯显示PLC控制要求
交通灯显示PLC控制如图1所示,在十字路口,东西方向为R1红、Y1黄、G1绿3组6盏指示灯,南北方向为R2红、Y2黄、G2绿3组6盏指示灯。当某个方向绿灯点亮(另一方向红灯点亮)20s后,黄灯以2s周期闪烁3次,然后红灯点亮(另一方向绿灯点亮、黄灯闪烁),如此循环显示。
2 PLC控制程序设计与解析
2.1 设计思路
根据控制要求,交通灯显示控制时序图如图2所示,其中某个方向红黄绿指示灯显示的一个完整周期为50s。
图2 交通灯显示控制时序图
在图2中,东西方向绿灯点亮20s,黄灯闪烁5s,红灯点亮25秒;对应南北方向红灯点亮25s,绿灯点亮20秒,黄灯闪烁5s。因此,程序设计采用的思路如下:
(1)任务周期设定。利用50s计数器进行计时,即计数器指令的计数脉冲周期为1s,当前值每增1所需时间为1s ,计数器预置值设为50。
(2)指示灯显示控制。通过比较计数器指令比较计数器的当前计数值,在达到设定值时分别驱动绿灯、黄灯、红灯3色交通灯显示。① 东西方向: 0≤“C0”当前值≤19,绿灯显示;“C0”当前值=20、22、24,黄灯显示,达到间隔2s闪烁;25≤“C0”当前值≤50,红灯显示。②南北方向:0≤“C0”当前值≤24,红灯显示;25≤“C0”当前值≤44,绿灯显示;“C0”当前值=45、47、49,黄灯显示,达到间隔2s闪烁。
2.2 主要指令格式及功能
程序设计主要运用整数比较指令和增计数器指令,其格式及功能如表1所列。
表1 主要指令格式及功能
2.3 编程元件分配及功能
编程元件分配及功能如表2所列。
表2 编程元件分配及功能
2.4 程序设计与解析
依据交通灯显示控制时序图,利用整数比较指令和增计数器指令编写控制程序如图3所示。
图3 交通灯显示PLC控制梯形图
在图3中,I0.0为启停开关SB1,控制交通灯显示状态,程序解析如下:(1)网络1程序段,实现50s计时器功能:特殊寄存器SM0.5触点提供周期T为1s、占空比50%的时钟脉冲;增计数器C0实现“1s时钟脉冲”的计数,总数为50个,即50s计数;中间寄存器M0.0触点实现增计数器C0复位(C0当前计数值置0,输出状态位置0)。
(2)网络2程序段,实现循环控制:增计数器C0的触点实现输出线圈M0.0状态为置1,即M0.0=1,使中间寄存器M0.0的触点接通。
(3)网络3~5程序段,实现东西方向交通灯显示控制:增计数器C0当前值为0~19绿灯点亮;增计数器C0当前值为20~24黄灯闪烁3次;增计数器C0当前值为25~50红灯点亮。
(4)网络6~8程序段,实现南北方向交通灯显示控制:增计数器C0当前值为0~24红灯点亮;增计数器C0当前值为25~44绿灯点亮;增计数器C0当前值为45~49黄灯闪烁3次。
2.5 运行调试
连接好 PLC外围接线,确认无误后接通电源,使交通灯显示PLC控制线路处于正常工作状态,程序控制功能的调试步骤如下:①编写梯形图程序,编译后将梯形图程序下载到PLC中。②闭合启停开关SB1,交通灯以设定好的工作方式运行显示。③运行期间,断开启停开关SB1,交通灯立即停止显示。
2.6 拓展应用
对交通灯显示PLC控制程序进行修改,实现黄灯闪烁次数由3次变为5次,红灯和黄灯显示要求不变,则交通灯显示控制时序图如图4所示,其中某个方向红黄绿指示灯显示的一个完整周期为58s。
图4 交通灯显示控制时序图
在图4中,交通灯依据计数器C0当前值的显示状态设定如下:
(1)东西方向。0≤“C0”当前值≤19,绿灯显示;“C0”当前值=20、22、24、26、28,黄灯显示;29≤“C0”当前值≤58,红灯显示。
(2)南北方向。0≤“C0”当前值≤28,红灯显示;29≤“C0”当前值≤48,绿灯显示;“C0”当前值=49、51、53、55、57,黄灯显示。
3 结束语
实践表明,采用此方法设计交通灯PLC控制程序优点如下:
(1)逻辑关系清晰。根据交通灯显示控制要求,给出红黄绿指示灯工作时序图,程序设计逻辑关系清晰。
(2)可读性好。利用计数器指令实现秒计数进行计时,利用比较指令比较计数器当前计数值驱动交通灯显示,显示状态转换关系明确。
(3)便于掌握。程序设计主要使用的计数器指令和比较指令功能简单,易于掌握和灵活应用。