最新labview十字交通灯最完美版.docx
《最新labview十字交通灯最完美版.docx》由会员分享,可在线阅读,更多相关《最新labview十字交通灯最完美版.docx(15页珍藏版)》请在冰豆网上搜索。
最新labview十字交通灯最完美版
labview-十字交通灯-最完美版
信电学院
(2012/2013学年第二学期)
课程名称:
虚拟仪器技术
题目:
十字交通灯
专业班级:
自动化1002
学生姓名:
王隆帅薛腾陈康
学号:
1004102(05,27,14)
考核成绩:
2013年5月20日
第1章绪论
虚拟仪器(virtualinstrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
使用虚拟仪器用户可以通过操作显示屏上的“虚拟”按钮或面板,完成对被测量的采集、分析、判断、调节和存储等功能。
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。
LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。
LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。
虚拟仪器(virtualinstrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
下面的框图反映了常见的虚拟仪器方案。
虚拟仪器的主要特点有:
尽可能采用了通用的硬件,各种仪器的差异主要是软件。
可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。
虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。
目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。
PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。
对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
目前LabVIEW的最新版本为LabVIEW2009,LabVIEW2009为多线程功能添加了更多特性,这种特性在1998年的版本5中被初次引入。
使用LabVIEW软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEWReal-Time工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。
像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件。
鉴于LabVIEW有诸多优点,这次我们将应用LabVIEW来完成一个十字路口交通灯系统的设计。
第2章总体设计方案
2.1实现的功能
本次设计要完成一个十字交通信号灯的设计,这个交通信号灯系统能为行驶的车辆指示能否通行。
这个交通路口每一个方向上的红绿黄灯按绿—黄—红的顺序循环,每个循环的时间为70s,其中通行(绿灯)的时间为30s,等待通行(黄灯)的时间为5s,禁止通行(红灯)的时间为35s。
当停止键按下时,循环停止。
2.2总体思路
此次设计可以用盏灯来指示路口的红绿灯状况,它们分别是下文中的东红、东黄、东绿、北红、北黄、北绿、南红、南黄、南绿、西红、西黄、西绿。
信号灯按一定规律循环点亮,每盏红灯亮35秒,每盏黄灯亮5秒,每盏绿灯亮30秒。
每个循环包括四个阶段。
第一阶段:
北黄、东红、南黄和西红灯点亮,时间为5秒。
第二阶段:
北红、东绿、南红和西绿灯点亮,时间为30秒。
第三阶段:
东黄、北红、西黄和南红灯点亮,时间为5秒。
第四阶段:
北绿、东红、南绿和西红灯点亮,时间为30秒。
每个循环用时70秒。
东、南、西、北四个方向分别放置一个时间显示器来显示离下一个信号到来的时间。
用计数器产生以秒为单位的计时信号,再将产生的时间信号进行分段,每到一个时间段时系统进行相应的动作。
第3章程序的设计
3.1前面板的设计
前面板是VI的用户界面。
创建VI时,通常应先设计前面板,然后在前面板上创建输入/输出任务。
本课程设计需要用十二盏灯、四个时间显示器、一个停止按键。
其中的十二盏灯,红、黄、绿各四盏,在控件选板中选择指示灯,将它放在前面板合适的位置,单击鼠标右键,更改指示灯的属性,改变指示灯的大小,做出一个合适的指示灯,依同样的步骤可以做好另外十一个,将十二个灯均分四组,每组都包含红黄绿三种颜色的灯,再用框将每组灯框起来,做成一个交通灯。
在每组交通灯合适的位置放置一个数值显示控件作为交通灯的计时器。
在前面板合适的位置放置一个开关按钮,控制循环的停止。
这样交通灯系统的前面板就做好了。
面板设计如图3-1
图3-1交通灯前面板示意图
3.2定时信号的产生
毫秒计时器在LabVIEW中的一个计时单元,它的图标与用途如图3-2所示。
在函数选板的【编程】→【定时】子选板中选择时间计数器选定该单元。
毫秒计数器对时间信号计数,要产生一个一秒为单位的时间信号,所以还得用毫秒计数值除以1000,取商得到以秒为单位的时间信号。
接线如图3-3所示:
图3-2时间计数器图3-3时间计数器接线图
3.2时间信号的分段
将得到的时间信号除以每个循环所用的时间70s,取余数。
得到的余数x的范围为0<=x<70,当0<=x<5时,条件满足,执行第一个条件结构里面的程序,北黄和东红灯点亮。
当5<=x<35时,条件满足,执行第二个条件结构里的程序,北红和东绿灯点亮。
当35<=x<40时,条件满足,东黄和北红灯点亮。
当40<=x<70时,x<40的条件不满足,执行条件结构里面为假的程序,北绿和东红灯点亮。
时间分段的程序结构如图3-4所示。
图3-4时间分段程序
这里用到了判定范围并强制转换控件,应用这个控件可以判定输入的数是否在上限和下限之间。
它的图标和作用如图3-5所示。
如果输出信号在范围之内,“?
”接口将产生一个信号,此信号恰可以输入到条件结构作为分支选择器信号。
图3-5判定范围并强制转换控件
3.3各组时间信号的动作
条件结构是LabVIEW最基本的结构之一,条件结构类似于文本编程语言中的switch语句或者if…then…else语句。
条件结构可以从【结构】子选板中创建,它的图标及功能如图3-6所示。
图3-6条件结构
在条件结构中,选择端口相当于switch语句中的“表达式”,框图表示符相当于“表达式n”。
编程时,将外部控制条件连接至选择端口上,程序运行时选择端口会判断送来的控制条件,引导选择结构执行相应框架中的内容。
在本程序中的控制条件为从判定范围并强制转换“?
”端口输出地判断值。
当各组条件满足时,将执行各条件结构里的程序。
每个条件结构里的程序基本相同。
用需要点亮的灯与布尔真常量连接,不需要点亮的与布尔假常量连接,而时间显示器则用一定的值减去输入的时间量,以实现倒计时的功能,各结构里的程序略有不同,具体程序如图3-7到图3-10所示。
第一阶段:
余数在0至5秒之间,此时东红、北黄、西红和南黄四个灯点亮,向东和西方向的时间显示器东和西灯显示为离红灯熄灭的时间(从6s到1s),向北和南方向的时间显示器北和南灯显示为离黄灯熄灭的时间(从6s到1s)。
图3-7条件结构1
第二阶段:
当北黄和南黄灯点亮5秒后,即余数大于5并且小于35时,条件结构2条件满足,北红、东绿、南红和西绿四个灯点亮,向东和向西方向的时间显示器显示离东绿和西绿(通行)熄灭的时间(从30s到1s),向北和向南方向的显示离北红和南红(禁止通行)熄灭的时间(从35s到6s)。
图3-8条件结构2
第三阶段:
当东绿和西绿灯点亮30秒后,即余数大于35并且小于40时,条件结构3条件满足,东黄和西黄灯点亮,而北红和南红未到熄灭的时间,继续点亮。
向东和向西方向的时间显示器显示离东黄和西黄(准备转换)熄灭的时间(从6s到1s),向北和向南方向的继续显示离北红和南红(禁止通行)熄灭的时间(从6s到1s)。
图3-9条件结构3
第四阶段:
当北黄和南黄灯点亮5秒后,即余数大于40并且小于70时,条件结构4为假的条件满足,北绿、东红、南绿和西红四个灯点亮,向东和向西方向的时间显示器显示离东红和西红(禁止通行)熄灭的时间(从35s到6s),向北和向南方向的显示离北绿和南绿(通行)熄灭的时间(从30s到1s)。
图3-10条件结构4
3.4循环的设计
LabVIEW中的循环结构主要通过while和for循环实现。
这两种循环的功能基本相同,但使用上有一些差别。
for循环必须确定循环次数,循环一定次数后自动退出循环;而while循环不用确定循环次数,只需要指定退出循环的条件。
本次课程设计中循环的次数不能确定,所以就用到了while循环。
LabVIEW中的while循环相当于C语言中的while循环和do…while循环。
While循环可以从程序框图中的【结构】子选板中创建,while循环包括两个端口:
条件端口和重复端口。
它的功能、图标及说明如图所示。
在此课程设计中,用按键连接条件端口,当按键按下时,循环停止。
图3-11while循环
第4章软件调试
这次所设计的十字路口交通灯有四种运行状态:
状态1、状态2、状态3、状态4。
各种状态的效果在下文中将会讲到。
运行状态1,北红和南红灯亮35s—6s,东绿和西绿灯亮30s—1s,此时往东和往西方向的车辆可以通行,通行时间总共为30s,向北和向南方向禁止通行,禁止时间总共为35s。
时间显示器显示的为离下一个状态到来的时间,如图4-1所示,东灯和西灯显示器都显示为17,表明再过17s绿灯将转变为黄灯,彼时向东和向西方向将禁止通行;北灯和南灯显示器都显示为22,表明再过22s向北和向南将允许通行。
图4-1运行状态1
运行状态2,北红和南红灯亮6s—1s,东黄和西黄灯亮6s—1s,此时往东和往西方向的车辆准备禁止通行。
准备时间总共为5s,向北和向南方向的车辆准备通过。
时间显示器显示的为离下一个状态到来的时间,如图4-2所示,四个显示器都显示为5,表明再过5s向北和向南方向将转变为绿灯,向东和向西方向转为红灯,彼时向东和向西方向将禁止通行,向北和向南方向将允许通行。
图4-2运行状态2
运行状态3,北绿和南绿灯亮30s—1s,东红和西红灯亮35s—6s,此时往东和往西方向的车辆禁止通行。
禁止时间总共为35s(还有5s在下一个状态中体现);向北和向南方向的车辆允许通行,通行时间总共为30s。
时间显示器显示的为离下一个状态到来的时间,如图4-3所示,北灯和南灯显示器都显示为18,表明再过18s向北和向南方向将转变为黄