交通灯控制系统实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目实训报告课程名称:虚拟仪器应用
项目名称:交通灯控制系统
班级:
姓名:
学号:
指导教师:
日期:
项目信息表
交通灯控制系统项目报告
第1章概述
1.1引言
实现路口信号灯控制系统的方法很多,可以用可编程控制器PLC、单片机、标准逻辑器件等实现。
但其功能修改及调试都需要硬件电路的支持,在一定程度上增加了设计难度。
提出基于labview的智能交通灯控制系统,可实现3种颜色灯的交替点亮、各种信息提示、实时监测交通灯工作状态等功能。
不仅编程简单、灵活、可靠性高,而且成本低、具有良好的经济效益。
为实现交通系统智能控制提供了一条新途径。
1.2设计思路
近年来,在快速城市化进程和经济发展的影响下,城市交通迅速增长,交通问题成为困扰许多大城市发展的通病,已成为日趋严峻的国际性问题。
其中,十字路口则是造成交通堵塞的主要”瓶颈”。
世界发达国家都在积极探索如何最大限度地发挥道路通行能力,尽量减少交通堵塞造成的各种损失。
实现十字路口信号灯控制系统的方法有很多,可以通过可编程控制器PLC、单片机、标准逻辑器件等方案实现。
但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了设计难度,提高了设计成本。
随着计算机技术的迅猛发展,虚拟仪器技术在数据采集、自动测试和仪器控制领域得到广泛应用,促进并推动测试系统和测量控制的设计方法与实现技术发生了深刻的变化。
”软件就是仪器”已经成为测试与测量技术发展的重要标志。
我们设计了基于labview的智能交通灯控制系统,该系统可实现3种颜色灯的交替点亮,通过信息提示指挥车辆和行人安全通行,并能实时监测交通灯工作状态。
该系统不仅编程简单、灵活、具有较高的可靠性,而且成本低、具有良好的经济效益。
1.3基本功能
1.东向红灯亮,北向绿灯亮,时长6s;
2.东向红灯亮,北向黄灯亮,时长3s;
3.东向绿灯亮,北向红灯亮,时长6s;
4.东向黄灯亮,北向红灯亮,时长3s;
第2章系统前面板设计
2.1 交通灯制作
1.控件自定义
在Labview中,在控件编辑窗口可以重新定义控件的很多属性,如颜色、名称、图片修饰、文本内容等。
最常用的控件格式为自定义类型。
制作自定义控件步骤如下:
(1)在前面板中选择一个圆形布尔控件,右击属性。
将图像为真时的颜色改为绿色,为假时显示白色同时将标签改为不显示。
按同样的方法分别做出黄灯控件绿灯控件。
(2)将做好的三个控件排列好,讲控件全部选中按图示方法所以将三个控件组合起来,以便在拖动时不乱。
2.2 控件组合为簇
(1)在前面板,放置簇的外框,控件选板—新式—数组矩阵与簇—簇。
将做好的一组控件拖到簇中,为了美观可以选中簇右击选择自动调整大小。
(2)需要注意的是,簇元素的逻辑顺序与其在簇内的位置无关。
右击簇外框,从快捷菜单选择‘重新排序簇中控件’,查看菜单下方所显示的数值,需要将哪一个簇元素设置为当前的数值顺序,就用鼠标点击那个簇元素,就可将其设定为所指定的逻辑顺序。
完成后点击确定,若不需要则点击取消。
包含两个方向的簇中元素的顺序,最好与外部硬件资源所对应的交通灯相一致:将元素按照顺时针方向定义顺序,如下图。
2.3 表格
使用表格控件来存放显示每个方向交通灯的逻辑列表及时长信息。
选择控件选板—系统—列表表格和树—系统表格,放置表格控件于前面板中。
修改标签为‘逻辑序列’。
右击表格控件,显示项中勾选‘列首’。
在表格的列首中,填写每一列所代表的信号灯,如ER,EY等。
逻辑信息”1“表示真即灯亮,”0“表示假即灯灭。
时长(s)表示没种状态所保持的时间。
表格中存放的数据类型为字符串型的二维数组,故其在程序框图中的接线端子的颜色为枚红色。
作为列首的提示信息,不会直接出现在接线端子所传递的数据中,若想在程序框图中引用表格列首信息,需要使用属性节点来调用。
第3章系统功能实现
3.1 数组操作
字符串不方便做数值运算,故需要将表格的字符型数组转化数值类型的数组。
在Labview中很多函数都可以做多种类型的运算,如加减乘除,可以针对标量也可以针对数组、簇、波形等数据。
同样的,数值类型的转换函数,既可以针对单个标量,也可以作用于整个数组。
函数”十进制数字符串至树枝转换“可以完成字符串的转换。
转换后得到的整形数组中,包含两组信息,一组为交通灯的逻辑信息,一组为延时信息。
故需要将两组
信息分离。
使用函数”删除数组元素“。
将二维数组连接至函数的‘N维数组’连线端口,列的索引设定为6,含义为将数组中的第七列数值删除(即时长信息删除)函数输出的两个数组,上册为逻辑列二维数组,下侧为时长信息一维数组。
时长信息给定等待函数,控制每次循环执行的时长,即保持每个状态的时长。
3.2 For循环
Labview中的for循环和文本语言中的for循环功能一致的,for循环执行N次数,当i=N-1时,循环结束。
For循环需要有确定的循环执行次数。
故必须连接for循环的总数接线端子N,或者将启用索引数组连接至for循环外边框。
For循环和while循环一样,也可以使用条件接线端,右击for循环外框,选择’条件接线端’即可使用停止按钮控制for循环的运行。
3.3 自动索引
or循环的自动索引功能是默认打开的,while循环也有自动索引功能,需要用户自己打开。
如将数组连接至for循环,可启用自动索引读取和处理数组中的每个元素。
将数组从外部节点连接到循环边框上的输入隧道,启用输入隧道的自动索引后,从第一个元素开始诶次均有一个数组元素进入循环。
一个使用细节,如果有多个隧道启用自动索引,或总数N接线已连接数值,实际的循环次数将取其中较小的值。
3.4 数据I/O(DO)
图 2-6 数字信号输出(DO)
交通灯模块中使用的LED灯,可使用DO通道输出的TTL信号来控制其亮灭。
故本实验中需要了解数字信号输出DO的编程方式。
本实验系统中,使用的数字通道,产生高低电平,控制LED灯的亮灭,完成对交通灯的逻辑控制。
如上图所示,为LabVIEW中数据采集中关于数字信号的生成。
数据采集的编程流程:配置资源–时钟设定 - 开始采集 - 读/写操作 - 关闭资源。
本实验流程:创建数字通道,数字通道写操作,暂停操作,清除资源,简单错误处理。
其中数字通道写操作的VI放置在for循环中。
数字信号(例如,晶体管—晶体管逻辑(TTL)兼容信号)有两个离散电平—高电平和低电平。
TTL兼容信号具有下列特性:
0 V至0.8 V = 逻辑低
2 V至5 V = 逻辑高
最大上升/下降时间 = 50 ns
3.5 交通灯控制逻辑实现
按照交通灯控制逻辑序列,编写VI程序框图如下所示,将字表格中字符串形式的逻辑序列表格转换为数组形式,再将数组转换为布尔数组,提取出时间信息,用于设置等待时长,取出数组中的逻辑序列,控制各个灯的点亮和熄灭。
第4章调试测试
4.1 操作步骤:
1.将所需传感器模块安置在对应的nextboard平台槽位上(数字信号槽位);
2.使用nextpad检测模块是否正常使用;
3.nextwire_20模块的LED灯是否工作正常;
4.完成配置硬件资源通道号、硬件搭接;
4.2 运行调试,实验运行结果如下:
状态1 状态2
状态3 状态4
第5章总结
交通灯是城市交通中不可缺少的重要工具,是城市交通秩序的重要保障。
本次试验就是实现常见十字路交通灯功能。
之前用单片机C语言完成过此项功能,这次用这学期刚接触的labview来编程序实现,该控制系统设计简单、性能稳定、实时性强。
系统目前仍存在不完善之处:不能根据十字路口不同方向车流情况及停车拥堵情况实现自动控制车辆左、右转弯以缓解交通负荷的功能。
但是,随着系统设计及程序的进一步扩展,将会逐步完善,从而真正实现路口信号灯智能化、人性化控制。
通过这次的试验,更深入的了解了labview软件的使用,掌握了硬件电路的设计方法,在老师和同学的帮助下成功的完成了此次试验。
温馨提示:最好仔细阅读后才下载使用,万分感谢!。