使用属性节点的目的
在LabVIEW中编写应用程序软件时,可能需要在程序运行的过程中对VI的前面板及其包含的控件属性作一些动态的修改,如修改当前VI前面板的标题名称、修改某控件的值、外观颜色或禁用某个控件等,仅仅依靠在编辑状态下完成这些功能显然是不可能的。针对这种情况,LabVIEW语言提供了属性节点函数,借助于该函数,允许开发人员以编程的方式动态控制程序运行过程中,对VI的前面板及其包含的控件属性作一些动态的修改的目的,这大大扩展了LabVIEW的编程能力。
首先说明一下什么是属性,属性是指对象(如控件、VI或应用程序等)的特性,相当于C++类中的数据。具有“可读”、“可写”或“可读写”等操作方式。在程序框图中的属性节点函数上有一个小箭头,若在左边,表明该属性可写,若在右边,表明该属性可读。对于可读可写的属性,右键单击属性节点中的某个属性,可以在右键菜单中选择“转换为读取”或“转换为写入”,在两者之间进行切换。
下面通过一个具体例子说明LabVIEW中属性节点的编程的编程方法及技巧。
属性节点编程技巧例子
这个例子运行时的前面板如图1所示,在前面板上放置了4个布尔型的互斥按钮控件,同一时刻只能按下一个按钮,即按下某个按钮时,该按钮值为真,其它按钮值为假,同时,在前面板的标题栏上指示当前按下了哪个按钮。通过这个例子简单演示LabVIEW中控件及VI的属性节点的编程方法及技巧。
图1 属性节点编程技巧示例前面板
在程序框图中,最外层使用了包含2帧的顺序结构,分别处理程序的初始化和按钮事件的响应操作。第1帧的程序代码如图2所示,做程序的初始化工作,将4个按钮控件对应的引用组成一个“引用数组”通过顺序结构的局部变量传到第2帧中。
图2 程序框图第1帧-初始化代码
顺序结构的第2帧是本程序的主要代码部分,如图3所示,主要在事件结构里面处理4个按钮的“值改变”事件。
图3 程序框图第2帧代码
从框图中可以看出,LabVIEW本身在事件分支中包含了一个“控件引用”的信息,该值即为触发该事件的控件所对应的引用。第1帧中已经传入了4个按钮控件的“引用数组”变量,利用“搜索一维数组”函数,返回当前按下的按钮在“引用数组”中的位置,在For循环中,使用属性节点设置每个控件的值。当For循环的索引等于“搜索一维数组”函数的返回值时,意味着设置的是当前按下的按钮,其值为真,否则为设置其它按钮的值,其值为假。
另外,事件分支的“控件引用”信息即为当前按下的按钮所对应的引用,将该引用连接到属性节点上,选择按钮控件的“布尔文本”“文本”属性,然后将该按钮控件的布尔文本值经整理后,连接到当前VI的“前面板窗口”“标题”属性节点上,即可在当前运行的前面板标题上显示当前按下的按钮控件信息。
结论
通过上面的例子可以看出,LabVIEW中使用属性节点确实能够做到,以编程的方式动态控制程序运行过程中,对VI的前面板及其包含的控件属性作一些动态的修改的目的。
备注
大家如果有兴趣的话可以加关注并私信回复:LabVIEW002,可获得该文章对应例子的LabVIEW原程序下载链接。欢迎加关注,共同交流。
领取专属 10元无门槛券
私享最新 技术干货