Labview笔记

Labview笔记
Labview笔记

Labview笔记

1.ctrl+e 前后面板之间切换

2.Ctrl+t

3.Ctrl+h 即使帮助窗口

4.编辑菜单查找修改labview文件及组件

5.接线端子信息描述为黑体字,表明此端子为必须接线端

6.Ctrl+s对vi进行保存

7.移动需选择

8.查看菜单中可打开选板

9.新式选板较为常用,课件中有

10.工具选板

11.

12.

labview简介

LabVIEW是一种程序开发环境,类似于C和BASIC开发环境,但LabVIEW与其它计算机语言的显著区别是:其它计算机语言都是采用基于文本的语言产生代码行,而LabVIEW使用图形化编程语言G语言编写程序,产生的程序是框图的形式。像C或BASIC 一样, LabVIEW也是通用的编程系统,有一个可完成任何编程任务的庞大的函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画形式显示数据及其通过程序(子VI)的结果、单步执行等等,便于程序的调试。 虚拟仪器,简称VI,包括三部分:前面板、框图程序和图标/连接器。程序前面板,如图一所示,用于设置输入量和观察输出量。它模拟真实仪器的前面板。其中,输入量被称为Controls(控件),用户可以通过控件向VI中设置输入参数等;输出量被称为Indicators(指示器),VI通过指示器向用户提示状态或输出数据等。用户还可以使用各种图标,如旋钮、开关、按钮、图表及图形等,使前面板易看易懂。每一个程序前面板都有相应的框图程序与之对应。框图程序,如图二所示,用图形编程语言编写,可以把它理解成传统程序的源代码。框图中的部件可以看成程序节点,如循环控制、事件控制和算术功能等。这些部件都用连线连接,以定义框图内的数据流动方向。图标/接口器件可以让用户把VI程序变成一个对象(VI子程序),然后在其他程序中像子程序一样地调用它。图标表示在其他程序中被调用的子程序,而接线端口则表示图标的输入/输出口,就像子程序的参数端口对应着VI程序前面板控件和指示器的数值。 图一图二 虚拟仪器和传统仪器的差异很大,具有很强的优势。独立的传统仪器,例如示波器和波形发生器,性能强大,但是价格昂贵,且被厂家限定了功能,只能完成一件或几件具体的工作,因此,用户通常都不能够对其加以扩展或自定义其功能。仪器的旋钮和开关、内置电路及用户所能使用的功能对这台仪器来说都是固定的。另外,开发这些仪器还必须要用专门的技术和高成本的元部件,从而使它们身价颇高且很不容易更新。基于PC机的虚拟仪器系统,诞生以来就充分利用了现成即用的PC机所带来的最新科技。这些科技和性能上的优势迅速缩短了独立的传统仪器和PC机之间的距离,包括功能强大的处理器(如Pentium4)、操作系统及微软Windows XP、NET技术和Apple Mac OSx。除了融合诸多功能强大的特性,这些平台还为用户提供了简单的联网工具。此外,传统仪器往往不便随身携带,而虚拟仪器可以在笔记本电脑上运行,充分体现了其便携特性。需要经常变换应用项目和系统要求的工程师和科学家们需要有非常灵活的开发平台以便创建适合自己的解决方案。可以使用虚拟仪器以满足特定的需要,因为有安装在PC 机上的应用软件和一系列可选的插入式硬件,无需更换整套设备,即能完成新系统的开

(完整word)labview常见习题大全,推荐文档

1. 10.21 产生100个随机数,求其最小值和最大值以及平均值 2. 10.22 用for循环产生4行100列的二维数组,数组成员如下: 1,2,3.......100; 100,99,98.......1; 6,7,8.......105; 105,104,103......6; 从这个数组中提取2行50列的二维数组,数组成员如下: 50,49,48......1; 56,57,58 (105) 将这2个数组用数组显示件显示在前面板. 3. 10.23 程序开始运行时候要求用户输入一个口令,口令显示正确时候滑钮显示件显示0---100的随机数,否则程序立即停止. 4. 10.24 编写一个程序,在前面板上放3个按钮,当按下某个按钮时,输出按钮的编号. 5. 10.25 编写计算以下等式的程序: y1=x3-x2+5 y2=m*x+b x的范围是0---10。 y1和y2用数组显示件显示在前面板。 6. 10.26 编程求Josephus(约瑟夫环)问题:m个小孩子围成一圈,从第一个小孩子开始顺时针方向数数字,到第n个小孩子离开,这样反反复复,最终只剩下一个小孩子,求第几个小孩子留下? 7. 10.27 猴子吃桃子问题,每天吃完全部的桃子一半又一个,到第10天的时候还剩下一个,编程求第一天桃子的总数. 8. 10.28 编程求1000以内的所有水仙花数,"水仙花数"指一个三位数,它的各位数字的立方和等于她本身.例如:371=3*3*3+7*7*7+1*1*1; 9. 10.31 编程求1000以内的"完数","完数"是指一个数恰好等于它本身的因子之和,例如28=14+7+4+2+1; 10. 11.1 在一个chart中显示3条曲线,分别用红,绿,蓝3种颜色表示范围0-1,0-5,0-10的3个随机数. 11. 11.2 在一个Graph中用2种不同的的线宽显示1条正弦曲线和一条余弦曲线,每条曲线长度为128个点.正弦曲线x0=0,Dealt x=1,余弦曲线x0=2,Dealt x=10. 12. 11.3 用XY Graph显示一个半径为1的圆 13. 11.4 产生一个10行10列的二维数组,数组成员为0--100的数字,并用强度图显示. 14. 11.5 画出Labview图形显示,以及放大缩小功能,以及在此图标上添加可改变的labVIEW字体样式. 15. 11.6 在前面板创建数值型控件,输入一个数值,在乘以一个比列系数,然后还在同一个控件中显示出来.(局部变量用法) 16. 11.7 编写一个程序,用labview的信号生成函数产生一个三角波并显示在chart上,在编写例外一个程序读出数据显示在chart上,调节2者的程序运行的时间,比较波形的差异.(全局变量) 17. 11.8 编写一个程序,用labview的信号生成函数产生一个三角波并显示在chart上,在编写例外一个程序读出数据显示在chart上,调节2者的程序运行的时间,比较波形的差

labview问题集合

Labview初学者常见问题以及解答(上) 1、Labview如何实现由一个事件引发其他三个事件的顺序发生,且这三次事件间的时间间隔为50ms?回答:可以引用状态机来设计程序,将触发事件作为状态机的状态控制参数,后面发生的三个事件依次作为状态机的三个顺序状态,设置状态切换时间间隔为500ms. 2、labview在主程序通过局部变量不能实时看子vi的参数回答:通过局部变量只能得到子vi 运行完之后的结果。可以用control reference 方式,在子vi加一个属性节点引出一个reference。主程序里把需要显示的控件创建一个reference连到子vi的reference输入端口。另外也可以用vi server方式实现。 3、如何在一个graph或chart显示多个Y轴刻度,并且使每个通道对应每个刻度?回答:在前面板上,右键点击刻度,然后选择duplicate scales,就会创建一个新的刻度。然后再点击右键,选择swap sides,就可以让刻度显示在图的左边或右边。然后右键右上角的plot legend 上的曲线plot,选择Y scales然后就可以选择与该曲线相应的Y轴SCALES。多条曲线对应多条Y轴的刻度时,是同样的方法。 4、如何从labview中打开一个pdf文件?回答:最简单的方法:用system exec.vi实现,在system exec.vi的command line 端口创建一个常量,输入adobe reader 的路径,再加上文件名等几个参数就可以实现上述要求。举例如下:如果要拉开位于c盘的1234.pdf文件可以这样写“C:\Program files\Acrobt 7.0\Acrobat\Acrobat.exe”/t “C:\1234.pdf” “username”其中C:\Program files\Adobe\Acrobt 7.0\Acrobat\Acrobat.exe是Adobe Reader 的安装路径,/t是命令参数,C:\1234.pdf则是要打开的文件名,最后的username 是用户的名字 5、采集数据在graph如何显示系统时间,并且随着采集点数时间不断刷新。回答:有两种方式,一种是采集波形数据然后输出给graph,在graph上选择显示绝对时间,并且去掉ignore time stamp选项。第二种是采集数据文件,然后用获取时间的vi获取当前时间,然后把采集的数据文件和当前vibuild成波形文件再给graph.graph的设置和前种方法一样。这样就可以显示出时间虽采集点不断刷新的效果。 6、report generation里的standard和HTML究竟是什么意思?回答:STANDARD和HTML 是LV本身就有的报表类型,无须安装其他的文本编辑工具就可以打印。STANDARD是LV内建的一种报表格式,可以打印但不能存盘,也就是说我们的报表没有电子版。HTML是网页格式的文件,可以用浏览器打开,其实相当于LV帮我们编写HTML代码,这种格式是不能直接打印的,需要先指定网页路径才能打印出来。还要注意,如果是一段程序是用了report generation 的vi,在打包成exe文件或llb文件时,需要加入两个动态vi:_excel dynamic vi和_word dynamic vi。如果生成的报表采样了模板需要自支持文件里添加相应模板。 7、如果要将channel名字,测的是什么信号,采样率是多少这样的数据和采得数据一起存入文件应该用什么方式比较好?回答:推荐一种以前基本被忽略的文件结构——TDM FILE格式来存,这种文件格式基于二进制的方式,而在存储过程中可以加入很多的外部信息进去,例如free text;free interger等等,所以存这样的应用还是挺合适的。

LabVIEW

第一章LabVIEW简介 LabVIEW是美国国家仪器公司(National Instruments Co)开发的一种图形化的编程环境。其名称含义为实验室虚拟仪器工作平台(Lab oratory V irtual I nstrument E ngineering W orkbench)。作为一种方便的数据采集和仪器控制开发软件,它可工作于Macintoshe 、Sun SPARC工作站、HP9000/700系列工作站以及PC机等各种机型,可运行于Windows 3.1、Windows9x/2000、Windows NT、UNIX等多系统下,是一种灵活有效的仪器控制和数据分析软件系统。 LabVIEW程序使用虚拟仪器(V irtual I nstrument,缩写为VI)的概念。它是指一台计算机和连接外部的端口(计算机的COM口,LPT口或内插板)在软件控制下可完全模拟替代传统的仪器。因VI功能完全是由软件定义,故在硬件系统不变的情况下,用户可通过软件开发自行改变或扩充仪器的功能,实现自己的特殊要求,或用一套硬件系统实现多种仪器的功能,从而使虚拟仪器VI不但比传统仪器更灵活有效,而且也更经济。VI的核心就是LabVIEW程序,所以在LabVIEW中,所有程序均称之为VI程序,不管它是否通过端口和外界进行通讯。每个VI程序均可作为一个功能模块被重复使用,因而使用LabVIEW来开发和扩展程序极为方便。 LabVIEW编程语言同常规的程序语言不同,它采用更易使用和理解的图形化程序语言-G语言(Graphical programming language)。G语言使用图标代替常规的一条或一组语句来实现一个功能,通过各功能图标间的逻辑连接实现程序功能。 其编程过程不是书写一行行语句,而是连接一个个代表一定功能的图标,其程序编制过程简单,不涉及复杂功能实现的算法,易于掌握。同时,因为其编程过程基于可重复使用的功能模块,故可方便地使用由专业人员编制提供的专业级别的功能模块,开发出专业水平的程序。所以,LabVIEW在世界范围内的众多领域如航空、航天、通信、汽车、半导体、化学和生物医学等得到了广泛的应用,从简单的仪器控制、数据采集到复杂的测试和数据处理,从工厂、科研院所到大学里的实验室,到处都可以发现LabVIEW的应用。在西方国家(如美国)的许多大学已将LabVIEW作为本科的教学内容,成为工程师素质培养的一个方面。由于LabVIEW虚拟仪器的强大功能,使得使用一套硬件系统就可进行多种不同要求的研究,故而可以用更小的消耗进行更多的研究,尤其适合在我国资金较少的科研单位用于研究工作。 LabVIEW6.-中,包含许多专家编写的VI供用户使用。在数据采集方面有许多采集卡(DAQ)的支持模块,使采集程序的编制不必涉及低层控制;有各种数字、模拟信号I/O模块;有对GPIB(General Purpose Interface Bus,IEEE488标准)、VXI(VME bus eXtensions for Instrumentation ,扩展IEEE1014标准)和Serial端口的支持和控制等VI。在数据处理控制方面有各种数字信号处理和产生、频谱分析、滤波、平滑窗口、概率统计等VI。 本LabVIEW简介部分主要介绍LabVIEW语言的基础知识,包括界面、菜单、工具、模板、器件、函数等,通过这一部分的学习,读者即可使用LabVIEW编程并在实际工作中进行应用。LabVIEW进阶部分将深入探讨LabVIEW的编程环境、编程技巧以及优化策略等和更多的功能,考虑到篇幅限制,本书不与介绍,感兴趣的同学可参看下列参考书继续学习,

基于labview的交通灯控制

昆明理工大学 综合设计实验报告 信息工程与自动化学院自动化系 题目:基于LabVIEW的十字交通信号灯的设计 姓名:贾积锐 学号:201110401246 专业:自动化 设计时间:2014年6月

一、题目要求 主要功能: (1)控制两个方向车辆的停止和通过 (2)按绿-黄-红的顺序循环 要求:界面友好,易于操作,实现最基本的功能。 二、设计思路 近年来,在快速城市化进程和经济发展的影响下,城市交通迅速增长,交通问题成为困扰许多大城市发展的通病,已成为日趋严峻的国际性问题。其中,十字路口则是造成交通堵塞的主要”瓶颈”。世界发达国家都在积极探索如何最大限度地发挥道路通行能力,尽量减少交通堵塞造成的各种损失。实现十字路口信号灯控制系统的方法有很多,可以通过可编程控制器PLC、单片机、标准逻辑器件等方案实现。但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了设计难度,提高了设计成本。随着计算机技术的迅猛发展,虚拟仪器技术在数据采集、自动测试和仪器控制领域得到广泛应用,促进并推动测试系统和测量控制的设计方法与实现技术发生了深刻的变化。”软件就是仪器”已经成为测试与测量技术发展的重要标志。 本课题设计了基于labview的智能交通灯控制系统,该系统可实现3种颜色灯的交替点亮,通过信息提示指挥车辆和行人安全通行,并能实时监测交通灯工作状态。该系统不仅编程简单、灵活、具有较高的可靠性,而且成本低、具有良好的经济效益。 三、具体设计方案 1、LabView前面板设计 所需控件: 1)十字路口需设置四组交通信号灯,分别为红绿黄三种颜色,故共需要12个布尔型指示灯。将六个指示灯拖到前面板上,拖动以改变其大小,再右击

labview事件结构学习

labview事件结构学习 编程的主要目的是为了实现用户的某种功能,用户通过用鼠标、键盘、程 序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW 中相应这些事件最常用的结构就是事件结构。事件结构内容丰富,基 本上大的程序结构都需要用到事件结构,下面将详细介绍事件结构。事件结构 在程序不能够单独响应各种事件,必须与循环结构一同使用,如下图事件添加 方式很简单,鼠标右键事件框弹出菜单如上图,有添加、删除、复制、编辑事 件等选项,按照操作即可。如下图,为事件结构添加Stop 事件,布尔控件触发 事件的方式有多种,鼠标按下、经过、离开、进入等,这里我们选择值改变。 确定后,stop 事件就被添加进去了,如下图,当我们运行程序后,点击前面板 的stop 按钮,触发事件使while 循环停止而后程序也停止。同一事件分支只能 添加一种事件吗?当然不是!有的时候有很多不同操作却会执行相同代码,怎 么编程才不会让代码冗余呢?看个例子,如下图2 个按钮stop1,stop2 点击后 都可以让程序停止,我们怎么为其添加事件呢?我们先添加一个事件stop1 的,方法上面已经描述了。由于stop2 的执行代码和stop1 一样,我们在事件stop1 上右键->弹出菜单->编辑本事件分支(Edit Event Handled by This Case)会弹出已添加事件stop1 的编辑框,这是左侧有2 个按钮如下截图我们点击Add Event 左侧事件列表会出现如下变化选中这个后,右侧列表选中stop2 的Value Change 事件后,点击确定在看该事件分支如下,2 个事件就添加在同一个分支当中了,运行程序后,点击stop1 或stop2 均可让程序停止。超时超时是事件结构特有的,看名字就知道是怎么回事,即超过一定时间没有触发事件则执行超时 事件。如果超时时间设置所以如果程序事件功能不多,又需要定时执行一段代码,可以考虑用此方式来完成;如果程序操作频繁,则不建议用此事件来定时

LabVIEW程序实例

1、Build a VI that generate a random number between zero and ten,and then divides it by an input number and diaplays the result on the front panel.If the input number is zero,the VI lights an LED to flag a “divide by zero”error 2、3-1,P43 3、Try create a VI to compute n! 4、求500个随机数中的最大值和最小值。 5、3-3,P44 6、3-4,P46 7、3-5,P49 If implement this equation using regular G arithmetic functions,the block diagram looks like the one in the following illustration.Please imolement the same equation using a Formula Node,and add event to control when the VI executes.

8、设计一个简单信号源,能选择正弦波、三角波和方波并用Waveform Graphe显示。 9、4-1,P68 10、4-5,P72 11、(1)显示一个二维数组的行数和列数(2)查找一个二维数组中最大值,以及最大值在数组中的位置。

12、5-2,P89 13、6-1,P100 14、6-3,P103 15、7-4,P120 16、7-5,P121 17、双边傅里叶

Labview执行结构:详细说明

执行结构:详细说明 While循环 与文本编程语言中的Do循环或Repeat-Until循环类似,必须满足特定条件之后,While循环才会执行其内的程序代码,如图1所示。 图1. LabVIEW中的While循环;具备While循环功能的流程图; 还有While循环功能的伪码范例 While 循环位于Structures面板上。从面板上选择While Loop之后,针对所要重复的代码区块,可用鼠标拖拽出矩 形并将之圈住。放开鼠标之后,即会有While循环圈住用户所选的区块。 只要将对象拖拽至While循环中,即可将其新增至While循环中。 只要条件接线端接收特定的布尔值之后,While循环随即执行代码 也可通过While 循环的条件接线端来处理基本错误。若将错误簇连接至条件接线端,则只有Status参数的真或假值传送至接线端。同样,Stop if True和Continue if True快捷菜单项目,将分别变更为Stop if Error和Continue while Error。 计数接线端属于输出端点,其中包含已完成的循环次数。 While循环的循环计数均从零开始。 注意: While循环将至少执行一次。 无限循环 无限循环为常见的程序错误,即无法停止的循环。若条件接线端 i为True时停止,而用户又在While循环外部放置布 尔控件接线端。一旦循环开始,控件值即成为FALSE,就会形成无限循环。

图2.While循环之外的布尔控件 因为在循环开始之前,仅读取该值一次,所以改变控件的值并无法停止无限循环。若要通过控件停止While循环,则必须在循环中配置控件接线端。若要停止无限循环,则按下工具栏上的Abort Execution按钮,即可终止该VI。 在图3中的While 循环将不断执行,直到随机数函数的输出大于或等于10.00,且Enable控件为TRUE时才会停止。当且仅当“与”函数的两个输入都为真时,函数的返回值才为真。否则,与函数将回传FALSE。 在图3中,只要随机函数不产生10.00以上的值,就会成为无限循环。 图3.无限循环 结构隧道 隧道负责为结构传送数据。 While循环边框上的实心区块即为隧道。此区块的颜色与隧道所连接的数据类型的颜色相同。在循环终止之后,随即有数据送回循环。当隧道传送数据进入循环时,只有数据抵达隧道之后,才会执行循环。 图4即以计数接线端连至隧道。直到While 循环执行完毕,隧道中的数值才会传送至Iterations显示控件。计数接线端在Iterations显示控件中只会显示最后的数值。 图4. While循环的隧道

labview学习感受

学习labview有快半年了,做个总结。回顾一下自己的摸索过程。 幸运的是有个项目用到Labview,因此边学边用,由于有前一项目的经验作参考,可以说是在模仿中学习。从学习到使用给我最大感受是labview编程容易上手,帮助文档方便,就是太贵了,比较少企业会使用,特别是小企业。虽然这样,还是很推崇学习labview的。废话少说,转入正题。 其实总结自己的摸索过程也等于是在做项目总结。首先从使用的模块做总结: 1、毫无疑问的串口通信; 2、与数据采集相对应的TDMS数据存储模块; 3、报表输出(word,excel,html); 4、连续的波形显示以及从TDMS里读取显示; 5、待解决的xcontrol控件; 模块分析:1、对于串口通信:主要是要设置成有数据即读取,而不能等到接收缓冲区满时再读取。2、TDMS数据存储,关键点是数据量大的时候如何压缩存储,以及利用TDMS本身的属性设置(可以参见TDMS属性设置帮助),减小存储文件的大小。否则如果数据发送速率快的话,文件大小是很可观的,压缩数据的方式有很多种,我采用的是读取采样间隔长度的数据,提取最大最小值的方式。具体如下: 1) 中间数组存储采样间隔长度的数据;2) 提取中间数组的最大最小值;3)删除中间数组的采样间隔长度;4)将删除后剩余的数组重新赋值给中间数组,给下一次使用。3、报表输出比较简单,la bview已经将要用到的程序封装成一个个VI,只需要调用这些VI,

拼凑成你需要的报表模板形式即可。这一块参考的是方慧敏写的报表输出demo程序。4、 最近开始了上下位机的联调,涉及到了数据采集与数据处理,数据保存,数据导出四者并行执行最需关注的问题,数据同步的问题。全部数据传递都用全局变量需要在数据采集不到数据的时候让全局变量 输出空数据,这种方法显得有点麻烦,而且是多处对全局变量写。有可能会发生竞争。于是翻看labview相关书籍,关于同步技术方面的,其中队列和通知都是很好的方法,采用通知技术可以很好的解决这类问题。

致LabVIEW初学者的二十条忠告

致LabVIEW初学者的二十条忠告 1. LabVIEW是门程序设计语言,不是画图工具! 2. 不要以为LabVIEW很简单,设计个庞大工程难度不亚于C++! 3. 语言本身永远只是招式,请注意修炼内功:数据结构、算法、软件工程、数字电路等! 4. 多读书、读好书:《LabVIEW For Everyone》、《LabVIEW-Advanced Programming Techniques》! 5. 学习程序设计只有一种方法:读代码、写代码、读代码、写代码! 6. 不要以为读完一遍《LabVIEW For Everyone》你能有多大收获,请再继续读两遍! 7. 研读书上的每一个例子,他们往往是程序中的经典! 8. 对齐你的每一个控件和函数,多用弹出菜单-整理连线,不要让程序看起来乱七八糟! 9. 不要以为读完几本书你就能成高手,能力是在做项目过程中日积月累出来的!10. 看到一个LabVIEW程序,尽可能想象它在内存中是怎么执行的!11. 请重视DLL调用,并不是每个老板都舍得用Ni的产品!12. 多看LabVIEW User Manual,那里才是权威!13. 尽量减少创建全局变量,它会占用你大量内存和时间!14. 尽量将不必要的元素放在循环外!15. 尽量避免在循环内使用Build Array!16. 当速度及其重要时,尽量减少图表或图形的使用!17. 用Initialize给你的程序命名,不要用Chushihua !18. 记住:高手是长时间修炼形成的,不要指望一蹴而就!19. 拒绝浮躁,耐心看完书上每一节的内容!20. 编程是一种艺术,追求艺术极限!注:LabVIEW For Everyone译名《LabVIEW大学实用教程》电子工业出版社!补充:还有一本书,早看早好《The LabVIEW Style》,论坛上有下载:vihome/bbs/vie ... 6287&extra=page=1,描述LabVIEW编程风格的,权威类似C语言这些中的匈牙利命名法,听说有些大公司就因为LabVIEW在代码风格上很难统一,后期维护和代码重用很困难而没有使用LabVIEW的,这 本书在很大程序上可以弥补这个缺点。在自带的帮助中也有一些编程风格的说

Labview交通灯设计

随着社会的发展社会节奏越来越快,人类代步工具也越来越多,经常发生交通拥堵和交通事故。在大城市人流量的增多更加增加了交通负荷经常发生交通事故。城市高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。因此,开发一套能够社会服务的交通灯控制器将是非常必要和及时的。有童谣“红灯停,绿灯行,黄灯亮了等一等”由此可见交通信号灯对交通安全的重要性。 实现十字路口信号灯控制系统的方法有很多,可以通过可编程控制器PLC、单片机、标准逻辑器件等方案实现。但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了设计难度,提高了设计成本。随着计算机技术的迅猛发展,虚拟仪器技术在数据采集、自动测试和仪器控制领域得到广泛应用,促进并推动测试系统和测量控制的设计方法与实现技术发生了深刻的变化。”软件就是仪器”已经成为测试与测量技术发展的重要标志。我们设计了基于labview8.6的智能交通灯控制系统,该系统可实现3种颜色灯的交替点亮,主要采用平铺式顺序结构设计信号灯使信号灯顺序闪亮,通过信息提示指挥车辆和行人安全通行,并能实时监测交通灯工作状态。该系统不仅编程简单、灵活、具有较高的可靠性,而且成本低。 关键词:交通信号灯、labview8.6

1.绪论 (3) 1.1课题设计背景及目的 (3) 1.2设计内容及研究方案。 (3) 2总设计方案 (4) 2.1.总流程图 (4) 2.2前面板设计 (4) 2.3程序框图设计 (5) 2.3.1同一路口红绿灯的顺序计 (5) 2.3.2两个路口的信号灯时间关系 (5) 2.4部分模块介绍 (6) 2.4.1顺序结构 (6) 2.4.2WHILE循环 (7) 2.4.3已用时间延迟时间选择 (7) 2.5定时控制 (8) 3程序及调 (9) 3.1总设计框图 (9) 3.2调试 (9) 4 结论 (12) 参考文献 (13)

labview控制程序流程——labview事件结构

labview控制程序流程——labview事件结构 1 事件结构及它的图形化表示法事件被用来通知用户有异步活动发生。图 形化语言的事件响应包括:用户界面事件、外部I/O 事件和程序其它部分的事件。对事件的处理程序也被称为:事件驱动程序。事件驱动程序可以分为若干 个分支,每个分支处理不同的事件响应。所以对事件的响应结果也可以控制程 序的流程。事件驱动机制来自于可视化的操系统,可视化操作系统对用户事件 提供了简洁、有效的响应方式,最常见的事件来自于鼠标和键盘。虚拟仪器借 助于操作系统的事件处理机制实现了图形化语言的事件响应能力。在没有引入 事件结构之前,LabVIEW 是借助于轮询的方式来查询用户操作,由于轮询的方 式会占用一定的CPU 资源,甚至可能遗漏事件,所以这种处理方式并非理想。事件结构的出现避免了对CPU 资源的占用,同时也避免了事件的遗漏。事件 结构在函数选板》编程》结构子选板中可以找到,并可以将其直接拖拽到程序 框图中,图形化表示的事件结构,参见下图。图 1 图形化的事件结构与Case 结构和循环结构类似,事件结构也包含了一个主框架,这个框架内将用来放置 事件处理的事件驱动程序代码。如果事件处理任务众多,会有众多事件分支存在,在结构上类似Case 的多帧结构(选择器标签)。当在程序框图上拖放一个 事件结构时,我们只能看到上图所示的一帧已经预先注册的超时事件(Timeout),超时事件分支。它具有定时延迟的基本功能(不包括While 循环),参见下图。图 2 具有定时延迟的基本功能当然也可以采用另一种表示方法,参 见下图。图 3 利用事件结构内部节点获得中止时间通过这个例子也好理解内部 节点中时间的含义(是事件响应的停止时间)。超时事件超时事件是一种特殊 的事件,当然也可以看成是默认的事件分支。如果存在其它事件源时,超时事 件完全可以被忽略或取消。看下面一个例子。图 4 仅有的两个事件之一超时事

LabVIEW小问题

LabVIEW新手5大错误 时间:2013-09-06 来源:NI 作者: 关键字:LabVIEW 虽然NI LabVIEW软件长期以来一直帮助工程师和科学家们快速开发功能测量和控制应用,但不是所有的新用户都会遵循LabVIEW编程的最佳方法。LabVIEW图形化编程比较独特,因为只需看一眼用户的应用程序,就马上可以发现用户是否遵循编码的最佳方法。有些用户会犯这些错误是因为他们没有真正理解LabVIEW框图数据流背后的原理,而有些用户则是不知道哪些特性可提高LabVIEW编程质量。 本文介绍了经验欠缺的LabVIEW程序员最经常犯的一些编程错误,同时也提供了采用正确LabVIEW编程方法的建议。 图 1. LabVIEW新手典型“杰作” 过度使用平铺式顺序结构 许多LabVIEW新手并不完全了解“数据流”执行背后的概念,而这些概念却是LabVIEW编程的基础。其中一个现象是用户往往在程序框图中过度使用平铺式顺序结构。用户经常依赖平铺式顺序结构来实现程序框图的代码串行执行,而不是使用数据流和节点之间的连线。 图 2. 用户往往过度依赖平铺式顺序结构,而没有充分理解数据流编程概念数据流编程是指只有在所需的数据输入全部到达时,框图上的节点(子VI、本原、结构等)才开始执行。这对于使用LabVIEW的程序员来说非常有用,因为独立的进程本身就可以实现并行运行,而命令式语言却需要额外的设置才能实行并行执行。随着计算机CPU的不断增多,LabVIEW可自动分解并行流程,提高代码性能,而无需用户编写任何额外代码。

而强行使用平铺式顺序结构来执行程序框图不仅会限制并行运行,还会丧失这一优势。限制程序框图中不必要的结构有助于提高整体可读性和保持更简洁的框图。 错误连线可以有效地实现程序框图上的数据流,而不需要依靠平铺式顺序结构,此外 错误连线还有助于实现错误处理策略。 何时应该使用平铺式顺序结构? 通过平铺式顺序结构来执行程序框图有助于代码性能的基准测试。通过使用框架内具 有时间计数器的顺序结构,您可以决定两个时间计数器之间代码执行所花费的时间。这是一般数据流执行所无法实现的。 图 3. 平铺式顺序结构和时间计数器VI有助于代码的基准测试关于数据流编程的更多信息,请访问在线自学培训 (https://www.360docs.net/doc/9412707456.html,/self-paced-training)LabVIEW核心课程1的“数据流”。购买LabVIEW或具有标准服务项目(https://www.360docs.net/doc/9412707456.html,/ SSP)会员资格的用户可以免费参加在线自学培训。 错误使用局部变量 LabVIEW编程中另一个常见的错误是过度使用局部变量。局部变量是共享内存中的一个区域,用于在计算机程序不同部分之间传递数据。局域变量通常用于文本编程语言,具有非常强大的功能,但如果出现竞争条件,就会产生问题。 对于其他编程语言来说,通过变量传递数据是必需的,而LabVIEW则提供了一种数 据流方法,可将数据从程序的一个部分移动到另一个部分。LabVIEW固有的并行性机制决定着用户不能过度使用变量,因为同一时间内通常会有多个不同的位置的程序访问共享内存。如果过度使用变量,则会出现某个读/写操作赢了“竞争”,而其他操作则输了“竞争”,丢失 数据的操作会被忽视,因此在LabVIEW中过度使用变量可能会最终导致数据丢失。 您可以通过多种方法安全地将数据从LabVIEW程序的一个部分传递到另一个部分, 包括连线、队列、事件、通知、功能全局变量等等。每个机制都是针对特定情况设计的,但都具有消除竞争条件的功能。 关于在LabVIEW程序内正确移动数据的更多信息,请访问在线自学培训 (https://www.360docs.net/doc/9412707456.html,/self-paced-training)LabVIEW核心课程1的“局域变量”和LabVIEW核心课程2的“通知、队列和事件”。 忽略代码模块化 通常情况下,新LabVIEW用户创建的是“即写即忘”应用程序去完成简单的任务,而没有考虑到以后是否会用到这些代码。随着编程工作越来越多,他们会发现自己一遍又一遍地重写同一段代码。而如果在编程同时创建一个可复用于其他应用的模块化子VI,就可以节 省大量的开发时间。 如果您知道代码的特定部分将会重用于同一应用程序,或感觉该部分代码可能会用于 未来的应用程序,那么您应该花一点时间将该部分代码变成一个子VI。如果要使某部分代 码成为一个子VI,您需要做的主要是添加一个文档、使用“接线端”、禁用某些VI属性。创建子VI的最简单方法之一是高亮标记程序框图中的某部分代码,然后从菜单栏中选择“编

labview基础介绍入门

Labview是一种图形化编程语言,作为数据采集和仪器控制软件的标准被广泛应用于工业界、学术界和研究性实验室。Labview是功能强大、灵活的多平台仪器和分析软件系统。Labview还可以运行在PDA、实时平台上,甚至可以将Labview程序嵌入到FPGA芯片和32位微处理器中。创建自己的Labview程序或者虚拟仪器(VI)是很容易的。Labview 的直观用户界面使得和使用程序变得令人激动而且有趣。 Labview来源于传统设计语言的顺序特性并以易用的图形化设计环境为特色,包括数据采集[DAQ]、数据分析、结果显示等必须的所有工具。使用图形化设计语言,也称为G语言,可以采用能编译成机器代码的图形框图编程。无数完美的科学和工程应用软件证明,Labview有助于在很短时间内解决多种问题,并毫无疑问写出”传统的”代码。 超越实验室 Labview已经进入虚拟仪器应用的广泛领域,很难说清楚它始于何处。正如其名字所暗示的那样,它来源于实验室并且仍然流行于多种实验室——从世界各地主要的研究所和开发实验室,到多行业的研发实验室、全世界各大学的教学实验室,特别是电子与机械工程和物理学科。 Labview的推广在很多方向超出了实验室范围——向上(航天飞机)、向下(海军潜艇)和世界各地(从北海的油井到新西兰的工厂)。采用最新的Internet功能,Labview应用软件不仅可以物理地配置到很多地方,也可以虚拟地应用于网络应用软件。越来越多的人创建基于网站的控制或者监视Labview应用软件系统,实现远程访问并立刻得

到实验室所发生的即时信息。虚拟仪器系统以其在硬件和开发时间方面的低成本和其强大的灵活性而闻名。 虚拟仪器的扩展世界 很多场合都需要某些测量——对于烤炉、冷库、温室、绝对无尘室或液体容器,一般要测量其温度。除了温度之外,用户还要测量压力、应力、位移、应变、PH值等。事实上任何地方都可以使用个人计算机。Labview推动了PC和测量仪器的结合,这不仅仅是因为它容易使用,还因为它带来了很多功能,包括分析和显示测量结果、根据需要进行全球范围传输等。 监测和控制正是Labview的强项,有时可以直接监测和控制,有时通过与可编程逻辑控制器(PLC)通信进行,这一般被称为数据采集与监视系统(SCADA)。 Labview的一些应用案例: 1,模拟心脏跳动; 2,控制冰激凌的制作过程; 3,探测航天飞机的氢气泄露; 4,监测幼小鸵鸟的进食方式; 5,动力系统建模以分析动力特性; 6,伺服电机和步进电机的运动控制; 7,计算机和其他电子设备中的电路板测试; 8,虚拟现实系统中的仿真运动;

Labview倒计时红绿灯

虚拟仪器课程设计——交通灯模拟 班级:机0704 姓名:李正栋 学号:20070822

交通灯模拟设计说明书 交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。在我国交通法律上规定:绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。 设计目的: 设计这款交通灯模拟系统可以真实直观的反映出十字路口红绿灯亮灭情况,有利于驾驶员学习相关的交通规则,连接上相应的硬件设备还可以作为一款十字路口的交通灯控制系统。 程序特点: 这款交通灯模拟系统基于labview软件开发,界面全部自己设计,简洁明了。在以往单纯的红绿交替变化功能上添加了倒计时功能和灯光闪烁功能,并且配备有操作板可以人为设置各路口红绿灯的亮灭时间,现实中可以根据实际路况进行有目地的调整,使交通更加通畅。 设计过程: 1.首先我先用簇来创建交通灯,用一个while循环配合使用层叠顺序结构实现最简单的红绿黄灯交替变化,模拟出十字路口通行状态,东西南北方显可以调节,但功能简单。 2.通过实际路口的观察,确认需要添加倒计时模块,之后尝试多种方法来实现,均达不到预期的目标。通过一个小例子想到通过数组的索引来控制簇里各控件来模拟LED灯,之后又加上一个算法成功实现交通灯倒计时功能。 3.现实十字路口的黄灯是闪烁而不是常亮,为了能更好的模拟需要添加一个能够使黄灯闪烁的模块,这个模块通过一个数除以2得到余数的1或者0来控制灯的亮灭,将循环时间缩短即可实现灯的闪烁。 4.在界面设计的时候画出斑马线,于是需要在斑马线两边安装提示

灯,便将闪光模块在此控制绿灯闪烁来提示行人通过。 5.最后设计了一个欢迎界面用来介绍一下程序名称等。在后面板上程序调用上开始时出现了没反应的情况,后来反复尝试通过修改子vi节点设置才成功解决。 欢迎界面: 本界面自己设计的一个开始界面,文字采用和交通灯相似的红绿黄颜色,介绍了一些相关信息,直接“确认进入”即可进入主程序界面。 欢迎后面板: 后面板采用条件结构来调用子VI。(这步中的子VI通过对子vi节点的设置才可以在运行中调用)

LabVIEW事件结构的妙用

LabVIEW事件结构的妙用 首先,我们回顾一下上期节目:LabVIEW网络讲坛乊悬案迷思中关于事件结构的几个重要知识点。 事件结构的基本组成部分: 事件结构五大基本组成部分 事件结构由——事件选择器、超时接线端、事件数据节点、事件过滤节点和动态事件接线端5个基本部分组成。 事件结构编程的3条黄金原则: 在使用LabVIEW事件结构迚行编程的时候,我们应该注意:1.不要将事件结构放置在while循环乊外,而应该放置在while循环的内部;2.不要在事件结构的内部使用循环处理事件,可选择采用生产者消费者结构,在生产者循环中放置事件结构,在消费者循环中处理事件;3.记得为事件结构添加一个单独处理停止按钮的分支。 遵守以上三条原则将使我们的程序更加健壮,避免在使用事件结构的时候出现前面板死锁等问题。 过滤事件与通知事件:

在LabVIEW中,以问号结束的事件被称为过滤事件,其余的事件被称为通知事件。对于通知事件,程序可以感知事件的发生并且响应该事件,然后再处理在事件结构中定义的任务;而对于过滤事件,程序感知事件发生后,首先处理在事件结构中定义的任务,然后根据事件过滤节点的值(Discard?)来决定是否响应该事件或是否改变事件数据。 因此我们建议,在希望参与处理用户操作时使用过滤事件,因为过滤事件可以放弃事件或修改事件数据。如果仅需要知道并响应用户执行的某一特定操作,则应使用通知事件。 在本期节目中,我们着重介绍动态注册事件的用法。 静态和动态两种事件注册模式: 静态注册指定了事件结构的每个分支具体处理哪些事件。一旦VI开始运行,LabVIEW将自动注册这些事件,并且在VI运行的整个过程中无法改变事件结构所处理的事件。 而动态事件注册与VI服务器相结合,允许在程序运行时使用控件、VI或应用程序的引用来动态地指定和改变产生事件的对象。动态注册在控制LabVIEW产生何种事件和何时产生事件等方面更为灵活。 Demo 1和Demo 2帮助大家更好地理解动态注册事件编程方法。 Demo 1:动态注册事件_阿拉丁神灯.vi Demo概述: 在这个VI中,用严格自定义的方式将一个布尔类型的控件做出神灯的样子,并为这个布尔控件动态注册了”鼠标按下”的事件。这个事件执行的任务是显示神灯神仙,并弹出一个对话框。由于该事件采用的是动态注册的方式,所以可以通过一个按钮取消对该事件的注册。并通过另一个按钮再次注册该事件。这就是动态事件的使用效果,它可以在程序运行的过程中,动态地控制何时注册事件和注册什么样的事件。 程序实现:

LabVIEW入门教程

LabVIEW入门教程

1.1 LabVIEW 是什么 第一章:概述 LabVIEW (Laboratory Virtual Instrument Engineering Workbench )是一种图形化的 编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪 器控制软件。LabVIEW 集成了与满足 GPIB 、VXI 、RS-232 和 RS-485 协议的硬件及数据 采集卡通讯的全部功能。它还内置了便于应用 TCP/IP 、ActiveX 等软件标准的库函数。这 是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使 得编程及使用过程都生动有趣。 图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取 而代之的是流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念, 因此,LabVIEW 是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的 能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试 并实现仪器系统时,可以大大提高工作效率。 利用 LabVIEW ,可产生独立运行的可执行文件,它是一个真正的 32 位编译器。像许 多重要的软件一样,LabVIEW 提供了 Windows 、UNIX 、Linux 、Macintosh 的多种版本。 1.2 LabVIEW 应用程序的构成 所有的 LabVIEW 应用程序,即虚拟仪器(VI ),它包括前面板(front panel )、流程图 (block diagram )以及图标/连结器(icon/connector)三部分。 前面板 前面板是图形用户界面,也就是 VI 的虚拟仪器面板,这一界面上有用户输入和显示输 出两类对象,具体表现有开关、旋钮、图形以及其他控制(control )和显示对象(indicator )。 控制对象 显示对象 (输入) (输出) 图1-1 随机信号发生器的前面板

相关文档
最新文档