微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > Labview基本常见问题解答(连载二)

Labview基本常见问题解答(连载二)

时间:05-10 来源:VI之家论坛 点击:

25、在子vi运行过程中,如何将数据实时传递到调用它的主vi中,而不是等待子VI运行结束后才在主VI中获得子Vi的输出数据?回答:使用带控制参量的属性节点可以实现在子VI中修改主VI属性的目的,由于控件的值(Value)也是控件的属性之一,因此可以使用控制参量是新以上要求。在子VI中,使用带有控制参量的属性节点,将要传递到主VI的数据写入这个属性(Value)中,将控制参量要设置为Control,并且在子VI的连接器中进行定义;在主VI中,为接收子VIshuju的控件建立一个控制参量,将这个控制参量连接到子VI,即可达到在主VI中实时获取子VI数据的要求。 其实以上这段话,我自己也不是很明白的,什么叫带控制参量的属性节点。这两天看了下下,发现VI SERVER的QUEUE是可以实现从SUBVI实时传递数据到MAINVI的。


这是一个队列例子的前面板,下面是框图,

这是MAINVI的框图

这是SUBVI的框图。

26、事件结构中两种事件类型,一个是通知事件(Notify),另一个是过滤事件(Filter),这两种事件的区别是什么?回答:对于通知事件,程序可以感知事件的发生并且响应该事件,然后再处理在事件结构中定义的任务;对于过滤事件,程序感知事件发生后首先处理在事件结构中定义的任务,然后根据时间结构中的设定(Discard?)决定是否响应该事件。举例来说,时间为Panel Close,在事件发生时弹出一个对话框。如果是通知事件,首先响应事件关闭了前面板,因此没有办法处理"弹出对话框"的任务;如果是过滤事件,首先处理"弹出对话框"的任务,然后根据事件结构中的Discard的值判断是否关闭前面板,若Discard为T,则不关闭,若为F,则关闭。

27、LV7.1主程序已经完成,想在主程序运行之前,先执行一个别的界面,当退出该界面的时候,再显示主界面,如何实现?回答:可以在主程序框图之前,将主程序前面板隐藏,调用子程序,推出子程序后,再显示主程序前面板。这可以通过VI属性节点来实现,先调用一个属性节点,右键选择Select Class/VI Server/VI,然后在属性中选择Front Pannel Window/State属性,分为设为Hide和Standard。Demo程序见项目进程管理中AE-01labview编程技术讨论的"主界面隐藏"。

28、将LV7.1前面板控件(graph)的内容保存成图像文件,在LV中如何编程实现?回答:右键控件创建Invoke Node,选择方法为"Get Panel Image";另外,调用Graphics &Sound/Graphics Formats下面的VI,将第二步获得的图像写入相应格式文件中。

29、在LV程序中使用matlab,生成exe文件以后,发现文件可以运行但是无法弹出运行界面。回答:在lv中如果使用了MATLAB的话,生成EXE文件的时候需要加一个名为马特script.dll的文件作为支持文件,此外在目标PC上必须安装MATLAB软件。

30、LV7.1使用VI Server的方式,在一台机器上调用另一台机器上的VI并运行,需要做哪些设置?(两台机器在同一个网络中)回答:1)在Tools/Options/VI Server:Configurtion下选择Protocols为TCP/IP,这样才能在网络中使用VI Server,否则只是在本机上使用VI Server。 2)在Tools/Options/VI Server:TCP/IP Access下设置可以访问的VI Server的主机IP。如果不进行设置,远程机器将无法调用需要的VI。

31、在LV7.1中如何在运行程序后,前面板上去掉windows的关闭按钮回答:可以在LV的前面板FILE/VI properties/windows appearance/customize,去掉allow user to close window对钩,保存设置,运行后可以实现效果。

32、LV7.1中如何清除前面板的Graph,即在每次运行时,让Graph重新显示数据而不显示历史数据。回答:在Graph里面可以通过创建Local Varible并对其赋空来解决。而在Chart里可以通过创建History Data属性节点并对其赋空来解决。

33、LV7.1中怎样将一个数组中所有满足条件的元素的索引值提取出来,保存成一个新的数组?回答:使用移位寄存器、Build Array和Select函数就可以做到,具体方法:1)使用FOR循环,在循环边框上添加一个移位寄存器,并初始化为一维空数组,类型为I32;2)在循环内部使用Select函数,每次循环都判断数组中的一个元素,并将判断结果(布尔量类型)送入Select的"s"输入端;3)每次循环都使用Build Array函数将左端的移位寄存器直接连接到Select函数的"f"输入端,这样Select函数的输入端就是所有满足条件的元素的索引值;4)将Select函数的输出端连到右端的移位寄存器上。这样程序结束后,For循环的右端移位寄存器的数据就是需要的索引值。

35 移位寄存器和反馈节点的区别?回答:反馈节点

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top