如果程序中所使用的VI较多,且有些VI很大并属于基本上不太常用的VI,为避免占用内存的使用或减少程序的导入时间,也可以进行VI的动态调用。所谓动态调用是指在程序运行需要时再调入,运行完成后从内存中将其清除。VI的动态调用与VI的类型也有一定的关联。(参考另外一篇讲解严格类型VI的文章)
1、为什么要动态调用VI?
在图形化程序设计时,一个vi中可以包含一个或若干个子vi。这些子vi通常是被直接放置在程序框图中。习惯上,称这些子vi为:静态链接子vi。当程序加载时,这些子vi也同时也被加载到内存中。这个过程不仅费时,还浪费内存,在应用程序较小时还问题不大,可是当应用程序较复杂时,有可能会带来不便。
为了解决这个问题,可以使用vi动态调用的方法。与静态链接的vi不同,动态调用vi只有在需要运行该vi时才会将其加载,并在操作结束后又可将其从内存中释放。如果VI调用程序较大,采用动态加载VI的方式可以节省加载时间和内存。
有时候我们希望能够自由地、任意切换操作界面和测量程序界面,并且希望在任何时候,前面板上仅运行一个程序界面。这样就能够保证良好地、准确地实现“人机对话”。完成这样的操作,同样可以采用动态调用vi的方法。
前面我们曾经讨论过,vi分为两种类型:通用型vi和严格类型vi ,动态调用时对于不同类型的vi其动态调用的方式也不会相同。
2、通用型vi的动态调用方式
首先建立一个“力测量项目”
假如:“力测量应用程序”运行时,将根据测量目的调用二个不同的vi,它们都被存放在下图所示的力测量项目文件夹中:
力测量主程序.vi(打包时的主vi)
应力测量.vi
压力测量.vi
动态调用subvi.vi(我将它作成个子vi,便于以它地方使用)
下面运行主程序“力值测量主程序”,其前面版图如下图。
。
1、首先创建一个本vi的“引用”
2、创建被调用vi的“引用”并执行动态调用
3、动态调用结束
|
|
|
被调用的“压力测量”和“拉力测量”前面板见上图。它们的程序框图很简单见下图。
3、严格类型vi的动态调用方式
注意:不论对VI的调用还是对节点的调用,在引用打开后,必须销毁(关闭),防止内存泄露。
本文介绍如何通过动态调用VI来提高程序效率和灵活性。动态调用VI可以在需要时加载和运行VI,运行完成后从内存中清除,适用于大型或较少使用的VI。文章详细解释了通用型VI和严格类型VI的不同调用方式。
3254





