基于LABVIEW的交通灯控制系统研究与设计(源码+万字报告+实物)

目 录
第一章 绪论 1
1.1LABVIEW的发展 1
1.2 本论文研究的意义 2
第二章 虚拟仪器的介绍 3
2.1虚拟仪器的概念 3
2.1虚拟仪器的组成原理 4
第三章 研究原理和意义 5
3.1研究的意义 5
3.2研究的主要思路 5
3.3逻辑流程图 6
第四章 交通灯系统的设计 7
4.1前面板的设计 7
4.2定时信号的产生 8
4.3循环结构 8
4.4条件结构 9
4.5各段时间信号 9
4.6交通灯的运行状态 14
结论 16
参考文献 16
致 谢 16

第一章 绪论
1.1LABVIEW的发展
在多种类型的基础学科同计算机技术有机结合的基础上,进而发展出了现代仪器仪表技术,并且伴随着时代的发展,开发、计算机、网络科技以及电子信息和软件技术不断发展壮大,丢弃了原有的检测的方法、检测试领域的方法,出现了新的测试方法和基本的概述 ,特别是在电子测量仪器的使用方面产生了前所未有的变化。这样的环境下,在1986年的时候,美国的国家仪器公司,第一次提出了虚拟仪器的概念,此项概念的提出,使得电子测量仪器无论是其功能上,还是在作用上,都产生了质的变化,也正是在该大背景下,虚拟仪器开始逐渐的发展起来,前后大约经过了三个发展的部分:第一部分是早期的虚拟仪器,建立起了通用接口总线的标准。是计算机通过两种不同的总线连接起来的,用来完成检查和测试电子仪器的通信,在检测的仪器里获取了数据,同时使用了各种类型的分析函数数据的软件和工件,进一步推动了数据在分析处理以及显示上的发展。第二个部分是开放式仪器。当微处理器和DSP性能和技术支持方面有了很大的进步,在实现时开始借助较为达标和完整的插入式数据处理卡,但是后来数据卡的使用也越来越方便,改成了插上就能用的数据卡,早期的测量仪器被取代,数据采集的任务在完成时更加的便捷。第三个部分: 20世纪九十年代虚拟仪器框架得到了广泛认同和采同,虚拟仪器在软.硬件方面取得了不断的进步,也突破原有的虚拟仪器。面向基础的对象的虚拟仪器开发软件对象渐渐的成为了标准的虚拟仪器开发平台,主流内容开始转变成了图形化编程,其中十分典型的代表就是NI公司的LabView7.1。在1997年的时候,NI公司又推出了具有系统时钟、同步触发总线功能的PXI总线,PCI和VXI总线的共同优势得到了集中。到了这一发展的阶段,对于虚拟仪器的软件框架,人们开始有了新的认知,认为想要实现仪器在控制系统上的自动化,想要进行数据采集,该部分是其中的关键。到目前为止,此项技术在国外有着较快的发展速度,在二十世纪的七十年代就出现了GPIB,随后是八十年代的VXI,再到九十年代的PCI总线,逐渐发展成为了主流产品,一直到1997年,NI公司推出了PXI测平台,现阶段处于多平台共存的状态。以NI公司为代表的一批厂商已经在市场上推出了商品化的仪器产品,这类产品都是在虚拟器技术的基础上开发设计出来的。在美国,其虚拟仪器系统和图形编程语言,对于理工科的学生来说,已经变成了一门必修的课程。
这些年来,全世界的虚拟仪器公司都开发出了多种类型的平台APP,因此用户可以借助这部分APP去组建出属于自己的虚拟仪器或者是软件的测试系统,同时把虚拟仪器的测试软件给编写以及绘制出来。其中最早被发明出来,同时也是最负盛名的开发软件,是美国NI公司的LabVIEW以及LabWindows/CVI开发软件。属于把G语言作为基础的一种开发环境。LabVIEW的图形化虚拟仪器开发环境具有革命化,对于业界来说,都是在测量、测试以及系统控制尚的先锋开发工具,用户可以基于计算机的资源构建虚拟仪器,以此来代替实际的仪器完成测试以及测量任务是该软件的主要特点。
在我国经济快速增长、科技快速发展、高校扩招的现状下,虚拟仪器在国内的需求越来越高。然而目前,国外企业依然占据着中国虚拟仪器市场中绝大部分的市场份额。我国进入“211工程”的100所高等院校有70多所选用了国外公司的产品。好在目前的国内企业在积极研发,努力抢占市场份额。目前国内测试测量厂商代表RIGOL(北京普源精电科技有限公司)占据了虚拟仪器国产产品市场的大部分比重。RIGOL公司一直坚持自主创新,因此经过研发后生产出了15个系列,以及十多种产品,在广播电视、生产制造、科研教学等领域均有着广泛的应用,在国内,该公司设置了多个办事处;而到了国际市场,该公司所生产的产品已经销往到了全球的60多个国家地区。而目前我国由于仪器仪表行业对于产品的需求增大,因此也推动了虚拟仪器行业的发展,尤其是借助计算机加数模转换和软件的应用,从而把传统仪器中的示波器、频谱分析仪等予以实现,国外企业对于市场的垄断局面被打破,使得我国国内的仪器行业获得了极大的发展,走向了繁荣。此外,作为虚拟仪器的载体,个人电脑这几年在国内也在飞速的发展着,为虚拟仪器在我国的普及奠定了良好的基础。

1.2 本论文研究的意义
随着交通事业的不断发展,交通事业给人们的生活和工作带来了无限的便利的同时,交通事故也在不断的发生,所以道路交通的安全问题也一直备受关注,十字路口更是发生频繁交通事故的地点,但是这些交通事故都是难以避免的,道路交通事故的发生虽然难以回避,却不是不可预防的。所以十字路口交通灯的安装与实时监控尤为重要,以保证十字路口的人车的安全通行。因此,如何利用先进的技术来改善交通十字路口行人和车辆的安全尤为重要。
第二章 虚拟仪器的介绍
2.1虚拟仪器的概念
计算机平台用户,实质上就是虚拟仪器概念,必要数据采集硬件支持下,再把测试任务结合起来,进行软件设计从而实现传统仪器的功能,并且还可以在此基础上进行拓展。传统的台式仪器,输入和输出接口,以及操作的面板全部都是固定的,结构呈现封闭性,厂家对其功能进行定义。每一种仪器所实现的测量功能都只能有一种,且是特定的存在,同时将其提供给用户。厂家进行定义,用户不具备改变权限的传统仪器模式,随着虚拟仪器的出现而被打破,因此用户能够结合自身的需求去设计特定的仪器系统,并且还具备对于系统或软件进行修改的能力,从而真正的实现了“软件就是仪器”这个新兴的概念。
虚拟仪器(Virtual instrumentation)技术利用较高性能的硬件性能高性能的在加上具有较高性能和灵活性的电子软件,以至于来完成各种各样的检测,测试和自动化的应用。具有较高性能和灵活性的电子软件能创建出可以由人为控制的界面,全面的采集系统可以由模块化的硬件来为实现,具有较高性能和灵活性的电子软件和模块化的硬件的完美结合能实现同步和定时应用的同时运行。高效的软件、模块化I/O硬件和用于集成的软硬件平台,只有这三个最重要的部分集成组合之后,虚拟仪器技术性能高、扩展性强、编程较快,以及具有较好集成性能的优势,才能够得到充分的发挥。LabVIEW实验室虚拟仪器工程平台(LabVIEW laboratory virtual instrument engineering platform)是由美国国家仪器公司杰夫·考度斯基(Jeff Kodosky)所开发的图形化程序编译平台,最早此程序是由苹果电脑发出来的果。早期的LabVIEW是人们为了完成自动化的控制而编写出来的软件,渐渐的发展到现在已经成为了一种较为完善的编程语言。现代的编程语言和原始的编程语言有很大的区别,主要的区别在于现代的虚拟仪器的程序的流程采用的是数据流的概念,打破了原有的思维模式,这样的话,编写程序的人员会在同一时间完成程序的编写和流程图的结构框架。
LabVIEW为了突破传统的程序,第一个引了虚拟仪表的概念,使用者可以通过对计算机进行控制,这样才可以更加方便的去控制想要开发的仪器。目前可支持Windows,UNIX,Linux,Mac OS等操作系统。在LabVIEW有特别图形性开发程序,这些特殊的程序的开发接口一般都是比较简单的,让人一看就能理解程序的意思。大大的减少了人们编写程序原行的时间和速度,而且为后期的维护发面的工作也带来很多便利。系统的开发进度因为有很好的开发接口,使用起来比较方便的原因,而且这个软件的使用率也大大的提高了,得到了研究人员的一直好评,发展到现在,这个程序被广泛的被应用于工业自动化的生产上。LabVIEW会自己同时运行多线的程序,这一优点更是受到了程序设计者的喜爱。除了这个优点以外LabVIEW的通信的接口方面支持很多的形式,比如:GPIB-USB,HP-IB等串列端口,并发端口,IrDA,TCP,UDP,Bluetooth,.NET,ActiveX,SMTP…等接口。
最近这几年 LabVIEW 不但能在 PC 上面写程序,还支持即时系统和可编程逻辑门数组的运行。这个程序的使用者能通过LabVIEW 设计想要的开发环境、编译程序后下载至微处理器,最后可以实现能互不干扰的运行的功能。(但到目前为止还只能在NI的自动生产嵌入式系统系列的产品,一般被称为称 NI-RIO 系列的产品。比如:PCI/PXI R系列 DAQ卡片、CompactRIO、single-boardRIO、myRIO…等。
2.1虚拟仪器的组成原理
1)硬件部分:为了能建立在计算机的基础上运行的虚拟仪器,肯定少不了与硬件的配合。基础硬件平台和外面的硬件的设备做成了虚拟仪器的硬件。那么不同种类计算机就构成了基础的硬件平台,在对计算机的图形用户界面进行了充分的利用之后,以此来开发设计出的具体应用程序都是在Windows环境的基础上运行的。虚拟仪器的另外一部分:外围硬件设备,其主要包括:不同型号的计算机内部放置的插卡和外部放置程控测试设备。这里的外部放置控测试设备程是指能够与测试设备连接的某种接口。
具有内部放置功能的插卡产品不断的出现在市面上,某一个插卡就能完全的控制相对于前体积大很多的单个设备的功能,且该插卡能够将各类设备所替代掉,同时也拥有它们共同的功能。
这个设备在一定程度上具有体积相对较小的特点,为人们的使用提供了便利。数据采集对于VI来说是不可或缺的重要组成部分,主要包括了A/D、D/A转换以及数字输出等电路。这些电路运行的好坏,稳定程度对数据采集的精准度和速度是有很大的影响的,同时也影响着仪器的整体的运行性能。数据采集卡的类型是很多的,功能也很齐全,DAQ的前向通道道后向通道的整个流程和其对应的数据采集产品的配合是必不可少的。随着A/D、D/A转换技术、信号波形处理技术的不断改进,DAQ卡的采样率也得到了大大的提高。可以达到1GB/s,精度也达到了很高的位数,竟达到24位,高达64个的通道数,想要完成模拟波形采集与产生、波形采集及数据自动存储、数字I/O、信号调理等工作可以通过与任意结合数字I/O、模拟输出和计数器、定时器通道来实现[8]。
2)软件部分:软件是VI系统的重要组成部分,也是它的核心。用户的应用软件、试验程序以及测量仪器驱动程序等三个部分,共同组成了软件,图形化编程技术平台HPVEE、LabVIEW和LabWindows/CVI在这个平台里占有较高的地位。虚拟仪器软件体系结构VISA主要包含两个层次:用户应用和设备驱动程序。想要实现底层硬件设备同用户程序之间的联系,就必须把设备驱动程序作为其中的基础。任一的设备驱动程序,都具备的特性是能够提高数据的吞吐量以及编程的灵活性。每个设备驱动程序都连接上网应用程序接口都是同一个,最后得到的所编写的用户应用程序是不受计算机或者操作系统的影响的,是可以移植的。生产厂家会根据不同类型计算机的内部放置的插卡配备了相应的设备驱动程序。所以使用者在用此程序时就会比较方便,对于设备的驱动程序能够进行直接的调用,随后再对该设备进行操作[8]。
3)虚拟仪器的“面板”显示在PC的屏幕上,鼠标和键盘是操作面板的重要工具,可以用拖动鼠标和按住键盘的按钮来进行对操作面板的控制。有的操作面板是触摸屏的,其可以用触摸的形式来完成。我们可以通过这个软件来建立一个能实现完全自己控制和我们想要的界面。[8]
第三章 研究原理和意义
3.1研究的意义
现代社会的发展越来越快,其中交通事业也越来越发达,车辆的普遍率也大大的提高了,但是交通安全事故发生的频率也大大的提高了,十字路口时交通事故频繁发生的地点,所以设计一个较好的自动控住交通灯十分重要。这样才能较少交通事故的发生和行人的安全。
3.2研究的主要思路
我通过采用基于LABVIEW的十字路口交通灯的设计,用虚拟仪器控制十字路口红、黄、绿交通灯和行人如何通行的信号灯指示的自动变化,来实现十字路口行人和十字路口车辆的安全通过,实现十字路口的自动指挥和改善交通运行困难的问题。我的设计思路如下

当绿灯亮时 车辆和行人可以通过。
当红灯亮时 车辆和行人不可以通过,

我的控制思路和逻辑如下表格所示:
(1) 北红灯和东绿灯 南北红和东西绿  (30秒);

(2) 北红灯和东黄灯 南北红和东西绿  (05秒);

(3) 北绿灯和东红灯 南北绿和东西红  (30秒)。

(4) 北黄灯和东红灯 南北绿和东西红  (05秒)。

3.3逻辑流程图

第四章 交通灯系统的设计
4.1前面板的设计
前面板是程序与用户交流的窗口,一个美观的前面板的设计能给人带来非常舒适的感觉,前面板主要由控件构成,所以控件类型、控件选板,控件设计、控件设置在设计前面板是很重要的[4]。
这次交通灯系统的前面板的设计中需要用20盏灯、12个时间显示器来完成。其中交通路口的灯共有红、黄,绿三种颜色的灯总共12盏,我们选择“查看”—“控件选板”然后会弹出控件选板,然后我们可以在“控件选板”中选择指示灯,然后将所选择的指示灯放在前面板的合适的位置,如果我们想更改指示灯的属性,我们可以用点击鼠标右键的形式来完成,在在这里我们可以根据我们我们自己的需要改变指示灯的大小和颜色,作出一个适合的路口交通灯 [5],按照上面的步骤我们可以作出剩下11盏灯,由我们交通的常识可知,路口的交通灯通常都是三个分为一组,每组都包含红、黄、绿三种不同的颜色的灯,然后我们用框架把三个不同颜色的灯框起来,这样三个不同颜色的灯就变成1组了,剩下其余的3组交通灯也可以按照这样的步骤作出,这样车辆的交通信号灯就做好了,接下来我们用相同的方法来完成人行通道交通灯的制作。然后为了计时方便 ,在每一组的交通灯里,选择一个合适的位置把一个数值显示控件放置其中,交通灯在制作完成后,于前面板中间的位置,再把一个开关按钮放置其中,该按钮能够实现对于交通灯运行和停止的控制[6]。通过上述的步骤,交通灯的前面板就制作完成了,面板图如下图4.1所示

图4.1 十字路口交通灯前面板的示意图

4.2定时信号的产生
在LabVIEW中有很多的计时单元,但在我们设计交通灯的计时器时只需要毫秒计时器。顾名思义,计数时间信号,实质的意思就是设计出一个毫秒计数器,对于交通灯进行计数时,先是产生了一个把秒作为单位的时间信号,因此最后还需要将其数值除以1000,最后所得结果才是单位为秒的时间信号。
要得到以秒为单位的时间计数器,可以在在函数选板的编程(编程)—(定时)的子选板中,对时间计数器进行选择,将该单元确定下来[7]。其图标与接线如下图4.2、4.3、4.4所示。

图4.2 时间计数器

图4.3 时间信号接线图

图4.4 得到的商和余数
4.3循环结构
在设计基于LabVIEW的交通灯时,运行的循环结构一定存在有while和for循环。而在具体使用的过程里,两种类型的循环结构存在差别,比如,对于for循环来说,先是要对该程序的循环次数进行确认,在达到了设定的次数后,该循环就会停止,而对于while循环来说,在得到了循环条件的支持后,就可以运行起来,而不需要确定循环的次数[9]。
而我们研究的是基于LabVIEW的交通灯的设计,从研究的课题中看是不需要对循环的次数进行确定的,因此选择使用了while循环。在LabVIEW中,while循环是其最基本的结构之一,很多基于LabVIEW的研究中都会用到while循环[10]。
While循环的结构会有两个接线端,“重复端口”和“条件端口”构成了while的循环结构,而“循环技术”是属于输出接线端的范畴,该端口输出的是循环结构执行的次数,在对循环数进行计数时,也是从0开始;“循环条件”是属于布尔量输入接线端的范畴,也是这个循环结构运行的最后一步,在这一步时他会检查条件接线端,所以这个循环总是能最少执行一次的[1]。如下图4.5所示。

图4.5 while循环结构

本研究课题中用停止按钮连接条件端口,当按下按钮时循环停止。
4.4条件结构
条件结构所需要包含的子程序框图必须要是两个以上,每个子程序框图的代码,都有对应的条件分支,如果运行的程序满足了具体的条件,这个程序就会单独的运行。
在条件结构中,选择端口和switch语句中的“表达式”类似,框图表示符和“表达式n”类似。在实际进行编程时,把外部控制条件同选择端口进行连接,程序运行时,该端口对于送来的控制条件会进行判断,对选择结构进行引导,从而将对应框架里的内容执行起来[12]。
最使用条件结构时,需要特别注意其中一个细节:控制条件在其数据的类型上,要保持同选择标签里类型的一致,要不然LabVIEW将会出现显示错误。[14]。
在此次的课程设计里,如果执行的结构条件为真,那么框图的程序将会被执行。当需要把交通信号灯点亮时,我可以与布尔的真常亮连接器起来,当交通信号灯不需要点亮时,可以与其相反布尔常量连在一起。
4.5各段时间信号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值