0
在LabVIEW中实现子VI的动态调用
2018-12-17 15:28:30 zhaobin 浏览:11226次 【

在进行LabVIEW程序设计时,一个VI中可以包含一个或若干个子vi。这些子vi是被直接放置在程序框图中,习惯上称这些子vi为:静态链接子vi。这些子vi在VI载入的同时也被加载到内存中。

在应用程序设计时,我们希望能够自由地、任意切换操作界面和测量程序界面,并且希望在任何时候,前面板上仅运行一个程序界面。这样就能够保证良好地、准确地实现“人机对话”。完成这样的操作,就需要动态的调用不同的VI。

与静态链接的子vi不同,动态加载VI只有在打开VI引用时VI的调用程序才会将其加载。如果VI调用程序较大,采用动态加载VI的方式可以节省加载时间和内存,这是因为在调用程序需要运行该VI以前无需将其加载,在操作结束后又可将其从内存中释放。

举例:假如程序设计要求先后分别动态调用两个VI,它们被存放在项目中的某个文件夹中,名字分别为A.vi(打包时的主Vi)、B.vi。当希望程序运行时,首先运行A.vi(比如欢迎界面、办卡验证等操作),待正确执行完成制定操作后,关闭A.vi,调用运行B.vi(可以使实际的应用程序)。最后关闭B.vi程序停止运行。并保证前面板上仅运行一个程序界面。

1 A.vi的程序框图

2 B.vi的程序框图

3 动态调用VI的程序框图

运行流程为:A.vi实现加法功能,当按下停止按钮时运行动态调用VI程序,对B.vi调用并运行实现乘法功能,同时A.vi关闭。当按下B中的停止键时,程序结束。

动态调用的本质就是利用VI的“属性节点”和“调用节点”来实现的:

1.VI引用句柄:由于A.VI已经载入内存,所以使用“本VI”(也就是A.VI)的引用”。

2.属性节点FP.State:根据A.VI的引用,确定A.VI的前面板状态,这里是:“Hidden”。

3.打开VI的引用:根据B.VI的路径和文件名,打开B.VI的引用,此时载入B.VI程序。

4.调用节点FP.Open:根据B.VI的引用, 确定B.VI的前面板状态。

5.调用节点Run VI:根据B.VI的引用, 确定B.VI开始运行,参数:不必等待运行结束和不自动关闭引用。

6.关闭引用:已完成B.VI的动态调用,关闭B.VI的引用。

7.调用节点FP.Close:根据A.VI的引用,关闭A.VI的前面板(A.VI退出内存)。

   8.关闭引用:关闭A.VI的引用。整个动态调用过程结束,只有B.VI运行。



0 条评论
查看更多评论
  • 键盘快捷键描述按住Shift并单击选择多个对象;将对象添加到当前选择。按住Ctrl单击切换单个对象以加入或保留当前选择。方向键一次将所选对象移动一个像素。Sh..

    浏览:5199次 评论:0
    2021-02-06 09:23:02
  • Modbus是全球第一个真正用于工业现场的总线协议,采用的是主从原则,其物理接口主要有串口和以太网口两种。本文主要介绍LabIEW与PLC的通信实现方式。在进行通..

    浏览:12291次 评论:0
    2019-09-22 12:58:51
  • 对实时数据或者历史存储数据进行滤波及校准处理,可以将采样数据转化为具有实际意义的物理量,为用户后续操作提供方便。滤波校准功能的程序设计如图1所示,本..

    浏览:4573次 评论:0
    2019-09-21 16:32:59
  • 新建一个LabVIEW项目,或者打开一个已经建好的项目,项目中包含主vi,子vi以及自定义控件等,确保vi运行正常。    在项目浏览器的-程序生成规范->..

    浏览:9005次 评论:0
    2018-07-18 10:55:21
  • 使用子面板控件,在当前VI的前面板上显示另一个VI的前面板。首先制作一个被调用VI的程序框图和前面板。 在主VI前面板上添加一个子面板控件。此时LabVIEW将在..

    浏览:10594次 评论:0
    2018-07-10 14:11:50
作者专栏
  • sltang

    注册时间:2024-12-21 15:45:59

  • samhuang63

    注册时间:2024-12-20 09:42:58

  • csq663347

    注册时间:2024-12-05 16:34:39

  • guohuiming

    注册时间:2024-11-14 08:49:44

  • 机飞弹打

    注册时间:2024-11-11 13:46:27

Copyright@http://nilab.com.cn all rights reserved 备案号:京ICP备12043750号-1
Powered by qibosoft V9.0 Code © 2003-2017 qibosoft
LABVIEW之家 QQ:181237912; email:Labviewzj@qq.com 项目合作 微信及手机:18510627229