Labview课程设计报告交通灯.docx
《Labview课程设计报告交通灯.docx》由会员分享,可在线阅读,更多相关《Labview课程设计报告交通灯.docx(10页珍藏版)》请在冰豆网上搜索。
Labview课程设计报告交通灯
虚拟仪器课程设计报告
学年:
2011-2102(下)
任课教师:
汤占军
学号:
2
姓名:
德成
班级:
自动化093
专业:
自动化
系:
自动化
学院:
信息工程与自动化学院
2012年6月12
Labview交通灯综合设计报告
1、前言
虚拟仪器(VirtualInstrumention)是基于计算机的仪器。
计算机和仪器的密切结合是目前仪器发展的一个重要方向。
粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。
随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。
另一种方式是将仪器装入计算机。
以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器主要是指这种方式。
虚拟仪器的主要特点有:
1、尽可能采用了通用的硬件,各种仪器的差异主要是软件。
2、可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
3、用户可以根据自己的需要定义和制造各种仪器。
LabVIEW是一种程序开发环境,由NI公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。
用户界面在LabVIEW中被称为前面板。
使用图标和连线,可以通过编程对前面板上的对象进行控制。
这就是图形化源代码,又称G代码。
LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。
为了便于使用,LabVIEW还集成了大量的函数库以及子程序来帮助完成绝大多数的编程任务。
在使用这些子函数的时候,可以忘掉传统编程语言中的令人头痛的指针操作、存分配等编程问题。
除此之外,LabVIEW还包含了针对应用的数据采集(DAQ)、GPIB、串口、数据分析、数据显示、数据存储以及Internet网络通信的函数库。
本次课程设计在掌握了LabVIEW基本构建知识及相关控件知识运用的基础上,完成对向前向右交通信号灯的设计。
2、设计功能
本次课程综合设计实现的功能是实现了一个十字路口的交通灯设计,这个交通信号灯系统能为向前和向右两个方向行驶的车辆指示能否通行。
这个交通路口每一个方向上的红绿黄灯按绿—黄—红的顺序循环,每个循环的时间为70s,其中通行(绿灯)的时间为30s,等待通行(黄灯)的时间为5s,禁止通行(红灯)的时间为35s。
在运行程序前可以预先设置好交通灯自行运转次数,运行后,已运转次数和已设置运行次数会在前面板上显示。
当已运转次数达到设置的次数事,程序终止。
若想提前结束本次循环,可以点击重新运转按钮。
3、设计步骤
(一)、总体设计思想分析
交通灯系统向前、向右各三盏红、黄、绿灯,交通灯的亮灭规律为:
初始态:
全灭,运行后;
次态1:
前方黄灯亮,右方红灯亮,交通灯投入运行,前方与右方均开始倒计时,时间为5秒;
次态2:
前方红灯亮,前倒计时开始35秒,右方绿灯亮,右倒计时开始30秒;
次态3:
前方红灯亮,右方黄灯亮,倒计时均为5秒;
次态4:
前方绿灯亮,前方倒计时30秒,右方红灯亮,右方倒计时35秒
如此一个周期设计分析完成。
(二)、关于时间的设计
1.计时的实现
首先,由上面分析可知,交通灯毎工作一个周期的时间为70秒。
在这个设计中计时是用一个“编程-定时”中的“获取时间/日期”的控件及“等待时间”控件来实现的。
控件图标如图:
计时以秒为单位,每完成一个循环后又从零开始计时。
2.各个状态时间段的划定
这里t的区间判定用大于等于控件及小于控件再加上逻辑控件与的组合来完成:
然后将结果送入“条件结构”中执行相关程序的容。
3.各种时间段或者说各种状态下倒计时的实现
由分析可知计时从0-70,为了叙述方便,下面用t表示已计时的时间t1表示前方时间显示的数值、t2表示右方时间显示的数值,即满足条件
以此条件与停止按钮的或来判断是否需要结束While循环。
下面对各个时间段状态的倒计时设计进行分析:
这里初始态即灯全灭的分析略。
次态1:
因开始红黄灯倒计时均为5秒,故t1=5-tt2=5-t后面板编程实现如下图:
次态2:
此时前方红灯亮,倒计时从35秒开始;右方绿灯亮,倒计时从30秒开始。
故t1=40-tt2=35-t程序框图与次态1类似。
次态3:
此时前方红灯亮,倒计时从5秒开始;右方黄灯亮,倒计时从5秒开始。
有t1=40-tt2=40-t程序框图与次态1类似。
次态4:
此时前方绿灯亮,倒计时从30秒;右方红灯亮倒计时从35秒开始。
有t1=70-tt2=75-t程序框图与次态1类似。
4.各状态时间显示的整合
由于各个状态下倒计时时间的输出均为一个整数,所以这里可以通过一个符合运算控件来对各个时间段输出的时间进行复合加运算,最终连接到显示控件上,如图:
(3)、关于灯亮灭的控制设计
灯亮灭的控制是根据各个状态下需要亮的灯,然后采用逻辑或运算将他们练到相应布尔显示灯上即可。
其中若某个灯只在其中一个状态中亮,则可以将那个时间段的判定结果直接连到布尔灯的输入端中。
如图:
(四)、循环运行的设计
1.While循环
程序中的while循环用来实现计时的循环控制
2.For循环
For循环用来设置能自动运行的次数
总体如图:
(5)、前面板的设计
如图:
四、设计结果
第一次设计结果如下:
前面板:
为了美化全面板的目的,对前面板做了些调整:
在这里加入了“列表框”作为道路的模型,又对相关控件的名称做了些修改,修改结果如下:
进一步优化设计,考虑到演示实验的演示时间问题,将程序稍加改动,使时间的变化加快,加入一个输入控件,做复合运算,以缩小演示时间。
程序改动的结果如下:
为了让前面板更美观,删除“列表框”的道路模型,插入一图片,调整界面如图:
由于删除了原先的“列表框”道路模型,所以总体程序面板如下图:
五、设计总结
通过本次LabVIEW课程的设计,经过努力所得的结果,我感很不错。
由于平时大家都是学习理论知识,没有过实际运用LabVIEW开发设计具有特定功能系统的经验,对于软件中有的控件知识不是很了解,甚至对于很多控件不知道实现什么功能,或者不知道如何去运用它。
虽然上课的时候讲过很多关于LabVIEW的应用,但还是对它不是很熟悉。
但通过计算机对LabVIEW进行了几天的摸索学习,通过各种相关资料的查阅,我终于把交通灯控制系统课程设计做好了,并发现了LabVIEW的强大功能。
通过这次课程设计我基本学会了虚拟仪器设计的步聚和基本方法,提高了动手能力,增强了理论联系实际的能力。
通过这次设计实践。
我总结了使用LabVIEW编程的两个要点。
第一,熟悉每个控件的用途、使用方法和在软件中的位置。
LabVIEW有这么多控件,有这么单元,如果我们不知道每个单元是用来干什么的,那就根本谈不上应用它们了,只有在知道这个空间是做什么用的,我们才会去使用它。
知道需要用到某个单元,但是不知道怎么使用,怎么连线,这也是很让人郁闷的事,所以我们得熟悉一些基本单元的用法。
要想很快地做成一个虚拟仪器,就得熟悉每个单元所在的位置,以免在使用过程中找半天找不到它在哪个菜单中。
第二,对于虚拟仪器设计来说,因果朔源的设计方法是一种比较好的设计方法,知道要做什么,知道需要哪些单元,我们就添加那些单元,按需求增添元件。
课程设计的过程中,我遇到了不少的问题,比如在选择课程设计题目时,我也尝试过虚拟示波器的设计,但由于对示波器相关原理知识的不了解,最后没有实现具体的功能,虽然没有结果,但我还是学习到了许多控件及模块的知识,给我在交通灯的设计中带来了相当大的好处。
通过努力,最后完成了课程设计任务并在这过程中增加对LabVIEW的了解,并从中获得学习的乐趣,扎实自己的理论知识。
我认为课程设计是我学习中不可或缺的一课。
参考文献
1.侯国屏.LabVIEW7.1编程与虚拟仪器设计.清华大学
2.黄峰.虚拟仪器技术教学资料.工程学院
3.健,韩薪莘.LABVIEW图形化编程与实例应用.北京:
中国铁道