LabVIEW程序界面的布局

LabVIEW程序界面的布局
LabVIEW程序界面的布局

LabVIEW程序界面的布局

2009-07-21 16:26:02| 分类:LabVIEW程序设计|举报|字号订阅

俗话说:“人靠衣装,佛靠金装”,应用程序的界面是提供给使用者的第一印象,直接影响到应用程序的用户体验。因此,有效、合理的界面能够为程序增色不少。LabVIEW提供了丰富的界面控件供开发者选择,有经验的程序员往往能够利用这些控件做出令人称赞的界面效果。

在《LabVIEW Development Guidelines》(下载)和《The LabVIEW Style book》(介绍)书中都有专门的章节来论述LabVIEW程序界面设计规范和方法。本文主要从应用应用开发的角度描述一些通用的界面设计的方法。

1.1控件的分类和排列

在LabVIEW中,控件通常被笼统地分为控制型控件(Control)和显示型控件(Indicator)。而对某一个具体的应用而言,更需要把Control和Indicator进行细分,使得具有同样功能的控件排放在一起,甚至组成若干个Group组。

LabVIEW提供了一系列工具供程序员排列和分布控件的位置以及调整控件的大小,如图 1所示。图(a)是排列对齐工具,其中的图标可以很清楚地知道各个按钮的作用。使用Ctrl+Shift+A可以重复上一次的排列方式。图(b)是位置分布工具,可以快速地分布各个控件之间的位置。图(c)是大小调整工具,可以快速地调整多个不同控件的大小(注意:部分控件的大小是不允许被调整的)。图(d)是组合和叠放次序工具,Group表示把当前选择的控件组合起来形成一个整体;Ungroup与Group相反,表示分散已经整合起来的各个控件;Lock表示锁定当前选择的控件,此时控件将无法被编辑(包括移动控件的位置,调整控件的大小等);Unlock是解锁指令;Move Forward、Move Backward、Move to Front和Move to Back表示修改当前选择控件的排放次序。

图 1 控件排列和分布工具

图 2是某个测试界面的控件摆放实例,尽管这些控件都是Indicator控件,但是仍然根据显示功能和内容的不同将控件进行了分类。如果将其中的信息不经过任何分类而直接摆放在一起,则没有很好的条理性和层次性。

图 2 控件摆放实例

在实际应用中,需要首先将Control和Indicator分开摆放;然后在Control和Indicator内部对控件按照功能进行分类,不同的类别之间以显著的标志进行区分;最后要合理安排控件的位置和分布,确保整个界面匀称和整洁。

1.2颜色的使用

颜色在程序中的应用有多种功能,除了能够确保界面的丰富和完善之外,还能够重点区分不同控件的功能,强调某些控件的作用和位置。LabVIEW提供了传统的取色工具和着色工具,如图 3所示。取色工具是获取LabVIEW开发环境中某个点的颜色值(包括前景色和背景色),并将获取的颜色设置为当前的颜色。着色工具是将当前的颜色值(包括前景色和背景色)设置到某个控件上。

图 3 取色工具和着色工具

【小技巧】

(1)在使用着色工具时,按住Ctrl键可以将工具暂时切换成取色工具,释放Ctrl键后将返回着色工具。

(2)在使用着色工具时,使用“空格”键可以快速地在前景色和背景色之间切换。

在着色工具中,右上角的“T”表示透明色,可以使用鼠标单击该图标设定当前的颜色为透明色,如图 4所示。此外,LabVIEW还提供了一系列预定义的标准颜色供程序员选择,其中System的第一个颜色是Windows的标准界面颜色。

图 4 着色工具面板

LabVIEW允许设置一个VI窗口的透明色,在VI Property对话框中选择Windows Appearance页,单击Customize…按钮将弹出如图 5所示的对话框。勾选“Windows runs transparently”选项,并设置

透明度(0%~100%)。

图 5 Customize Windows Appearance对话框

1.3LabVIEW控件

在LabVIEW中有3种不同外观的控件可供选择,分别是:Modern、System和Classic。其中Modern 控件是NI专门为LabVIEW设计的具有3D效果的控件,它能够确保在不同的操作系统下显示始终是

一样的;而System是采用系统控件,它的外观与操作系统有关,不同的操作系统下控件的显示外观有所不同。大多数的程序员似乎更愿意选择System控件,理由是它可以让程序看起来不那么LabVIEW 化。但是LabVIEW并不允许程序员任意自定义System控件的外观,这同时也限制了System控件的使用。

LabVIEW允许程序员在现有控件的基础上重新定义控件的外观(Type Def.和Strict Type Def.技术)。图 6是使用控件自定义方法重新设计的Tank控件,程序员可以修改控件的各种显示表达方式,但是却不能修改控件的功能(可以使用XControl技术)。

图 6 Tank控件

1.4插入图片和装饰

程序中必要的图片不仅能够给用户直观的视觉感受,还能够描述程序的作用(当然,不能使用过量的图片)。最简单的插入图片的方式是:将准备好的图片直接拖入到VI的前面板中或者使用Ctrl +C/V 粘贴到前面板中。当然,还可以使用Picture控件将图片动态地载入到Picture控件中。

此外,LabVIEW还提供了一种自定义程序背景图的方式。新建一个VI,在VI的垂直滚动条或水平滚动条上右击将弹出如图 7所示的快捷菜单。

图 7 VI前面板快捷菜单

选择Properties,将弹出如图 8所示的Pane Properties对话框。在左下方的Background区域中内置了部分的图片供程序员选择,也可以使用Browse…按钮导入外部自定义的图片。

【注意】

如果需要导入不规则的图片,可以将图片的部分背景色设置为透明并保存为png的格式。

图 8 Pane Properties对话框

在Controls>>Modern>>Decorations和Controls>>System中有一些装饰用控件,如图 9所示,程序员可以使用这些装饰控件为应用程序增色。图 10就是采用System控件中的System Recessed Frame和System Label控件设计的控件组合。

图 9 装饰控件选板

图 10 装饰控件实例

1.5界面分隔和自定义窗口大小

控件的显示效果与监视器是密切相关的,因此在程序设计时需要考虑目标监视器的颜色、分辨率等因素,并明确运行该应用程序所需要的最低硬件要求。在很多的论坛中经常会看到问题:如何才能确保应用程序的界面在更高的分辨率上运行时不会变形?这实际上是一个界面设计问题,而思考如何解决它却是应该从程序设计时就开始,而不是等到程序设计完成后再探讨解决方案。LabVIEW中并没有提供一种有效的方式或工具来解决这个问题,但是我个人认为这与LabVIEW无关,更应该把它归纳为通用的程序设计问题,解决它需要比较良好的界面设计、布局和分配作为前提。

事实上,程序往往会规定一个最低的运行分辨率,在此分辨率以上的显示器上程序界面应该能够正确地被显示出来。而在LabVIEW中,控件往往在高分辨率的显示器上被拉大或者留有部分的空白,这使得整个界面完全扭曲了程序员最初的设计。

为了能够更加清晰问题的本质和寻求解决问题的方案,有必要对LabVIEW的前面板界面进行确认和分析。如图 11所示,一个VI的窗口由几个部分组成:整个红色的区域称为一个窗口(Windows),而蓝色的区域称为一个面板(Panel)。从图中可以看出,窗口中的标题栏、菜单栏和工具栏并不属于面板。

图 11 VI窗口区域定义

LabVIEW允许程序员将面板(Panel)划分为若干个独立的窗格(Pane)。使用

Controls>>Modern>>Containers选板中的Horizontal Splitter Bar和Vertical Splitter Bar可以将VI的面板进行任意的划分,如图 12所示。

图 12 Containers选板

划分之后的VI前面板如图 13所示,可以看出图中的Panel(蓝色区域)已经被划分为了5个窗格Pane,每一个绿色区域都被称为一个Pane。当Panel上只有一个Pane时,Panel与Pane会重合。因此,窗口(Windows)包含整个界面,而1个窗口只有1个面板(Panel),该面板能够被划分为若干个独立的窗格(Pane)。每个Pane都包含其特有的属性和滚动条,而Pane之间使用Splitter进行分隔。

图 13 划分之后的VI窗口定义

在Splitter上右击可以设置Splitter的相关属性,如图 14所示。Locked属性可以设置Splitter是否被锁定,被锁定的Splitter的位置将无法被移动。与控件类似,LabVIEW提供了3种Splitter样式:Modern、System和Classic。程序员可以使用着色工具设置Modern和Classic Splitter的颜色,使用手型工具调整Splitter的位置以及使用选择工具调整Splitter的大小。

图 14 Splitter右键快捷菜单

现在再回头看本小节开头提到的分辨率问题,从常识上判断,当程序从低分辨率界面向高分辨率界面转移时,可以有如下的解决方案:

1、界面上的控件变大;

2、界面控件的位置重新分布,以平衡空白位;

3、界面控件的相对位置不动,留出适当的空白位。

在实际操作中,上述的3种方式似乎很难实现以满足界面大小变化带来的自适应问题。比如第3种方式看似简单,却同样存在着疑问:应该在哪里留出空白位,是现有控件的左边?右边?上边?还是下边?打开一些标准的Windows界面程序,不难看出,往往程序中结合使用了上面的3种方式。部分的控件位置和大小不变,留出适当的空白位给其它的控件,如Listbox、Graph、Tree等。因此这类控件显示的信息较多,并且外观单一,改变它们的大小对整个界面的布局不会产生影响。

因此,在程序开始设计的初级阶段就有必要设计界面的大致控件布局和分布,以明确界面在不同分辨率下的调整方式。如果界面控件过多,则可以通过其它的方式进行规避(比如对话框等),确保界面的大小调整不会影响到控件布局的变化。

【应用(下载)】

本节将以一个标准的Windows测试界面为例说明界面设计的方式和步骤。首先,需要根据程序的功能划分VI的Panel,并决定将其分为多少个Pane。图15将界面分为了8个Pane,依次为:工具栏、帮助栏、测试信息栏、波形采集栏、状态栏(登陆人员栏、说明栏、测试内容栏和测试时间栏)。

图 15 划分Panel

其次,在状态栏的四个区域中分别加入一个String型Indicator,并且勾选Indicator的右键快捷菜单选项:Fit Control to Pane,也就是说当Pane变化的时候String的大小也随之发生改变以确保String 控件能够填充整个Pane,如图 16所示。

图 16 在状态栏中加入Indicator控件

单击窗口的最大化按钮,可以看出整个状态栏的高度变大而最右侧子状态栏的宽度变大,如图 17所示。

图 17 最大化之后的状态栏

事实上,当窗口(或者Pane)大小发生变化时往往不希望状态栏的高度发生改变,而只需要改变其中某一个Pane的长度就可以了。单击“还原”按钮,使窗口回到图 16所示的状态。在底部的蓝色Splitter上右击,选择快捷菜单中的Splitter Stick Bottom选项,如图 18所示。该选项表示在Splitter变化时始终保持底部的相对位置不变。

图 18 Splitter右键快捷菜单

再次最大化窗口,此时状态栏的高度将保持不变,而最右侧的子状态栏的宽度将变大,如图 19所示。

图 19 最大化之后的状态栏

如果希望在VI窗口改变时,修改第2个子状态栏的宽度,而其它的子状态栏宽度保持不变,应该如何设置呢?单击“还原”按钮,使窗口回到图 16所示的状态。如图 20所示,单击图中所示的红色Splitter,勾选Splitter Sticks Right,此时再次改变窗口的大小将会改变第2个子状态栏的宽度。

图 20 设置Splitter属性

同理,设计工具栏如所示。图中使用的按钮都是LabVIEW自带的按钮样式,需要使用Type Def.自定义控件加以替换。程序将工具栏分为2个部分:操作按钮部分和帮助部分。而对比图 19可以看出,将最上层的Splitter颜色设置为与Pane的底色一致,这样可以隐藏Splitter。

图 21 设置Splitter属性

LabVIEW运行对每一个Pane设置不同的背景色,确保Pane的独立性。如图22所示,在界面上放置不同的控件以丰富界面显示效果,勾选Tab控件和Graph控件的右键快捷属性:Fit Control to Pane。因为Graph控件大小的改变对整个界面的布局没有影响,因此将界面的Splitter属性设置为当Pane变化时修改Graph的大小就可以了。

图 22 VI前面板

如前所述,对任一个程序而言都有一个最低的分辨率要求,同时也存在着一个最小的界面要求,确保在最小的界面上能够将所有控件完整显示出来。调整整个VI前面板窗口的大小,确保所有的控件均能够完整显示。按下Ctrl+I键打开VI Properties属性面板,选择Windows Size页,如图 23所示。单击“Set to Current Panel Size”,单击OK按钮。

图 23 Windows Size属性页

再次改变VI的前面板大小,可以看出整个界面的布局并不受Panel大小的影响,能够正常显示。因此,界面的分辨率自适应问题的解决并不是一蹴而就的,而是需要在程序界面设计阶段就加以考虑和布局的。

在程序可接受的最低分辨率的显示器上开发;

划分Panel的区域,并且明确各个区域的功能;

尽量至少选择一种大小可伸缩的控件(ListBox、Tab、Multicolumn Listbox、Table、Tree、Chart、Graph、Picture、Sub Panel等);

尽可能地使用Splitter划分不同的区域,对部分Splitter而言可以将其背景色设置为与Pane的背景色一致以隐藏Splitter;

设置Splitter的属性,明确Splitter的变化方式;

设置Pane的属性(颜色、是否显示滚动条等);

设置Panel的最小显示大小;

结合Type Def.和Strict Type Def.控件,完善控件的摆放和显示效果;

将Splitter的Lock属性设置为True。

1.6程序中字体的使用

LabVIEW会自动调用系统中已经安装的字体,因此不同的计算机上运行的LabVIEW程序会因为安装的字体库不同而不同。图 24列出了LabVIEW可以选择的部分字体样式(如颜色、加粗、斜体等),可以使用< Ctrl > + < = >和< Ctrl > + < - >快捷键增加和减小当前选择项的字体大小。

图 24 LabVIEW中的字体

如果字体前面加“@”则表示将文字逆时针旋转90°,图 25展示了这两种字体的显示差别。

图 25 宋体和@宋体

为了避免不同的操作系统给字体显示带来的影响,LabVIEW提供了Application Font、System Font 和Dialog Font三种预定义的字体。它们并不表示某一种确定的字体,对不同的操作系统所表示的含义不同,这样可以避免某一种字体缺失导致的应用程序界面无法正确显示的问题。此外,LabVIEW也提供了一种方式来人为地指定三种预定义的字体代表的具体含义。选择菜单栏的Tools>>Options菜单项,选择Fonts页,如图 26所示。单击“Font Style…”按钮,可以显式地指定Application Font、System Font 和Dialog Font所代表的字体名称和大小。

图 26 Options_Fonts属性设置

在默认下,LabVIEW会自动设置界面的字体为Application Font、System Font和Dialog Font,因为这可以避免应用程序移植所导致的字体缺失。但是同时也会带来分辨率的问题,因为不同的系统所表示的字体样式和大小都不相同,因此不同分辨率的监视器显示界面的字体时会发生“变形”。

为了解决这二者的矛盾以及带来的显示问题,可以将目标计算机上的Application Font、System Font 和Dialog Font字体与开发计算机上的字体保持一致。

1、尽量使用通用的字体显示。如中文使用宋体,英文使用Tahoma,字号使用13号。

2、确保目标计算机上的LabVIEW Runtime将Application Font、System Font和Dialog Font字体与开发

计算机上的字体所代表的含义保持一致。

第1点需要在程序设计时注意,而第2点可以通过程序自动指定。如前所述,LabVIEW允许手动指定预定义字体的实际含义,这这些设置被保存在LabVIEW安装目录下的<…\National Instruments\LabVIEW 8.X\LabVIEW.ini>文件中。使用记事本打开LabVIEW.ini文件,找到如下的三行,如图 27所示。也就是说LabVIEW通过这3行来决定Application Font、System Font和Dialog Font字体表示的具体含义。

appFont="Tahoma" 13

dialogFont="Tahoma" 13

systemFont="Tahoma" 13

图 27 LabVIEW.ini

在生成任意一个exe时,LabVIEW会在exe文件的相同目录中自动生成一个与exe同名的ini文件。只需要在该ini文件中加入上述3行代码,则LabVIEW Runtime会自动调用相应的字体,而不会调用

系统的默认字体。例如使用LabVIEW生成一个名为“计算机自动测试系统.exe”的独立应用程序,同时也会在相同目录下生成一个名为“计算机自动测试系统.ini”的文件(如果没有生成,则运行一次“计算机自动测试系统.exe”应用程序)。打开该ini文件,找到“[计算机自动测试系统]”Section文字,如图 28所示(如果没有则手动键入)。在“[计算机自动测试系统]”Section下方加入上述3行代码即可。

图 28 计算机自动测试系统.ini

如果在程序开发中确实需要使用某种特殊的字体,而为了防止目标计算机上没有该字体,需要将所使用的字体同时发布到Installer文件中。在安装时直接将字体拷贝到目标计算机的文件夹中即可。

1.7小结

在大多数情况下,程序员并不是简单地担任着Coding的工作,一个应用程序的设计需要各种各样的人通力协作完成。而对于测试测量工程师而言,需要尽量地完善开发的应用程序,使之无论从界面上、功能上还是底层代码上都充满着“美感”。从这个角度说,程序员更像是一个艺术家,需要将感性和理性逻辑完美地结合起来。

测试测量应用程序在运行时会涉及到对UUT、测试仪器等各种硬件之间的相互通讯,因此其错误处理、逻辑控制等似乎显示更加充满变数而不可控。因此,这更加需要程序员关注细节,完善用户体验,确保应用程序的运行。如对Numeric值需要设置范围、显示精度、显示方式等等,避免用户的误操作。在程序的使用过程中,如果发生了错误而导致程序崩溃或假死,有些程序员会埋怨用户:为什么乱点呢?为什么不按要求有顺序地点击按钮呢?在数据采集过程中,为什么还要单击这个控件呢?这是不正确的,对于这种情况始终是设计者的错误,而与用户无关。设计者在程序设计和撰写的阶段就应该在程序中加入相应的防误操作机制,而不应该将错误归结为用户的不当使用。

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 机上的应用软件和一系列可选的插入式硬件,无需更换整套设备,即能完成新系统的开

labview专题实验报告_xjtu

LABVIEW专题实验报告 *** 04054035 自动化 42 班 2007-6-22

一、实验任务: 1.虚拟信号发生器设计。设计一个虚拟信号发生器,能够产生正弦波、三角波、锯齿波、 直流、随机白噪声等信号,且可以调整波形参数。通过示波器可以观察虚拟信号发生器 的输出信号。 2.利用第一次做的信号发生器做一个双踪示波器,使它能够模拟真实的示波器。 二、实验目的: 学生能够独立进行编程,熟悉LabVIEW的基本模块,掌握LabVIEW的基本使用方法。 三.设计过程与结果: 1.设计虚拟信号发生器。 分析:根据要求,由于需要选择产生产生正弦波、三角波、锯齿波、直流、随机白噪声等信号,所以使用了case 结构,在面板上使用一个数字控制器-Pointer Slide来选择信号发生器发生一个需要的信号,同时也可使白噪声叠加在每个波形之上,它的幅值也可以在前 面板中设置一个数字控制器-Pointer Slide来控制。每一个case 就可以产生一个信号,而 用来产生信号的则是一个可以现成调用的子VI ,可以用三个数字控制器(旋钮)来分别控 制每个信号的偏移量,频率以及幅值。 产生正弦信号 产生三角波信号

直流信号 方波信号 锯齿波信号前面板如下所示:

前面板中的偏移量、频率和幅值旋钮分别用来调节信号的偏移量、频率和幅值。而信号选择控制器则用来选择产生的信号。噪声大小控制器用来调节加在信号上的噪声大小。 2.双踪示波器的设计: 分析:要模拟真实的示波器,那么就要实现两个独立的通道 A 和 B,并且能够同时显示两个通道中的信号波形( A&B),以及两个通道波形的叠加情况( A+B)。同时给每个通道的波 形配备上各自独立的调节控制器,这些控制器(旋钮)包括垂直灵敏度,水平灵敏度,水平 位移,垂直位移。为了更好的模拟现实的示波器,给每个通道配备一个信号发生器,用来给 每个通道送来所需要的信号,现在主要分析一下示波器部分的功能如何实现。 设计示波器部分时,先利用 1 中的方法产生信号,然后再将所产生的信号的有关参数, 如频率和幅值信息提取出来,然后利用提取出来的信息通过Waveform Generation函数来产生波形。之所以要通过这种方式来产生波形,主要是想在将提取的波形信息后,通过垂直灵敏度和水平灵敏度两个旋钮来调节波形,进而达到模拟现实示波器能够改变垂直灵敏度和水 平灵敏度的目的。 下面将流程图分解成三个模块进行解释。 模块 1. 信号发生器模块:

虚拟仪器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初学者常见问题以及解答(上) 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课程设计 报告书 班级 学号 姓名 一、基础题

1、用labview的基本运算函数编写以下算式的程序代码: 首先在前面板创建一个数值输出控件,然后在程序框图中按照上图连接线路,点击运行,程序结果。 2、利用摄氏温度与华氏温度的关系C = 5(F ?32) / 9编写一个程序,求华氏温度 (F)为32, 64, 4, 98.6 , 104, 212时的摄氏温度。

在程序前面板创建一个数值输入控件和一个数值显示控件,在程序框图中添加一个公式节点,添加一个输出和一个输入分别输入和显示控件项链,在公式节点框图中输入温度转换公式,然后在面前扮输入相应的温度点击运行,得到相应的结果。 3、创建一个2行3列的二维数组控制件,为数组成员赋值如下: 00 .600.500.400.300.200.1 在前面板创建一个数组显示控件,然后将1、2、3创建成数组第一行,4、5、6创建成数组第二行,再将两行创建成一个两行三列的二位数组,点击运行显示输 出结果。 4、用数组创建函数创建一个二维数组显示件,成员为:

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 先在面前板上创建一个上图这样的数组。再创建两个显示数组(一个为显示数组,另一个为转换后数组),在程序框图上面按照下图连线,在原数组和转换后数组之间接一个“二维数组转制”, 点击运行后显示为:

5、创建一个簇控制件,成员分别为字符型控制件姓名,数值型控制件学号,布 尔型控制件注册。从这个簇控制件中提取出簇成员注册,显示在前面板上。 在面板上添加一个簇,在族里分别添加一字符显示控件,数值显示控件,布尔型 显示控件,程序框图连接如图: 先解除捆绑然后再捆绑,输入姓名、学号点击运行在输出簇里显示。 6、创建一个字符串显示件,程序运行后显示当前系统日期、时间和自己的班级、姓名。

虚拟仪器技术实验报告

成都理工大学工程技术学院 虚拟仪器技术实验报告 专业: 学号: 姓名: 2015年11月30日

1 正弦信号的发生及频率、相位的测量实验内容: ●设计一个双路正弦波发生器,其相位差可调。 ●设计一个频率计 ●设计一个相位计 分两种情况测量频率和相位: ●不经过数据采集的仿真 ●经过数据采集〔数据采集卡为PCI9112〕 频率和相位的测量至少有两种方法 ●FFT及其他信号处理方法 ●直接方法 实验过程: 1、正弦波发生器,相位差可调 双路正弦波发生器设计程序:

相位差的设计方法:可以令正弦2的相位为0,正弦1的相位可调,这样调节正弦1的相位,即为两正弦波的相位差。 2设计频率计、相位计 方法一:直接读取 从调节旋钮处直接读取数值,再显示出来。 方法二:直接测量 使用单频测量模块进行频率、相位的测量。方法为将模块直接接到输出信号的端子,即可读取测量值。 方法三:利用FFT进行频率和相位的测量 在频率谱和相位谱上可以直接读取正弦信号的主频和相位。 也可通过FFT求得两正弦波的相位差。即对信号进行频谱分析,获得信号的想频特性,两信号的相位差即主频率处的相位差值,所以这一方法是针对单一频率信号的相位差。 前面板如下:

程序框图: 2幅频特性的扫频测量 一、实验目的 1、掌握BT3 D扫频仪的使用方法。 2、学会用扫频法测量放大电路的幅频特性、增益及带宽。 二、工作原理 放大电路的幅频特性,一般在中频段K中最大,而且基本上不随频率而变化。在中频段以外随着频率的升高或降低,放大倍数都将随之下降。一般规定放大电路的频率响应指标为3dB,即放大倍数下降到中频放大倍数的70.7%,相应的频率分别叫作下限频率和上限频率。上下限频率之间的频率范围称为放大电路的通频带,它是表征放大电路频率特性的主要指标之一。如果放大电路的性能很差,在放大电路工作频带内的放大倍数变化很大,则会产生严重的频率失真,相应的

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的编程环境、编程技巧以及优化策略等和更多的功能,考虑到篇幅限制,本书不与介绍,感兴趣的同学可参看下列参考书继续学习,

虚拟仪器实验报告1

虚拟仪器实验报告 姓名:肖阿德班级:测控0801 学号:118 时间:地点:电气院楼305 实验一VI程序的创建、编辑和调试 1.熟悉LabVIEW环境。 新建一个VI,进行如下练习: ?任意放置几个控件在前面板,改变它们的位置、名称、大小、颜色等等。 ?在VI前面板和后面板之间进行切换 ?并排排列前面板和后面板窗口 2.创建一个VI。 发生一个值为0.0~1.0的随机数a,放大10倍后与某一常数b比较,若a>b,则指示灯亮。要求:①编程实现;②单步调试程序;③应用探针观察各数据流。 3.创建和调用子VI。 创建一个子VI,子VI功能:输入3个参数后,求其和,再开方。 编一个VI调用上述子VI。 4.编写一个VI求三个数的平均值。 要求: ?对三个输入控件等间隔并右对齐。 ?添加注释。 ?分别用普通方式和高亮方式运行程序,体会数据流向。 ?单步执行一遍。 5.实验个人总结: 前面板中控件的颜色、大小、名称等都可以在控件的属性中设置; 其中颜色可以使用工具选版的”设置颜色”来设置,并且比在属性中设置更灵活、简便; 探针设置后配合单步调试能清楚的展示程序运行的具体过程,便于明白程序和差错; 创建子VI时,图标的选择最好有针对性和个性,如可以自行绘制图标,便于在调用图标时快速了解子VI的功能作用;

虚拟仪器实验报告 姓名:肖阿德班级:测控0801 学号:118 时间:地点:电气院楼305 实验二数据操作 1、写一个VI判断两个数的大小,如右图所示:当A>B时,指示灯亮。 2. 写一个VI获取当前系统时间,并将其转换为字符串和浮点数。这在实际编程中会经常遇到。 3. 写一个温度监测器,如右图所示,当温度超过报警上限,而且开启报警时,报警灯点亮。温度值可以由随即数发生器产生。 4.给定任意x, 求如下表达式的值 5.实验个人总结: 在获取系统时间的VI中,通过对格式化日期/时间字符串中的格式字符串的设置可选择需要输出的日期/时间的格式 当一些控件要求的数据格式与当前的输入/输出数据格式不相符时,可通过相应的转换函数进行强制转换; 在输入一些数学表达式时,注意一些特定的数学符号在LabVIEW中的规定表示法;

labview实验报告

课程名称丿 ▲ 专业测控技术与仪器 班级1301 学号20 姓名郭鹏 实验一LabVIEW虚拟温度检测系统 一、实验目的 1?了解LabVIEW 的编程环境。 2?掌握LabVIEW 的基本操作方法,并编制简单的程序。 3 ?学习建立子程序的过程 二、实验内容 1.建立一个测量温度的VI。 a.实验步骤 1)选择File?New,打开一个新的前面板窗口。 2)从Controls?Numeric 中选择Tank放到前面板中。 3)从“结构”里选择一个for循环,用一个随机数乘与100输岀到温度计 b.实验结果 前面板图: 程序框图: 三、实验总结 1 ?总结VI基本编程的快捷操作。 答:显示程序框图或前面板ctrl+E 框图中,对象的移动:shift+鼠标选择移动;对象的复制:ctrl+鼠标选择移动; 对象的删除:鼠标选择,按<退格 >;前面板与框图并排:ctrl+T 工具(Tools )模板:在前面板或框图中按住键并单击鼠标右键。 控件(Controls)模板:在前面板激活状态,在前面板空白区单击右键。 函数(Functions )模板:在框图激活状态,在框图空白区单击右键。 消除所有断线:ctrl+B ;实时帮助:快捷键:ctrl+H 2?简述VI程序有什么构成,其各部分的功能是什么。 答:主要有:输入控件、显示控件、程序结构、函数控件、连线 输入控件:完成实时对变量的外界修改,即数据源 显示控件:完成输岀显示数据、图形等。显示仪器分析结果 程序结构:用外方框表示程序的执行顺序、总体上把握程序的执行控制。 函数控件:构成程序的主要部分,完成对数据的采集、分析直至输岀功能。

labview实验报告

实验报告 课程名称虚拟仪器技术分析与设计 专业测控技术与仪器 班级1301 学号20 姓名郭鹏 实验一 LabVIEW虚拟温度检测系统 一、实验目的 1.了解LabVIEW的编程环境。

2.掌握LabVIEW的基本操作方法,并编制简单的程序。 3.学习建立子程序的过程 二、实验内容 1.建立一个测量温度的VI。 a.实验步骤 1)选择File?New,打开一个新的前面板窗口。 2)从Controls?Numeric中选择Tank放到前面板中。 3)从“结构”里选择一个for循环,用一个随机数乘与100输出到温度计 b.实验结果 前面板图: 程序框图: 三、实验总结 1.总结VI基本编程的快捷操作。 答:显示程序框图或前面板ctrl+E 框图中,对象的移动:shift+鼠标选择移动;对象的复制:ctrl+鼠标选择移动; 对象的删除:鼠标选择,按<退格>;前面板与框图并排:ctrl+T 工具(Tools)模板:在前面板或框图中按住键并单击鼠标右键。 控件(Controls)模板:在前面板激活状态,在前面板空白区单击右键。 函数(Functions)模板:在框图激活状态,在框图空白区单击右键。 消除所有断线:ctrl+B ;实时帮助:快捷键:ctrl+H 2.简述VI程序有什么构成,其各部分的功能是什么。 答:主要有:输入控件、显示控件、程序结构、函数控件、连线 输入控件:完成实时对变量的外界修改,即数据源 显示控件:完成输出显示数据、图形等。显示仪器分析结果 程序结构:用外方框表示程序的执行顺序、总体上把握程序的执行控制。 函数控件:构成程序的主要部分,完成对数据的采集、分析直至输出功能。 连线:用线的方式显示数据流,完成上述结构之间的关系构建。 3.思考:在前面板和框图程序中,如何区分控制器和指示器。 答:在前面板中,控制器用以外部输入数据,因此输入框为白色表示可主动输入。而显示器只有显示功能,用于被动输出虚拟仪器分析结果,数据框显示灰色,不能用于外部输入。 在程序框图中。控制器端子在右侧,用于连接数据输出线。显示器端子在左侧,用于连接数 据输入线。可以右键将显示图标勾掉,此时两种元件外观也不同。 4.心得体会及其它。 答:实验很简单,没吸引力——首先提下建议。Labview是一种图形编程软件。上手很快,但达到一定程度后,发现没有课本便很难取得进步。原因是,个人觉得labview最重要的是对程序编程结构的深入体会和各函数控件功能的充分掌握。前者可以通过看范例理解加深。

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、双边傅里叶

虚拟仪器在物理实验中的应用 实验报告

实验二十九虚拟仪器在物理实验中的应用 物理学院130061311 二下六组3号 2015.4.9 一.实验目的 1.了解虚拟仪器的概念 2.了解图形化编程语言LabVIEW,学习简单的LabVIEW编程 3.完成伏安法测电阻的虚拟仪器设计 二.仪器用具 计算机(含操作系统),LabVIEW软件,数据采集卡,电阻箱(用作标准电阻),导线,开关,待测电阻,二极管。 三.实验原理 虚拟仪器的硬件系统由PC机和数据采集卡(DAQ卡)组成.数据采集卡(DAQ卡)包括多路开关、放大器、采样/保持器、习D转换器以及其他有关电路组成.这些部分共同配合完成对信号数据的采集、放大以及模/数转换任务。 本实验中利用接口卡的一个通道为整个测量电路供电,利用两个输人通道分别测量总电压和标准电阻上的电压;利用测量得到的电压数值和标准电阻数值就可以得到电路中的电流以及待测电阻上的电压.在程序控制下,电路电压由OV开始逐渐增加到5V,电压每改变一次测量获得一组电压电流值,最后得到一个数组,经过线性拟合后就可以得到待测电阻值。 测量原理如图: 四.实验内容 1.初步熟悉LabVIEW 整个软件分为前面板和程序框图两部分。 前面板可以加入开关,旋钮各种控件和各种显示元件;在前面板添加的元件相应的子端

和图标会出现在程序框图上,可以在程序框图进实验编辑,另外,在程序框图内还有可控选择的大量函数模块以及各种实现程序的功能,例如循环,数字运算,比较,以及各种公式等。 2.创建一个模拟温度测量程序 前面板:开关(用于控制显示摄氏度/华氏度),温度计,温度值 程序框图:放入Demo V oltage Read 子程序,设计用开关切换摄氏/华氏度的逻辑程序,使温度计和温度值按需显示。 3.用虚拟仪器测量伏安特性 1)编写程序 前面板: 放入一个用于设置设备号的控制数、一个设定标准电阻值的控制数、一个用于设定测量间隔的控制数和一个显示测量电阻值的显示数。放人三个控制字符串,将名字分别改成“供电电压通道”、“测量总电压通道”、“测量电流通道”.分别用于设置输出输人的通道。 放上一个Express XY Graph,将名字改成“电阻的伏安曲线图”,并将纵坐标和横坐标分别改成“电压(V)”和“电流(A); 加人一个二维数组,把名字改成“数据”,用于显示测量的电压和电流。放人一个开关,用于控制程序进程. 程序框图: 设计一个循环程序,让程序不断改变电压,每次改变0.25V测20组电流电压数据,每次改变之后都使程序等待1s后测量,测量20组后循环停止,并画出电阻的伏安特性曲线图,计算出电阻R(斜率)。 2)连接口卡和外部电路 3)运行程序,记录结果,保存并退出 五.思考题 1.虚拟仪器与传统仪器有什么区别 传统仪器:数据显示形式单一,数据处理功能比较简单,不容易按需改装,不能共享数

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环境 二、创建一个VI,发生一个值为0~1的随机数a,放大十倍后与某一常数b比较,若a>b,则指示灯亮。要求: 1、编程实现; 2、单步调试程序; 3、应用探针观察各数据流。 三、创建和调用子VI 1、创建一个字VI,子VI功能;输入3个参数后,求其和,再开方。 2、编一个VI调用子VI。 程序框图:

1、 2、子VI调用: 实验现象:

实验小结: 实验一主要熟悉了软件的使用,用了一些计算以及子VI的调用,为后面的实验打下基础。 实验二 实验要求: 一、在程序的前面板上创建一个数值型控件,为它输入一个数值;把这个数值乘以一个比例系数,再由该控件显示出来。 二、创建一个3行4列的数组,(1)求数组的最大于最小值;(2)求出创建数组的大小;(3)将数组转置;(4)将该2二维数组改为一个一维数组。 三、创建一个簇软件,成员为字符型姓名,数值型学号,布尔型注册。从该控件中提取簇成员注册,并显示在前面板上。 程序框图: 一、 二、

创建数组。三、 创建一个簇。实验现象:一、

二、 三、

实验三 实验要求: 一、产生100个0.0~100.0的随机数,求其最小值,最大值、平均值,并将数据在Graph 中显示。 An=An-1+1/n(An-An-1)An是前n个数据的平均值。 二、产生100个0.0~100.0的随机数序列,求其最小值、最大值、平均值,并将随机数序列和平均值序列显示在Chart波形图中,直到人为停止。 三、程序开始运行后,要求用户输入一个口令,口令正确时,滑键显示一个0~100的随机数,否则程序立即停止。 四、编写一个程序测试自己在前面板输入一下字符串用的时间:A virtual instrument is a program in the graphical programming luanguage. 程序框图: 一、

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

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实验报告

机电系统创新性综合实验 实验报告 学院:机械工程学院 专业:机械设计制造及其自动化班级:机自 124 班 学号: 1208030436 学生姓名:王彤 指导教师:蔡家斌、曹阳 2015年12月12

目录 实验题目: LabView创新实验 (1) 实验一1.1实验内容 (1) 1.2实验过程 (1) 1.3实验小结 (3) 1.4实验总结与感想 (5) 实验二2.1实验内容. (5) 2.2 实验过程 (5) 2.3实验小结 (7) 2.4实验总结与感想 (8) 实验三3.1实验内容 (8) 3.2实验过程 (8) 3.3实验小结 (10) 3.4实验总结与感想 (11)

实验题目 本次LabView实验共有6个实验题目,有两个选择方案,我选择了第一种方案:在六个实验中选择了三个,分别是实验一、二、三。通过自学和同学间的互相帮助,我学会了LabView软件的使用,完成了本次实验。 实验一虚拟信号发生器的设计 1.1实验内容 设计一个虚拟信号发生器,能够产生正弦波、三角波、锯齿波、直流、随机白噪声等信号〔波型选择用按键或旋钮〕,且可以调整波形参数。通过示波器可以观察虚拟信号发生器的输出信号。可以通过前面板选择信号波形,调节信号的频率、幅值和相位〔频率、幅值、相位用数字窗口显示〕,并通过虚拟示波器观察生成的波形。 1.2实验过程 1.新建一个VI,在后面板上创建一个选择结构; 2.在选择器标签中选择一个设置为默认,并在后面添加4个分支,以便写入多种不同的程序; 3.在选择结构中建立一个仿真信号,属性设置-信号类型-正弦波-确定;

4.在仿真信号中的对应位置创建输入控件,输出处创建波形图,分别连接在仿真信号的相应位置。 5. 6.其他几种波形信号按照相同方式创建在不同的选择标签中,并在选择结构外部建立一个While循环,可以让程序连续执行。

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

相关文档
最新文档