当前位置:文档之家› LabVIEW编程基础(中)

LabVIEW编程基础(中)

LabVIEW编程基础(中)
LabVIEW编程基础(中)

LabVIEW的基本控件与基本函数

LabVIEW基本控件:数值、布尔、字符串与路径、数组与簇、图形、枚举1、数值:数值输入控件与数值显示控件(数值输入控件有增量/减量按钮;输入为白色背

景,输出为灰色背景)

默认数据类型为:双精度,橙色。

2、布尔:值默认为False,图标为绿色。

布尔控件的机械动作属性

单击时转换:按下按钮时改变状态,再次单击后恢复原状态。与VI是否读取控件无关。(可赋值恢复)类似开关按钮

释放时转换:按下按钮时保持当前状态,直到释放按钮,再次单击后恢复原状态。与VI是否读取控件无关。(可赋值恢复)类似开关按钮

保持转换直到释放:按下按钮时改变状态,直到释放按钮,,再次单击后恢复原状态。与VI 是否读取控件无关。(可赋值恢复)。类似开关按钮

单击时触发:按下按钮时改变状态,LabVIEW再次读取控件值后返回原状态。

释放时触发::按下按钮时保持当前状态,释放时改变状态,LabVIEW再次读取控件值后返回原状态。

保持触发直到释放:按下按钮时改变状态,直到释放按钮,LabVIEW再次读取控件值后返回原状态。

3、字符串与路径:(字符串输入控件与字符串显示控件),粉色。

4种显示方式(正常显示、’\’代码显示、密码显示、十六进制显示)

4、数组:依据加入的控件类型同样分为输入控件与显示控件

LabVIEW的数组以索引号0表示数组的首个数据。

增加数组维度的方法:(1)索引框的快捷菜单中->增加维度

(2)直接向下拖动索引框

(3)属性对话框->外观选项卡->维

数组中的元素为同类型的控件,可以是各种类型的控件,但不能是数组的数组。数组的多态性:

5、簇:依据加入的控件类型同样分为输入控件与显示控件

簇本身的属性:重新排序簇中控件、自动调整大小(无、调整为匹配大小、水平排列、垂直排列)

使用簇结构时,尽可能的使用:严格自定义类型。

错误簇:状态(布尔)、代码(数值输入)、源(字符串输入)

6、波形图表(Chart)与波形图(Graph):

波形图表有一个“先入先出的缓冲区(默认为1024个数据)”,所以特别适合实时显示数据。

波形图表的组成要件:X标尺、Y标尺、图例、标尺图例、图形工具选板、X滚动条、数字显示

波形图表(chart)专用属性:

1、刷新模式:带状模式、示波器模式、扫描模式

带状模式:从左至右显示数据,右边添加新数据的同时擦除左边旧数据。

示波器模式:从左至右显示数据,绘图至右边界时,擦除原曲线,重新显示新曲线。

扫描模式:从左至右显示数据,绘图至右边界时,以垂直分割线分隔新旧数据。

波形图表既可以显示单条曲线,也可以显示多条曲线。

显示多条曲线:(1)N维数组:按列来显示,数组有几列在波形图表中就显示几条曲线(2)多个标量数据捆绑成簇,然后输入波形图表

波形图的组成要件:X标尺、Y标尺、图例、标尺图例、图形工具选板、X滚动条、游标、注释(数据操作-创建注释)

显示单条曲线,输入可以是:一维数组、波形数据、波形簇【捆绑,t0、d0、Y(一维数组、二维数组、簇数组等】

显示多条曲线:N维数组(每一行代表一条曲线)、多个一维数组分别捆绑成簇,创建簇数组(簇数组中每个簇元素代表一条曲线)、多个波形数据显示多条曲线(创建波形数组或合并波形信号)

专用属性之游标:

波形图与波形图表显示曲线时,只需要提供Y坐标的数据值,应为他们都是按照顺序显示到X坐标的。而XY图需要成对输入V坐标和Y坐标的数据值。

显示两条曲线:要先将已经捆绑成簇的两条曲线数据(每条的X坐标与Y坐标数据)用“创建数组”函数合成簇数组,然后再输入到XY图中。

7、枚举:

枚举控件

?枚举控件用于向用户提供一个可供选择的项列表。

?枚举控件广泛用于状态机中。

使用枚举型控件时,应首先定义枚举的值(建议用:“自定义类型”)。在枚举型控件中添加或删除项时,先定义枚举型的值可避免重写代码。

常用函数

1、数值函数:复合运算、最近数取整、数值常量、随机数(0-1)、枚举常量等

DBL:双精度浮点型,橙色;I32:长整形,蓝色;U32:无符号长整形,蓝色。

复合运算:反转,更改模式

2、比较函数:选择

3、布尔函数:真常量、假常量、与、或、非、异或

4、字符串:字符串长度、连接字符串、截取字符串

(1)从偏移量开始在字符串中删除长度个字符,并使删除的部分替换为子字符串;(2)如长度为0,替换子字符串在偏移量位置插入子字符串;

(3)如果字符串空闲,替换子字符串在偏移量位置后用子字符串覆盖原有字符(4)如子字符串为空,该函数在偏移量位置删除长度个字符。

常用的一些字符串常量

5、对话框与用户界面:单按钮对话框、双按钮对话框、三按钮对话框、提示用户输入(对话框)、显示对话框信息、简易错误处理器

Y返回值0;N返回值1;C返回值2。

提示用户输入:显示标准对话框,提示用户输入用户名(文本输入)、密码(数字)等

信息。

窗口标题显示的信息输入(输入名称、输入数据类型)与下图从上到下一一对应。

显示对话框信息:显示的信息(输入提示信息)

5、定时函数:

等待下一个整数倍毫秒(函数)精度高于等待(ms)(函数),前者还可以实现多线程同步。

“时间延迟”(s) (Express VI) :相当于“等待(ms)”函数.

6、数组函数:数组大小、索引数组、替换数组子集、数组插入、删除数组元素、初始化数组、创建数组、数组子集、搜索一维数组

只能连线一个索引输入端。

可以用初始化数组创建数组

创建数组函数右“连接输入”和“不连接输入”两种模式,默认为“不连接输入”。

如未选择连接输入,函数可创建比输入数组多一个维度的数组。例如,如连线一维数组至该函数,即使输入值为一维空数组,输出值仍为二维数组。输入数组的维度应该相同。该函数可按顺序拼接各个数组,形成输出数组的子数组、元素、行或页。如有需要,可填充输入以匹配最大输入的大小。

该函数可依据是否在快捷菜单中选择连接输入,选择两种模式的一种。如选择连接输入,函数可按顺序拼接所有输入,形成输出数组,该输出数组的维度与连接的最大输入数组的维度相同。

7、簇函数:捆绑(使独立元素组合为簇)、解除捆绑(使簇分解为独

立元素)、按名称捆绑(替换一个或多个簇元素)、按名称解除捆绑(返回指定名称的簇元素)、创建簇数组

在LabVIEW中驱动数据采集卡的三种方法

在LabVIEW中驱动数据采集卡的三种方法 作者:EEFOCUS 文章来源:EDN China 一、引言 近年来,面向仪器的软件开发平台,如美国NI公司LabVIEW的成熟和商业化,使用者在配有专用或通用插卡式硬件和软件开发平台的个人计算机上,可按自己的需求,设计和组建各种测试分析仪器和测控系统。由于LabVIEW提供的是一种适应工程技术人员思维习惯的图形化编程语言,图形界面丰富,内含大量分析处理子程序,使用十分方便,个人仪器发展到了使用者也能设计,开发的新阶段。 鉴于是工程技术人员自己编制,调用软件来开发仪器功能,软件成了仪器的关键。故人们也称这类个人仪器为虚拟仪器,称这种主要由使用者自己设计,制造仪器的技术为虚拟仪器技术(Virtual Instrumentation Technology)。使用虚拟仪器技术,开发周期短、仪器成本低、界面友好、使用方便、可靠性高, 可赋于检测仪初步智能,能共享PC机丰富的软硬件资源,是当前仪器业发展的一个重要方面。 虚拟仪器的典型形式是在台式微机系统主板扩展槽中插入各类数据采集插卡,与微机外被测信号或仪器相连,组成测试与控制系统。但NI公司出售的,直接支持LabVIEW的插卡价格十分昂贵,严重限制着人们用LabVIEW来开发各种虚拟仪器系统。在LabVIEW中如何驱动其它低价位的数据采集插卡,成为了国内许多使用者面临的关键问题。 二、三种在LabVIEW中使用国产数据采集插卡的方法 笔者将近年来工程应用中总结出的三种在LabVIEW中驱动通用数据采集插卡的方法介绍如下。介绍中,以某市售8通道12位A/D插卡为例。设插卡基地址为base=0x100,在C语言中,选择信号通道ch的指令是_outp(base,ch),启动A/D的指令是_inp(base),采样量化后的12位二进制数的高4位存于base+2中,低8位存于base+3中。 1、直接用LabVIEW的In Port , Out Port图标编程 LabVIEW的Functions模板内Adevanced \ Memory中的In Port 、Out Port 图标,与_inp、_outp功能相同,因此可用它们画程序方框图, 设计该A/D插卡的驱动程序。N个通道扫描,各采集n点数据的LabVIEW程序方框图如图1所示。图中用LabVIEW的计时图标控制扫描速率。

labview结构的使用

结构的使用 本页关键词:labview labview 下载labview8.2 labview教程labview论坛labview 8.20 labview 7.0 labview 序列号labview7.1 labview 8.0 结构的使用 条件结构 条件结构是执行条件语句的一种方法。这类似于文本编辑语言中常见的If…Then…Else语句。它位于程序框图中,函数→编程→结构→条件结构。如图所示: 条件结构包含有两个或者更多的子框图,每一个子框图包含一段程序代码,由此对应一个程序分支。多个子框图就像一摞卡片重叠在一起,任何时候只有一个是可见的,执行哪一个取决于于选择端子外部接口相连的某个整数,布尔数,字符串或者枚举指,用户也可以直接输入所有可能出现的值。 1.选择端口的输入值 条件结构选择端口的输入值是由与它相连的输入控件对象决定的,数据类型可以是布尔量,整形,字符串型或者枚举型。条件结构顶部中间是各分支的选择标识,它自动调整为输入的数据类型,可以在工具模板上使用标签工具直接键入单个数值或某个数据范围。数值之间用逗号来分开,例如:“..0,2,4..10”表示选择条件为:≤0,2,4,5,6,7,8,9,10。 对于字符型和枚举型数值在条件标识上会自动加上双引号,当键入的选择器标识值与连接选择端口的数值类型不同时,选择器标识变为红色标识有错误。如图:

设置默认分支的方法是,选择一个分支结构,在快捷菜单中执行“本分支设置为默认分支”,它的作用是当选择端口的值与选择器标识值没有一个匹配时,就执行默认分支。如图: 2.条件结构的数据通道 条件结构的数据通道就是数据的输入和输出端口。将结构内外的端子相连后,边框上就会出现一个小矩形框,这就是数据通道,用于传输数据。向条件结构的一个分支提供数据时,这个数据对于所有的分支都是有效的,也就是其他分支都可以使用这个输入数据。条件结构的输出通道有些不同,当在一个分支中创建输出通道后,所有分支的同一位置都会出现一个白色小方框,它要求每一个分支都必须为这个通道予以连接,通道变为实心后程序才可以运行。也可以在通道的快捷菜单中选定“未连线时使用默认”为没有连接的分支定义一个默认输出值,这时输出通道变为灰色。如图: 条件结构应用举例 例一:

labview中的visa用法

在LabVIEW中使用VISA 在LabVIEW中使用VISA VISA是仪器编程的标准I/O API。VISA的多种用途VISA可控制GPIB、串口、USB、以太网、PXI或VXI仪器,并根据使用仪器的类型调用相应的驱动程序,用户无需学习各种仪器的通信协议。VISA独立于操作系统、总线和编程环境。换言之,无论使用何种设备、操作系统和编程语言,均使用相同的API。开始使用VISA之前,应确保选择合适的仪器控制方法。GPIB、串口、USB、以太网和某些VXI仪器使用基于消息的通信方式。对基于消息的仪器进行编程,使用的是高层的ASCII字符串。仪器使用本地处理器解析命令字符串,设置合适的寄存器位,进行用户期望的操作。SCPI(可编程仪器标准命令)是用于仪器编程的ASCII命令字符串的标准。相似的仪器通常使用相似的命令。用户只需学习一组命令,而无需学习各个仪器生产厂商各种仪器的不同命令消息。最常用的基于消息的函数是:VISA读取、VISA写入、VISA置触发有效、VISA清空和VISA读取STB。PXI和许多VXI仪器使用基于寄存器的通信方式。对基于寄存器的仪器进行编程,使用的是将直接写入仪器控制寄存器的底层二进制信息。该通信方式的优点是速度快,因为仪器不需解析命令字符串,并将信息转换为寄存器层次的程序。基于寄存器的仪器实际上是在直接硬件操作层上进行通信。最常用的基于寄存器的函数是:VISA输入、VISA 输出、VISA转入和VISA转出 LabVIEW VISA与串口通讯的编程实现(2013-05-25 11:25:52) VISA是虚拟仪器软件体系结构的缩写(即Virtual Instruments Software Architecture),实质上是一个I/O口软件库及其规范的总称。 VISA是应用于仪器编程的标准I/0应用程序接口,是工业界通用的仪器驱动器标准API(应用程序接口),采用面向对象编程,具有很好的兼容性、扩展性和独立性。用户可用一个API控制包括VXI、GPIB及串口仪器在内的不同种类的仪

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

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

labview应用实例之motor控制

实验名称:LabVIEWIO输出实验 组号:62 同组者:日期: 4.28 【一】实验目的 学习和掌握LabVIEW串口通信的工作原理、功能和使用方法; 使用示波器测量电信号的各种参数; 【二】实验主要仪器设备 一台安装LabVIEW 、Proteus、IN_VISA串口通讯协议驱动和虚拟串口软件VSPD 的PC 机; 单片机实验板。 【三】实验原理 在串口通信中,由于实际上传输的是ASCII码,但是一般字符串控件显示出来的并不是其对应的ASCII码,关于字符串正常显示和十六进制显示,LabVIEW帮助文档里面是这么写的: 正常显示------可打印字符以控件字体显示。不可显示字符通常显示为一个小方框。 十六进制显示------每个字符显示为其十六进制的ASCII值,字符本身并不显示。 比方说对于01这个字符串,如果是正常显示情况下输入01,下位机接收的是其对应的ASCII码而不是01本身;如果是十六进制显示情况下输入01,下位机接收的是十六进制的01。上位机接收下位机发送的字符串同样是ASCII码,一般情况下如果不加转换,在正常显示情况下是乱码,在使用LabVIEW在编程处理直接处理这些字符串的时候,就会出现问题了。于是很多时候需要对字符串正常显示和十六进制显示做一个强制转换,以方便处理。 正常显示至十六进制显示强制转换,一般用于VISA Write:

需要注意的是,在输入端Normal Display String输入的时候要确保字符是以两位的格式输入,比如需要输入1,格式要为01,否则会出错。 十六进制显示至正常显示强制转换,一般用于VISA Read: 【四】实验内容 a. 实验步骤

中大型LABVIEW软件三层设计架构

通常一个VI若包含三、四十个以上的subVI(不包含LabVIEW本身在Functions中提供的VI)时,就可算是一个中大型的软件计划(software project)了。虽然比起软件工程中的一些作业环境软件(如Windows系列)或大型应用软件(如Word、Excel)等仍算是小工程,但其复杂性亦在一定程度之上,若没有事先想好在撰写程序时的一些规划与方法,想要完成这类中大型的软件绝对不是一件简单的事。尤其这类软件通常不是由一个人,而是由一个团队所共同完成的,因此整个软件的结构,就要能让团队中的每一成员都能清楚的了解,而且要够简单,才算是好的软件结构。以下将参考由Rick Bitter等人所着”LabVIEW Advanced Programming Techniques”,中之第4章的部分内容,介绍所谓软件计划中的三层式结构(the Three-Tiered Structure)的概念及其优点。 需要软件结构的主要原因,是当软件人员发展软件到某一阶段时,若没有计划或无意的创造了许多subVI,但各subVI之间有许多部分其实是重复撰写的;或各VI相互间呼叫时没有一定的纪律,使得在VI Hierarchy中所看到的各VI间的联机是错综复杂,像个盘丝洞一般,这将可能会使多人发展的软件计划增加所耗费的时间和可能出错的机会、减低程序的效率,以及增加debugging时的困难。为了改善上述的情形,所以要提倡三层式结构的概念。 三层式结构由上而下依次为:Main Level、Test Level和Driver Level,这种结构是由经验中得来的,在多人发展的软件计划中显得简单明了,当大家都能遵照这个结构来写程序时,这种结构就可以充分显现出它的优点。那这三个阶层到底如何区别呢?以通俗的比喻来说,假设我们如果要组织一个篮球队参加全国比赛,每个球员要练习基本动作及体能,如何跑、如何跳、手脚该如何放置才是正确位置等,这就相当于系统中Driver Level所做的事情;接下来,将各球员组合练习某一套防守或进攻的战术,如二三区域联防、人盯人防守,每个人该在什么位置才能正确接应等,则像是T est Level中一项项的test了;而最后比赛时,场上的战略运用,包括何时要用什么战术组合、如何更换球员、何时喊暂停、终场前是不是要故意犯规或采拖延战术等等,对照过来,就像是在Main Level中,如何将T est Level中各test 做最有效能的整合与排列组合等的工作。 简单来说,Driver Level包含了程序与所有仪器、组件、马达或其它应用软件的沟通、控制等较低阶的事情,使其可完成某一项基本的动作,例如初始化、马达走到home位置、雷射以设定的能量及频率发射光束???等。可注意到我们在这边所说的driver,并不像一般在别处所称驱动程序的那种driver那么低阶,真正最低阶的工作还是要有现成的VI来帮忙才行;在Test Level中,则是如何连接各个Driver VI的基本动作,使可做完出一套连续、有意义的流程,来执行某项测试,例如让手臂由A点走到B点,下降夹取一个螺丝,再走至C点装到某面板上,然后回到A点等待,类似这样控制一个流程的进行,便是Test VI的工作内容;Main Level则包含了使用者接口(User Interface)或称人机接口(Man-Machine Interface) ,目的是整合各项测试和例外处理(Exception Handling)等,将它们以适当的顺序及流程组合,很容易地让使用者操作。 当一个软件计划严格的遵照上述的三层结构来撰写时,最大的优点是可使程序代码的再使用(code reuse)达到最大化,在不同的T est VI中,可重复使用相同的Driver VI;而在不同程序的Main Level中,又可重复使用相同的T est VI,这将使得程序维护或修改的时间与精力大幅减少;同时当我们已有一个程序的样板(template)后,可增加软件版本更新的速度。另一个很重要的好处是,当我们在撰写某一个level中的程序时,并不需要关心在另一个level中有什么其它的程序是如何执行的,而只要专注在自己的这个level的程序上就可以了,这使得由团队来共同完成一个大型计划的工作变得容易许多。 以下将依Driver Level、Test Level、Main Level的顺序,来介绍在各level写程序时的原

使用LabVIEW如何生成应用程序(exe)和安装程序

使用LabVIEW如何生成应用程序(exe)和安装程序(installer)在Windows平台下使用LabVIEW如何生成一个独立可执行程序和安装程序? 解答: 为什么要生成exe和installer 使用LabVIEW编写程序的最后往往需要将程序拿到目标电脑上去运行,如何将程序从开发电脑上移植到目标电脑上呢?这里有两种方法: 1. 在目标电脑上安装LabVIEW以及相关驱动和工具包,然后将vi或者整个项目拷贝到目 标电脑上。然而安装LabVIEW和各种工具包会比较耗费时间,且vi可以被任意修改,容易引起误操作,如果只是运行程序,则不推荐这种方法。 2. 将LabVIEW编写的程序在开发电脑上编译生成独立可执行程序(exe),然后将可执行 程序移植到目标电脑上,这里的移植分为两种方式: A.将生成的exe拷贝到目标电脑上,然后在目标电脑上单独安装LabVIEW运行引擎(Run-Time Engine)和需要的驱动以及工具包等,此方法中安装驱动和工具包也需要花费较多时间,不推荐 B.将生成的exe和一些用到的组件打包生成installer,即安装程序,然后在目标电脑上运行安装程序即可,这样安装完成后,之前生成的exe、LabVIEW运行引擎以及其他用到的工具包会自动安装到目标电脑上,这种方法移植程序比较简单,是最常用的方法。 关于LabVIEW运行引擎 任何电脑,只要你想在上面运行LabVIEW生成的独立可执行程序(exe),你都需要在目标电脑上安装LabVIEW运行引擎。LabVIEW运行引擎包含了: 1. 运行LabVIEW生成的可执行程序所需要的库和文件 2. 使用浏览器远程访问前面板所需的浏览器插件 3. 应用程序中生成LabVIEW报表所需要的一些组件 4. 一些3D图表的支持等 运行引擎本身就是支持多语言的,不需要安装特定语言版本的运行引擎。另外需要确保目标电脑上安装的运行引擎版本与开发应用程序时使用的LabVIEW版本一致。如果你想在一台电脑上运行多个版本的LabVIEW生成的可执行程序,那你的电脑必须安装与这些LabVIEW版本一一对应的多个版本的运行引擎。不同版本的LabVIEW运行引擎可以在NI官方网站上免费下载到。 关于硬件驱动 如果您的程序使用了NI硬件的驱动,那么在目标电脑上就需要安装对应版本的驱动程序。以DAQmx为例,比方说您在实现一个数据采集任务时用到了某个版本的DAQmx驱动,将来在目标电脑上就需要安装对应版本的DAQmx驱动。 综上所述,目标电脑上安装LabVIEW运行引擎是必须的,而硬件驱动的安装则取决于您的程序是否有使用该硬件驱动。 准备工作 生成独立可执行程序和安装程序需要用到应用程序生成器,LabVIEW专业开发版包含有应用程序生成器,基础版和完全开发版则需要单独购买。

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下使用)

如何在labview下使用研华板卡?(适用于所有 ISA 和PCI 系列模拟量和数字量采集卡) 答:研华所有das卡都可以在labview下使用。 Labview驱动是建立在32bitDLL驱动基础之上的,见下图。 所以要安装labview驱动先要安装32bitDLL驱动。包括devicemanager和对应板卡的DLL 驱动,然后再安装对应的labview驱动。具体步骤如下: 2.3.1.1 安装Device Manager和32bitDLL驱动 注意:测试板卡和使用研华驱动编程必须首先安装安装Device Manager和32bitDLL 驱动。 第一步:将启动光盘插入光驱; 第二步:安装执行程序将会自动启动安装,这时您会看到下面的安装界面: 图2-1

注意:如果您的计算机没有启用自动安装,可在光盘文件中点击autorun.exe文件启动安装程 第三步: 点击CONTINUE,出现下图界面(见图2-2)首先安装Device Manager。也可以在光盘中执行\tools\DevMgr.exe直接安装。 图2-2 第四步:点击IndividualDriver,然后选择您所安装的板卡的类型和型号,然后按照提示就可一步一步完成驱动程序的安装。 图2-3 2.3.1.4 labview驱动程序安装使用说明 研华提供labview驱动程序。注意:安装完前面步骤的Device Manager和32bitDLL 驱动后labview驱动程序才可以正常工作。光盘自动运行点击Installation再点击Advance Options 出现以下界面(见图2-6)。点击: LavView Drivers来安装labview驱动程序和labview驱动手册和示例程序。

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及数据采集卡驱动(NI-DAQmx)的安装 管道实验室许多实验都使用NI公司的数据采集卡及LabVIEW软件来记录信号数据,因此学会正确安装这套系统是非常重要的。下面以本实验室多台计算机通用的LabVIEW 8.5版本及DAQCard-6036E的安装过程为例,讲述有效的安装步骤。 首先,打开本组备份的安装文件“LabVIEW8.5及DAQ完整版”,里面有三个文件夹:“LabVIEW8.5中文版”、“NI-6255-DAQmx8.7.1”、“NI-DAQmx 9.3”。 https://www.doczj.com/doc/1216808880.html,bVIEW 8.5的安装及注册 1.1 LabVIEW 8.5的安装 建议不要安装在C盘中,比如安装在D盘中:新建文件夹“NI产品安装目录”,在“NI 产品安装目录”下新建“LabVIEW 8.5安装目录”,并且将安装文件“LabVIEW 8.5中文版”复制在“NI产品安装目录”下。 打开文件夹“LabVIEW 8.5中文版”→运行→选择第一项安装→选择完整版安装,此时需要填写注册码。打开“注册机keygen 8.5破解”→点击Generate→点击copy →粘贴在注册栏中。选择NI产品安装路径为“D:\NI产品安装目录”,LabVIEW 8.5安装目录为“D:\NI产品安装目录\LabVIEW 8.5安装目录”。一般安装默认选项的组件即可,也可根据情况多选。 安装完毕后,选择稍后手动重启计算机。 1.2 LabVIEW 8.5的注册 在“NI产品安装目录”下新建文件夹“注册许可证文件”。打开“注册机keygen 8.5 破解”,依次选择下面的7个选项,分别点击“Greate license file”,将它们依次保存在“注册许可证文件”中,分别以1~7(*.lic)命名。注意有些系统不支持保存路径含中文,此时可以保存在无中文路径中,再剪切到“注册许可证文件”中即可,或者从头建立的文件夹就都用英文名称。 点击开始菜单→程序→NI→National Instruments→License Manager(NI许可证管理器)。在界面菜单上选择,选项→安装许可证文件,选择到刚才保存的1~7(*.lic)。此时,从树形图中可以看出许多组件前端的白色方块变为绿色。 重新启动计算机。此时若打开一个带有DAQ模块的LabVIEW采集程序,会提示无法找到相关组件。 2.数据采集卡驱动的安装 ⑴若计算机使用32位处理器且为XP系统 打开文件夹“NI-6255-DAQmx8.7.1”→disk 1→运行,安装目录为 1

labview程序结构的使用 (1)

百度文库- 让每个人平等地提升自我! 西安文理学院 机械与材料工程学院实验报告课程名称:虚拟仪器 实验项目:程序结构的使用(一)专业:测控技术与仪器 班级:2012级02班 姓名:罗蒙 学号:0703110217

一、程序设计思路 本次实验通过四个程序设计,来完成labview的熟悉以及子基本程序结构的创建和使用方法 1.题目要求: 认识和熟悉while循环:创建一个while循环,每隔一秒产生一个随机数,并用波形图表显示随机数历史值 设计思路: 创建while循环,随机数产生控件,波形图表,连线。 2.题目要求 认识和熟悉 For循环以及移位寄存器:创建一个For循环,产生100个10-100随机数,将数据在博兴图中显示,并求出最小值,最大值,平均值。 设计思路: 创建For循环,设定循环次数,产生随机数,使用移位寄存器存储生成数据,并对其进行比较,输出。 3.题目要求: 认识和熟悉条件结构:创建一个条件vi,要求用户输入口令,口令正确时,显示密码匹配,否则程序立即停止。 设计思路: 创建条件结构,真分支下密码匹配,显示字符串“密码匹配”,假分支下,添加程序跳出指令,程序停止 4.题目要求 创建一个虚拟温度计VI,用0~100的随机数模拟采集实际温度。要求允许用户控制温度采集的开始停止;温度控件显示模式(摄氏温度或华氏温度)有摇杆控制,用户可设置温度报警上限,如果超过报警上限,则点亮报警灯(红色)设计思路: 使用多种语言结构,实现vi的创建,实现虚拟温度计的设计。

二、前面板设计 图1-1-1 图1-2-1 图1-3-1 图1-4-1 三、程序框图设计 图1—1—2 图1—2—2

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-USB 通信简单教程

: 文件类型技术指南 VISA是一个高 级API用来与仪器 控制总线进行通信。 它是平台独立、总线 独立、环境独立的。 也就是说,无论是使 用LabVIEW编 程在一台运行 Windows 2000的机器上与 USB设备进行通 信,还是使用C编程 在一台运行Mac OS X的机器上与 GPIB设备进行通 信,都可以使用同样 的API。

图1:VISA DDW硬件总线窗口 您可以使用这个向导 创建供 PXI/PCI、 USB或IEEE 1394设备使用的 INF文件。由于您 在为USB设备创建 驱动程序,选择 USB并点击下一 步。VISA DDW基本设备信息 窗口打开,如图2所 示。 图2:VISA DDW基本设备信息 窗口 2、在这个步骤 中,您必须知道 USB仪器所使用的 USB厂商ID和产 品ID。这些数字在 您安装的时候能够识 别USB设备,在您 希望进行通信的时 候,可以对设备进行 寻址。根据USB规 范,所有数字必须是 16位的十六进制数 字,必须由设备制造 商提供。 如果您不知道USB 厂商ID和产品 ID,您可以将设备 插入计算机,让计算 机识别新设备得到这 些ID。如果找到新 硬件向导打开,选择 取消。打开控制面板 中的设备管理器,在 列表中找到您的设备,通常它在“其他 设备”中。可能它会 带有黄色惊叹号标 记,表示这是一个未 知设备。双击这个设 备打开属性。选择详 细标签,确保“设备 实例ID”显示在属 性的下拉框中。这样 将会显示类似于图3 的字符串。 “VID_”和 “PID_”右边的 四个字符分别是您的 厂商ID和产品 ID。写下设备的字 符串,关闭设备管理 器,从计算机上拔下 设备。或者您还可以 联系您的设备厂商获得这些信息。

手把手教你在LabVIEW下使用OPC

手把手教你在LabVIEW下使用OPC 发布日期: 十一月21, 2012 | 12 评级| 4.50 out of 5 | Read in English | 打印 概览 NI LabVIEW软件可以通过多种方式与可编程逻辑控制器(PLC)通信。用于过程控制的OLE(OPC)定义了在控制设备和人机界面(HMI)间实时对象数据通信的标准。OPC服务器适用于几乎所有PLC和可编程自动化控制器(PAC)。在本教程中,您将学习如何在LabVIEW中使用OPC与联网的PLC通信。目录 本教程使用LabVIEW数据记录与监控(DSC)模块。该模块包含了诸多工具,包拪将数据记录到联网历史数据库、实时与历史趋势、警报与事件管理、将LabVIEW实时目标与OPC设备连在在一个完整的系统中、为用户界面提高安全性等等。由于拥有这些特性,LabVIEW成为了用于工业控制应用的强大 HMI/SCADA工具。 要求 ? Windows XP/2000 ? LabVIEW FDS与LabVIEW DSC ? NI OPC服务器 使用NI OPC服务器查看现有的PLC标签 1. 选择开始》程序》National Instruments》NI OPCServers》NI OPCServers,启动NI OPC服务器。使用NI OPC服务器,您可以创建、配置、查看与PLC关联的标签。 2. NI OPC服务器需要与已经载入的PLC仿真工程一起启动。这个工程仿真在NI OPC服务器中已经建立配置的PLC。 说明:如果没有载入仿真工程,在NI OPC服务器中选择文件》打开,浏览C:\Program Files\National Instruments\Shared\NI OPC Servers\Projects\simdemo.opf。工程如图1所示。

清华版labview教程

第二章程序结构 2.1循环结构 2.1.1While 循环 While 循环可以反复执行循环体的程序,直至到达某个边界 条件。它类似于普通编程语言中的 Do 循环和 Repeat-Until 循 环。While 循环的框图是一个大小可变的方框,用于执行框中的 程序,直到条件端子接收到的布尔值为 FALSE。 ●该循环有如下特点: ●计数从0开始(i=0)。 ●先执行循环体,而后i+1,如果循环只执行一次,那么 循环输出值i=0。 ●循环至少要运行一次。 条件端子 循环变量 图2-1While 循环示意图 练习2-1使用While循环和图表 目的:用 While 循环和图表获得数据,并实时显示。 创建一个可以产生并在图表中显示随机数的VI。前面板有 一个控制旋钮可在0到10秒之间调节循环时间,还有一个开关 可以中止VI的运行。学习怎样改变开关的动作属性,以便不用 每次运行VI时都要打开开关。操作步骤如下: 前面板 图2-2练习2-1的前面板 1.选择FileoNew,打开一个新的前面板。 2.选择ControlsoBoolean,在前面板中放置一个开关。

设置开关的标签为控制开关。 3.使用标签工具创建 ON 和 OFF 的标签,放置于开关旁。 4.选中ControlsoGraph,在前面板中放置一个波形图(是chart,而不是graph)。设置它的标签为随机信号。这个图表用于实时显示随机数。 5.把图表的纵坐标改为0.0 到 1.0。方法是用标签工具把最大值从10.0改为1.0。 6.选择ControlsoNumeric,在前面板中放置一个旋钮。设置旋钮的标签为循环延时。这个旋钮用于控制While 循环的循环时间。 流程图 7.开流程图,按照下图创建流程图。 图2-2练习2-1的流程图 a.从 FunctionsoStructures 中选择 While 循环,把它放置在流程图中。将其拖至适当大小,将相关对象移到循环圈内。 b.从Functionso Numeri c中选择随机数(0-1)功能函数放到循环内。 c.在循环中设置Wait Until Next ms Multiple函数(FunctionsoTime & Dialog),该函数的时间单位是毫秒,按目前面板旋钮的标度,可将每次执行时间延迟0到10毫秒。 d.照上面所示的流程图连线,把随机数功能函数和随机信号图表输入端子连接起来,并把启动开关和While 循环的条件端子连接。 8.返回前面板,调用操作工具后单击垂直开关将它打开。 9.把该 VI 保存为 LabVIEW\Activity目录中的Random Signal.vi。 10.执行该 VI。While循环的执行次数是不确定的,只要设置的条件为真,循环程序就会持续运行。在这个例子中,只要开关打开(TRUE),框图程序就会一直产生随机数,并将其在图表中显示。 11.单击垂直开关,中止该VI。关闭开关这个动作会给循环条件端子发送一个FALSE值,从而中止循环。 12.用鼠标右键单击图表,选择Data

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课程设计模拟计算器事件结构

河北工程大学 《虚拟仪器设计》课程设计报告 课题:计算器模拟 姓名:张振兴 学号: 090030301 班级:测控三班 完成日期:2012 年 6月19日

目录 一、设计思路 (2) 二、实现过程 (2) 1、面板键入感应 (2) 2、运算变量的初始化 (2) 3、无操作时的默认输出 (3) 4、数字的键入1-9的输入 (3) 5、数字0的输入 (4) 6、小数点的键入 (5) 7、结果去零操作 (5) 8、“+/-”键的设计 (7) 9、“+、-、*、/”四则运算 (7) 10、等号键 (8) 11、开方运算 (9) 12、取倒数倒数运算 (9) 13、退格键CE的设计 (10) 14、清零键C (11) 15、停止键OFF (12) 三、整体程序 (12) 四、前面板的设计排版 (12) 五、while循环中寄存器能 (13) 六、此计算器可以实现的功能 (13)

一、设计思路 完成标准型计算器的一般功能。 输入第一个数,进行存储并显示输入运算的类型并存储输入第二个数,存储并显示按“=”或则按其它运算符号“+、-、*、/”进行连续的运算,最后显示运算结果。 二、具体的实现过程 1、面板键入感应 在前面板上建立22个布尔量,其中包括0--9十个数字键,1个小数点键,4个“+、-、*、/”运算键,1个等号键,1个开方键,1个符号转换键,1个倒数键,1个清零键,1个退格键,1个退出键。如下图所示: 2、运算变量的初始化 在运行程序之前,首先对需要用到的变量进行初始化,如图所示

3、无操作时的默认输出 当键盘上的键没有任何一个按下时,系统仅执行顺序结构第一帧,系统处于初始化状态输出。 4、数字1--9的输入 以数字“1”为例,当按下数字“1”后,布尔量为值改变,进入时间结构结构,将1输出到显示中,布尔量再次改变时。(图1.4.1)若再次输入1,为避免出现01这样的字符串,先判断之前显示的数据是否为0,若为0,则直接输出1,(图1.4.2)若不为0,则将这两次输入的数据通过

LabVIEW中的I-O接口设备驱动

LabVIEW中的I/O接口设备驱动 1 引言 labview(laboratory virtual instrument engineering workbench, 实验室虚拟仪器工程平台)是美国ni公司(national instrument company)推出的一种基于g 语言(graphics language,图形化编程语言)的虚拟仪器开发平台。labview以其在数据采集、 信号处理等方面的突出优势已经在测控领域获得了广泛应用。虚拟仪器系统的硬件平台由 i/o接口设备和计算机构成(),i/o接口设备是对外获取信号的通道,为了能使计算机能够对 i/o接口设备有效地进行控制,就要考虑系统中i/o接口设备的驱动问题。 图1 虚拟仪器的硬件 构成在labview中,用软件驱动i/o接口设备,可分以下两种情况: (1) labview支持的io设备的驱动ni公司是以研制开发先进的i/o 产品起家的,因此,ni在推出labview时已经考虑到了自家产品在labview中的的驱动问题, 提供了专用的子vi形式的驱动程序库,图2是用作模拟输入的驱动程序。 图 2 模拟输入驱 动程序labview提供了max(measurem -ent & automation)软 件,只要计算机中安装了device driver,当i/o设备插入计算机时就能够被自动识别,并 且可以用max工具对其进行配置。图3是在计算机中插入ni公司的板卡pci-6527后启动max 的画面。 图3 max自动识别ni 的i/o设备对于这类labview直接支持的i/o设备,调用labview 中的相应驱动程序模块就可以实现板卡的所有功能。(2) labview 不支持的io设备的驱动ni的io产品由于有现成的驱动可供开发 者使用,在使用中具有驱动方便的优势,但是价格昂贵,实际系统中很可能选择使用非ni 的io设备,这类设备在ni提供的驱动程序库中没有相应的驱动程序。对于这类labview不 直接支持的i/o设备,我们该如何实现对其驱动呢?一般i/o设备 都带有dll驱动函数库以及相应的lib文件和.h头文件,而labview恰好提供了调用动态链 接库的手段——clf节点(call library function,位于labview功能模板中的 advanced子模板中)。基于这种状况,使用clf节点便是我们驱动此类设备的首选方法。下 面以北京迪阳公司的任意波形发生卡lai200a2为例来说明clf在仪器驱动中的使用。 2 举例lai200a2是一款任意波形发生卡,该卡有一 路波形输出,可实现正弦波、方波、三角波、锯齿波、ttl、白噪声、高斯噪声、梯形、指数、 扫频等常规波形,用户可以设置波形的幅度、频率、偏置量等参数。lai200a2提供lai200.dll、 lai200.lib、lai200.h文件供用户进行二次开发。以下简单介绍lai200.dll中的主要函数: (1) 板卡自检函数int lai200_autocheck(unsigned char *numbers,unsigned short int cardname); 功能描述:初始化板卡 入口参数:cardname: 卡地址出口参数:numbers isa卡保留,无 用。函数返回:1,自检成功2,自检失败(2) 计算规则波形数据函数 void lai200_cacuwavepara( int wavetype, int cycles, double frequency, double

相关主题
文本预览
相关文档 最新文档