搜档网
当前位置:搜档网 › labview深入探索xcontrol

labview深入探索xcontrol

labview深入探索xcontrol
labview深入探索xcontrol

labview深入探索----xcontrol

control是LABVIEW8.x新增的功能,LV中的CONTROL我们是再熟悉不过了,这个"X"到底代表什么那,到NI网站上也没找到它的英文定义,可能相当与ACTIVEX中的"X"?虽然无法弄清楚它的定义,但是它的作用是清楚的,我个人理解它更象VC中MFC的控件自画,也具备了一些ACTIVEX的能力,与ACTIVEX的最大区别是ACTIVEX是独立于平台的,可用于各种编程环境,从这点来说,可以把它看做LV内部的activex,MFC 中的控件自画是这样的,当我们要做一个特殊形状的控件时,可以设置它的一个属性是自画,own draw,也就是说,这个控件是用户自己画出来的,比如一个按钮,当鼠标进入它的控制区域,会自动显示凸起状态,还可以自动改变颜色,IE菜单就是这样,当鼠标移入的时候,背景色自动变成兰色,离开后,又自动恢复,实际上,它是在响应两个事件,MOUSE_ENTER 和MOUSE_LEAVE事件.

在xcontrol出现以前,我们也可以对一个控件通过属性节点和事件结构实现这种动态变化,但是有着本质的区别,xcontrol通过事件结构判断事件,利用属性节点改变其显示方式是完全在内部实现的,因此它是可以重用的,从使用方法上它和LV一般的控件没有任何区别,我们完全可以把它看成LV又给我们提供了新的控件,我的文章里多次提到AE的概念,有了XCONTROL,我们不但可以保存数据,而且有了显示的能力,所以说,对于基于组件编程的LV,能力有了很大的提高.

虽然xcontrol是一个新增的特性,但是它的制作方法实际上我们或多或少地都涉及到了,这就使得制作XCONTROL变得相对容易了.

可以看出,我们通过事件结构编程实现了当鼠标移入BOOLEAN控件区域

时,BOOLEAN控件的CAPTION和COLOR自动发生了改变,但是所有的控制代码都是在主循环里完成了,是通过控件外部改变的,因此,我们无法重用这个控件,假如我们需要100个这样的控件,我们需要在事件结构中分别对100个控件做类似的编程,这显然是非常麻烦的.

最好的办法是让这段代码在控件内部完成,这样对于使用者来说,这和一般的控件没有区别,这样有效地实现了封装,所有的一切从用户的角度看,就象调用一个ACTIVEX.

XCONTROL可以轻松实现这个功能

我们知道LV的控件是面向对象的层次继承结构,每个控件都继承了它的父类的

属性和方法,但是对于一个具体的控件,它的属性和方法都是固定的我们无法删除或者增加这个控件的属性和方法.对于XCONTROL,我们可以简单地理解成继

承了一个基本控件,并在此基础上,用户增加的自己的属性和方法,是一个重新定义的,增加的大量功能的新的控件.

下面看看制作XCONTROL的具体过程.

这样一个基本的XCONTROL的结构就建立起来了,存储并重新命名

lv自动生成两个自定义控件,分别是data.ctl和state.ctl,两个VI,分别是Facade.vi和Init.vi

这四个部分是任何XCONTROL都必须包括的基本构件。LV帮助文件中称为required abilities,必须的能力(直译),

data.ctl代表该XCONTROL表示的数据类型,一般的控件也都代表一种数据类型,比如DOUBLE,BOOLEAN,ARRAY等等

data.ctl是自定义控件,可以根据需要修改成您需要的数据类型,比如对于一个学生的个人信息,我们应该生成一个簇,包括姓名,性别,年龄,班级等。state.ctrl代表XCONTROL的显示状态,它和DATA.CTL一样,都是严格类型定义。它包含的信息是我们想控制XCONTROL的属性。

根据我们上面的例子,我们定义四种属性,1:鼠标进入标题2:鼠标离开标题3:鼠标进入颜色4:鼠标离开颜色。

xcontrol中最复杂的就是facade.vi,facade英文意思是一个物体的正面,这里翻译成外观比较合适。

当xcontrol被加载到前面板或者一个包含XCONTROL的VI调入内存的时候,该VI自动被调用,以便在显示之前做一些必要的初始化工作。

我们还是用上面的例子制作一个简单的XCONTOL来说明一下,首先我们修改DATA.CTL,用一个BOOLEAN 类型替代它。

然后修改STATE.CTL,加入必要的属性。

INIT是你在前面板生成控件时自动调用了,同时它内部存储了版本信息,当检查到当前版本发生变化,自动更新。

INIT一般不需要更改。

重点看一下FACADE.VI,它自动生成几个事件。

1:TIMEOUT事件。

在事件结构中,如果没有任何事件发生,TIMEOUT如果位连接,默认值是-1,表示永远不发生超时事件,如果连接一个固定的数值,比如100,单位是毫秒,如果没有事件发生,则每100MS触发一次超时事件,需要注意的是上面的超时事件连接的是0,表示无事件时立即超时,同时循环条件端子选择的是STOP IF TRUE,因此,一旦超时发生,将立即退出循环。

这和一般的事件结构使用方法完全不同,一旦循环退出,整个事件检测就结束了,不会再响应其他事件了。而在XCONTROL中,这显然是不能这样做的,因为XCONTROL肯定要不断响应事件,按常规想法,它应该连接的是-1,循环永远不退出。即使永远不退出,持续检测事件,这样也是有问题的,如果有大量的XCONTROL,这将导致数量庞大的事件结构循环,这样会极大地影响程序性能。

仔细分析后,我得出结论,上面的事件结构实际上是个回调函数。

CVI的回调函数是这样定义的:

int CVICALLBACK PlotData (int panel, int control, int event,

void *callbackData, int eventData1, int

eventData2);

VC也是类似的。

它的目的是,如果面板或者面板上某个控件发生的事件,比如鼠标按下,值改变等等,将自动调用这个函数,注意是操作系统自动调用这个函数,不是用户调用的。

FACADE.VI正是这个功能,一旦XCONTROL发生任何事件,LABVIEW将自动调用这个回调函数,回调函数响应事件后,因为没有其它事件发生,会立即触发超时,导致循环结束,回调函数退出。具体过程是这样的:

XCONTROL 发生事件----》labview调用FACADE.vi--->响应事件---》超时

退出

下次发生事件时重复上面的过程。

LABVIEW除了超时事件外,还自动生成了其它几个事件,可以把它们称做系统事件,对于任何的XCONTROL,这几个事件都是必须存在的。

2:Data Change事件

Data Change 事件是指前面自定义数据类型DATA的值改变了所发生的事件。

事件是如何发生的那,当你用数据流,或者局部变量以及VALUE属性节点改变了XCONTROL的值,则触发该事件。

这一点和一般的事件结构也是不同的,对于一般地控件,用局部变量或者Value 属性节点是不会产生事件的,如果改变了同时需要触发事件,我们不得不用VALUE(SIGNAL)事件来人为触发。

当我们在前面板生成这个控件时,DATA CHANGE事件自动触发,尽管我们此时并未改变它的值。

3:DISPLAY STATE CHANGE----显示状态改变事件。

当你在前面板拖入(生成)这个XCONTROL的实例时,或者复制控件,以及用自定义的属节点改变控件时触发这个事件。我们可以利用这个事件来改变XCONTROL的外观特性。

4:方向改变事件

当一个XCONTROL从控制器改变成指示器或者从指示器改变成控制器时产生该事件。

利用这个结构,我们可以把指示器和控制器显示成完全不同的形状。

对于常规的控件,我们可以用鼠标右键的CAHNGE TO CONTROL和CHANGE TO INDICATOR来改变,XCONTROL也是如此。

5:Exec State Change-----执行状态改变

左侧传入的RUN MODE?为真表示运行状态,为假表示编辑状态,这个事件的基本做用是,指示器在编辑状态下是可以更改它的值的,而在运行状态下是不允许用户直接修改的,只能通过数据流或者局部变量来修改,这样,我们必须知道当前是运行还是编辑状态。

另外经过实际测试,当一个XCONTROL被拖入前面板(生成控件实例)的时候,将按照下面的次序产生事件:

调用INIT.VI---->DATA CHANGE EVENT--->STATE CHANDE EVENT

需要注意的是左侧共有四个严格类型的数据传入循环:

DATA IN---它是上面定义的DATA.CTL

DISPLAY STATE IN----它是上面定义的STATE.CTL

Container state-----包容器状态

Action--------------动作

我们看看Container State 和Action的定义

Container State 是一个严格类型定义的簇,有三个元素组成:

.Indicator ? ,boolean 用来表示当前的XCONTROL是控制器还是指示器

.Run Mode? boolean 用来表示当前的XCONTROL是处于运行状态还是编辑状态.

.RefNum refnum xcontrol自身的控件参考.

Action 也是一个严格类型的簇,有三个元素组成:

.Data Changed boolean 如果该项给定TRUE,则触发DATA CHANGE事件

.State Changed boolean 如果该项给定为TRUE,则触发Display

State CHANGE事件.

.Action Name 用户可以自己定义的字符串信息,比如我们可以指明是哪个要求触发DATA CHANGE事件的 .

接下来,我们来制作这个XCONTROL的属性和方法

我们在状态中已经定义了四个属性:1.进入标题,2.离开标题 3.进入颜色 4.离开颜色

这四个属性是子定义的属性,完成后,LV自动在属性节点中增加四个项目.属性节点一般都定义成可读可写的,根据需要,也可以定义成单向的.

当我们打开一个VI,包含XCONTROL时,XCONTROL是不允许编辑的,在调试XCONTROL的过程我们需要频繁切换XCONTROL的设计窗口和使用窗口,用上面的UNLOCK LIBARAY FOR EDITING,可以暂时启动XCONTROL的编辑,这是使用XCONTROL的窗口处于错误中断状态.

编辑完毕后,用APPLAY CHANGES TO INSTANCE,这样所有用到这个XCONTROL的VI,就自动更新了.只所以先介绍它,是因为它是一个非常好的方法,是下面调式中必须用到的.

输入名称后,属性就自动生成了,最好设定一个虚拟目录,把所有的属性都集中到一起,这样易于管理.

我们以鼠标进入颜色为例来说明一下属性的设计过程.

非常简单,需要注意的是,LV自动生成的面板中,给出的是BOOLEAN控件,名称是Value,我们要用自己的控件来替代它,名称不能变,必须是Value,第一个字母必须是大写,

属性节点设计完成后,还需要在FACADE中响应BOOLEAN控件的MOUSE ENTER和MOUSE LEAVE事件,这样存储在STATE中的属性设定值才能传入到BOOLEAN中,以更新它的显示。

如果属性非常复杂,我们可以专门制作一个属性节点对话框,用鼠标右键快捷菜单来调用它。这属于菜单方面的内容,就不多介绍了。

这样,完整的XCONTROL就制作完成了,看看它的调用方法和实际效果。

基于LabVIEW的虚拟仪器外文翻译

基于LabVIEW的虚拟仪器 模拟风力太阳能系统混合动力站(节选) 介绍 在最简单的层面上,数据采集可以手动完成如使用纸笔记录读数或任何其他工具。对于某些应用这种形式的数据采集是足够的。然而,数据记录中的应用这需要大量的数据读数,非常频繁的录音是有必要的,它包括了仪器或微控制器获取和记录数据准确(1995里格比和多尔比,)。急诊化验室虚拟仪器工程平台(LabVIEW)是一个功能强大的灵活的仪器仪表和分析应用软件工具,(美国国家仪器仪表,2002)在今天这新兴技术并被广泛采用的学术界,工业LabVIEW已成为一个重要的工具,已代替了政府实验室数据的标准采集,仪器控制和分析软件。 现有的1.5千瓦的额定风力太阳能混合动力站显示(图1)。设计与施工的可再生能源发电系统报告(磐诚,等铝,2000)。在大学校园的平台上,有良好的教育机会本科生和研究生以现有的风力太阳能知识,学生们在协同研究基于风力太阳能发电站的传统的电网火力发电厂。特别是在一些组件可再生能源如蓄电池和直流电源逆变器,可导致供电质量和电网出现一些问题,当太阳风稳定性出现问题时,根据汽轮机和发电机(帕特尔,1999)的电力系统与化石燃料这些相互作用都是由于大量的不同动力学参与的风力涡轮机和蒸汽涡轮机。图1显示了photovol TAIC(PV)与太阳能电池板120个W评级,mastmounted1千瓦的风力涡轮机,和风速计,包括风方向和速度传感器的风能太阳能发电站并行运作,并收取12 V电池组包括六个深循环铅酸电池。太阳面板安装在机架上的轨道,白天太阳光从320个0度的初始位置度。该系统还包括基于固态器件的一个1.5kVA额定直流到交流电源逆变器,保护设备如交流和直流电路断路器,熔断器,避雷器,一套线性和非线性负载,连接电缆,和接线盒。在国家的电压和电流系统学生们介绍了稳定的研究,说明了电能质量由于小的线性和非线性负荷的影响(磐诚和蒂默曼,1999)。太阳风混合发电

虚拟仪器LabVIEW实验报告

实验报告一 课程名称虚拟仪器 实验项目熟悉编程环境与基本编程操作 实验仪器计算机 系别: guangdian 专业: 班级/学号: 学生姓名: 实验日期:2011年3月 成绩: _____________________ 指导教师: ____________________

实验一熟悉编程环境与基本编程操作 一、实验目的 1.理解LabVIEW的运行机制,熟悉LabVIEW编程环境。 2.掌握基本编程操作,包括VI程序的创建、编辑、运行与调试。 3.理解LabVIEW模块化编程思想,掌握子VI的创建、编辑及调用。 二、实验仪器及材料 主要设备有计算机, LabVIEW8.5软件。 三、实验内容及步骤 教材第82—83页练习4.2,创建VI后保存为Thermometer.vi。 1.打开一个新的前面板 2.从控件菜单选择一个温度计放到前面板 3.在温度计上用右键单击设定一个精确的温度值,选择Visible》Digital Display 4.将VI保存为Thermometer.vi 教材第107—108页练习5.2,打开练习4.2所创建的VI,将其转变成一个子VI。 1打开4.2创建的Thermometer.vi 2.为该VI创建一个图标,从VI图标窗格选择Edit Icon…,单击OK返回主VI

3从图标弹出菜单中选择Show Connector创建连接器。 4将端子指派给温度指示器,使用Writing工具单击连接器端子,端子就会变成黑色,然后单击温度计指示器。 5在温度计指示器的弹出菜单选择Description and Tip…为温度指示器编制文档 6选择File》Save将修改保存。 四、收获与体会

基于虚拟仪器LABVIEW万用表的课程设计

沈阳工程学院 课程设计任务书 课程设计题目:基于Labview的万用表的设计 系别自控系班级测控本091 学生姓名学号 指导教师职称教授 课程设计进行地点:实训F430 任务下达时间: 2012年 2月27日 起止日期:2012年2月27日起——至2012年3月2日止 教研室主任年月日批准

摘要 虚拟仪器技术的实质是利用最新的计算机技术来实现和扩展传统仪器的功能,在许多方面具有传统仪器所没有的优越性,在实验教学和工程领域具有极大的应用潜力。实验表明,设计的虚拟函数信号发生器输出信号性能优于普通传统的信号源。 虚拟仪器是1986年美国国家仪器公司(NI)提供的一种新型一起概念。它是计算机技术介入仪器领域所形成的一种新型的、富有生命力的仪器种类。在虚拟仪器中计算机处于核心地位,计算机软件技术和测试系统更紧密地结合成一个有机整体,仪器的结构概念和设计观点都发生了根本变化。 虚拟仪器技术的实质是利用最新的计算机技术来实现和扩展传统仪器的功能。其基本构成包括计算机、虚拟仪器软件、硬件接口模块等。在这里,硬件仅是为了解决信号的输入输出,软件才是整个系统的关键。当基本硬件确定后,就可以通过不同的软件实现不同的功能。虚拟仪器应用软件集成了仪器的所有采集、控制、数据分析、结果输出和用户界面等功能。使传统仪器的某些硬件甚至整个仪器都被计算机软件所代替。因此从某种意义上说,计算机既是仪器,软件即是仪器。 虚拟仪器的软件是其最核心、最关键的部分,其主要功能是对硬件执行通信和控制,对信号进行分析和处理,以及对结果进行恰当的表达和输出等。虚拟仪器的软件开发平台目前主要有两类:第一类是基于传统语言的Turbo C,Microsoft公司的Visual Basic ,Borland公司的Delphi,Sybase公司的PowerBuilder。这类语言具有适应面广、开发灵活的特点,但开发人员需有较多的编程经验和较强的调试能力;第二类用专业图形化编程软件进行开发。如HP公司的VEE,NI公司的LabVIEW和Lab Windows/CVI等。NI公司的LabVIEW软件开发平台是一种专业图形化编程软件,采用图形化编程方式,结构流程清晰,但缺点是对硬件的要求较高,比较依赖NI的专用产品,对信号控制方式不够灵活。而Lab Windows/CVI以ANSI C为核心。将功能强大,使用灵活的C语言平台与数据采集,分析和表达的测控专业工具有机地接合起来。它的集成化开发平台,交互式编程方法,丰富的控件和库函数大大增强了C语言的功能,为熟悉C语言的开发人员建立检测系统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开发环境。 关键词函数信号发生器, 数据采集卡,LabVIEW,DAQ卡,示波器

深入浅出LabVIEW数据库应用

目录 第1章引言—献给想用数据库而不懂数据库的工程师 (1) 第2章边干边学数据库基础 (2) 2.1 数据库简史 (2) 2.2 建立数据源 (2) 2.2.1 在Access中建立一个数据库 (2) 2.2.2 建立与数据库的连接 (3) 2.2.3 数据库连接的可移植性问题(高级话题) (7) 2.3 数据库基本操作 (8) 2.3.1 创建一个表格 (8) 2.3.2 删除一个表格 (10) 2.3.3 添加一条记录 (10) 2.3.4 查询一条记录 (11) 2.4 数据库高级操作 (12) 2.4.1 在LabVIEW中执行SQL语言案例研究 (12) 2.4.2 用SQL实现数据查询操作 (13) 2.4.3 用SQL实现删除一条记录 (13) 2.4.4 压缩数据库,释放多余空间 (14) 2.4.5 用SQL实现修改数据操作 (15) 2.5 本章总结 (16) 第3章一个完整的数据库工程范例 (17) 3.1 工程项目要求 (17) 3.2 生成可执行文件(*.exe) (18) 3.3 生成安装文件(Installer) (19) 第4章后记 (22)

第1章引言—献给想用数据库而不懂数据库的工程师 曾经在一个产品检测项目中,客户要求:当产品检测不合格时,记下该产品对应的序列号,测试时间和各项测试指标,并能对这些数据进行管理和查询。由于自己没有系统的学习过数据库,所以第一时间想到的解决方案是用文件的方式(也只能把数据存成文件了)。在使用文件进行数据储存与管理时,遇到了一个巨大的问题:如何查询数据?基本的文件IO函数中,并没有提供现成的查询函数,所以必须自己编程实现。实现的过程是先将数据读入内存,然后再根据关键字进行线性查找,线性查找的时间复杂度为O(N),所以当数据量逐渐增大时,这将是一个非常可怕的过程。这个不可逾越的障碍迫使我不得不再次考虑使用数据库。 想到这儿,我立即到天河书城买了两本网上评价为数据库经典的书《数据库系统概念》和《轻松掌握SQL》,回到办公室后立即开始学习起来。陌生的术语,难懂的理论;看了后一章便忘了前一章——非常痛苦但还是硬着头皮坚持到了下班。 这种痛苦再加上越来越近的项目交付日期,使我非常焦躁,心里终于有个声音爆发了出来“我不就是想要实现数据的保存,修改,删除和查询吗?我需要把那众多的数据库类型、复杂的关系模型、抽象的关系代数…都搞懂吗???”实践后的答案是,不需要,一点都不需要。 我放弃了刚买的新书,打开了LabVIEW 数据库工具包的用户手册和范例程序,寻找着我期望的数据保存,修改,删除和查询功能。到下班的时候,Everything goes well,基本掌握了用LabVIEW 数据库工具包进行数据保存,修改,删除和查询的方法。 回想起这段历程,突然有种想与大家一起分享的冲动——不懂数据库的工程师也可以玩转数据库,因为从应用的角度来看,我们的实际需求仅仅是数据的保存、修改、删除和查询,根本不需要去研究复杂的关系模型、抽象的关系代数、艰深的数据库设计…那基本与我们的初始目标南辕北辙。借助LabVIEW 数据库链接工具包(Database Connectivity toolkit)可以站在应用的层次,很方便的操作数据库,实现数据的保存、修改、删除和查询等功能。 “学以致用,边学边用,急用先学,立竿见影”,在后续的章节中,我们先概览一下必需的与数据库相关的基本概念,然后在LabVIEW平台上一边学习,一边实践如何储存、管理和查询数据。

虚拟仪器实验 labviEW

实验一储液罐状态监控系统设计 一、实验目的 通过该系统设计,初步了解LabVIEW虚拟仪器设计软件的前面板、程序框图及各个选项板的功能。 二、实验内容 设计储液罐状态监控仿真系统,要求如下 1、监测一个储液罐的实际液位、温度、进口压力、出口压力 2、用曲线图显示被测量液位随时间的变化情况 3、液位超标时用指示器报警 4、手动和自动两种方式调节储液罐的液位高度 5、用调节步长按钮决定自动调节的快慢程度 6、设计储液罐状态监控系统前面板 三、实验步骤 1、前面板设计 整个贮液罐监控系统前面板需要的控件有:停止键、手自动切换、液位超标指示灯、步长调节旋钮、高度设定、实际高度显示、进出口压力显示、温度显示和实际液位高度波形图。 停止键、手自动切换、液位超标在新式布尔量控件中进行选择,步长调节旋钮在数值控件中选择旋钮、压力表在数值中选择量表控件,设定高度、实际高度、温度在数值控件中分别选择垂直指针滑动杆垂直填充滑动杆和温度计,液位高度波形图选择波形图表。 2、程序框图设计 程序采用While循环结构,结束用停止布尔按钮结束,除设定高度和调节步长是手动设置外,其他输入如压力和温度的设定均采用编程—数值—随机数的方式给定,手自动切换布尔量连接比较选项中的选择节点,用于切换手自动,液位超标将实际高度和超标高度比较,输出一布尔量。 四、实验结果

五、思考题 1、将整个VI设计成一个子VI。在另一个VI中调用。 在前面板右上角,编辑连线板,对VI的输入和输出对应控件进行编辑,然后保存,即可生成VI,可在其他VI中调用,在其他VI中的调用图如下:

实验二分组数据的练习 一、实验目的 通过该实验,熟悉LabVIEW中常用的分组数据:数组、簇及波形的使用。 二、实验内容 习题4-3到4-11。 三、实验步骤 4-3.4.5 前面板只有三个数组的显示控件,分别为原数组显示、原数组大小显示和转置后的数组显示,程序框图中建立一二维数组常量,将要显示的数组填入,并添加一二维显示控件,在数组中分别选择数组大小和二维数组转置节点,其后分别连接显示控件。 4-6 前面板中选择簇输入控件,并在簇中加入字符型输入控件,数值型输入控件,布尔型输入控件,然后添加一布尔型显示控件,用于提取簇元素注册的显示。程序框图中从簇与变体函数子选板中选择按名称解除捆绑函数,输入端连接簇输入控件的输出,然后选择“注册”后输出端连接布尔控件的输入端。 4-7 前面板中在“字符串与路径”控件中选择组合框控件,然后在它的属性编辑项中编辑5个人的姓氏拼音首字母,它们的值分别为各自的中文姓名,编辑好后建立一字符串显示控件,程序框图中将组合框的输出端与字符串显示控件连接即可。 4-8 前面中中建立一字符串显示控件,程序框图中在定时函数子选板中选择“获取日期时间/字符串”函数,然后放置两个字符串常量分别为班级和姓名,将日期、时间、班级、姓名四个字符串接入字符串选板中的“连接字符串”函数节点,该节点的输出端接入字符串显示控件的输入端。 4-9 前面板中建立一字符串显示控件,程序框图中建立五个随机数,然后均与常数10相乘得到0-10的随机数,选择字符串选板中的“连接字符串”函数节点,将相乘后的随机数接入输入端,在“连接字符串”的格式字符串端建立字符串常量定义格式为两位小数点,数之间用逗号隔开。 4-10 前面板中建立一个一维数组输入控件,建立一个一维数组输出控件,程序框图中建立一个For循环,用数组选板中的“一维数组移位”和“替换数组子集”,每次替换数组最后一个元素并进行移位,替换的新元素值为0-10的随机数,For循环建立移位寄存器,使移位后的数组能进入下次循环中。 4-11 已知标定数据,前面板中建立电压的数值输入控件和压力的数值输出控件,程序框图中用数组选板中的“以阈值插值一维数组”进行电压对压力的插值找到索引值,然后进行显示。 四、实验结果 4-3.4.5

基于labview的虚拟仪器 毕业设计(论文)开题报告.doc

毕业设计(论文)开题报告 课题:基于Labview虚拟 示波器的设计 院系:电气信息学院 专业:测控技术与仪器 学生姓名:彭成和学号:200801200106指导教师:李亚 2012年1月16日

开题报告填写要求 1.开题报告(含“文献综述”)作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。此报告应在指导教师指导下,由学生在毕业设计(论文)工作前期内完成,经指导教师签署意见及所在专业审查后生效。 2.开题报告内容必须用黑墨水笔工整书写或按此电子文档标准格式(可从电气系网页或各教研室FTB上下载)打印,禁止打印在其它纸上后剪贴,完成后应及时交给指导教师签署意见。 3.“文献综述”应按论文的格式成文,并直接书写(或打印)在本开题报告第一栏目内,学生写文献综述的参考文献应不少于10篇(不包括辞典、手册),其中至少应包括1篇外文资料。 4.统一用A4纸,并装订单独成册,随《毕业设计论文》等资料装入文件袋中。

毕业设计(论文)开题报告1.文献综述:结合毕业设计(论文)课题情况,根据所查阅的文献资料,撰写2500字以上的文献综述,文后应列出所查阅的文献资料。 文献综述 一、引言 随着计算机技术、大规模集成电路技术和通讯技术的飞速发展,仪器技术领域发生了巨大的变化,美商国家仪器公司(National Instruments)于八十年代中期首先提出基于计算机技术的虚拟仪器的概念,把虚拟测试技术带入新的发展时期,随后研制和推出了基于多种总线系统的虚拟仪器。虚拟仪器就是在通用计算 机上加上软件和(或)硬件,使得使用者在操作这台计算机时,就象是在操作一台他自己设计的专用的传统电子仪器。在虚拟仪器系统中,硬件仅仅是为了解决信号的输入输出,软件才是整个仪器系统的关键,任何一个使用者都可以通过修改软件的方法,很方便地改变、增减仪器系统的功能与规模,所以有“软件就是仪器”之说。虚拟仪器技术的出现,彻底打破了传统仪器由厂家定义,用户无法改变的模式,虚拟仪器技术给用户一个充分发挥自己的才能、想象力的空间。用户(而不是厂家)可以随心所欲地根据自己的需求,设计自己的仪器系统,满足多种多样的应用需求。虚拟仪器系统概念是对传统仪器概念的重大突破,是计算机系统与仪器系统技术相结合的产物。它利用计算机系统的强大功能,结合相应的硬件,大大突破传统仪器在数据处理、显示、传送、处理等方面的限制,使用户可以方便地对其进行维护、扩展、升级等。 虚拟仪器技术已成为测试、工业I/O和控制和产品设计的主流技术,随着虚拟仪器技术的功能和性能已被不断地提高,如今在许多应用中它已成为传统仪器的主要替代方式。随着PC、半导体和软件功能的进一步更新,未来虚拟仪器技术的发展将为测试系统的设计提供一个极佳的模式,并且使工程师们在测量和控制方面得到强大功能和灵活性。 基于此本次毕业设计就是通过虚拟仪器来完成的,以下是对该软件的一些介绍。

基于labview虚拟仪器平台的温度检测系统设计

Labview考试报告 题目:基于Labview虚拟仪器平台的智能温度控制系统 班级:50910 学号:5091030 姓名:李玲娜

引言 虚拟仪器是计算机技术和仪器测量技术相结合的产物。虚拟仪器技术,就是用户在通用计算机平台上,根据测试任务的需要来定义和设计的测试功能,其实质是充分利用计算机来实现和扩展传统仪器功能。“软件就是仪器”反映了虚拟仪器技术的本质特征。美国国家仪器公司生产的NI-LabVIEW是目前最为成功,应用最广泛的虚拟仪器软件开发系统。它一种基于G语言的32位编译型图形化编程语言,其图形化界面可以方便的进行虚拟仪器的开发。它充分利用计算机强大的运算处理功能,突破了传统仪器在数据处理、显示、传输、存储等方面的限制。本文利用虚拟仪器平台,通过编写Labview 软件对温度进行智能测量,减少硬件的开发,有利于系统的维护,也便于系统软件升级。 一、虚拟仪器 1. 1虚拟仪器概述 虚拟仪器是在以计算机为核心的硬件平台上, 其功能由用户设计和定义, 具有虚拟面板, 其测试功能由测试软件实现的一种计算机仪器系统。虚拟仪器的实质是利用计算机显示器的显示功能来模拟传统仪器的控制面板, 以多种形式表达输出检测结果; 利用计算机强大的软件功能实现信号数据的运算、分析和处理; 利用I /O 接口设备完成信号的采集与调理, 从而完成各种测试功能的一种计算机仪器系统。 1. 2虚拟仪器的图形化开发平台 LabVIEW ( Laboratory Virtual Instrument Engineering Workbench)是一种图形化的编程语言, 它广泛地被工业界、学术界和研究实验室所接受, 视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS- 232和RS- 485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/

labview的深入探索----文件系列之二进制文件

labview的深入探索----文件系列之二进制文件 二进制文件是计算机文件中最常见的文件,它占用空间最小,适合于连续存 储大量数据,同时它的存储格式基本和数据在内存中的存储格式一致或者类似, 很多情况下,甚至是内存的映射,因此无论是存储还是读取都是速度最快的,同时, 具有非常高的安全性,如果不知道数据的格式,很难分析出文件的格式.同文本文 件一样,打开和关闭是完全相同的,不同的是写VI 和读VI.先看一个简单写的例 子上面写的是U8 数组,我们知道,一个U8 对应一个字节,1024 个U8 数组对应的 文件长度应该是1024=1K,但是实际文件长度是1028=4+1024,同理,下面的是I32 的数组,一个I32=4BYTE,所以文件长度应该是1024*4=4096,但是实际文件长度 是4100=4+4*1024.可以看出,对一维数组,多出四个字节的长度,实际上是多出一 个U32=4BYTE,代表的是一维数组的长度.原因在于WRITE BIN FILE VI,有一 个选择项,如下图,表示是否写入数组长度或者字符串长度.如果取消写入数组或 者字符串长度,则数组所占空间大小和二进制文件所占空间完全相同.之所以读 写二进制文件速度是最快的,根本原因在于二进制文件的存储方式和数据在内存 中的存储方式相似或者完全一致.WRITE BIN FILE VI 还有一个重要的输入选择 项目,BYTE ORDER(字节次序),很多编程语言或者操作系统称之为大小端的问题.在所有的计算机系统,包括单片机中,都存在大小端的问题.简单地介绍一下.我们知道,一个整数U16 或者I16,有两个字节组成,比如整数0X1234,由字节0X12,和 0X34 组成,那么,在内存中或者文件中,到底是0X12 在前还是0X34 在前那,在不 同的操作系统和不同的编程语言中,这是有区别的,这就造成的数据的大小端的 问题.对于我们自己的数据二进制文件,这个选择并不重要,因为LV 的读二进制 VI 也有同样的选择项,保持二者一致就可以了,但是如果被其它编程语言读取或 者读取其他语言写的二进制文件,就要考虑大小端的问题,否则数据表现可能会

虚拟仪器LabVIEW实验报告

现代仪器设计LabVIEW实验报告 实验内容: 1.熟悉LabView软件操作方法 2.了解LabView的一般编程方法 3.虚拟信号发生器制作

1.熟悉LabView软件操作方法 虚拟仪器(virtual instrumention)是基于计算机的仪器。虚拟仪器主要是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器的研究中涉及的基理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。 LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程基本上不写程序代码,取而代之的是流程图。 前面板的设计需用控制模板。控制模板(Control Palette)用来给前面板设置各种所需的输出显示对象和输入控制对象。每个图标代表一类子模板。可以在前面板的空白处,点击鼠标右键,以弹出控制模板。 程序框图的设计需用功能模板。功能模板(Functions Palette)是创建流程图程序的工具,只有打开了流程图程序窗口,才能出现功能模板。功能模板该模板上的每一个顶层图标都表示一个子模板。可以点击“窗口”—“显示程序框图”打开,也可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。

流程图上的每一个对象都带有自己的连线端子,连线将构成对象之间的数据通道。不是几何意义上的连线,因此并非任意两个端子间都可连线,连线类似于普通程序中的赋值。数据单向流动,从源端口向一个或多个目的端口流动。不同 的线型代表不同的数据类型。下面是一些常用数据类型所对应的线型和颜色:

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回声探测器实验作业 安 徽 工 业 大 学 电气信息学院 自动化093

回声探测器 LabVIEW是由美国国家仪器公司创立的功能强大而又灵活的仪

器和分析软件应用开发工具。它是一种基于图形化的、用图标来代替文本行创建应用程序的计算机语言。在以PC为基础的测量和工控软件中,LabVIEW的市场普及率仅此次于C++/C语言。LabVIEW已经广泛地被工业界、学术界和研究实验室所接受,被公认为是标准的数据采集和仪器控制软件,LabVIEW使用的编程语言是G语言。G语言用图表表示函数,用连线表示数据流向。这次编程所用的是较新版本的LabVIEW 8.5。 一.设计目的:该实验基于labview8.5虚拟平台,使用图形语言编程,由回声发生器子VI产生回声信号,通过回声探测器进行探测分析。本实例利用两个波形图来分别显示回声信号和回声探测信号,并对这两个信号进行比对分析。 本实验设计主要内容包括三个部分:回声产生部分,回声探测部分,和结果显示部分。 回声探测器实例的前面板如图1:

图1 1.程序框图主要功能模块介绍:如图2回声探测器实例的程序框图 主要有四个功能模块组成,分别为回声产生子Vi功能模块,回声探测功能模块,结果显示功能模块,While循环功能模块,下面对每个功能块实现的具体处理功能和任务进行详细介绍。 图2 1>.回声产生子VI功能模块 回声产生子VI功能模块用来产生回声信号,此子VI命名为 回声产生器.vi, 图3给出了回声 产生子VI功能图

回声信号 图3 该子Vi主要用来产生回声信号,可将该模块产生的信号输入相应的波形图和回声探测功能模块中。另外,该子VI可以通过改变输入控件的参数来产生不同的信号。 2>.回声探测功能模块 回声探测功能模块的功能是通过“快速希尔伯特变换”,“实部虚部至极坐标转换”和“自然对数”等一系列函数节点的运算,将回声产生子VI功能模块产生的回声信号信息特征探测出来,“快速希尔伯特变换”函数变换是在FFT函数进行傅立叶变换的基础上执行离散希尔伯特变换的。其调用路径是“函数——信号处理——变换——快速希尔伯特变换”。 “实部虚部至极坐标转换”函数是将一复数坐标的直角坐标形式转换成极坐标形式,本例利用该函数将两个直角坐标系的数组转换为极坐标形式,其调用路径是“函数——编程——数值——复数——实部虚部至极坐标转换”。 “自然对数”函数是计算输入数值的自然对数值,其调用路径是

基于Labview的虚拟仪器计算器设计

研究生课程考核试卷 (适用于课程论文、提交报告) 科目:虚拟仪器教师: 姓名:学号: 专业:类别:学术型上课时间: 考生成绩: 阅卷评语: 阅卷教师(签名) 重庆大学研究生院制

通过对虚拟仪器课程的学习和撑握,本次实验设计了一个简易计算器,可以用来模拟真实计算器而进行一些简单的基本运算。利用Labview软件平台编写计算器程序,可以实现“+、-、×、÷、平方、开方、x^y”这七种基本运算,并且可以对上面的七种基本操作连续运算,另外实现了对输入的错误数据进行清除的功能。达到了本次实验的要求。 关键词:Labview,七种基本运算,清除

摘要 .................................................................................................................................................. I 1、引言 (1) 2、整体方案设计 (2) 2.1、簇和前面板控件的说明 (2) 2.2、程序流程图 (3) 3、具体实现过程 (4) 3.1、前面板设计 (4) 3.2、初始化和键的感应 (4) 3.2.1、数字0-9的输入 (6) 3.3、输入的第一个数 (6) 3.3.1、多零问题 (6) 3.3.2、小数点问题 (7) 3.4、四则运算和x^y (7) 3.5、开方计算 (8) 3.6、倒数计算 (9) 3.7、输入正负数 (9) 3.8、去掉小数点后面0的功能 (9) 3.9、清除功能(Clear) (10) 3.10、退格功能 (10) 4、总结 (12) 参考文献 (13) 附录A (14) 1、初始化程序 (14) 2、总程序 (14) 3、x^y的幂程序 (15)

labview的深入探索----labview与回调函数

labview的深入探索----labview与回调函数 回调函数是WINDOWS 编程(API 编程)的核心内容之一,在许多高级编程语 言,如VB,VC(MFC)中已经封装了回调函数,取而代之的是事件响应函数,但是,追 溯其本质,实际就是回调函数.所谓WINDOWS 回调函数,就是按照WINDOWS 的规范,编写的(CALLBACK)函数,当WINDOWS 检测到事件发生时,自动调用的 函数,WINDOWS 是通过函数指针调用的,因此,回调函数的内容是由用户决定的, 而何时调用是由操作系统决定的.我们看一下CVI 中的一般回调函数的定义int callback aaaa(int panel,int control,int event1,int event2,callbackdata *data);回调函数的参数是有操作系统提供的,比如上面的回调函数,panel---表示的哪个面板(窗口) 发生的事件control---表示的面板上哪个控件发生的事件event1 event2 表示事件 的类型和相应数据,比如鼠标坐标等回调函数是一般高级编程语言的基本功能, 但是,在LABVIEW8.X 之前是不支持的,这极大限制了LABVIEW 功能的扩展, 因为ACTIVEX,.NET 都需要回调函数.8.X 中,增加了回调函数的功能,主要用于ACTIVE,.NET 和LABVIEW 自身控件,LABVIEW 例子程序中提供了几个例子, 是有关ACTIVEX 和.NET 调用的,下面,我们通过LABVIEW 自身控件说明一下 回调函数的使用方法.在.NET 摸板中也提供了这个节点,从分类上就可以看出,注 册回调函数主要是用于ACTIVEX 和.NET 的.下面我们做一个简单的回调函数 的程序,有两个功能,返回当前值的变化和记录控件被点击的次数注册回调函数 需要三个参数:控件参考,用户参数和自动生成的回调函数,有了控件参考,我们就 可以选择事件的类型,用户参数主要是用于返回结果,因为回调函数是由操作系 统调用的,没有办法通过数据流返回处理结果.添加了这两个参数后,就可以自动 生成回调函数了回调函数如下图所示简单编程,CONTROL 的值传递给 INDICATOR 这样值变化的回调函数完成了,下面我们通过鼠标UP 事件来记录

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虚拟仪器实验报告

1.实验目的: 熟悉LabVIEW软件的基本编程环境。 2.实验内容: 创建一个VI程序,并将此程序保存为子VI。此VI要实现的功能是:当输入发动转速时,经过一定运算过程,输出发动机温度和汽车速度值。 3.实验步骤 (1)启动LabVIEW,创建一个VI。 (2)在前面板中放置一个温度计控件,并修改控件标签名为发动机温度和设置最大值为100。该控件从“控件—经典—经典数值”子选项板中获得。 (3)按同样的方法在前面板中放置一个仪表控件,并修改仪表控件的标签名为汽车速度,标尺刻度范围为0~150。 (4)按同样的方法在前面板中放置一个数值输入控件,并修改控件标签名为发动机转速。 (5)从“窗口”下拉菜单中选择“显示程序窗口”切换到程序框图窗口。 (6)在程序窗口中创建乘法函数,该函数中函数选项板中的“函数—编程—数值”子选项板中选择,并和发动机转速输入控件连线,为乘法函数创建一个常量,修改为图中所示值。 (7)按同样的方法创建加法函数、平方根函数和除法函数,并按图中所示修改常量值和连好线。 (8)切换至前面板,在发动机转速控件中输入数值,点击运行按钮,运行VI程序。 (9)修改图标为T/V以表示该子VI输出量为发动机温度和汽车速度,并保存为vi.vi。 前面板: 程序框图:

1.实验目的: 熟悉子VI的调用。 2.实验内容: 创建一个VI程序,并在编写程序过程中调用实验一中创建的子VI。此VI要实现的功能是:通过旋钮控件来控件输入的发动机转速值,中间调用实验一中创建的子VI作为计算过程,从子VI输出的值分别输出至不同的数值显示发动机的温度以及当前汽车速度,同时判断当汽车速度超过100时,系统将产生蜂鸣声,报警提示。 3.实验步骤: (1)启动LabVIEW,创建一个VI。 (2)在前面板中创建一个旋钮控件,修改标签名为发动机转速,设置数值范围为0~5000,从旋钮控件中调出一个数字显示控件来同步显示旋钮控件当前值。 (3)在前面板创建两个数值显示控件,并修改标签名为汽车速度和发动机温度。 (4)切换至程序框图窗口。 (5)在程序框图中创建一个大于或等于函数。 (6)在程序框图中调用实验一的子函数,从函数选板中的“函数—选择VI”选在实验一创建的子vi.vi。 (7)在程序框图中创建一个蜂鸣器函数,并按图示连线情况连线。 (8)切换至前面板,在发动机转速中输入数值,点击运行按钮运行。 前面板: 程序框图:

基于labview的虚拟仪器 毕业设计(论文)开题报告

毕业设计(论文)开题报告 课 题: 基于Labview 虚拟 示波器的设计 院 系: 电气信息学院 专 业: 测控技术与仪器 学生姓名: 彭成和 学 号: 200801200106 指导教师: 李 亚 2012年 1月 16 日

开题报告填写要求 1.开题报告(含“文献综述”)作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。此报告应在指导教师指导下,由学生在毕业设计(论文)工作前期内完成,经指导教师签署意见及所在专业审查后生效。 2.开题报告内容必须用黑墨水笔工整书写或按此电子文档标准格式(可从电气系网页或各教研室FTB上下载)打印,禁止打印在其它纸上后剪贴,完成后应及时交给指导教师签署意见。 3.“文献综述”应按论文的格式成文,并直接书写(或打印)在本开题报告第一栏目内,学生写文献综述的参考文献应不少于10篇(不包括辞典、手册),其中至少应包括1篇外文资料。 4.统一用A4纸,并装订单独成册,随《毕业设计论文》等资料装入文件袋中。

毕业设计(论文)开题报告 1.文献综述:结合毕业设计(论文)课题情况,根据所查阅的文献资料,撰写2500字以上的文献综述,文后应列出所查阅的文献资料。 文献综述 一、引言 随着计算机技术、大规模集成电路技术和通讯技术的飞速发展,仪器技术领域发生了巨大的变化,美商国家仪器公司(National Instruments)于八十年代中期首先提出基于计算机技术的虚拟仪器的概念,把虚拟测试技术带入新的发展时期,随后研制和推出了基于多种总线系统的虚拟仪器。虚拟仪器就是在通用计算机上加上软件和(或)硬件,使得使用者在操作这台计算机时,就象是在操作一台他自己设计的专用的传统电子仪器。在虚拟仪器系统中,硬件仅仅是为了解决信号的输入输出,软件才是整个仪器系统的关键,任何一个使用者都可以通过修改软件的方法,很方便地改变、增减仪器系统的功能与规模,所以有“软件就是仪器”之说。虚拟仪器技术的出现,彻底打破了传统仪器由厂家定义,用户无法改变的模式,虚拟仪器技术给用户一个充分发挥自己的才能、想象力的空间。用户(而不是厂家)可以随心所欲地根据自己的需求,设计自己的仪器系统,满足多种多样的应用需求。虚拟仪器系统概念是对传统仪器概念的重大突破,是计算机系统与仪器系统技术相结合的产物。它利用计算机系统的强大功能,结合相应的硬件,大大突破传统仪器在数据处理、显示、传送、处理等方面的限制,使用户可以方便地对其进行维护、扩展、升级等。 虚拟仪器技术已成为测试、工业I/O和控制和产品设计的主流技术,随着虚拟仪器技术的功能和性能已被不断地提高,如今在许多应用中它已成为传统仪器

虚拟仪器技术Labview 课程实验报告

Labview 课程实验报告 学院:电气工程 专业:建筑电气与智能化 姓名:杨震 班级:建电122 学号:1212062056 指导老师:茅靖峰

第一部分基础题 1、用LabVIEW的基本运算函数编写以下算式的程序代码: (前面板) (程序框图) 该程序要求用labview基本运算函数编写算式的程序代码,在前面板上我添加了两个数值显示控件用以显示两个算式的运算结果;在程序框图中运用软件自带的加、减、乘、除运算进行组合从而表示算式,再结果的后面加上一个双精度浮点数函数将程序运算结果强制转换后输入到显示控件中得到结果。

2、利用摄氏温度与华氏温度的关系°C=5(°F-32)/9编写一个程序求华氏度(°F)为32°,64°,4°,6.98°,6°,104°,212°时的摄氏温度。 (前面板) (程序框图) 该程序要求转换华氏度对应的摄氏度,本质上是对数据进行运算。在前面板上创建两个数组一个是数值输入数组用以输入华氏度的值,一个是数值显示数组用以显示对应的摄氏度的值。在程序框图中加入For循环将公式节点放入For循环中在公式节点上添加一个输入和一个输出分别连接两个数值控件,最后在公式节点中编辑二者运算关系完成设计。

3、用数组创建函数创建一个二维数组显示件,成员为: 1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3 编程将上述创建的数组转置为: 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 1 5 6 1 2 6 1 2 3 (前面板) (程序框图) 先在前面板中创建二维数组用以存放生成的数组元素数组为显示型控件,通过观察我们发现题目中的数组第一行为1-6顺序的六个元素从一开始后逐一加一,第二行则是5个数组元素平移,第三行为4个以此类推第四行3个所以我们在程序框图中用For循环和加一来生成第一行数组For循环的循环次数为六次,第二行数组则在第一行数组的基础上运用一维数组平移函数平移5位的到,以此类推生成四行数组,再使用数组生成函数生成二维数组输出到显示数组中显示出来,至于数组的转置直接运用数组转置函数得到,在该函数的输出端口右键创建显示控件。在前面板中调整创建的显示控件以确保显示所有转置的数组,实验完成。

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

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

相关主题