资源描述
第,8,章,LabVIEW,程序设计技巧,第,8,章,LabVIEW,程序设计技,巧,巧,8.1,局部变量和,全,全局变量,8.2,属性节点,8.3VI,属性设置,习题,8,本章将介绍,LabVIEW,编程中的一,些,些技巧,包,括,括局部变量,、,、全局变量,、,、属性节点,和,和,VI,属性设置。,8.1,局部变量和,全,全局变量,局部变量和,全,全局变量是,LabVIEW,为改善图形,化,化编程灵活,性,性局限而专,门,门设计的两,个,个特殊节点,,,,主要解决,数,数据和对象,在,在同一,VI,程序中的复,用,用和在不同,的,的,VI,程序中的共,享,享问题。,8.1.1,局部变量,局部变量只,是,是在同一个,程,程序内部使,用,用,每个局,部,部变量都对,应,应前面板上,的,的一个控件,,,一个控件可,以,以创建多个,局,局部变量,。局部变量,位,位于,FunctionsStructures,子模板中,,如,如图,8-1,所示。,图,8-1,局部变量节,点,点,1,局部变量,的,的创建,局部变量的,创,创建有两种,方,方法。第一,种,种方法是选,中,中,LocalVariable,节点,将其,添,添加到程序,框,框图中,这,时,时由于局部,变,变量还没有,和,和相应的输,入,入或显示控,件,件相关联,,故,故图标上显,示,示一个问号,。,。用操作工,具,具单击图标,,,,会出现一,个,个下拉选单,,,,选单列出,了,了前面板上,所,所有控制或,指,指示的名称,,,,选择所需,要,要的名称,,就,就完成了前,面,面板对象的,一,一个局部变,量,量的创建,,如,如图,8-2(a),所示。也可,以,以在图标的,右,右键弹出选,单,单中选择,Select Item,,会出现一,个,个与图,8-1(a),同样的下拉,选,选单,功能,完,完全相同,,如,如图,8-2(b),所示。,第二种方式,是,是在前面板,或,或程序框图,中,中右击需要,创,创建局部变,量,量的控件,,选,选择,Creat,Local Variable,选项创建该,控,控件的局部,变,变量,如图,8-3,所示。,图,8-2,第一种创建,局,局部变量的,方,方法,(a),(b),图,8-3,第二种创建,局,局部变量的,方,方法,在默认情况,下,下,新创建,的,的局部变量,都,都是只能写,入,入的端子,,在,在局部变量,上,上弹出快捷,菜,菜单,选择,Change ToRead,即可把局部,变,变量变为读,端,端子。与控,件,件的框图端,子,子相似,局,部,部变量为读,端,端子时的边,框,框要比为写,端,端子时的边,框,框粗一些。,再,再次弹出快,捷,捷菜单,选,择,择,Change ToWrite,,将把局部,变,变量变回写,端,端子。,2,局部变量,的,的特点,(1),局部变量只,能,能在同一个,VI,中使用,其,生,生存期与它,所,所在的,VI,模块密切相,关,关,,VI,停止运行,,在,在此,VI,内定义的局,部,部变量自动,消,消失,。,(2),局部变量必,须,须依附在一,个,个面板对象,上,上。一个面,板,板对象可以,建,建立多个局,部,部变量,但,一,一个局部变,量,量只能有一,个,个端点与其,对,对应,。,(3),局部变量就,是,是其相应前,面,面板对象的,一,一个数据拷,贝,贝,,要占一定,的,的内存。在,程,程序中要控,制,制局部变量,的,的数量,特,别,别是对于那,些,些包含大量,数,数据的数组,,,,若在程序,中,中使用多个,这,这种数组的,局,局部变量,,将,将会占用大,量,量的内存,,从,从而降低程,序,序运行的效,率,率。,(4)LabVIEW,是一种,并行,处理语言,,只,只要节点的,输,输入有效,,节,节点就会执,行,行。当程序,中,中有多个局,部,部变量时,,要,要特别注意,这,这一点。因,为,为这种并行执,行,行可能造成,意,意想不到的,错,错误,例如,,,,在程序的,某,某一处,用,户,户从一个控,制,制的局部变,量,量中读出数,据,据,在另一,处,处,根据需,要,要又为这个,控,控制的另一,个,个局部变量,赋,赋值。如果,这,这两个过程,是,是并行发生,的,的,就有可,能,能使读出的,数,数据不是前,面,面板对象原,来,来的数据,,而,而是赋值后,的,的数据。这,种,种错误不是,明,明显的逻辑,错,错误,很难,发,发现,因此,在,在编程中要,特,特别注意,,尽,尽量避免这,种,种情况发生。,3,局部变量,的,的使用,下面是一个,利,利用局部变,量,量在顺序结,构,构不同帧之,间,间传递数据,的,的例子。,顺序结构局,部,部变量是用,于,于堆叠顺序,结,结构不同帧,之,之间传递数,据,据的变量。,2.3.1,小节已经提,到,到,在结构,边,边框上弹出,快,快捷菜单选,择,择,Add Sequence Local,为当前帧添,加,加局部变量,。,。添加的局,部,部变量最初,是,是一个小的,浅,浅黄色方框,,,,并且可以,拖,拖拽到边框,上,上任意未被,占,占用的位置,。,。若将数据,连,连接到局部,变,变量上,该,帧,帧端子中出,现,现一个桔黄,色,色的向外指,的,的箭头,表,示,示该帧是向,外,外输出数据,的,的数据源,,称,称为数据源,帧,帧。在以后,的,的各帧中,,局,局部变量端,子,子包含一个,向,向内指的箭,头,头,表示数,据,据源帧向本,帧,帧传送数据,。,。注意,在,数,数据,源帧前面的,帧,帧中不能使,用,用局部变量,。,。要删除局,部,部变量端子,,,,从端子上,弹,弹出快捷菜,单,单选择,Remove,即可。,图,8-4,显示了一个,4,帧的堆叠的,顺,顺序结构。,帧,帧,1,中的局部变,量,量传递随机,函,函数加,5,的值给帧,2,,该值可以,在,在帧,2,中使用,将,该,该值与,2,相乘后使用,局,局部变量将,数,数据传递给,帧,帧,3,,通过波形,显,显示出来。,在,在帧,0,中不能使用,局,局部变量的,数,数据。,图,8-4,顺序结构中,局,局部变量传,递,递数据,8.1.2,全局变量,LabVIEW,中的,全局变量是,以,以独立的,VI,文件形式存,在,在的,这个,VI,文件只有前,面,面板,没有,程,程序框图,,不,不能进行编,程,程,。通过,全局变量可,以,以在不同的,VI,之间进行数,据,据传递,,一个全局,变,变量的,VI,文件可以包,含,含多个不同,数,数据类型的,全,全局变量。,与,与全局变量,一,一样,全局,变,变量位于,FunctionsStructures,子模板中,,如,如图,8-5,所示。,1,全局变量,的,的创建,全局,变,变量,的,的创,建,建较,为,为复,杂,杂。,首,首先,从,从,Structures,子模,板,板中,选,选中,GlobalVariable,节点,,,,并,将,将其,添,添加,到,到程,序,序框,图,图中,;,;然,后,后双,击,击全,局,局变,量,量图,标,标,,打,打开,其,其前,面,面板,,,,在,Controls,模板,中,中选,择,择需,要,要的,前,前面,板,板对,象,象放,入,入全,局,局变,量,量的,前,前面,板,板,,添,添加,对,对象,的,的类,型,型和,数,数量,没有,限,限制,;,;最,后,后在,菜,菜单,栏,栏中,选,选择,File,Save,,保,存,存这,个,个全,局,局变,量,量为,一,一个,独,独立,的,的,VI,,如,图,图,8-6,所示,。,。这,样,样就,完,完成,了,了一,个,个全,局,局变,量,量的,创,创建,。,。,创建,并,并保,存,存全,局,局变,量,量,VI,后,,将,将鼠,标,标切,换,换至,数,数据,操,操作,工,工具,状,状态,,,,单,击,击程,序,序框,图,图中,创,创建,好,好的,全,全局,变,变量,图,图标,或,或右,键,键单,击,击该,图,图标,,,,从,快,快捷,菜,菜单,中,中选,择,择,SelectItem,,弹,出,出子,选,选单,列,列出,了,了全,局,局变,量,量包,含,含的,所,所有,对,对象,名,名称,,,,根,据,据需,要,要选,择,择相,应,应的,对,对象,,,,如,图,图,8-7,所示,。,。,图,8-5,全局,变,变量,节,节点,图,8-6,创建,全,全局,变,变量,图,8-7,选择,全,全局,变,变量,2,全,局,局变,量,量的,使,使用,全局,变,变量,的,的使,用,用方,法,法如,下,下:,(1),在,VI,的框,图,图程,序,序中,,,,选,择,择,FunctionsSelectaVI,,在,弹,弹出,的,的,ChoosetheVItoOpen,对话,框,框中,选,选择,所,所需,的,的全,局,局变,量,量文,件,件,(*.gbl),,在,框,框图,程,程序,放,放置,一,一个,默,默认,的,的全,局,局变,量,量,,该,该全,局,局变,量,量与,第,第一,个,个放,入,入全,局,局变,量,量文,件,件中,的,的前,面,面板,的,的对,象,象相,关,关。,(2),右键,单,单击,全,全局,变,变量,节,节点,,,,在,SelectItem,项的,弹,弹出,选,选单,中,中选,择,择所,需,需对,象,象。,(3),若在,一,一个,VI,中需,要,要使,用,用多,个,个全,局,局变,量,量,,可,可以,使,使用,拷,拷贝,和,和粘,贴,贴全,局,局变,量,量的,方,方法,。,。,【,例,8.1】,利用,全,全局,变,变量,在,在,VI,之间,传,传递,数,数据,。,。,本例,创,创建,了,了一,个,个全,局,局变,量,量和,两,两个,VI,。全,局,局变,量,量中,包,包含,两,两个,对,对象,,,,即,数,数组,和,和数,值,值指,示,示器,。,。第,一,一个,VI,利用,快,快速,VI,产生,一,一个,带,带噪,声,声的,三,三角,波,波,,送,送至,全,全局,变,变量,的,的数,组,组中,,,,并,测,测量,该,该波,形,形的,最,最大,值,值,,然,然后,送,送至,全,全局,变,变量,的,的数,值,值指,示,示器,中,中。,第,第二,个,个,VI,从全,局,局变,量,量中,将,将波,形,形数,据,据和,该,该波,形,形的,最,最大,值,值读,出,出,,并,并在,前,前面,板,板中,显,显示,。,。全,局,局变,量,量和,两,两个,VI,的程,序,序框,图,图如,图,图,8-8,所示,。,。,(a),全局,变,变量,前,前面,板,板,(b),第一,个,个,VI,框图,程,程序,(c),第二,个,个,VI,的前,面,面板,和,和框,图,图程,序,序,图,8-8,利用,全,全局,变,变量,在,在,VI,之间,传,传递,数,数据,8.2,属,性,性,节,节,点,点,LabVIEW,提供,了,了各,式,式各,样,样的,前,前面,板,板对,象,象,,应,应用,这,这些,前,前面,板,板对,象,象,,可,可以,设,设计,出,出仪,表,表化,的,的人,机,机交,互,互界,面,面。,但,但是,,,,仅,仅,仅提,供,供丰,富,富的,前,前面,板,板对,象,象是,不,不够,的,的,,在,在实,际,际运,用,用中,,,,还,经,经常,需,需要,实,实时,地,地改,变,变前,面,面板,对,对象,的,的颜,色,色、,大,大小,和,和是,否,否可,见,见等,属,属性,,,,达,到,到最,佳,佳的,人,人机,交,交互,功,功能,。,。,LabVIEW,引入,属,属性,节,节点,(PropertyNode),概念,,,,通,过,过改,变,变前,面,面板,对,对象,属,属性,节,节点,中,中的,属,属性,值,值,,可,可以,在,在程,序,序运,行,行中,动,动态,地,地改,变,变前,面,面板,对,对象,的,的属,性,性。,8.2.1,属性,节,节点,的,的创,建,建,属性,节,节点,的,的创,建,建方,法,法是,在,在前,面,面板,对,对象,或,或其,端,端口,的,
展开阅读全文