LabVIEW中的结构体(中文版翻译为“簇”)是常用的一种数据结构类型,一个结构体控件中可以包含任意多个任意类型的不同元素。与数组不同的地方在于,它包含的元素数据类型可以相同,也可以不同,而数组中只能包含相同类型的多个元素。另外,在结构体控件中,包含的元素必须同时都是输入控件或同时是显示控件。
由于结构体控件把数据类型不同,但逻辑相关的多个控件封装在了一起,因此,在编程中使用结构体控件的好处是操作更方便,条理更清晰,特别是在编写子VI程序时,如果使用结构体控件作为输入输出参数的话,则可以在一个数据端口上传递多个不同的参数,可以大大减少连线及端口的数量。
下面给小伙伴们介绍下LabVIEW中结构体(簇)控件的编程及使用方法。
2、结构体控件的创建以在前面板上创建一个包含学生信息的结构体控件为例说明。
创建完成后的样子及程序框图上对应的数据端口图标如下图所示:
创建方法:
先从控件模板的“数组、矩阵与簇”子模板中选择“簇”控件,将其放在前面板中,这样就创建了一个结构体控件的空壳子用以存储结构体成员变量控件。 然后分别选择三个控件拖放到该空壳子中用来存储学生的姓名、性别及分数,其类型分别为字符串、枚举及数值型控件,并分别命名为姓名、性别及分数。 最后,分别对姓名、性别及分数赋初值就完成了一个结构体控件的创建。 3、结构体控件值的读写方法在LabVIEW函数模板中,提供了结构体控件值的读写操作函数,如下图所示:
其中,最常用到的是前两个即“按名称解绑”及“按名称捆绑”两个函数,下面仍以学生结构体控件为例进行说明。
如下图中所示,先使用“按名称解绑”函数读取了学生“x”的姓名、性别及分数信息,在三个控件上分别进行显示,然后在x的基础上,使用“按名称捆绑”函数改变该学生的分数值,输出到结构体控件“y”上进行显示。其中,使用“按名称捆绑”函数时,必须连接一个已知的结构体控件,这样才可以知道结构体控件的所有成员变量信息,从而达到修改某个变量的值,而保持其它值不变的目的。程序运行后的结果显示,已成功修改了学生“x”的分数值。
4、其它注意事项在LabVIEW中使用结构体控件编程,以下几点需要注意:
在结构体控件右键菜单中选择“自动调整大小”—->“调整为匹配大小”,可使结构体控件的大小自动随着其包含的所有控件的大小自动适应显示; 两个外观完全相同结构体控件未必等价,因为结构体内部的成员变量控件还有一个顺序的概念,默认每个控件的顺序是按在创建时放入到结构体空壳子中的顺序定义,在结构体控件右键菜单中选择“重新排序簇中控件…”,可以修改每个成员变量控件的顺序; 结构体控件可以放到数组中,创建一个结构体类型的数组,从而进行更为复杂的操作,甚至反过来也可以在结构体控件中放置数组控件作为其中的一个成员变量。