VI的动态调用_第1页
VI的动态调用_第2页
VI的动态调用_第3页
VI的动态调用_第4页
VI的动态调用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、vi 的动态调用1、为什么要动态调用vi?在图形化程序设计时,一个vi 中可以包含一个或若干个子vi。这些子vi 通常是被直接放置在程序框图中。习惯上,称这些子vi 为:静态链接子vi。当程序加载时,这些子vi 也同时也被加载到内存中。这个过程不仅费时,还浪费内存,在应用程序较小时还问题不大,可是当应用程序较复杂时,有可能会带来不便。为了解决这个问题,可以使用vi 动态调用的方法。与静态链接的vi 不同,动态调用vi 只有在需要运行该vi 时才会将其加载,并在操作结束后又可将其从内存中释放。如果vi 调用程序较大,采用动态加载vi 的方式可以节省加载时间和内存。有时候我们希望能够自由地、任意切

2、换操作界面和测量程序界面,并且希望在任何时候,前面板上仅运行一个程序界面。这样就能够保证良好地、准确地实现“ 人机对话 ” 。完成这样的操作,同样可以采用动态调用vi 的方法。前面我们曾经讨论过,vi 分为两种类型:通用型 vi 和严格类型vi ,动态调用时对于不同类型的 vi 其动态调用的方式也不会相同。2、通用型 vi 的动态调用方式我用一个修改后的应用程序的实例来说明动态调用的过程(只有程序的外壳,仅用来说明动态调用的过程)。首先建立一个“ 力测量项目 ”假如: “ 力测量应用程序” 运行时,将根据测量目的调用二个不同的vi,它们都被存放在下图所示的力测量项目文件夹中:力测量主程序.vi

3、(打包时的主vi)应力测量 .vi 压力测量 .vi 动态调用subvi.vi (我将它作成个子vi,便于以它地方使用)下面运行主程序“ 力值测量主程序” ,其前面版图如下图。通常在我的设计中,前面版右上部的三个按键通过vi 的属性设定为:仅允许“ 最小化 ” 有效。其它两个全部“ 灰化 ” ,不可操作。现在,来看前面版,上面共有三个按键开关,分别是:压力测量、 拉力测量和退出测量。两个图片分别表示压力传感器和拉力传感器。它的程序框图见下图,按键的响应处理采用事件结构,下一节将会讲到,这里先不讨论。上图中的事件结构为:“ 压力测量 ” 鼠标按下。拉力测量的事件结构与此图相近,只是将“ 文件名

4、” 换成 “ 拉力测量 .vi “。从程序框图中,可以清楚的看到,键处理程序及动态调用的程序很简单(使用了动态调用子 vi)。下面看看 “ 动态调用子vi ”的前面版和程序框图。从动态调用子vi 的程序框图来说明动态调用的过程:1、首先创建一个本vi 的“ 引用 ”因为是 “ 力测量住程序”vi 在作动态调用,所以这个“ 引用 ” 就是本 vi 的“ 引用 ” 。该“ 引用 ” 直接链接到 fp.state 属性节点,并设定枚举常数为“hidden ”。此时, “ 力测量住程序” 的前面板被隐藏、不可见(前面板是存在的,但不可见)。该“ 引用 ” 同时向后传递。同时建立被动态调用的vi 通道按

5、数据流的工作方式,同时也完成了被动态调用的vi 通道的路径建立(被调用vi 必须在该路径下存在,否则系统将报错)。2、创建被调用vi 的“ 引用 ” 并执行动态调用通过内置函数“ 打开 vi 引用 ” ,创建该路径下被调用vi 的引用。通过该引用调用“fp.open” 方法,该方法中的“activate设定为:真(f)。这时意味着被调用vi 的前面板被打开,屏幕上仅显示” 压力测量 “ 程序的前面板。通过该引用调用“run vi ”方法,该方法中的“wait until done设定为:真( f)。等待,直到被调用 vi 运行结束。此时, ” 压力测量 “ 程序运行 . ,直到操作者点击” 压

6、力测量 “ 前面板上的 ” 退出 “ 按键后,执行下一步操作。3、动态调用结束当操作者点击” 压力测量 “ 前面板上的 ” 退出 “ 按键后,程序作两个操作,一是:利用fp.state属性节点,将枚举常数设定为“standard ”。此时, “ 力测量住程序” 的前面板被打开、可见。二是:利用调用 “fp.ope ” 方法,将 ” 压力测量 “ 前面板关闭。同时关闭所有的“ 引用 ” 。动态调用结束,屏幕上看到的还是:“ 力测量住程序” 的前面板。注意:这种动态调用的关系是一种“ 握手 ” 的关系,也就是说:主vi 实施动态调用,并等待被调用 vi 运行完毕后,再返回到主vi。还有一种动态调用是非“ 握手 ” 的关系,就是直接关闭主vi,仅运行被调用vi,这种方式不太安全,这里就不展示了。被调用的 “ 压力测量 ” 和“ 拉力测量 ” 前面板见上图。它们的程序框图很简单见下图。3、严格类型 vi 的动态调用方式我看到许多书的例子都是严格类型vi 的调用,这里也就不再说的更多了,仅以labview帮助文件中的一个实例来表明。查看labview帮助文件中的:“ 引用节点调用和严格类型vi 引用句柄调用 ” 。假如:有一个严格类型的“ 频率响应 .vi ”,其动态调用程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论