第一篇:交通灯控制系统改进方案
交通灯控制系统
应电0935班
肖文亮
当今,社会上的汽车越来越多,并且交通事故愈演愈烈,为了要减少此类的事情的发生,必须加强道路的管理。因此、合理设计交通灯控制系统可以大大减少此类事情发生。
一:总体方案。
1.假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北绿灯。
2.东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态。3.南北绿灯通车,东西红灯。过一段时间转状态。
4.南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。
二:硬件设计。
三:优点及不足。
可以通过外部中断0检测按键的次数来选择南北,东西各通车的时间,这要可以通过模式来选择当车流量不同时,各方向的通车时间。
不足之处是,必须的要人为地观察车流量和选择模式。四:改进方案。
1、在个十字路口安装摄像头实时的把各通道的车流量情况反应给监控室。
2、独立按键应进行软件消抖,在外部中断中加上消抖程序。if(P3^2==0){ delay(5);if(P3^2==0){
if(mode==5)
mode=0;
else mode++;} while(P3^2==0);delay(5);while(P3^2==0);}
第二篇:基于单片机的交通灯控制系统
单片机原理及系统课程设计报告
基于单片机的交通灯控制系统 引言
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域具有广泛的应用。本文设计了基于单片机的交通灯控制系统以AT89C51单片机为核心芯片,通过控制三色LED灯的亮灭来控制各车道的通行。设计方案及原理
本系统由AT89C51单片机、红、黄、绿LED交通信号灯、共阴极数码管、紧急通车开关等模块组成该电路具有设计简单,显示亮度高,能耗小,可靠性高灯特点。其总体设计框图如图1所示。
复位电路七段数码管倒计时显示电路AT89C51晶振电路A、B车道LED显示电路按键电路
图1 系统总体设计方框图
2.1 系统设计
交通灯控制系统主要控制A,B两车道的交通,以AT89C51单片机为核心芯片,通过控制三色LED灯的亮灭来控制各车道的通行;另外通过3个按键来模拟各车道有无车辆的情况和有紧急车辆的情况。根据设计要求,制定总体设计思想如下:
(1)用AT89C51单片机控制交通灯电路,晶振采用12MHz。(2)用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。
(3)有紧急车辆通过时,按下K3开关使A、B车道均为红灯,禁行20s。此时,
第三篇:智能交通灯控制系统 毕业设计总结
无
锡
职
业
技
术
学
院
毕业设计总结 毕业设计总结
本次毕业设计,我的指导老师是李丽老师,首先,我们进行总体规划,包括控制系统组成、控制系统工作过程、控制系统功能、控制系统技术指标;之后,进行了硬件系统设计,学习单片机原理与接口技术,网上搜索下载AT89C51、数码显示管、点亮LED技术资料,并学习消化,设计硬件控制原理,用Protel绘图软件设计出控制器原理图,并对控制器硬件进行了调试;接着,研究设计六线四相步进电机控制方式和方法;而后,规划出了控制软件结构图,设计出了主控模块程序流程图、各功能模块程序流程图,并逐功能模块编辑、编译、连接、测试控制程序,在编程过程中,我一边学习C51程序设计,一边熟悉Keil C51开发平台,一边编程设计控制程序;最后,对控制程序进行了测试和修改完善。
本次毕业设计创新点一是提出了六线四相步进电机启动加速控制技术方案,二是研究了六线四相步进电机各种运行控制方式。
本次毕业设计体会一是深刻认识到专业理论对指导实践工作的重要性,上学期间,专业理论学的不够扎实,不够深入、不够全面、不懂用途;二是现有的技能不能胜任实际工作,实际动手能力欠缺;三是不知道如何进行课题需求分析、课题总体规划;四是不知道如何进行软件结构设计;五是实际编程经验欠缺,缺少排除故障能力。所以,我们即将毕业的大学生需要与时俱进,克服不足,勤学苦练,迎接挑战,为国争光。
在该课题后续研究设计时,应重视步进电机特性研究,重视控制方法、控制方式研究;增加联网控制功能;增加LCD数据显示功能。
在这篇毕业设计论文即将完成的时候,我突然意识到自己的校园生活即将画上一个句号。当我踏上工作岗位的时候即将面对的是完全不同于之前十几年校园生活的新的旅程。如果说之前的日子是学会如何做人、如何做事、如何认识和理解世界、如何学会感恩,那么,今后的日子,我将真正成为一个有用的人,一个能与别人合作或者独立完成任务的人,一个真正懂得世界、懂得感恩并真正付出的人。
我要感谢我存在的这个世界赋予我的认知和理解,感谢父母给了我机会认识并引导抚育我这个世界,感谢二十几年来成百上千的老师与朋友让我能够在正确的道路上走得更远并且激励我成为一个坚定信念不做让自己后悔事情的人。
“穷则独善其身,达则兼济天下”,古训教导我们不做自私人,懂得尽己所能,知恩图报。一切来之不易,珍惜且能尽其用,算是在自己能力有限的时候对社会,对生活最大的慰藉和回报。今年的二月份,在经历了将近一年的苦苦寻觅之后,我终于遇到了一个适合自己发展的岗位,也终于能够将全部的精力投入到这次毕业设计之中。首先我非常感谢我的导师李老师对我的支持和宽容,因为这次毕设的题目来源于我在生活的灵感,并且有着强烈的愿望,期望它能够成为现实,期望在离开校园之前见证自己所学是有用的学问。李老师在我的毕设过程中给予我鼎力的支持,因而有机会实现这个愿望。同时,在漫长的设计和实践过程中,身边的同学和朋友都给了我很多支持和帮助,这也证明了即便是一个人的任务也需要集体的力量,庆幸自己在离开校园之前学到了很多今后可能及其重要的东西。
回顾自己的学习历程,感觉今天的生活与状态是由一系列的偶然与必然串联成的结果。在这个过程中自己承受了比别人更多的挫折,但也学到了更多的感悟,获得了比别人更大的成就。我体会了人生的正弦曲线,知道很多情况下结果是之前很长时间的累积,很有趣的是,我的这些感悟在大学的专业课学习的时候得到
/ 2
无
锡
职
业
技
术
学
院
毕业设计总结
了理论上描述的一致。因为我的每一次成功的获得都比别人晚了许多,但也都是在最关键的时候比别人得到了更多的收获,也比别人体会到更多的付出后的充实。很庆幸自己在过去岁月中每一次困难抉择中做出的选择,以及在不断地激励中为目标而不断奋斗的坚持。
“来到社会做什么?毕业后做一个怎样的人?”虽然即将毕业,但是这两个问题将常伴左右。第一个问题的答案已经深深写在自己三年大学生活的美好回忆之中,而第二个问题,将是我今后不断反省自我并思考未来的信条。
学无止境,无论每天往返于公司和住所,还是奔走于实验室与宿舍之间,作为一个职员或者学生,无时无刻不在接受新的知识、观点、理念。即便是创造社会价值,也仍需要不断补给养分。于此,作为刚刚走出校园的人,我将牢记于心。
最后,真诚期望每一个已经出现在或是即将出现在我不同人生阶段却是同一条生活轨迹的师长、亲友、战友们,能够始终拥有美好幸福的生活状态、以及一颗热忱于探索未知和真理的心,同时也是对自己未来生活的期冀。
第四篇:基于FPGA的交通灯控制系统
基于FPGA的交通灯控制系统
摘 要:针对现实中越来越严重的城市交通拥堵现象,提出了一种城市十字路口 交通信号灯控制与FPGA实现的新方法。利用超高速硬件描述语言VHDL设计十字路口交通信号灯控制器,实现主干道和支干道的交通控制功能,实时监测每个路口的车辆通行情况,以此更改主干道与支干道的交通灯状态,提高十字路口的车辆通行效率,最后通过硬件测试实现具体功能。
关键词:VHDL FPGA 交通灯控制
一、概述 1.1 设计要求:
(1)设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。(2)红、绿、黄发光二极管作信号灯。
(3)主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。
(4)主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。
(5)在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。1.2 课题分析
(1)主支道路分4种行车状况,无无、无有、有无、有有,此信号从传感器输出信号得到,作为系统的输入,在本系统中用拨片开关模拟状态输入。(2)主支道路有4种亮灯情况:主绿支红、主黄支红、支绿主红、支黄主红。(3)只要支路无车通行,则一直为主绿支红状态,只有支路有车通过才会进入支绿主红状态。
(4)系统可以根据行车情况智能进入相应亮灯情况,提高了十字路口的通车效率。
(5)用6个发光二极管作为主道路绿黄红三灯显示输出和支道路绿黄红三灯显示输出;用4个数码管分别作为主支道路倒计时显示输出。
二、系统方案设计 2.1 整体模块设计 2.1.1整体设计思路
整体设计思路为:交通灯控制系统主要包括两个模块,即交通灯控制模块和倒计时显示模块。首先利用教学实验箱提供的1HZ时钟信号,实现计数功能,1s计数一次,同时设定主干道、支干道的交通灯的具体亮灯时间,并将计数结果传给倒计时模块,以实现倒计时模块显示的时间与交通灯的状态相对应。在交通灯控制过程中,用状态机来实现,设定主干道、支干道的行车检测信号,用以进行状态变换。每进入一个状态就开始计数,该状态结束则清零,在下个状态开始时重新计数,实现每个状态亮灯时间不同的需求。2.1.2 整体设计框架
根据系统要求可知:
输入信号为系统时钟,主支道路行车情况模拟输入。输出信号为主支道路红绿黄显示信号、倒计时显示。
2.2 交通灯状态转换模块设计
由原理分析可知系统需要在4种亮灯状态之间切换,所以需要设计一个状态转换控制模块,而倒计时显示则来自内部的计数,所以状态转换模块内部包含了计数模块,又因为二极管模拟红绿灯显示是和亮灯状态紧密相关的,所以相应的二极管控制整合在状态转换控制模块内部。故在状态转换模块内部包含3个子模块,分别为计数模块、状态转换控制模块、二极管实现模块。最后因为数码管动态显示模块需要根据亮灯状态决定输出,所以本模块还需增加计数输出以及状态输出信号。该模块计数采用1hz的时钟脉冲,以期实现交通灯的秒数设置。
状态循环控制: S0:主干道绿灯支干道红灯45s S1:主干道黄灯支干道红灯5s S2:主干道红灯支干道绿灯25s S3:主干道红灯支干道黄灯5s
2.3 数码管倒计时显示模块设计
由于此模块采用了数码管的动态显示原理,所以代码量较多,单独分为一个模块,又因为动态显示倒计时间是与亮灯状态紧密相关的,所以必须从交通灯状态控制模块获取相关的状态输入,引出状态输出信号,以供本模块使用。又因为动态显示需要较高的时钟频率,所以本模块的时钟信号采用系统输入信号,而非之前计数的1hz时钟。4位数码管的前两位显示支干道的亮灯时间,后两位显示主干道的亮灯时间。
三、硬件设计 3.1总体设计框图
由clk1hz输入,用来计数,道路行车检测由pass_state1,pass_state0控制,pass_state1为主干道行车检测,pass_state0为支干道行车检测。1为有车通行,0为无车通行,输出为数码管的位选信号和段选信号,以及6个二极管控制信号。
3.2交通灯状态转换模块
输入计数时钟和行车控制,输出主干道以及支干道红绿黄三灯的控制信号,最重要的是将此时的计数时间输出给倒计时模块,并将4个状态的状态输出信号给倒计时模块,实现在对应的状态下显示对应的时间。3.3数码管倒计时显示模块
为了实现数码管动态扫描,此模块的时钟使用较高频率,输入上级电路的计数输出和状态输出,给出位选以及段选信号的控制。
四、硬件测试 4.1 引脚分配
Pin_3——1hz时钟输入,用于状态控制模块 Pin_33——24khz时钟输入,用于数码管动态扫描 Pin_4——K1 支干道行车模拟输入 Pin_5——K2 主干道行车模拟输入
Pin_6,Pin_8,Pin_10——数码管位选信号
Pin_11,Pin_12,Pin_13,Pin_14,Pin_15,Pin_30,Pin_31——数码管段选信号
Pin_34——R1主干道红灯 Pin_35——Y1 主干道黄灯 Pin_36——G1 主干道绿灯 Pin_37——R2 支干道红灯 Pin_39——Y2 支干道黄灯 Pin_40——G2 支干道绿灯
4.2 仿真结果 交通灯显示:
倒计时显示:
S1状态(支红主黄):
S0状态(支红主绿)
五、总结
基本实现了设计所需的功能,能根据道路行车情况实现交通灯的智能控制,并将红绿灯通行的时间通过数码管直观显示出来,较好的完成了十字路口交通情况的模拟。
六、附录
6.1 顶层模块源程序
LIBRARY IEEE;---自动交通灯控制系统顶层描述 USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TRAFFIC_LIGHT_CONTROL IS PORT(CLK1hz,CLK1khz : IN STD_LOGIC;---信号时钟输入
PASS_STATE : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---主支通道的通车情况,低位为支通道高位为主通道,0为无车1为有车
ALIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---主干道红绿黄灯控制信号 BLIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---支干道红绿黄灯控制信号 SEL : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---输出数码管位选信号 LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)---输出数码管段选信号);END ENTITY TRAFFIC_LIGHT_CONTROL;
ARCHITECTURE behav OF TRAFFIC_LIGHT_CONTROL IS COMPONENT STATE_CONTROL PORT(CLK1 : IN STD_LOGIC;---1Hz时钟信号输入
PASS_STATE_IN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---主支通道的通车情况,低位为支通道高位为主通道,0为无车1为有车
A_LIGHT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---主干道红绿黄灯控制信号 B_LIGHT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---支干道红绿黄灯控制信号 CNTOUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);---已计数时间输出
STATEOUT : OUT STD_LOGIC_VECTOR(1 DOWNTO 0)---状态输出,传递给数码显示模块);END COMPONENT;
COMPONENT DISPLAY PORT(CLK2 : IN STD_LOGIC;---1KHz时钟信号输入
CNTIN : IN STD_LOGIC_VECTOR(5 DOWNTO 0);---亮灯已过时间输入 STATEIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---状态输入
LED7SOUT : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);---数码管段选信号输出 SELOUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)---数码管位选信号输出);END COMPONENT;
SIGNAL MSTATE : STD_LOGIC_VECTOR(1 DOWNTO 0);---中间信号传递通车状态
SIGNAL MCNT : STD_LOGIC_VECTOR(5 DOWNTO 0);---中间信号传递亮灯已计数时间
BEGIN---例化语句
U1: STATE_CONTROL PORT MAP(CLK1=>CLK1hz,PASS_STATE_IN=>PASS_STATE,B_LIGHT=>BLIGHT, A_LIGHT=>ALIGHT, CNTOUT=>MCNT, STATEOUT=>MSTATE);U2: DISPLAY PORT MAP(CLK2=>CLK1khz,CNTIN=>MCNT,STATEIN=>MSTATE,LED7SOUT=>LED7S,SELOUT=>SEL);
END ARCHITECTURE behav;6.2 交通灯状态转换模块源程序
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY STATE_CONTROL IS GENERIC(GREENA_CNT:INTEGER:=45;---主通道绿灯亮的时间45s
YELLOWA_CNT:INTEGER:=5;---主通道黄灯亮的时间5s
GREENB_CNT:INTEGER:=25;---支通道绿灯亮的时间25s
YELLOWB_CNT:INTEGER:=5);---支通道黄灯亮的时间5s PORT(CLK1 : IN STD_LOGIC;---1Hz时钟信号输入
PASS_STATE_IN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---主支通道的通车情况,低位为支通道高位为主通道,0为无车1为有车
A_LIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---主干道红绿黄灯控制信号 B_LIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);---支干道红绿黄灯控制信号 CNTOUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0);---已计数时间输出 STATEOUT : OUT STD_LOGIC_VECTOR(1 DOWNTO 0)---剩余时间输出显示);END ENTITY STATE_CONTROL;
ARCHITECTURE behav OF STATE_CONTROL IS TYPE STATES IS(ST0,ST1,ST2,ST3);---4个状态分别为【主绿支红45s、主黄支红5s、支绿主红25s、支黄主红5s、】
SIGNAL STATE : STATES:=ST0;---初始化状态为状态0 SIGNAL CNT_EN : STD_LOGIC:='0';---计数使能控制信号,初始不计数
SIGNAL CNT : STD_LOGIC_VECTOR(5 DOWNTO 0):=“000001”;---因为初始不计数,但已过一个周期,所以初值为1 BEGIN
PROCESS(CLK1)BEGIN IF CLK1'EVENT AND CLK1 = '0' THEN
IF(CNT_EN='1')THEN---计数模块
CNT<=CNT+1;ELSE
CNT<=“000001”;---若溢出则计数使能为0,CNT重新赋值为1 END IF;CASE STATE IS---状态循环控制模块 WHEN ST0 => IF(CNT=GREENA_CNT)THEN---主绿支红若计数满45s则根据主支通道的通车情况决定转入下一个状态
CASE PASS_STATE_IN IS
WHEN “00” => STATE<=ST0;
WHEN “01” => STATE<=ST1;
WHEN “10” => STATE<=ST0;
WHEN “11” => STATE<=ST1;
WHEN OTHERS => NULL;
END CASE;ELSE
STATE<=ST0;---若计数未满则为原来状态
END IF;WHEN ST1 =>---主黄支红若计数满5s则根据主支通道的通车情况决定转入下一个状态
IF(CNT=YELLOWA_CNT)THEN
CASE PASS_STATE_IN IS
WHEN “00” => STATE<=ST2;
WHEN “01” => STATE<=ST2;
WHEN “10” => STATE<=ST2;
WHEN “11” => STATE<=ST2;
WHEN OTHERS => NULL;
END CASE;ELSE
STATE<=ST1;---若计数未满则为原来状态 END IF;WHEN ST2 =>---支绿主红若计数满25s则根据主支通道的通车情况决定转入下一个状态
IF(CNT=GREENB_CNT)THEN
CASE PASS_STATE_IN IS
WHEN “00” => STATE<=ST3;
WHEN “01” => STATE<=ST2;
WHEN “10” => STATE<=ST3;
WHEN “11” => STATE<=ST3;
WHEN OTHERS => NULL;
END CASE;ELSE
STATE<=ST2;---若计数未满则为原来状态
END IF;
WHEN ST3 =>---支黄主红若计数满5s则根据主支通道的通车情况决定转入下一个状态
IF(CNT=YELLOWA_CNT)THEN
CASE PASS_STATE_IN IS
WHEN “00” => STATE<=ST0;
WHEN “01” => STATE<=ST0;
WHEN “10” => STATE<=ST0;
WHEN “11” => STATE<=ST0;
WHEN OTHERS => NULL;
END CASE;ELSE
STATE<=ST3;---若计数未满则为原来状态
END IF;END CASE;END IF;CNTOUT<=CNT;END PROCESS;
PROCESS(STATE)BEGIN CASE STATE IS WHEN ST0 =>---状态0时主绿支红
A_LIGHT<=“010”;B_LIGHT<=“100”;CNT_EN<='1';STATEOUT<=“00”;---将当前状态传递给数码管显示模块,以供后续使用 IF(CNT=GREENA_CNT)THEN CNT_EN<='0';END IF;
WHEN ST1 =>---状态1时主黄支红
A_LIGHT<=“001”;B_LIGHT<=“100”;CNT_EN<='1';STATEOUT<=“01”;---将当前状态传递给数码管显示模块,以供后续使用 IF(CNT=YELLOWA_CNT)THEN CNT_EN<='0';END IF;
WHEN ST2 =>---状态2时支绿主红
A_LIGHT<=“100”;B_LIGHT<=“010”;CNT_EN<='1';STATEOUT<=“10”;---将当前状态传递给数码管显示模块,以供后续使用 IF(CNT=GREENB_CNT)THEN CNT_EN<='0';END IF;
WHEN ST3 =>---状态3时支黄主红
A_LIGHT<=“100”;B_LIGHT<=“001”;CNT_EN<='1';STATEOUT<=“11”;---将当前状态传递给数码管显示模块,以供后续使用 IF(CNT=YELLOWB_CNT)THEN CNT_EN<='0';END IF;
END CASE;END PROCESS;END behav;6.3 数码管显示倒计时源程序
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY DISPLAY IS PORT(CLK2 : IN STD_LOGIC;---时钟输入
CNTIN : IN STD_LOGIC_VECTOR(5 DOWNTO 0);---已计数输入,来自状态控制模块 STATEIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0);---状态输入,来自状态控制模块 LED7SOUT : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);---数码管段选信号输出 SELOUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)---数码管位选信号输出);END ENTITY DISPLAY;ARCHITECTURE behav OF DISPLAY IS BEGIN PROCESS(CLK2)VARIABLE BITSEL : STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN-----------------------------位选信号循环模块----------------IF CLK2'EVENT AND CLK2='0' THEN CASE BITSEL IS WHEN “000” => BITSEL:=“001”;SELOUT<=“001”;WHEN “001” => BITSEL:=“010”;SELOUT<=“010”;WHEN “010” => BITSEL:=“011”;SELOUT<=“011”;WHEN “011” => BITSEL:=“000”;SELOUT<=“000”;WHEN OTHERS => NULL;END CASE;END IF;-------------------------动态显示模块-----------------CASE STATEIN IS WHEN “00” =>---主绿支红状态 OK CASE BITSEL IS WHEN “000” =>---主绿支红状态 点亮支干道十位数字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;---01 50 WHEN “000010” => LED7SOUT <= “1100110”;---02 49 WHEN “000011” => LED7SOUT <= “1100110”;WHEN “000100” => LED7SOUT <= “1100110”;WHEN “000101” => LED7SOUT <= “1100110”;WHEN “000110” => LED7SOUT <= “1100110”;---06 45 WHEN “000111” => LED7SOUT <= “1100110”;WHEN “001000” => LED7SOUT <= “1100110”;WHEN “001001” => LED7SOUT <= “1100110”;WHEN “001010” => LED7SOUT <= “1100110”;WHEN “001011” => LED7SOUT <= “1100110”;---11 40 WHEN “001100” => LED7SOUT <= “1001111”;WHEN “001101” => LED7SOUT <= “1001111”;WHEN “001110” => LED7SOUT <= “1001111”;WHEN “001111” => LED7SOUT <= “1001111”;WHEN “010000” => LED7SOUT <= “1001111”;---16 35 WHEN “010001” => LED7SOUT <= “1001111”;WHEN “010010” => LED7SOUT <= “1001111”;WHEN “010011” => LED7SOUT <= “1001111”;WHEN “010100” => LED7SOUT <= “1001111”;WHEN “010101” => LED7SOUT <= “1001111”;---21 30 WHEN “010110” => LED7SOUT <= “1011011”;WHEN “010111” => LED7SOUT <= “1011011”;WHEN “011000” => LED7SOUT <= “1011011”;WHEN “011001” => LED7SOUT <= “1011011”;WHEN “011010” => LED7SOUT <= “1011011”;---26 25 WHEN “011011” => LED7SOUT <= “1011011”;WHEN “011100” => LED7SOUT <= “1011011”;WHEN “011101” => LED7SOUT <= “1011011”;WHEN “011110” => LED7SOUT <= “1011011”;WHEN “011111” => LED7SOUT <= “1011011”;---31 20 WHEN “100000” => LED7SOUT <= “0000110”;WHEN “100001” => LED7SOUT <= “0000110”;WHEN “100010” => LED7SOUT <= “0000110”;WHEN “100011” => LED7SOUT <= “0000110”;WHEN “100100” => LED7SOUT <= “0000110”;---36 15 WHEN “100101” => LED7SOUT <= “0000110”;WHEN “100110” => LED7SOUT <= “0000110”;WHEN “100111” => LED7SOUT <= “0000110”;WHEN “101000” => LED7SOUT <= “0000110”;WHEN “101001” => LED7SOUT <= “0000110”;---41 10 WHEN “101010” => LED7SOUT <= “0111111”;WHEN “101011” => LED7SOUT <= “0111111”;WHEN “101100” => LED7SOUT <= “0111111”;WHEN “101101” => LED7SOUT <= “0111111”;---45 06 WHEN OTHERS => NULL;END CASE;WHEN “001” =>---主绿支红状态 点亮支干道个位数字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;---01 50 WHEN “000010” => LED7SOUT <= “1101111”;---02 49 WHEN “000011” => LED7SOUT <= “1111111”;WHEN “000100” => LED7SOUT <= “0000111”;WHEN “000101” => LED7SOUT <= “1111101”;WHEN “000110” => LED7SOUT <= “1101101”;WHEN “000111” => LED7SOUT <= “1100110”;---07 44 WHEN “001000” => LED7SOUT <= “1001111”;WHEN “001001” => LED7SOUT <= “1011011”;WHEN “001010” => LED7SOUT <= “0000110”;WHEN “001011” => LED7SOUT <= “0111111”;WHEN “001100” => LED7SOUT <= “1101111”;---12 39 WHEN “001101” => LED7SOUT <= “1111111”;WHEN “001110” => LED7SOUT <= “0000111”;WHEN “001111” => LED7SOUT <= “1111101”;WHEN “010000” => LED7SOUT <= “1101101”;WHEN “010001” => LED7SOUT <= “1100110”;---17 34 WHEN “010010” => LED7SOUT <= “1001111”;WHEN “010011” => LED7SOUT <= “1011011”;WHEN “010100” => LED7SOUT <= “0000110”;WHEN “010101” => LED7SOUT <= “0111111”;WHEN “010110” => LED7SOUT <= “1101111”;---22 29 WHEN “010111” => LED7SOUT <= “1111111”;WHEN “011000” => LED7SOUT <= “0000111”;WHEN “011001” => LED7SOUT <= “1111101”;WHEN “011010” => LED7SOUT <= “1101101”;WHEN “011011” => LED7SOUT <= “1100110”;---27 24 WHEN “011100” => LED7SOUT <= “1001111”;WHEN “011101” => LED7SOUT <= “1011011”;WHEN “011110” => LED7SOUT <= “0000110”;WHEN “011111” => LED7SOUT <= “0111111”;WHEN “100000” => LED7SOUT <= “1101111”;---32 19 WHEN “100001” => LED7SOUT <= “1111111”;WHEN “100010” => LED7SOUT <= “0000111”;WHEN “100011” => LED7SOUT <= “1111101”;WHEN “100100” => LED7SOUT <= “1101101”;WHEN “100101” => LED7SOUT <= “1100110”;---37 14 WHEN “100110” => LED7SOUT <= “1001111”;WHEN “100111” => LED7SOUT <= “1011011”;WHEN “101000” => LED7SOUT <= “0000110”;WHEN “101001” => LED7SOUT <= “0111111”;---41 09 WHEN “101010” => LED7SOUT <= “1101111”;WHEN “101011” => LED7SOUT <= “1111111”;WHEN “101100” => LED7SOUT <= “0000111”;WHEN “101101” => LED7SOUT <= “1111101”;---45 06 WHEN OTHERS => NULL;END CASE;WHEN “010” =>---主绿支红状态 点亮主干道十位数字 OK CASE CNTIN IS WHEN “000000” => LED7SOUT <= “1111101”;---00 46 WHEN “000001” => LED7SOUT <= “1100110”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1100110”;WHEN “000100” => LED7SOUT <= “1100110”;WHEN “000101” => LED7SOUT <= “1100110”;---05 41 WHEN “000110” => LED7SOUT <= “1100110”;WHEN “000111” => LED7SOUT <= “1001111”;WHEN “001000” => LED7SOUT <= “1001111”;WHEN “001001” => LED7SOUT <= “1001111”;WHEN “001010” => LED7SOUT <= “1001111”;---10 36 WHEN “001011” => LED7SOUT <= “1001111”;WHEN “001100” => LED7SOUT <= “1001111”;WHEN “001101” => LED7SOUT <= “1001111”;WHEN “001110” => LED7SOUT <= “1001111”;WHEN “001111” => LED7SOUT <= “1001111”;---15 31 WHEN “010000” => LED7SOUT <= “1001111”;WHEN “010001” => LED7SOUT <= “1011011”;WHEN “010010” => LED7SOUT <= “1011011”;WHEN “010011” => LED7SOUT <= “1011011”;WHEN “010100” => LED7SOUT <= “1011011”;---20 26 WHEN “010101” => LED7SOUT <= “1011011”;WHEN “010110” => LED7SOUT <= “1011011”;WHEN “010111” => LED7SOUT <= “1011011”;WHEN “011000” => LED7SOUT <= “1011011”;WHEN “011001” => LED7SOUT <= “1011011”;---25 21 WHEN “011010” => LED7SOUT <= “1011011”;WHEN “011011” => LED7SOUT <= “0000110”;WHEN “011100” => LED7SOUT <= “0000110”;WHEN “011101” => LED7SOUT <= “0000110”;WHEN “011110” => LED7SOUT <= “0000110”;---30 16 WHEN “011111” => LED7SOUT <= “0000110”;WHEN “100000” => LED7SOUT <= “0000110”;WHEN “100001” => LED7SOUT <= “0000110”;WHEN “100010” => LED7SOUT <= “0000110”;WHEN “100011” => LED7SOUT <= “0000110”;---35 11 WHEN “100100” => LED7SOUT <= “0000110”;---36 10 WHEN “100101” => LED7SOUT <= “0111111”;WHEN “100110” => LED7SOUT <= “0111111”;WHEN “100111” => LED7SOUT <= “0111111”;WHEN “101000” => LED7SOUT <= “0111111”;WHEN “101001” => LED7SOUT <= “0111111”;WHEN “101010” => LED7SOUT <= “0111111”;WHEN “101011” => LED7SOUT <= “0111111”;WHEN “101100” => LED7SOUT <= “0111111”;WHEN “101101” => LED7SOUT <= “0111111”;---45 01 WHEN OTHERS => NULL;END CASE;WHEN “011” =>---主绿支红状态 点亮主干道个位数字 OK CASE CNTIN IS WHEN “000000” => LED7SOUT <= “1111101”;---00 46 WHEN “000001” => LED7SOUT <= “1101101”;---01 45 WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN “000110” => LED7SOUT <= “0111111”;---06 40 WHEN “000111” => LED7SOUT <= “1101111”;WHEN “001000” => LED7SOUT <= “1111111”;WHEN “001001” => LED7SOUT <= “0000111”;WHEN “001010” => LED7SOUT <= “1111101”;WHEN “001011” => LED7SOUT <= “1101101”;---11 35 WHEN “001100” => LED7SOUT <= “1100110”;WHEN “001101” => LED7SOUT <= “1001111”;WHEN “001110” => LED7SOUT <= “1011011”;WHEN “001111” => LED7SOUT <= “0000110”;WHEN “010000” => LED7SOUT <= “0111111”;---16 30 WHEN “010001” => LED7SOUT <= “1101111”;WHEN “010010” => LED7SOUT <= “1111111”;WHEN “010011” => LED7SOUT <= “0000111”;WHEN “010100” => LED7SOUT <= “1111101”;WHEN “010101” => LED7SOUT <= “1101101”;---21 25 WHEN “010110” => LED7SOUT <= “1100110”;WHEN “010111” => LED7SOUT <= “1001111”;WHEN “011000” => LED7SOUT <= “1011011”;WHEN “011001” => LED7SOUT <= “0000110”;WHEN “011010” => LED7SOUT <= “0111111”;---26 20 WHEN “011011” => LED7SOUT <= “1101111”;WHEN “011100” => LED7SOUT <= “1111111”;WHEN “011101” => LED7SOUT <= “0000111”;WHEN “011110” => LED7SOUT <= “1111101”;WHEN “011111” => LED7SOUT <= “1101101”;---31 15 WHEN “100000” => LED7SOUT <= “1100110”;WHEN “100001” => LED7SOUT <= “1001111”;WHEN “100010” => LED7SOUT <= “1011011”;WHEN “100011” => LED7SOUT <= “0000110”;WHEN “100100” => LED7SOUT <= “0111111”;---35 10 WHEN “100101” => LED7SOUT <= “1101111”;WHEN “100110” => LED7SOUT <= “1111111”;WHEN “100111” => LED7SOUT <= “0000111”;WHEN “101000” => LED7SOUT <= “1111101”;WHEN “101001” => LED7SOUT <= “1101101”;WHEN “101010” => LED7SOUT <= “1100110”;WHEN “101011” => LED7SOUT <= “1001111”;WHEN “101100” => LED7SOUT <= “1011011”;WHEN “101101” => LED7SOUT <= “0000110”;---45 01 WHEN OTHERS => NULL;END CASE;
WHEN OTHERS => NULL;END CASE;-----------WHEN “01” =>---主黄支红状态 OK CASE BITSEL IS WHEN “000” =>---主黄支红状态 点亮支干道十位数字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;WHEN “000010” => LED7SOUT <= “0111111”;WHEN “000011” => LED7SOUT <= “0111111”;WHEN “000100” => LED7SOUT <= “0111111”;WHEN “000101” => LED7SOUT <= “0111111”;WHEN OTHERS => NULL;END CASE;WHEN “001” =>---主黄支红状态 点亮支干道个位数字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN OTHERS => NULL;END CASE;WHEN “010”=>---主黄支红状态 点亮主干道十位数字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;WHEN “000010” => LED7SOUT <= “0111111”;WHEN “000011” => LED7SOUT <= “0111111”;WHEN “000100” => LED7SOUT <= “0111111”;WHEN “000101” => LED7SOUT <= “0111111”;WHEN OTHERS => NULL;END CASE;WHEN“011” =>---主黄支红状态 点亮主干道个位数字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN OTHERS => NULL;END CASE;WHEN OTHERS => NULL;END CASE;-----------------------WHEN “10” =>---支绿主红状态 OK CASE BITSEL IS WHEN “000” =>---支绿主红状态 点亮支干道十位数字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1011011”;---01 25 WHEN “000010” => LED7SOUT <= “1011011”;WHEN “000011” => LED7SOUT <= “1011011”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “1011011”;WHEN “000110” => LED7SOUT <= “1011011”;---06 20 WHEN “000111” => LED7SOUT <= “0000110”;WHEN “001000” => LED7SOUT <= “0000110”;WHEN “001001” => LED7SOUT <= “0000110”;WHEN “001010” => LED7SOUT <= “0000110”;WHEN “001011” => LED7SOUT <= “0000110”;---11 15 WHEN “001100” => LED7SOUT <= “0000110”;WHEN “001101” => LED7SOUT <= “0000110”;WHEN “001110” => LED7SOUT <= “0000110”;WHEN “001111” => LED7SOUT <= “0000110”;WHEN “010000” => LED7SOUT <= “0000110”;---16 10 WHEN “010001” => LED7SOUT <= “0111111”;WHEN “010010” => LED7SOUT <= “0111111”;WHEN “010011” => LED7SOUT <= “0111111”;WHEN “010100” => LED7SOUT <= “0111111”;WHEN “010101” => LED7SOUT <= “0111111”;---21 05 WHEN “010110” => LED7SOUT <= “0111111”;WHEN “010111” => LED7SOUT <= “0111111”;WHEN “011000” => LED7SOUT <= “0111111”;WHEN “011001” => LED7SOUT <= “0111111”;---25 01 WHEN OTHERS => NULL;END CASE;WHEN “001” =>---支绿主红状态 点亮支干道个位数字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;---01 25 WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN “000110” => LED7SOUT <= “0111111”;---06 20 WHEN “000111” => LED7SOUT <= “1101111”;WHEN “001000” => LED7SOUT <= “1111111”;WHEN “001001” => LED7SOUT <= “0000111”;WHEN “001010” => LED7SOUT <= “1111101”;WHEN “001011” => LED7SOUT <= “1101101”;---11 15 WHEN “001100” => LED7SOUT <= “1100110”;WHEN “001101” => LED7SOUT <= “1001111”;WHEN “001110” => LED7SOUT <= “1011011”;WHEN “001111” => LED7SOUT <= “0000110”;WHEN “010000” => LED7SOUT <= “0111111”;---16 10 WHEN “010001” => LED7SOUT <= “1101111”;WHEN “010010” => LED7SOUT <= “1111111”;WHEN “010011” => LED7SOUT <= “0000111”;WHEN “010100” => LED7SOUT <= “1111101”;WHEN “010101” => LED7SOUT <= “1101101”;---21 05 WHEN “010110” => LED7SOUT <= “1100110”;WHEN “010111” => LED7SOUT <= “1001111”;WHEN “011000” => LED7SOUT <= “1011011”;WHEN “011001” => LED7SOUT <= “0000110”;---25 01 WHEN OTHERS => NULL;END CASE;WHEN “010” =>---支绿主红状态 点亮主干道十位数字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1001111”;---01 30 WHEN “000010” => LED7SOUT <= “1011011”;---02 29 WHEN “000011” => LED7SOUT <= “1011011”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “1011011”;WHEN “000110” => LED7SOUT <= “1011011”;---06 25 WHEN “000111” => LED7SOUT <= “1011011”;WHEN “001000” => LED7SOUT <= “1011011”;WHEN “001001” => LED7SOUT <= “1011011”;WHEN “001010” => LED7SOUT <= “1011011”;WHEN “001011” => LED7SOUT <= “1011011”;---11 20 WHEN “001100” => LED7SOUT <= “0000110”;WHEN “001101” => LED7SOUT <= “0000110”;WHEN “001110” => LED7SOUT <= “0000110”;WHEN “001111” => LED7SOUT <= “0000110”;WHEN “010000” => LED7SOUT <= “0000110”;---16 15 WHEN “010001” => LED7SOUT <= “0000110”;WHEN “010010” => LED7SOUT <= “0000110”;WHEN “010011” => LED7SOUT <= “0000110”;WHEN “010100” => LED7SOUT <= “0000110”;WHEN “010101” => LED7SOUT <= “0000110”;---21 10 WHEN “010110” => LED7SOUT <= “0111111”;WHEN “010111” => LED7SOUT <= “0111111”;WHEN “011000” => LED7SOUT <= “0111111”;WHEN “011001” => LED7SOUT <= “0111111”;---25 06 WHEN OTHERS => NULL;END CASE;WHEN“011” =>---支绿主红状态 点亮主干道个位数字 OK CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;---01 30 WHEN “000010” => LED7SOUT <= “1101111”;---02 29 WHEN “000011” => LED7SOUT <= “1111111”;WHEN “000100” => LED7SOUT <= “0000111”;WHEN “000101” => LED7SOUT <= “1111101”;WHEN “000110” => LED7SOUT <= “1101101”;WHEN “000111” => LED7SOUT <= “1100110”;---07 24 WHEN “001000” => LED7SOUT <= “1001111”;WHEN “001001” => LED7SOUT <= “1011011”;WHEN “001010” => LED7SOUT <= “0000110”;WHEN “001011” => LED7SOUT <= “0111111”;WHEN “001100” => LED7SOUT <= “1101111”;---12 19 WHEN “001101” => LED7SOUT <= “1111111”;WHEN “001110” => LED7SOUT <= “0000111”;WHEN “001111” => LED7SOUT <= “1111101”;WHEN “010000” => LED7SOUT <= “1101101”;WHEN “010001” => LED7SOUT <= “1100110”;---17 14 WHEN “010010” => LED7SOUT <= “1001111”;WHEN “010011” => LED7SOUT <= “1011011”;WHEN “010100” => LED7SOUT <= “0000110”;WHEN “010101” => LED7SOUT <= “0111111”;WHEN “010110” => LED7SOUT <= “1101111”;---22 09 WHEN “010111” => LED7SOUT <= “1111111”;WHEN “011000” => LED7SOUT <= “0000111”;WHEN “011001” => LED7SOUT <= “1111101”;---25 06 WHEN OTHERS => NULL;END CASE;
WHEN OTHERS => NULL;END CASE;------------
WHEN “11” =>---支黄主红状态 OK CASE BITSEL IS WHEN “000” =>---支黄主红状态 点亮支干道十位数字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;WHEN “000010” => LED7SOUT <= “0111111”;WHEN “000011” => LED7SOUT <= “0111111”;WHEN “000100” => LED7SOUT <= “0111111”;WHEN “000101” => LED7SOUT <= “0111111”;WHEN OTHERS => NULL;END CASE;WHEN “001” =>---支黄主红状态 点亮支干道个位数字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN OTHERS => NULL;END CASE;WHEN “010” =>---支黄主红状态 点亮主干道十位数字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “0111111”;WHEN “000010” => LED7SOUT <= “0111111”;WHEN “000011” => LED7SOUT <= “0111111”;WHEN “000100” => LED7SOUT <= “0111111”;WHEN “000101” => LED7SOUT <= “0111111”;WHEN OTHERS => NULL;END CASE;WHEN “011” =>---支黄主红状态 点亮主干道个位数字 CASE CNTIN IS WHEN “000001” => LED7SOUT <= “1101101”;WHEN “000010” => LED7SOUT <= “1100110”;WHEN “000011” => LED7SOUT <= “1001111”;WHEN “000100” => LED7SOUT <= “1011011”;WHEN “000101” => LED7SOUT <= “0000110”;WHEN OTHERS => NULL;END CASE;
WHEN OTHERS => NULL;END CASE;
------------END CASE;END PROCESS;END behav;
第五篇:基于PLC交通灯控制系统毕业设计概要
毕业设计题目: 交通灯毕业论文 系别:电气与信息工程学院 专业 : 电气自动化 班级:电气自动化10-01 姓名: 指导教师: 【摘要】:交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。为了实现交通道路的管理,力求交通管理先进性、科学化。用可编程控制器实现交通灯管制的控制系统,以及该系统软、硬件设计方法,实验证明该系统实现简单、经济,能够有效地疏导交通,提高交通路口的通行能力。分析了现代城市交通控制与管理问题的现状,结合交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的城市交通灯控制系统的PLC设计方案。可编程序控制器在工业自动化中的地位极为重要,广泛的应用于各个行业。随着科技的发展,可编程控制器的功能日益完善,加上小型化、价格低、可靠性高,在现代工业中的作用更加突出
1.1交通信号灯的作用和意义
随着社会经济的发展,城市交通问题越来越引起人们的关注。人,车,路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测,交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥中最重要的组成部分。
随着城市机动车量的不断增加,许多大城市如北京,上海,南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速公路,在高速公路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高
速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路和普通道路耦合出交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道,城区与周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题, 根据交通等工艺控制要求和特点,我们采用了日本三菱公司FX2N_48MR。三菱PLC 有小型化,高速度,高性能等特点,三菱可编程控制器指令丰富,可以接各种输入,输出扩充设备,有丰富的特殊扩展设备,其中的模拟输入设备和通信设备是系统所必需的,能够方便地联网通信。本系统就是应用可编程控制器(PLC对十字路口交通控制等实现控制。本系统采用PLC是基于以下四个原因:(1PLC具有很高的可靠性,抗干扰能力。通常的平均无障碍时间都在30万小时以上;(2系统设计周期短,维护方便,改造容易,功能完善,实用性强;(3干扰能力强,具有硬件故障的自我检查功能,目前空中各种电磁干扰日益严重,为了保证交通控制的可靠稳定,我们选择了能够在恶劣的电磁干扰环境下正常工作的PLC;(4近年来PLC的性能价格比有较大幅度的提高,是的实际应用成为可能。【关键词】:PLC可编程控制器、交通型号灯、可靠性高。【目录】: 关键词(01 第1章交通信号控制系统(02 1.1十字路口交通灯控制实际情况(04 1.1.1南北向(列和东西向(行主干道(04
1.1.2南北向和东西向人行道(04 1.2结合十字路口交通灯的路况模拟控制实验(04 1.2.1南北向(列和东西向(行主干道(04 1.2.2南北向和东西向行人道(04 1.2.3盲人安全通道控制和手动控制车流量(04 1.3流程图(05 第2章可编程控制器程序设计(07 2.1可编程控制器选择(07 2.2十字路口交通灯模拟控制时序图(07 2.3可编程控制器IO端口分配(10 2.4程序设计(10 第3章总结(13 3.1难点分析(13 3.1.1行人道红绿灯和主干道红绿灯的对应关系(13 3.1.2盲人脉冲按键(13 3.1.3手动车流控制按键的控制方式(13 3.1.4交通灯闪亮问题(13 3.2调试错误与修改方法(13 3.3PLC智能化控制交通灯的方法(13
3.4收获与感悟(14 致谢(14 参考文献(14 第1章交通灯信号控制系统 1.1 十字路口交通灯控制实际情况
a.南北主干道:直行绿27S、直行绿闪3S、左转绿10S、左转绿闪3S、黄2S、红45S;b.东西人行道:红45S、绿27S、绿闪3S、红60S;c.东西主干道:红45S、直行绿27S、直行绿闪3S、左转绿10S、左转绿闪3S、黄2S;d.南北人行道:绿27S、绿闪3S、红60S;e.循环控制方式;f.交通灯变化顺序表(单循环周期90秒。1.1.1 南北向(列和东西向(行主干道
南北向(列和东西向(行主干道均设有直行绿灯27S,直行绿灯闪亮3S,左行绿灯10S,左转绿闪3S,黄灯2S和红灯45S。当南北主干道红灯点亮时,东西主干道应依次点亮直行绿灯,直行绿灯闪,左转绿灯,左转绿灯闪亮和黄灯;反之,当东西主干道红灯点亮时,南北主干道依次点亮直行绿灯,直行绿灯闪,左转绿灯,左转绿灯闪亮和黄灯。1.1.2南北向和东西向人行道
南北向和东西向人行道均设有通行绿灯和禁行红灯。南北人行道通行绿灯应在南北主干道直行绿灯点亮时点亮,当南北主干道直行绿灯闪亮时南北行人道绿灯也
要对应闪亮,其它时间为红灯。东西人行道通行绿灯于东西主干道直行绿灯点亮时点亮,当东西主干道直行绿灯闪亮是东西行人道绿灯也要对应闪亮,其它时间为红灯。
1.2结合十字路口交通灯的路况模拟控制实验
在PLC交通灯模拟模块中,主干道东西南北每面都有3个控制灯,分别为: ●禁止通行灯(亮时为红色 ●准备禁止通行灯(亮时为黄色 ●直通灯(亮时为绿色
另外行人道东西南北每面都有2个控制灯,分别为: ●禁止通行灯(亮时为红色 ●直通灯(亮时为绿色
结合十字路口交通灯实际情况设计交通灯模拟控制系统如下: 当交通灯系统启动开关接通时。1.2.1南北向(列和东西向(行主干道
南北向(列和东西向(行主干道均设有绿灯 10S,绿灯闪亮2S(亮0.1 灭0.1,黄灯2S和红灯14S。当南北主干道红灯点亮时,东西住干道应依次点亮绿灯,绿灯闪亮,黄灯,反之,当东西主干道红灯点亮时,南北主干道依次点亮绿灯,绿灯闪,黄灯。
1.2.2南北向和东西向行人道
南北向和东西向行人道均设为通行绿灯和禁行红灯。南北人行道通行绿灯应在南北主干道绿灯点亮时点亮,当南北主干道绿灯闪亮和黄灯点亮时南北行人道绿灯也要对应闪亮,其它时间为红灯。东西行人道通行绿灯于东西主干道绿灯点亮是点
亮,当东西主干道绿灯闪亮和黄灯点亮时东西行人道绿灯也要对应闪亮,其它时间为红灯。
1.2.3盲人安全通道控制和手动控制车流量
除此之外另设两个功能,使用10个脉冲开关。实现让盲人可以方便通过十字路口和手动控制车流量。其中8个安装在人行道的两边当东西方向行走的盲人要过马路的时候,按下脉冲开关东西向行人道绿灯亮起,南北向主干道红灯闪亮,延迟10秒恢复原来的控制系统。南北向脉冲开关对应东西向功能相同,另外两个脉冲开可以控制车流量,当东西向主干道等待车量较多的时候,按下东西向控制脉冲开关,东西向主干道延长绿灯点亮时间到15秒。东西向行人道绿灯也要对应延长。南北向脉冲开关对应东西向功能相同。
1.3 流程图 启动开关
东西绿灯亮 东西绿灯闪 东西黄灯亮 东西红灯亮 东西主干道 10S 2S 2S 14 南北红灯亮 南北绿灯亮 南北绿灯闪 南北黄灯亮 南北主干道 14S 10S 2S 2S 启动开关
南北红灯亮 南北绿灯 南北绿灯闪 14S 10S 4S 东西绿灯亮 东西绿灯闪 东西红灯亮 10S 4S 14S 东西行人道 南北行人道 结束 结束
交通灯模拟控制系统流程图 启动开关 按下脉冲开关
原来控制循环系统
行人道绿灯点亮,主干道红灯闪亮 结束 Y N 启动开关 按下脉冲开 关
对应方向绿灯点亮时间延长到15秒,另一方向红灯点亮延长到15秒 再次按下启动 开关
按此次控制方式进行循环 原来方式控制系统 结束 Y N Y
N 手动控制车流量流程图 第2章 可编程控制器程序设计 2.1 可编程控制器选择
本次交通灯设计用的是来自OMRON 的CPM1A-30CDR-A 可编程控制器。产品规格:CPM1A CPU 单元CPM1A 在编程环境等方面,它不仅具备了以往的小型PLC 所具有的功能,尽可能使安装空间最小化,并实现了具有10点-100点输入输出点数的弹性构成。而且还可 连接可编程控制终端,创造了尚无前例的灵活运用。它不仅可以替代继电器控制柜,就是作为小型控制器或在传感器应用中,亦能适应生产现场不同的需求AC 电源输入,继电器输出,能加扩展单元。
2.2 十字路口交通灯模拟控制时序图 启动 行人道绿灯 2S 10S 盲人脉冲按键控制时序图 和此行人道相交叉的主干道红灯 启动 南北红 东西绿
东西红 南北绿 4S 14S 启动
南北红东西绿 东西黄东西红 南北绿南北黄 10S 2 S 2 S 10S 2 S 2 S 14S 10S 2 S 2 S
ON OFF 十字路口主干道交通灯模拟控制时序图 南北红东西绿 东西黄东西红 南北绿南北黄 15 2 S 2 S 10S 2 S 2 S 14S 15 2 S 2 S 东西向绿灯延时时序图 启
动 OFF ON 2.3 可编程控制器I/O 端口分配 启动开关 0000 停止开关
0001 东西主干道绿灯 1000 东西主干道黄灯 1001 东西主干道红灯 1002 南北主干道绿灯 1003 南北主干道黄灯 1004 南北主干道红灯 1005 东西行人道绿灯 1100 东西行人道红灯 1101 南北行人道绿灯
1102 南北行人道红灯 1103 东西向绿灯延迟控制按钮 0004 南北向绿灯延迟控制按钮 0005 东西盲人脉冲按钮
0003 南北盲人脉冲按钮 0002 2.4 程序设计 0 LD 0000 1 OR 20300 2 AND-NOT 0001 3 AND-NOT 20000 4 OUT 20300 LD 20300 6 AND-NOT 20001 7 AND-NOT 20203 8 OUT 20301 PLC 0000 0001 1000 1001 1002 1003 1004 1005 1100 1101 1102 1103 交通灯控制PLC I/O 端口 0002 0003 0004 0005 9 LD 20301 10 OR TIM 005 11 OR TIM 027 12 OR 20000 13 AND-NOT TIM 002 14 AND-NOT 20103 15 AND-NOT 0001 16 OUT 20000 17 TIM 000 #100 18 TIM 001 #120 19 TIM 002 #140 20 LD TIM 002 21 OR 20001 22 OR TIM 018 23 AND-NOT TIM 005 24 AND-NOT 0001 25 AND-NOT 20203 26 OUT 2001 TIM 003 #100 28 TIM 004 #120 29 TIM 005 #140 30 LD 0004 31 OR 20100 32 AND-NOT 0000 33 AND-NOT 0005 34 AND-NOT 0001 35 OUT 20100 36 LD 20100 37 AND 20105 38 OUT 20102 39 LD TIM 005 40 OR TIM 027 41 OUT 20105 42 LD 20102 43 OR 20103 44 AND-NOT 0001 45 AND-NOT TIM 018 46 OUT 20103 47 TIM 016 #150 48 TIM 017 #170 49 TIM 018 #190 50 LD 0005 51 OR 20200 52 AND-NOT 0001 53 AND-NOT 0000 54 AND-NOT 0004 55 OUT 20200 56 LD TIM 002 57 LD TIM 018 58 OUT 20205 59 LD TIM 20200 60 AND 20205 61 OUT 20202 62 LD 20202 63 OR 20203 64 AND-NOT 0001 65 AND-NOT 027 66 OUT 20203 67 TIM 025 #150 68 TIM 026 #170 69 TIM 027 #190 70 LD 20000 71 AND-NOT TIM 000 72 LD 20103 73 AND-NOT TIM 016 74 OR LD 75 AND-NOT 0001 76 OUT 20002 77 LD TIM 000 78 AND-NOT TIM 001 79 LD TIM 016 80 AND-NOT TIM 017 81 OR LD 82 AND-NOT 20004 83 AND-NOT 0001
OUT 20003 85 TIM 006 #002 86 LD TIM 006 87 OR TIM 008 88 OR TIM 010 89 OR TIM 009 90 OR 20004 91 AND-NOT TIM 007 92 AND-NOT 0001 93 OUT 20004 94 TIM 007 #002 95 LD 20002 96 OR 20003 97 AND-NOT 0001 98 AND-NOT 20009 99 OUT 1000 100 LD TIM 001 101 AND-NOT TIM 002 102 LD TIM 017 103 AND-NOT TIM 018 104 OR LD 105 AND-NOT 20009 106 AND-NOT 0001 107 OUT 1001 108 LD 20000 109 AND-NOT TIM 002 110 LD 20103 111 AND-NOT TIM 018 112 OR LD 113 AND-NOT 20009 114 AND-NOT 0001 115 OUT 1103 116 LD20000 117 AND-NOT TIM 002 118 LD 20103 119 AND-NOT TIM 018 120 OR LD 121 AND-NOT 20103 122 AND-NOT 0001 123 OUT 20015 124 LD 20015 125 OR 20014 126 AND-NOT 0001 127 OUT 1005 128 LD 20001 129 AND-NOT TIM 003 130 LD 20203 131 AND-NOT TIM 025 132 OR LD 133 AND-NOT 0001 134 OUT 20005 135 LD TIM 003 136 AND-NOT TIM 004 137 LD TIM025 138 AND-NOT TIM 026 139 OR LD 140 AND-NOT 20004 141 AND-NOT 0001 142 OUT 20006 143 TIM 008 #002 144 LD 20005 145 OR 20006 146 AND-NOT 20013 147 AND-NOT 0001 148 OUT 1003 149 LD TIM 004
AND-NOT TIM 005 151 LD TIM 026 152 AND-NOT TIM 027 153 OR LD 154 AND-NOT 0001 155 AND-NOT 20013 156 OUT 1101 157 LD 20001 158 AND-NOT TIM 005 159 LD 20203 160 AND-NOT TIM 027 161 OR LD 162 AND-NOT 20013 163 AND-NOT 0001 164 OUT 1101 165 LD 20001 166 AND-NOT TIM 005 167 LD 20203 168 AND-NOT TIM 027 169 OR LD 170 AND-NOT 0001 171 AND-NOT 20009 172 OUT21000 173 LD 21000 174 OR 20011 175 AND-NOT 0001 176 OUT 1002 177 LD TIM 001 178 AND-NOT TIM 002 179 LD TIM 017 180 AND-NOT TIM 018 181 OR LD 182 AND-NOT 20004 183 AND-NOT 0001 184 OUT 20007 185 TIM 009 #002 186 LD TIM 004 187 AND-NOT TIM 005 188 LD TIM 026 189 AND-NOT TIM 027 190 OR LD 191 AND-NOT 20004 192 AND-NOT 0001 193 OUT 20008 194 TIM 010 #2 195 LD 20007 196 OR 20003 197 OR 20002 198 OR 20013 199 AND-NOT 0001 200 OUT 1100 201 LD 20008 202 OR 20005 203 OR 20006 204 OR 20009 205 AND-NOT 0001 206 OUT 1102 207 LD 0002 208 OR 20009 209 AND-NOT TIM 011 210 OUT 20009 211 TIM 011 #100 212 LD 20009 213 AND-NOT 20010 214 OUT 20011 215 TIM 012 #010
216 LD TIM 012 217 OR TIM 015 218 OR 20010 219 AND-NOT TIM 013 220 OUT 20010 221 TIM 013 #010 222 LD 0003 223 OR 20013 224 AND-NOT TIM 014 225 OUT 20013 226 TIM 014 #100 227 LD 20013 228 AND-NOT 20010 229 OUT 20014 230 TIM 015 #010 231 END 215 216 217 218 219 220 221 222 223 224 225 第3章总结 3.1 难点分析
本程序在设计过程遇到了一些难点我把它整理了一下发现有以下几个问题。3.1.1行人道红绿灯和主干道红绿灯的对应关系
因为实际的红绿灯控制中行人道的红绿灯和主干道的红绿灯是有这一定的对应关系的,所以在编程前一定要理清它们,这样有利于在编程时简化程序、减少PLC不必要的运算。
3.1.2盲人脉冲按键
盲人在东西南北的行人道同时通过十字路口的情况不会经常出现,可以说是非少的,如果我们要把盲人脉冲分开东西控制和南北控制使他不影响和它没关系的主干道就可以使车辆行走更加通顺减少车辆堵塞的情况。要实现这样的功能就要在脉
冲按键按下时不影响他们的计时程序只在对应的主干道红绿灯输出程序上进行插入常闭继电器以此把输出程序断开。
3.1.3手动车流控制按键的控制方式
手动车流控制按键是对相应的主干道绿灯延长的进行控制,但不能使它在按下时使改变当时的红绿灯显示情况,如现在是南北红灯东西绿灯时按下南北绿灯延长按键就不能使它变成南北绿灯东西红灯。这就涉及到了一个请求和响应的关系。
3.1.4交通灯的闪亮
交通灯绿灯在实际运行中是要经过闪烁的,所以在设计程序中也要加入这个功能,参考了一些PLC的交通灯程序介绍时发现PLC中有一些继电器可以实现闪烁这些继电器也就是PLC内部的功能继电器,这是一种硬件实现功能的方法,虽然程序可以减少但比较死板闪烁频率不能控制。由于对PLC内部的功能继电器不太熟悉(不同型号的PLC内部功能继电器编号也不一样我想了一个用程序实现的方法(程序段在第86条~第94条指令之间,此方法可以说是软件实现功能的方法,虽然程序加长了但闪烁频率可以控制比较灵活。
3.2调试错误与修改方法
经过设计,想一次性把程序完成是非常难的,在调试中就出现了不少的错误。刚开始的时候把程序写进去然后运行却发现有些灯亮不起来而且在完成了一个周期后就循环不起来了。那时真的不知道从哪里入手,只好一条一条地检查才发现了一条指令把常闭写成了输出真正的输出口就没有收到信号了。灯虽然是亮了但仍然循环不起来。从梯形图又仔细的看了一次却看不出什么问题出来。突然想起来编程器还可以进行监控于是再在运行的同时进行监控,于是发现了在程序的第一周期一切都运行正常但再运行下去的时候第二周期就再没有反应了,包括里面的辅助继电器,最后发现原来是程序前面没有并上完成这个循环的继电器号。后来就这样把加上其他功能出现的错误也找出来了。虽然找错误是一个枯燥无味的工作,但只要你耐心的去做的话,你肯定能学到有用的动西。
3.3PLC智能化控制交通灯的方法
传统的十字路口交通控制灯,通常是事先经过交通流量的调查,运用统计的方法将两个方向红绿灯的延时预先设置好。然而实际上交通流量的变化往往是不确定的,有的路口在不同的时段甚至可能产生很大的差异。即使是经过长期运行、适用的方案,仍然会发生这样的现象:绿灯方向几乎没有什么车辆,而红灯方向却排着长队等候通过。这种流量变化的偶然性是无法建立准确模型的,统计的方法已不能适应迅猛发展的交通现状,需要有一种能够根据流量变化情况自适应控制的交通灯。而模糊控制恰恰具有这方面的优势。此系统就是应
用可编程序控制器(PLC对十字路口交通控制灯实现模糊控制传统的十字路口交通控制灯,通常是事先经过交通流量的调查,运用统计的方法将两个方向红绿灯的延时预先设置好。然而实际上交通流量的变化往往是不确定的,有的路口在不同的时段甚至可能产生很大的差异。即使是经过长期运行、适用的方案,仍然会发生这样的现象:绿灯方向几乎没有什么车辆,而红灯方向却排着长队等候通过。这种流量变化的偶然性是无法建立准确模型的,统计的方法已不能适应迅猛发展的交通现状,需要有一种能够根据流量变化情况自适应控制的交通灯。而模糊控制恰恰具有这方面的优势。
此系统就是应用可编程序控制器(PLC对十字路口交通控制灯实现模糊控制此控制系统的输入量是指十字路口各方向上车辆数的动态变化量。具体由传感器采集后送入可编程序控制器。在十字路口的四个方向(E、S、W、N的近端J(斑马线附近和远端Y(距斑马线约100米处各设置一个传感器,分别统计通过该处的车辆数。为了实现模糊控制,需要将绿灯时间分为两部分:其一是固定的10秒作为路口车辆状态参数的采集时间t1;其二是根据两个方向车辆流量变化进行模糊决策的延时t2。然后通过传感器采集后的排队等候的车辆数送往PLC进行模糊推理运算得出延迟时t2,最后由t1和t2来实现对十字路口车流量的灵活控制。
3.4收获与感悟
经过半个多月的艰苦奋斗,设计成果终于出来了,我才松了一口气,我通过采集资料、进行实际考察后,做出以上设计的方法。
查找资料也是一件繁琐的事情,虽说网上有资料但要找到一些真正有用的资料也不是一件容易的事,需要耐心查找。
花了整整十几天,终于完成了设计,不过调试的时候却发现结果和想的有所不同,通过监控和修改才得出了需要的设计。这次的设计让我们增长了实践技能,还增加了有关交通知识,这些对于我们真是受益匪浅。最后,我们觉得,不见风雨,怎么能见彩虹呢?我把体会用十个字概括:天下无难事,只怕有心人
一次又一次的学习,我们慢慢地在体会,研究和感悟,终于领会到成功的那一份喜悦,从撰写开报告,查找资料,程序设计,到整理每一个次的调试,我们学会了细心和耐心,也品尝到了酸、甜、苦、辣,无数的成功与失败更加肯定了我们的研究成果。兴趣是自发形成的,而默契是慢慢培养出来的。当前的社会,科技迅速发展,知识更新速度大大加快,只有我们共同去探索,用自己的双手去征服每一片天空,用我们新的力量去打造一片创新的领域。结束语
通过这次设计,我对PLC设计控制有了深刻的认识,对以前学的PLC又有了一定的新认识,温习了以前学的知识,就像人们常说的温故而知新嘛,但在设计的过程中,遇到了很多的问题,我和同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。
在此要感谢我的指导老师徐彬,以及李颂洲老师和甘小梅老师,感谢老师给我这样的机会锻炼。在整个毕业设计过程中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。虽然这个项目还不是很完善,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。
参考文献 [1].廖常初著.PLC 基础及应用.第 2 版.北京:机械工业出版社,2007.[2].廖常初编.S7-300/400PLC 应用技术[M].北京:机械工业出版社,2005.[3].三菱电机.FX3U,FX3UC 微型可编程控制器编程手册.2005.[4].三菱电机.FX1S,FX1N,FX2N,FX2NC 编程手册.2002.电气自动化 2012 年 5 月 16