基于labVIEW的交通灯的课程设计.docx
《基于labVIEW的交通灯的课程设计.docx》由会员分享,可在线阅读,更多相关《基于labVIEW的交通灯的课程设计.docx(12页珍藏版)》请在冰豆网上搜索。
基于labVIEW的交通灯的课程设计
第1章程序的设计
1.1前面板的设计
前面板是VI的用户界面。
创建VI时,通常应先设计前面板,然后在前面板上创建输入/输出任务。
本课程设计中前面板比较简单,只需要用六盏灯、两个时间显示器、一个停止按键即可。
其中的六盏灯,红、黄、绿各两盏,在控件选板中选择指示灯,将它放在前面板合适的位置,单击鼠标右键,更改指示灯的属性,改变指示灯的大小,做出一个合适的指示灯,依同样的步骤可以做好另外五个,将六个灯均分为两组,每组都包含红黄绿三种颜色的灯,再用框将每组灯框起来,做成一个交通灯。
在每组交通灯合适的位置放置一个数值显示控件作为交通灯的计时器。
在前面板合适的位置放置一个开关按钮,控制循环的停止。
这样交通灯系统的前面板就做好了。
面板设计如图1-1所示。
图1-1交通灯前面板示意图
1.2定时信号的产生
毫秒计时器在LabVIEW中的一个计时单元,它的图标和用途如图3-2所示。
在函数选板的【编程】→【定时】子选板中选择时间计数器选定该单元。
毫秒计数器对时间信号计数,要产生一个一秒为单位的时间信号,所以还得用毫秒计数值除以1000,取商得到以秒为单位的时间信号。
接线如图1-3所示:
图1-2时间计数器图1-3时间计数器接线图
1.2时间信号的分段
将得到的时间信号除以每个循环所用的时间70s,取余数。
得到的余数x的范围为0<=x<70,当0<=x<5时,条件满足,执行第一个条件结构里面的程序,北黄和东红灯点亮。
当5<=x<35时,条件满足,执行第二个条件结构里的程序,北红和东绿灯点亮。
当35<=x<40时,条件满足,东黄和北红灯点亮。
当40<=x<70时,x<40的条件不满足,执行条件结构里面为假的程序,北绿和东红灯点亮。
时间分段的程序结构如图1-4所示。
图1-4时间分段程序
这里用到了判定范围并强制转换控件,使用这个控件可以判定输入的数是否在上限和下限之间。
它的图标和作用如图1-5所示。
如果输出信号在范围之内,“?
”接口将产生一个信号,此信号恰可以输入到条件结构作为分支选择器信号。
图1-5判定范围并强制转换控件
1.3各组时间信号的动作
条件结构是LabVIEW最基本的结构之一,条件结构类似于文本编程语言中的switch语句或者if…then…else语句。
条件结构可以从【结构】子选板中创建,它的图标及功能如图1-6所示。
图1-6条件结构
在条件结构中,选择端口相当于switch语句中的“表达式”,框图表示符相当于“表达式n”。
编程时,将外部控制条件连接至选择端口上,程序运行时选择端口会判断送来的控制条件,引导选择结构执行相应框架中的内容。
在本程序中的控制条件为从判定范围并强制转换“?
”端口输出地判断值。
当各组条件满足时,将执行各条件结构里的程序。
每个条件结构里的程序基本相同。
用需要点亮的灯和布尔真常量连接,不需要点亮的和布尔假常量连接,而时间显示器则用一定的值减去输入的时间量,以实现倒计时的功能,各结构里的程序略有不同,具体程序如图1-7到图1-10所示。
第一阶段:
余数在0至5秒之间,此时东红和北黄两个灯点亮,向东方向的时间显示器东灯显示为离红灯熄灭的时间(从6s到1s),向北方向的时间显示器北灯显示为离黄灯熄灭的时间(从6s到1s)。
图1-7条件结构1
第二阶段:
当北黄灯点亮5秒后,即余数大于5并且小于35时,条件结构2条件满足,北红和东绿两个灯点亮,向东方向的时间显示器显示离东绿(通行)熄灭的时间(从30s到1s),向北方向的显示离红灯(禁止通行)熄灭的时间(从35s到6s)。
图1-8条件结构2
第三阶段:
当东绿灯点亮30秒后,即余数大于35并且小于40时,条件结构3条件满足,东黄灯点亮,而北红未到熄灭的时间,继续点亮。
向东方向的时间显示器显示离东黄(准备转换)熄灭的时间(从6s到1s),向北方向的继续显示离红灯(禁止通行)熄灭的时间(从6s到1s)。
图1-9条件结构3
第四阶段:
当北黄灯点亮5秒后,即余数大于40并且小于70时,条件结构4为假的条件满足,北绿和东红两个灯点亮,向东方向的时间显示器显示离东红(禁止通行)熄灭的时间(从35s到6s),向北方向的显示离绿灯(通行)熄灭的时间(从30s到1s)。
图1-10条件结构4
3.4循环的设计
LabVIEW中的循环结构主要通过while和for循环实现。
这两种循环的功能基本相同,但使用上有一些差别。
for循环必须确定循环次数,循环一定次数后自动退出循环;而while循环不用确定循环次数,只需要指定退出循环的条件。
本次课程设计中循环的次数不能确定,所以就用到了while循环。
LabVIEW中的while循环相当于C语言中的while循环和do…while循环。
While循环可以从程序框图中的【结构】子选板中创建,while循环包括两个端口:
条件端口和重复端口。
它的功能、图标及说明如图所示。
在此课程设计中,用按键连接条件端口,当按键按下时,循环停止。
图1-11while循环
第2章软件调试
这次所设计的十字路口交通灯有四种运行状态:
状态1、状态2、状态3、状态4。
各种状态的效果在下文中将会讲到。
运行状态1,北红灯亮35s—6s,东绿灯亮30s—1s,此时往东方向的车辆可以通行,通行时间总共为30s,向北方向禁止通行,禁止时间总共为35s。
时间显示器显示的为离下一个状态到来的时间,如图4-1所示,东灯显示器显示为26,表明再过26s绿灯将转变为黄灯,彼时向东方向将禁止通行;北灯显示器显示为31,表明再过31s向北将允许通行。
图2-1运行状态1
运行状态2,北红灯亮6s—1s,东黄灯亮6s—1s,此时往东方向的车辆准备禁止通行。
准备时间总共为5s,向北方向的车辆准备通过。
时间显示器显示的为离下一个状态到来的时间,如图2-2所示,两个显示器都显示为5,表明再过5s向北方向将转变为绿灯,向东方向转为红灯,彼时向东方向将禁止通行,向北方向将允许通行。
图2-2运行状态2
运行状态3,北绿灯亮30s—1s,东红灯亮35s—6s,此时往东方向的车辆禁止通行。
禁止时间总共为35s(还有5s在下一个状态中体现);向北方向的车辆允许通行,通行时间总共为30s。
时间显示器显示的为离下一个状态到来的时间,如图2-3所示,北灯显示器都显示为11,表明再过11s向北方向将转变为黄灯,彼时向北方向将准备禁止通行;东灯显示器显示16,表明再过16s,向东方向转为绿灯,彼时向东方向将允许通行。
图2-3运行状态3
运行状态4,北黄灯亮6s—1s,东红灯亮6s—1s,此时往东方向的车辆准备通行,准备时间总共为5s;向北方向的车辆准备禁止通过。
时间显示器显示的为离下一个状态到来的时间,如图2-4所示,两个显示器都显示为3,表明再过3s向北方向将转变为红灯,向东方向转为绿灯,彼时向东方向将允许通行,向北方向将禁止通行。
图2-4运行状态4
运行中按下停止键后,程序停止循环,如图2-5所示:
图2-5停止运行
如需继续运行程序,须单击工具栏中的【运行】或【连续运行】按钮。
第3章心得总结
此次课程设计圆满结束了,对于我经过努力所得的结果,我感到非常满意。
此次设计以分组的方式进行,每组有一个题目。
我们做的是十字路口交通灯系统。
由于平时大家都是学理论,没有过实际开发设计的经验,虽然上课的时候讲过很多关于LabVIEW的使用,但课后也从没真正地使用过这个软件,对它一点都不熟悉,拿到的时候都不知道怎么做。
但通过电脑对LabVIEW进行了几天的摸索学习,我终于把课程设计做好了,并发现其实LabVIEW很简单,很实用。
通过这次课程设计我基本学会了虚拟仪器设计的步聚和基本方法,提高了动手能力,增强了理论联系实际的能力,分组工作的方式给了我和同学合作的机会,提高了和人合作的意识和能力,同时也培养和发展了同学之间的感情,对此我感到非常欣慰。
总之,在这次课程设计中我受益匪浅。
在这个课程设计中,我真正的感受到了虚拟仪器的优越性,“软件即仪器”,仅仅在Labview上写入一些图形程序,就可以实现相应的仪器的功能,只需要借助一台计算机,一个LabVIEW软件,就可以实现很多仪器的功能,真的好方便,好伟大啊!
这真的是仪器界的一场伟大的革命,可以断定不久的将来虚拟仪器之风将刮到世界上每个角落。
在这之前我们做了数字电子技术课程设计、PLC课程设计,和实实在在的数字电路和PLC相比,在LabVIEW上完成的仪器有更大的优越性,它的内容可以完全由自己定义,而且不必用到其他的任何硬件,可以非常方便地修改做成的仪器。
就我个人认为,虚拟仪器应该有更广泛使用,要把它推广到农业,工业以及服务业的每一个部门。
我由衷的感慨:
LabVIEW功能太强了,作用太大了,虚拟仪器会在更广泛地领域得到使用。
要想以后有更大发展,学好虚拟仪器技术是非常必要的。
通过这次设计实践。
我总结了使用LabVIEW编程的两个要点。
第一,熟悉每个控件的用途、使用方法和在软件中的位置。
LabVIEW有这么多控件,有这么单元,如果我们不知道每个单元是用来干什么的,那就根本谈不上使用它们了,只有在知道这个空间是做什么用的,我们才会去使用它。
知道需要用到某个单元,但是不知道怎么使用,怎么连线,这也是很让人郁闷的事,所以我们得熟悉一些基本单元的用法。
要想很快地做成一个虚拟仪器,就得熟悉每个单元所在的位置,以免在使用过程中找半天找不到它在哪个菜单中。
第二,对于虚拟仪器设计来说,因果朔源的设计方法是一种比较好的设计方法,知道要做什么,知道需要哪些单元,我们就添加那些单元,按需求增添元件。
虽然本次课程设计是十人一组的,但是我们基本上每人都独立地拿出了一个方案,每个方案各有特色。
彼此之间进行了一些讨论,交流,在讨论交流过程中,我也看到了自己的有点和不足,也学习吸收他们比较好的地方。
这不仅增长了我的知识,也增进了同学之间的感情。
课程设计的过程中,我遇到了不少的问题,但最终我终究还是战胜困难,取得了成功,当然其中很大一部分功劳都要归功于指导老师和同学们,要不是没有指导老师的指导和和同学们的相互交流学习,我的课程设计肯定不会如此轻松。
在此,我非常感谢我的指导老师和同学们。
我认为这次课程设计是很成功的感谢学校给我了这样好的实践机会。
这对提高我们的能力有很大的作用,这不仅能使我们更好地在社会中生存下去,也提升了学校的名誉,我想更多的这类科目应该被安排给我们。
参考文献
[1]张健,韩薪莘.LABVIEW图形化编程和实例使用.北京:
中国铁道出版社
[2]戴鹏飞.测试工程和LABVEIW使用.北京:
电子工业出版社
[3]路林吉.虚拟仪器的使用.电子技术
[4]侯国屏.LabVIEW7.1编程和虚拟仪器设计.清华大学出版社
[5]杨乐平,李海涛,宵相生,等.LABVIEW程序设计和使用.北京:
电子工业出版社
[6]张重雄.虚拟仪器技术分析和设计.电子工业出版社
[7]黄峰.虚拟仪器技术教学资料.湖南工程学院出版社
附录1交通灯程序图