1虚拟仪器课程设计——基于LabVIEW的交通灯设计专业:姓名:学号:2一、课题研究背景和意义近年来,在快速城市化进程和经济发展的影响下,机动车辆已成为普遍的代步工具,交通负荷越来越重,交通问题成为困扰许多大城市发展的通病,已成为日趋严峻的国际性问题。其中,十字路口则是造成交通堵塞的主要”瓶颈”。交通信号灯成为了维护交通秩序的必备工具。交通信号灯的使用有效减小了交通拥堵维护交通顺畅。此次课设的题目的是设计交通信号灯。在设计的过程中了解了交通灯的显示规则,增强了加强交通安全的意识,其次运用已学知识设计信号灯便于更好的掌握labview软件的使用,培养综合应用所学知识来指导实践的能力。二、程序设计思路通过采用基于虚拟仪器的交通灯系统设计,自动控制十字路口四组红、黄、绿交通灯和四组人行道暗、绿状态的转变,指挥着行人和车辆的安全运行,实现十字路口的自动指挥和改善交通管理。绿灯亮时,允许车辆和行人通行。红灯亮时,禁止车辆和行人通行,为交通安全提供保障。同时会有时间的显示。程序采用条件结构,做五个分支,分别对应五种运行模式:正常运行:在正常运行模式中,再用时钟信号做选择条件做四个分支,实现交通信号的循环变换,控制逻辑顺序如下:(1)南北红和东西绿(30秒);(2)南北红和东西黄(05秒);(3)南北绿和东西红(30秒);(4)南北绿和东西黄(05秒);东西禁行:东西方向亮红灯禁止通行,南北方向亮绿灯允许通行。南北禁行:东西方向亮绿灯允许通行,南北方向亮红灯禁止通行。两向禁行:东西南北方向全亮红灯禁止通行。检修:把信号灯全部熄灭。在各运行模式中,每个条件结构里的程序基本相同:用需要点亮的灯与布尔真常量连接,不需要点亮的与布尔假常量连接,而两方向灯的时间显示器则用一定的值减去输入的时间量,以实现倒计时的功能。32.1前面板的设计本设计中前面板需要用20盏灯、4个时间显示器、1个菜单下拉列表、1个停止按键即可。其中十字路口的12盏灯,红、黄、各4盏,绿灯12盏,在控件选板中选择指示灯,将它放在前面板合适的位置,单击鼠标右键,更改指示灯的属性,改变指示灯的大小和颜色,做出一个合适的指示灯。道理指示灯三个分为一组,每组都包含红黄绿三种颜色的灯,再用框将每组灯框起来,做成一个交通灯。在每组交通灯合适的位置放置一个数值显示控件作为交通灯的计时器,同样的方法另做人行道的8盏绿灯灯。并在前面板合适的位置放置一个控制窗口,用于选择交通灯的运行模式及控制其开始与停止,然后设置窗口大小。这样交通灯系统的前面板就做好了。交通灯前面板设计如下面图1所示。图1交通灯前面板示意图42.2单位时间信号的产生时钟信号用毫秒计时器产生。毫秒计时器计时十毫秒,10毫秒记反馈节点加一,要产生一个一秒为单位的时间信号,所以还得用计数值除以100,取商得到以秒为单位的时间信号。图2单位时间信号2.3时间信号的分段将所得的时间信号除以每个循环所用的时间70s,取其余数,得到的余数x的范围为0=x70。当运行模式选择为正常运行时,执行条件结构里为序号0的程序。当0=x30时,条件成立,执行程序框图中第一个条件结构里面的程序,东西通行。当30=x35时,条件成立,执行框图中第二个条件结构里的程序,东西亮黄灯。当35=x65时,条件成立执行框图中第三个条件结构里的程序,南北通行。当65=x70时,条件满足,执行框图中第四个条件结构里的程序,南北亮黄灯。时间分段的程序框图如下图所示。图3条件为真的各时间分段程序5这里用到了判定范围并强制转换控件,应用这个控件可以判定输入的数是否在上限和下限之间。它的图标和作用如下图4所示。如果输出信号在范围之内,“?”接口会有一个信号,该信号恰可以输入到条件结构中作为该分支选择器信号。2.4程序中所用的结构2.4.1循环结构LabVIEW中的循环结构主要通过while和for循环实现。这两种循环结构、语句、功能基本相同,但使用上会有些不同。for循环须先进行循环次数的确定,循环一定次数后自动不进行循环;而while循环则不用确定循环次数,只需要确定退出循环的条件。本次课程设计中不能预先确定循环的次数,所以就用到了while循环。while循环是LabVIEW最基本的结构之一,和C语言中的while循环和do…while循环相类似。While循环可以从程序框图中的【结构】子选板中创建,while循环包括两个端口:1、条件端口2、重复端口,如下图5所示。本次课程设计中用停止按钮连接条件端口,当按下按钮时循环停止。重复端口i为当前循环的次数重复端口图5whlie循环结构条件端口条件端口输入的是布尔变量,它用于判断循环在什么条件下停止执行。当每次循环结束时,便会检测输入端接收到的布尔值并判断是否继续执行循环。右击端口,选择【真(T)时停止】或【真(T)时继续】,可以切换其使用状态。图4规定范围并强制转换控件62.4.2条件结构条件结构也是LabVIEW最基本的结构之一,类似于基于文本编程语言的switch语句或者if…then…else语句。条件结构可以从【结构】子选板中创建,条件结构包含选择端口和选择标签控制端口,如下图6所示。图6条件结构在条件结构中,选择端口相当于switch语句中的“表达式”,框图表示符相当于“表达式n”。编程过程中,将外部控制条件连接到选择端口上,程序运行的时候其端口会判断送来的控制条件,指引选择结构去执行相应框架里的内容。在本程序中的控制条件为运行模式序号及从规定范围并强制转换的“范围内?”端口输出的判断值。选择端口的外部控制条件的数据有整型、字符串型、布尔型和枚举型。其接线可任意放在框图左边的某一位置。如果其数据为布尔型,那么这个结构包含真和假两个分支,这是该软件所默认的选择框架类型。若为其它类型则可以随意使用分支的个数。要注意的是,在使用条件结构的时候,控制条件的数据类型要和选择标签中的类型一样,如果不一致的话,LabVIEW显示出现错误,与此同时选择器中的字体的颜色也会变为红色。本次课程设计中,当各组条件为真时,将执行其框图的程序。每个条件结构里的程序基本相同。用需要点亮的灯与布尔真常量连接,不需要点亮的与布尔假常量连接,而两方向灯的时间显示器则用一定的值减去输入的时间量,以实现倒计时的功能,各结构里的程序略有不同。7三、各种运行模式的程序正常运行模式的程序程序用时钟信号做选择条件做四个分支,从左到右依次执行四个条件结构,实现交通信号的循环变换,正常运行模式的程序如下:各段时间信号程序:第一阶段:余数在0~30s之间,条件结构1条件满足,十字路口南北红灯和东西绿灯点亮,人行道南北方方绿灯亮。东西灯时间显示为离绿灯熄灭的时间(从30s到1s),北灯时间显示为离红灯熄灭的时间(从35s到6s)。程序框图如图所示8第二阶段:余数在30~35间,条件结构2件满足,十字路口南北红灯和东西黄灯点亮,人行道南北方绿灯亮。东灯时间显示为离黄灯熄灭的时间(从5s到1s),北灯时间继续显示为离红灯熄灭的时间(从5s到1s)。程序框图如右所示第三阶段:余数在35~65s时,条件结构4的条件满足,十字路口南北绿灯和东西红灯点亮,人行道东西方绿灯亮。东西灯时间显示为离红灯熄灭的时间(从35s到6s),南北灯时间显示为离绿灯熄灭的时间(从30s到1s)。程序框图如右所示9第四阶段:余数在65~70s之间,条件结构4条件满足,十字路口南北黄灯和东西红灯点亮,人行道东西方绿灯亮。东灯时间显示为离红灯熄灭的时间(从5s到1s),北灯时间显示为离黄灯熄灭的时间(从5s到1s)。程序框图如右所示东西禁行模式的程序用东西红灯及南北绿灯与布尔真常量连接,人行道南北方向绿灯与布尔真常量连接,其余灯的与布尔假常量连接,而两方向灯的时间显示器则输入零值。东西禁行模式的程序:10南北禁行模式的程序用东西绿灯及南北红灯与布尔真常量连接,人行道东西方向绿灯与布尔真常量连接,其余灯的与布尔假常量连接,而两方向灯的时间显示器则输入零值南北禁行模式的程序:两向禁行模式的程序用东西南北的红灯与布尔真常量连接,人行道东西南北方向绿灯与布尔真常量连接,其余灯的与布尔假常量连接,而两方向灯的时间显示器则输入零值。两向禁行模式的程序:11检修模式的程序全部的灯与布尔假常量连接,而两方向灯的时间显示器则输入零值。检修模式的程序:四、交通灯设计调试结果本次所设计的交通灯有五种运行模式:正常运行、东西禁行、南北禁行、两向禁行、检修。调试结果如下所示:正常运行:12东西禁行:南北禁行:13两向禁行:检修: