LabVIEW控件——前面板对象

2015-08-07 12:37:09   来源:vihome   

关键字: LabVIEW控件  前面板对象

 在虚拟仪器应用程序设计中,前面板往往会根据用户的要求放置一些外观样式不同的控件。这些直观、形象化的控件不仅起到美化前面板的作用,同时还实现了交互式人机对话的功能。这些控件在LabVIEW中也被称为前面板对象。

控件作为前面板上的对象有自己的独特的外观,同时引导图形化语言中的数据在前面板和程序框图中进行交换,并具有确定性的数据类型。这些对象还具有极其丰富的属性节点和方法节点以及可自定义的控件类型,这些辅助功能将使得程序设计变得更加灵活和方便。

正是由于控件——前面板上的对象,在图形化语言中表现出了重要的一些特性,所以我们不得不将其单独的列为一章来进行讨论。因为控件将涉及或影响到图形化语言中的很多概念。比如控件的基本性质是什么?它是否属于文本语言中的变量?图形化语言的数据类型等等。

当然,本章中的内容是否正确,完全属于个人的看法和观点,同时也期待与大家共同交流和讨论。

关于控件的更高级特性,比如属性节点和方法节点、Xcontrol等,我们将另辟章节专门讨论。

控件的基本特征
控件作为前面板上的对象,自身有许多基本特征,比如它的外观和样式、指向性(方向性)、在程序框图中的映射、静态属性、存放数据等等。这些特性是基于图形化语言和虚拟仪器的需要所高度抽象出来的。

3.1.1 控件的外观和样式

控件作为前面板上实实在在的对象具有它自己独特的形状、色彩和大小。基于图形化语言和虚拟仪器的需要,前面板上的控件都具有物理意义鲜明的外观。
这种将控件以直观、形象化来表示的方法是图形化语言所特有的。这样做的目的是:第一,可以满足图形化语言拖拽式编程操作的需要;第二,这种直观、形象化的 表示方法是工程师和科学家都能够直接理解的,且满足虚拟仪器的需要。比如,旋钮、滑动杆、开关、量表等等,参见下图。
Picture
图 3-1 直观、形象化物理意义鲜明的控件外观
即便是LabVIEW的初学者或学生,看到这些直观、形象化物理意义鲜明的控件也绝对不会感到很陌生。当然,这也是图形化语言能够十分非常贴近用户的特点之一,同时也大大降低了程序设计中的复杂度。

依据操作系统平台特性,LabVIEW中提供的控件共有三种样式:新式、系统和经典。
样式不同的控件会使它们的外观略有差异。用户可以根据自己的喜好来选择不同样式控件进行前面板的设计。

下面以数值输入控件为例来看看它们在不同样式下的外观,参见下图。
Picture
图 3-2 样式不同的数值输入控件
控件的样式仅仅是外观存在着某些差异吗?其实不然,通过下面的例子就会进一步了解到其它的不同之处。

例3-1 控件的样式

上图中控件的背景都是白色的,如果我们期待改变它们的背景色,比如红色,可以利用控件的属性节点来程控的改变它们的背景色,具体的程序框图可参见下图。
Picture
图 3-3 例3-1控件的样式
如果运行这个程序,会出现“错误1131的提示:无法使用系统控件的这一属性”。也就是说系统样式的数值输入控件不能使用这个属性。该例表明,样式不同的 控件不仅仅是外观上有所差别,其中有些属性并不支持所有样式的控件。这是我们在应用中遇到的一个具体问题,所以今后对于系统控件的使用还需多加小心。

前面板新式控件的子类有:数值控件;布尔控件;字符串与路径;数组、矩阵、簇;列表、表格;图形;下拉列表控件与枚举控件;容器控件;I/O控件;变体与类;修饰控件和引用句柄控件等等。
系统和经典样式的控件的子类要比新式样式的少些。
 
3.1.2 控件的指向性
 
前面,在谈到前面板对象时,我们所使用的都是控件这个词。其实,我们前面所谈到的控件是所有控件的一个统称。因为在图形化语言中,基于数据流运行机制的需 要,前面板控件包含了两种形式,一种是输入控件,另一种是显示控件。也就是说,前面板控件被分成输入控件和显示控件两种。对于输入控件它只能提供(发出) 数据而不能接收数据;而对于显示控件只能接收数据而不能提供数据。控件的这个特征被我们称为:控件的指向性。

控件为什么会具有指向性?为什么会分为输入控件和显示控件?其实这是图形化语言数据流运行机制所决定的,也是图形化语言的一个显著特点。前面板上的输入控 件相当于程序中的数据来源,便于用户或其它节点直接进行数据输入操作;而显示控件相当于程序的数据终端,便于将最终的处理结果显示给用户。比如,在例 2-1中,我们就是将字符串常数(也可以是字符串输入控件)通过连线发送到字符串显示控件。

处于编程方便的考虑,被放置在前面板上的输入控件很容易改变为显示控件或常数(常数不是控件),鼠标右键选择快捷菜单中的“转换为显示控件”,反之亦然。 但是,无论怎样变换控件的指向性,它们在前面板上最终的使用功能必须是唯一确定的。要么是输入控件要么是显示控件,决不可能二者间有之。换言之,对任何一 个控件而言,它都不可能同时具备输入控件和显示控件的特征。

前面板上控件的指向性有的可以从外观上分辨出来,有的则无法分辨出来。图3-1所示的控件从外观上就无法分辨出来是输入控件还是显示控件。有些数值控件可以通过背景色的深浅可以看出它的指向性。

在图形化程序设计时,一般我们将输入控件集中放置在前面板的左边,而将显示控件集中放置在前面板的右边。这样更容易区分控件的指向性,包括子VI的前面板和连线板也都基本遵循这样的设计原则。

3.1.3 控件的映射
 
作为前面板上的对象,每个放置在前面板上的控件(装饰控件除外)都会在程序框图上自动产生一个映射——接线端,这种映射关系是一一对应的。图3-2中的控 件在图3-3中产生了相对应的映射关系。显然,由于控件的指向性使得接线端也具备了相应的指向性,在图3-3中接线端图标上的小箭头已经清晰的表明它们是 发送数据的输入控件的接线端。

我们说过,在前面板上有些控件很难区分它们的指向性,可是在程序框图中确很容易区分接线端的指向性,参见下图。
Picture
图 3-4 接线端和控件的指向性
在上图中,我们在前面板上放置了一个数值输入控件(数值)和一个数值显示控件(数值2) 。它们的外观,通过控件的背景色可以大致区分出输入控件(背景色浅)和显示控件(背景色深)。可是在程序框图上,我们通过接线端中的小箭头可以确定区分出 那个是输入控件(箭头在右边,表示发出数据)和那个是显示控件(箭头在左边,表示接收数据)。还有一个简单的办法也可以帮助我们确定它们的指向性,那就接 线端图标边框的粗细。输入控件接线端边框粗些,而显示控件接线端边框则细些。
在上图,我们同样在前面板上放置了两个滑动杆控件,其中一个为输入控件(滑动杆)另一个为显示控件(滑动杆2)。在前面板上我们基本上看不出它们的指向 性,可见在前面版上划分区域(左右)进行放置是有好处的。可是在程序框图中通过任一种方法我们都确可以确定它们的指向性。
[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

推荐阅读

编辑:什么鱼
本文引用地址: http://www.eeworld.com.cn/Test_and_measurement/2015/0807/article_12652.html
[发表评论]
[加入收藏]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
每日新闻
最热点击
本周热门资源推荐
EEWORLD独家
论坛精华
精选博文