《LabVIEW 程序设计教程》课件第11章交通灯控制系统.pptx

上传人(卖家):momomo 文档编号:7862489 上传时间:2024-08-28 格式:PPTX 页数:32 大小:3.08MB
下载 相关 举报
《LabVIEW 程序设计教程》课件第11章交通灯控制系统.pptx_第1页
第1页 / 共32页
《LabVIEW 程序设计教程》课件第11章交通灯控制系统.pptx_第2页
第2页 / 共32页
《LabVIEW 程序设计教程》课件第11章交通灯控制系统.pptx_第3页
第3页 / 共32页
《LabVIEW 程序设计教程》课件第11章交通灯控制系统.pptx_第4页
第4页 / 共32页
《LabVIEW 程序设计教程》课件第11章交通灯控制系统.pptx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、第11章 交通灯控制系统引子 你知道交通灯的历史吗?11.1 项目目标交通灯是城市交通中不可缺少的重要工具,是城市交通秩序的重要保障。一个十字路口的交通一般分为两个方向,每个方向具有红灯、绿灯和黄灯3种。交通灯两个方向的灯的状态是相关的。某方向的灯的状态影响着另外一个方向的灯的状态,如何协调两个方向的车流呢?本项目的目标就是用NI PCI6221数据采集卡实现常见十字路口交通信号灯功能的模拟实现,除要求有基本的红绿灯状态的改变,同时要求有时间的倒计时显示,要求可对各灯的时长可进行控制。通过本项目的设计、实施,要求学生:(1)掌握自定义控件的制作方法;(2)掌握数组、簇、表格等的使用;(3)了解

2、数据采集卡数字I/O口的线操作和端口操作;(4)掌握使用DAQ mx做数字量输入输出的程序的编写。11.2 项目分析逻辑分析逻辑序列软硬件同步显示界面设计 在完成本项目前,首先对东西向、南北向的各灯状态、时间等进行配置,具体如表11-1。从项目目标知,要完成本项目(1)首先需完成交通灯模拟系统的硬件电路设计;(2)要实现常见十字路口交通信号灯功能的模拟;(3)将交通灯信号通过数据采集卡输出控制交通红绿灯电路。11.3 任务一 交通灯模拟系统硬件设计 选用6个发光二极管,红色、黄色、绿色各两个,每个发光二极管的电路都是一样,如图11-1所示。其中DIO与PCI6221数据采集卡的数字量输入输出口

3、相连,本项目中需用到数据采集卡的6个DIO通道。当DIO为低电平时,NPN三级管不导通,LED不点亮;当DIO为高电平时,三极管导通,LED点亮。图11-1硬件电路图11.4 11.4 任务二任务二 模拟简易交通灯模拟简易交通灯11.4.1 11.4.1 相关知识相关知识1表格(Table)2For循环11.4.2 11.4.2 简易交通灯程序设计简易交通灯程序设计1表格(Table)11.4.1 11.4.1 相关知识相关知识 使用表格控件,来存放显示每个方向交通灯的逻辑序列及时长信息。右击前面板空白处,控件选板系统列表、表格和树系统表格,放置表格控件于前面板上。修改其标签(Label)为“

4、逻辑序列”。右击表格控件,显示项中勾选“列首”,如图11-2所示。在表格的列首中,填写每一列所代表的信号灯,如ER(东西向红灯)、EY(东西向黄灯)等。表格中每行定义了六个LED各自的逻辑信息和周期。逻辑信息“1”表示真即灯亮,对应于数据采集端口的高电平;“0”表示假即灯灭,对应于数据采集端口的低电平。时长(s)表示每种状态所保持的时间。表格中存放的数据类型为字符串型的二维数组,故其在程序框图中的接线端子的颜色为枚红色。作为列首的提示信息,不会直接出现在接线端子所传递的数据中,若想在程序框图中引用表格列首的信息,需要使用属性节点来调用。2For循环LabVIEW中的For循环和文本语言中的Fo

5、r循环功能是一致的。选择路径:函数选板结构For循环。For循环的详细使用方法见2.1节。和while循环一样,For也可使用条件接线端,右击For循环边框,选择“条件接线端”即可使用停止按钮控制For循环的运行,如图11-3所示。For循环和while循环的主要区别在于:(1)在没有添加条件接线端的情况下,For循环的执行次数是确定的,执行次数由N前端接线端的数值决定的;而While循环仅当条件接线端接收到符合条件的值时才停止执行。(2)For循环N接线端口可以连接数值0,循环执行0次;而While循环至少执行一次,仅当条件接线端接收到符合条件的值时才停止执行。(3)For循环的自动索引功能

6、是自动开启的,故输出数据的形式为数组;而While循环隧道自动输出最后一次执行的值。For循环的自动索引功能是默认打开的,While循环也有自动索引功能,需要用户自己开启。While循环默认为禁用自动索引。11.4.2 简易交通灯程序设计 由图11-2知交通灯的逻辑序列有4种,即在编写程序时要考虑输出四种状态,故在交通灯控制程序的设计中采用For循环来实现,程序中不含急停按钮,在没有错误信息的情况下,For循环执行4次后,程序停止11.5 任务三 数字信号输入输出程序设计11.5.1 相关知识11.5.2 数字信号输出程序框图11.5.1 相关知识同模拟信号采样一样,数字信号采样方式有:单采样

7、数字输入、有限采样数字输入和连续采样数字输入。数字信号采样三种方式的编程流程分别同模拟信号采样(图10-4、图10-5、图10-6),所不同的是数字信号采样与模拟信号采样所使用的多态VI读函数实例不同。数字量输出的三种采样模式分别为:单采样数字输出、有限数字输出和连续数字输出。单单信号生成信号生成是一种按需操作。即在调用写入函数/VI后,NI-DAQmx立即在输出通道上生成一个值。该操作不需要任何缓冲或硬件定时。通过NI-DAQmx,也可在多条通道上生成采样。如要提高速度,尤其是写入多个采样时的速度,可在应用程序中包括“开始”和“结束”函数/VI。在图11-6中,“开始”函数/VI应位于写入采

8、样之前,“停止”函数/VI应位于清除任务之前。以以缓冲模式生成有限数量个数字值的缓冲模式生成有限数量个数字值的NI-DAQmx应用程序应用程序的主要步骤:包含创建通道、指定定时(若采用软件定时,此步骤可省略)、指定开始触发(可选)、写入采样、开始任务、生成所有的采样、停止任务和清除任务。在有限数字输出中,为保证所有的数字信号有效输出,在任务开始后调用等待生成所有采样(DAQmx 等待直到完成函数),当生成所有采样后再停止任务,清除任务。注意在数字信号输出中要先写入采样再开始任务,否则会出现写入错误信息。连连续生成数字输出的续生成数字输出的NI-DAQmx应用程序应用程序的主要步骤。和有限数字输

9、出流程不同的是在指定定时时无需进行采样数的设置。因是连续输出,因此写入采样应放在循环结构中。11.5.2 数字信号输出程序框图 交通灯模拟电路中使用的LED灯,可通过PCI-6221的DIO通道输出TTL信号来控制其亮灭(由表8-4知PCI-6221数字I/O的逻辑电平为TTL电平)。TTL兼容信号所具有的特性如图8-4所示,其输出有两个离散电平:高电平和低电平。由图11-1知:PCI-6221的DIO通道输出高电平时LED灯亮,反之则灭。根据图11-6所示的单采样数字输出流程图编写程序将图11-5中的逻辑序列由PCI-6221送出,流程为:创建数字通道,数字通道写操作,停止任务,清除资源,简

10、单错误处理。此处运用了数字通道写操作的“隐式”启动,其中数字通道写操作的VI放置在For循环中。11.6 11.6 任务四任务四 项目实现项目实现11.6.1 11.6.1 相关知识相关知识1控件的自定义2簇11.6.2 11.6.2 前面板设计前面板设计11.6.3 11.6.3 程序框图设计程序框图设计11.6.1 11.6.1 相关知识相关知识 前面板的设计中,通常会包含硬件配置部分、显示结果部分、程序说明等。内容如果不多,可以按照左右及上下的排布方式,按类别放置于前面板上。也可以使用选项卡控件(Tab control)将每一个类别放置于一个选项卡中,并添加图示。如何将常见的布尔控件,变

11、成图11-10中交通灯的模样。东向和北向的交通灯制作是一样的。在此需先了解两个知识点:自定义控件和簇。1、控件的自定义 打开控件编辑器窗口 右键单击前面板上的输入控件或显示控件,从快捷菜单中选择高级高级 自定义自定义 编辑控件后,控件可以被保存为a.控件b.自定义类型c.严格自定义类型自定义控件1.选择自定义控件2.自定义控件3.自定义控件图片选择自定义控件(续)4.四个图片项依次做修改 5.修改后的四个项 6.切换模式,保存控件 2、簇 簇将不同类型数据元素归为一组 类似于文本编程语言中的结构体(struct)簇的排序 簇元素的逻辑顺序与其在簇内的位置无关 右键单击簇外框,从快捷菜单选择重新

12、排序簇中控件11.6.2 11.6.2 前面板设计前面板设计按照想要做成的交通灯的模样,将红黄绿三色LED排列好,并将它们摆布在已有的交通灯背景图上。将底色图片拖放至LabVIEW前面板上,将三种颜色的布尔量依次放置于底色图片之上。若图片挡住了布尔控件,选中图片,单击工具栏最右边的按钮,下拉菜单中最后一个选项“移至后面”。通常有多个元素为一组时,可选中编辑完成的交通灯(包含底色图片,也可包含解释文字),单击工具栏最右侧的按钮,下拉框中,选择第一个“组”,即可将选中的所有元素变成一组元素。它们在程序框图的逻辑上无关联,在前面板上可以作为一个组合被移动。需要注意的是,簇元素的逻辑顺序与其在簇内的位

13、置无关。右键单击簇外框,从快捷菜单选择重新排序簇中控件,如图11-15所示,查看菜单栏下方所显示的数值(如1),需要将哪一个簇元素设置为当前的数值顺序,就用鼠标点击那个簇元素,就可将其设定为所指定的逻辑顺序。完成后,点选,若需要设定,点选。注意包含两个方向的簇中元素的顺序,应与外部硬件资源所对应的交通灯保持一致。本项目前面板采用选项卡控件,由三部分组成:系统概述、交通灯和硬件资料。选项卡控制在前面板中点击鼠标右键选择新式或经典容器或经典容器选项卡控件。11.6.3 程序框图设计思考题11-1 完成交通灯自定义控制的制作。11-2 要求东西方向、南北方向车道除了有红、黄、绿灯指示,期望做到每一种

14、灯亮都采用倒计时的方式做显示,如何修改程序?(可考虑使用数码管显示或用Xcontrol控制实现显示)。11-3 本项目实现中用到了数字量输出,在调到数字量输出.vi时采用了隐式启动,请为程序加上开始.vi使程序处于显示启动,提高系统的工作效率。11-4 为项目增加一急停按键和模式设置按键,当按下急停按键时,两个方向都为红灯,以提示路口有事故发生;模式设置键主要针对路口在不同时间段红灯、绿灯维持的时长不同,如可设为上下班高峰期模式、正常模式和夜间模式;请编写程序并完成调试。11-5 尽管在交通灯前面板设计中用簇来完成交通灯的自定义控制制作,但在程序设计中并未用簇来表征交通灯控件,而是将交通灯的6个布尔控件作为独立个体,分别赋值。这种方式在简单线程中使用,完全可以。但若程序架构变得复杂,需要处理和更新的数据变多,在此情况下会推荐使用簇的方式来管理数据。方便数据的传递以及程序架构的梳理和维护。请修改程序实现用簇来传递数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《LabVIEW 程序设计教程》课件第11章交通灯控制系统.pptx)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|