虚拟仪器技术与应用-项目6交通灯控制系统_第1页
虚拟仪器技术与应用-项目6交通灯控制系统_第2页
虚拟仪器技术与应用-项目6交通灯控制系统_第3页
虚拟仪器技术与应用-项目6交通灯控制系统_第4页
虚拟仪器技术与应用-项目6交通灯控制系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目6交通灯控制系统2024/1/3121:19第2篇基于LabVIEW的测控系统目录6.1项目描述 6.2任务1设计控制系统的前面板6.3任务2实现交通灯控制逻辑功能6.4任务3设计交通灯倒计时功能6.5任务4系统调试测量6.6思考题

6.1项目描述知识目标能力目标素养目标1. 了解虚拟仪器的体系结构。2. 掌握应用LabVIEW进行DO程序设计。3. 掌握应用虚拟仪器应用程序将通用计算机与功能化硬件结合起来,实现对被控对象的简单控制等。能够使用给定虚拟仪器硬件设备和计算机搭建交通灯控制系统。能够根据系统功能要求编写交通灯控制程序。能够正确进行系统调试测试。能够对系统功能完整描述,并规范撰写项目报告。具有良好的工程意识,严谨的工作作风,自觉遵守工程规范和职业道德。具有分析问题、解决问题的能力。具有良好自我学习能力,具有勇于创新、敬业乐业的工作作风。具有良好的责任心、环保意识。6.1.1项目目标

城市道路的交叉路口通常设置有绿灯、黄灯和红灯三种状态的交通灯,它们的作用是:当绿灯亮时,表示车辆可通行;当黄灯亮时,提醒正在交叉路口中行驶的车辆赶快离开;当红灯亮,车辆要在停车线后停驶。交通灯的控制看似简单,其中涉及到两个方向车流的控制,何时亮何种颜色的灯,时长多久。这些都需要做逻辑分析和运算。现在更复杂的交通灯还带有左转和右转提示灯。6.1项目描述6.1.2任务要求交通灯是城市交通中不可缺少的重要工具,是城市交通秩序的重要保障。本系统就是实现常见十字路交通灯功能。通过编程,实现配置各种灯的时间,控制各个灯的状态等。一个十字路口的交通一般分为两个方向,每个方向具有红灯、绿灯和黄灯3种交通灯两个方向的灯的状态是相关的,现给出如下设定:

6.1项目描述

方向和状态时间长度1东向红灯亮,北向绿灯亮9s2东向红灯亮,北向黄灯亮3s3东向绿灯亮,北向红灯亮9s4东向黄灯亮,北向红灯亮3s6.1.3实践环境硬件设备:计算机、计算机、ELVISⅢ、多功能I/O板卡、导线若干软件环境:LabVIEW6.1项目描述6.2任务1设计控制系统的前面板6.2.1前面板布置在前面板设计用户界面,一般可把系统运行监控界面与参数设置、系统配置、系统介绍等分开放置,使得系统运行监控界面更加简洁、清晰。在设计中,可使用选项卡空间来实现上述要求。在控件选板中选择“新式→容器→选项卡控件”,放置在前面板上。选项卡只是把前面板上内容进行了分类,并不会对程序造成任何影响。在选项卡控件上右击,在显示项中去掉标签选项。把“选项卡1”修改为“系统描述”、“选项卡2”修改为“通道设置”。在选项卡控件上右击,选择“在后面添加选项卡”选项,并把该选项修改为“交通灯控制”。6.2任务1设计控制系统的前面板放置选项卡控件6.2任务1设计控制系统的前面板在“系统描述”选项卡中,对系统进行简单的描述;“交通灯控制”选项卡中,放置该系统所需要的输入和显示控件,在VI运行中,该选项卡界面是人机交互界面;“通道设置”选项卡放置通道号输入控件前面板布置如图所示。6.3.2设计交通灯控件控件的属性设置1)在前面板上,打开控件选板,在布尔控件子选板里面找到指示灯,放置在前面板上。在控件上右击鼠标,在打开的快捷菜单,把“显示项”里面“标签”选项的钩选取掉。2)鼠标移动到该控件上,出现拖拽工具,把它拖拽到合适的大小。3)复制3个控件,可以选中该控件然后按住Ctrl键移动鼠标,也可以直接复制粘贴。4)把三个控件从上到下排列整齐。发光颜色依次设置为红、黄、绿,熄灭颜色都设置为灰色或者是透明。设置颜色属性的方法是:在控件上点击鼠标右键,在打开的快捷菜单上选择“属性”选项,打开属性设置对话框。在右下方的“开”或者“关”的颜色框中单击鼠标左键,就会弹出颜色选择窗口,可根据需要选择颜色,也可以选择颜色选择窗口右上角的“T”,来达到透明效果。设置好的交通灯,中间的黄颜色为关闭状态。6.2任务1设计控制系统的前面板

布尔控件的属性对话框

三色交通灯

2024/1/3121:196.2任务1设计控制系统的前面板2、修饰为了美观,还可以对交通灯进行修饰。在控件选板的“修饰”子选板里面选择“平面圆盒”,拖拽到合适大小,然后移至交通灯的后面,这样就制作完成了一组交通灯。把灯与修饰同时选中,单击前面板窗口右上角的“重新排序”键,如图6-10所示,把它们组合起来。控件组合6.2任务1设计控制系统的前面板6.2任务1设计控制系统的前面板3、控件组合为簇1)组合为簇:在前面板的控件选板里找到“数组、矩阵与簇”子选板,把簇放置在前面板上,拖拽到能容纳下交通灯布尔控件。选中交通灯,拖进簇的框架里面。2)调整簇为合适大小:在簇的边框上右击,从打开的快捷菜单里面选择“自动调整大小”→“调整为匹配大小”。3)美化外观:为了美观,可隐藏簇本身的样子。在前面板的菜单栏中,“查看→工具选板”,点击颜色选板,将后色板的颜色都选择为透明,即颜色选板右上角的“T”。使用该色彩,对簇的外框涂色,就可完全隐藏簇的外框。4)编辑文本:在标签“簇”字的位置上双击鼠标左键,把簇的标签修改为“东西方向”,并对文字进行移动、修改大小、修改颜色等。调整簇框架的大小5)按照上述做法,再制作南北方向的交通灯。南北方向交通灯水平排列,从左到右依次是红、黄、绿。6.2任务1设计控制系统的前面板6)簇元素排序:这样操作之后,每个簇中包含有3个布尔控件。簇元素的逻辑顺序与其在簇内的位置无关。右键单击簇外框,从快捷菜单选择“重新排序簇中控件”,查看菜单栏下方所显示的数值。需要将哪一个簇元素设置为当前的数值顺序,就用鼠标点击那个簇元素,就可将其设定为所指定的逻辑顺序。完成后,点选;若要需要设定,点选。包含簇中元素的顺序,最好与外部硬件资源所对应的交通灯相一致:东西方向顺序是红、黄、绿;南北方向顺序是绿、黄、红。6.2任务1设计控制系统的前面板簇元素重新排序6.2任务1设计控制系统的前面板6.3.3制作表格使用表格控件,来存放显示每个方向交通灯的逻辑序列及时长信息。选择前面板的控件选板→系统→列表、表格和树→系统表格,放置表格控件于前面板上。修改其标签为“逻辑序列”。右击表格控件,显示项中勾选“列首”。

表格控件及右键菜单使用6.2任务1设计控制系统的前面板在表格的列首中,填写每一列所代表的信号灯。E代表东西方向、N代表南北方向;R、Y、G分别代表红、黄、绿;逻辑信息,“1“表示真即灯亮,“0‘’表示假,即灯灭;时长(s)表示每种状态所保持的时间。表格中一行表示某一个时刻6个LED灯的状态及时长。表格中存放的数据类型为字符串型的二维数组,其在程序框图中的接线端子的颜色为枚红色。作为列首的提示信息,不会直接出现在接线端子所传递的数据中。若想在程序框图中引用表格列首的信息,需要使用属性节点来实现。6.2任务1设计控制系统的前面板6.3.1交通灯控制逻辑设计上一节中制作了表格文件表格内的数据为字符串,而字符串数据不方便做数值运算。在LabVIEW中很多数都可以以多种类型的运算,如加减乘除可以针对标量,也可以针对数组、簇和波形等数据。同样的,类型的数据类型转换函数既可以针对单个标量。也可以作用于整个数组。6.3任务2实现交通灯控制逻辑功能函数“十进制数字符串至数值转换”可以完成字符串转换为数值。选择路径:程序框图→函数选板→字符串→字符串/数值转换→十进制数字符串至数值转换。转换后得到的整形数组中,包含有两组信息:一组为交通灯的逻辑信息,一组为延时信息。需要将这两组信息分离。前面制作的表格是字符串格式。字符串不方便做数值运行,需要将表格的字符型数组转换为数值类型的数组。6.3任务2实现交通灯控制逻辑功能1.字符串数组转换为数值数组如何实现两组信息的分离?可使用函数“删除数组元素”来完成信息的分离。将二维数组连接至函数的“N维数组”连线端口,列的索引设定为6,含义为将数组中第7列数值删除(即删除时长信息)。函数输出的两个数组:“已删除元素的数组子集”为逻辑序列二维数组;“已删除的部分”为时长信息一维数组。时长信息给等待函数,控制每次循环执行的时长,即每个状态保持的时长。6.3任务2实现交通灯控制逻辑功能逻辑序列二维数组是数值型,需要转换成布尔型,原因是,在数字量输出(DO过程)时,要求数据格式为布尔量。数值量转换成布尔量可以用比较选板上的函数来实现:数值“1”大于0为真,输出T;数值“0”大于0为假,输出F。这样运算之后,“100000”就变成了“TFFFFF”。6.3任务2实现交通灯控制逻辑功能2.数值数组转换为布尔数组依次读取二维数组中的每一行,可以用For循环的自动多索引功能来实现,二维数组有4行,需要进行4次循环。首次运行时,读取第0行数据为“TFFFFF”的一维数组,按照逻辑序列第1行到第3行以此类推。用“删除数组”函数,把6个元素的一维数组拆分成2个,分别表示东西方向和南北方向的交通灯。6.3任务2实现交通灯控制逻辑功能2.数值数组转换为布尔数组用“数组至蔟转换”函数,把它们变成蔟,与事先做好的“三色交通灯”蔟连接。特别要注意的是,“数组至蔟转换”函数默认输出9个元素,需要变成3个才与显示控件一致。方法是右击该函数,弹出菜单中选择“蔟大小……”,把9改成3即可。通过For循环的自动索引隧道,把时长信息一维数组的3个元素也依次读取,再乘1000,变成毫秒单位,送给等待(ms)函数。这样,交通灯控制逻辑程序就设计好了。6.3.2用For循环实现倒计时1.普通数值显示在十字路口,除了交通灯之外,还有红绿灯时间倒计时的显示。从表格控件中发现,当一个方向绿灯和黄灯时,另一个方向均为红灯。红灯亮的时间是绿灯与黄灯亮的时间之和。因此,东西方向灯亮的顺序和时间为:红灯12s、绿灯9s、黄灯3s;南北方向为:绿灯9s、黄灯3s、红灯12s。可以利用For循环的索引功能来实现。6.3任务2实现交通灯控制逻辑功能东西方向:程序功能是先从12开始倒数,循环一次减1,减到1之后,再从9开始,依次类推。图中的“等待(ms)”输入常量1000,相当于等待1s,如果循环12次,就实现了等待12s。南北方向:把索引数组修改为9、3、12即可。还可以在数值显示控件的后面加上修饰,并修改显示文本的大小、字体、颜色等。

东西方向倒计时6.3任务2实现交通灯控制逻辑功能2.数码管数值显示绘制数码显示图片,然后保存为bmp格式,用“读取bmp图片”函数读取,该函数在函数选板的“编程→图形与声音→图形格式”中。然后用函数选板“编程→图形与声音→图片函数→绘制平滑像素图”函数,绘制图片。由于数码一共有10个,可用For循环读取10次,图片位置数组用来输入放置图片的位置地址。这样就生成一个图片数组。把这个数组转为常量数组,就完成了数码图片数组制作。6.3任务2实现交通灯控制逻辑功能对应的倒计时程序框图如图。与前一个方法差别是,不直接显示个位和十位数值,而是把个位和十位数值作为索引,找到对应数码图片的位置,然后显示该图片。把该图片捆绑成簇,在前面板进行适当修饰。

用图片数组实现倒计时6.3任务2实现交通灯控制逻辑功能把东西方向、南北方向倒计时和交通灯控制逻辑程序设计好之后,就完成了无硬件的模拟交通灯控制程序。运行该程序,可以观察交通灯的变化情况,看看是否实现设计功能。

用图片数组实现倒计时6.3任务2实现交通灯控制逻辑功能6.4任务3设计交通灯控制系统用户界面上的交通灯能够按照要求点亮。那么如何点亮实验台上的交通灯?分析交通灯模块I/O信号类型:需要TTL电平驱动因此是数字量输出(DO)1.虚拟仪器设备驱动采用NI-DAQmx驱动软件的情况DO过程的流程:创建数字通道,数字通道写操作,停止操作,清除资源,简单错误处理。其中数字通道写操作的VI一般放置在for循环或者while循环中。数字信号输出(DO)6.4任务3设计交通灯控制系统6.5.2交通灯控制系统程序框图“DAQmx写入”在循环框架内,其他的节点都放在循环框外,因为只需创建一次虚拟通道,而进行多次数据写操作。当循环结束,才进行停止、清除任务等操作。最后把进出循环体的任务和错误簇隧道替换为移位寄存器,用来存放任务和错误簇信息。交通灯控制程序框图6.4任务3设计交通灯控制系统步骤:1、将nextwire_20模块安置在nextboard平台的数字信号槽位(DigitalSlot)1或2上,打开nextboard电源。2、根据模块放置的槽位,填写物理通道号DigitalSlot1位置通道号:Dev1/port2/line4,Dev1/port1/line6,Dev1/port2/line6,Dev1/port2/line2,Dev1/port2/line1,Dev1/port2/line0DigitalSlot2位置通道号:Dev1/port2/line5,Dev1/port1/line7,Dev1/port2/line7,Dev1/port2/line3,Dev1/port1/line4,Dev1/port1/line36.4任务3设计交通灯控制系统步骤:3、运行调试VI,观察运行结果。4、进行测试,记录数据、截取图片。5、完成项目报告。6.4任务3设计交通灯控制系统6.4任务3设计交通灯控制系统2.采用ELVISⅢ硬件设备和驱动软件采用ELVISⅢ实现交通灯控制系统功能时,首先把ELVISⅢ通过USB方式,与计算机连接。用多功能I/O板卡下方自带的LED作为被控对象—交通灯,LED0、LED1、LED2模拟东西方向交通灯;LED3、LED4、LED5模拟南北方向交通灯。用导线把这6个LED的端子分别与DIO的6个端子相连“比如选择DIO14~DIO19这6个DIO端子”。数字信号输出(DO)6.4任务3设计交通灯控制系统该程序在“无硬件交通灯控制程序”添加DO过程就可以了。如果“无硬件交通灯控制程序”不是在“NIELVISⅢProject模板”下创建的VI,就需要把它导入项目中。方法如图所示,右击“NI-ELVISⅢ***(注:后面的编号和地址各不相同)”项弹出快捷菜单,选择“添加”→“文件”,找到“无硬件交通灯控制程序”,然后添加文件即可。数字信号输出(DO)6.4任务3设计交通灯控制系统采用DO一采样模式(DigitalInput/Output1Sample)。程序如图所示。图中,逻辑序列的一维数组作为“Write”的数据输入,数组有6个元素,运行程序时,每循环一次输出6个布尔量。一般在设计上,DO过程在For循环上不用数据隧道,而是采用移位寄存器。可以先连线再右击数据隧道,选择“替换为移位寄存器”;或者先添加移位寄存器再连线。数字信号输出(DO)6.4任务3设计交通灯控制系统工程上,运行有错误的时候,要求停止运行程序,可利用For的条件停止。方法是右击循环边框,弹出的菜单中选择“条件接线端”,然后在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论