在介绍VI的动态调用之前有必要对LabVIEW在执行VI过程中的规则有个大致的了解。众所周知,LabVIEW是通过VI的文件名(VI Name)来表示独立的VI的,并不是VI的路径。因此,LabVIEW不允许具有相同名字的VI同时载入内存中,即使这些VI存储在不同的路径中。
在前面曾经提到,LabVIEW本身就是一种多线程设计的语言。那么当同一背面板中放置两个VI的实例时代码应该如何执行呢?在图 29中,右侧是测试VI运行的时间,左侧是Wait.vi的具体实现代码,仅仅是等待一定的秒数。那么在右侧的VI中,输出的Time是多少呢?是3秒还是2秒?
图 29 Reentrant Execution
打开VI的Highlight调试工具,可以看出两个Wait.vi实例的调用并不是同时执行的,而是依次按顺序执行的,至于哪一个实例先执行是不确定的。这是由于LabVIEW本身是并行设计的,从理论上而言,两个VI的实例是同步执行的,但是如果两个Wait.vi实例同时执行必定会产生参数赋值紊乱,因为LabVIEW只允许内存中存在一个名称的VI。因此,此时Time的输出结果是3秒。
如果在实际使用中需要这样的应用该如何解决呢?LabVIEW提供了VI的可重入技术,打开Wait.vi,单击按键,选择图 30所示的Reentrant execution选项。此时再次运行Time的输出结果是2秒。从Highlight的运行过程来看,两个Wait.vi实例是同时执行的,因此总的运行时间就是1秒。
图 30 VI Properties
事实上,LabVIEW的可重入技术相当于在原有VI的基础上产生了一个相同的副本,打开Wait.vi从标题栏可以看出VI的名称为Wait.vi:1(clone)。同理这是由于LabVIEW中不允许内存中的VI存在同名,VI的可重入技术相当于产生了与原VI具有同样功能的新VI并且修改了该VI的命名。
在实际应用中,需要根据情况决定是否设置VI的可重入属性,灵活使用。并不是需要将所有的VI都设置为可重入,那将占据大量的内存资源。
关键字:LabVIEW 程序设计模式 可重入性
引用地址:LabVIEW程序设计模式(五)—生产者/消费者模式(2)_VI的可重入性
在前面曾经提到,LabVIEW本身就是一种多线程设计的语言。那么当同一背面板中放置两个VI的实例时代码应该如何执行呢?在图 29中,右侧是测试VI运行的时间,左侧是Wait.vi的具体实现代码,仅仅是等待一定的秒数。那么在右侧的VI中,输出的Time是多少呢?是3秒还是2秒?
图 29 Reentrant Execution
打开VI的Highlight调试工具,可以看出两个Wait.vi实例的调用并不是同时执行的,而是依次按顺序执行的,至于哪一个实例先执行是不确定的。这是由于LabVIEW本身是并行设计的,从理论上而言,两个VI的实例是同步执行的,但是如果两个Wait.vi实例同时执行必定会产生参数赋值紊乱,因为LabVIEW只允许内存中存在一个名称的VI。因此,此时Time的输出结果是3秒。
如果在实际使用中需要这样的应用该如何解决呢?LabVIEW提供了VI的可重入技术,打开Wait.vi,单击
图 30 VI Properties
事实上,LabVIEW的可重入技术相当于在原有VI的基础上产生了一个相同的副本,打开Wait.vi从标题栏可以看出VI的名称为Wait.vi:1(clone)。同理这是由于LabVIEW中不允许内存中的VI存在同名,VI的可重入技术相当于产生了与原VI具有同样功能的新VI并且修改了该VI的命名。
在实际应用中,需要根据情况决定是否设置VI的可重入属性,灵活使用。并不是需要将所有的VI都设置为可重入,那将占据大量的内存资源。
上一篇:LabVIEW程序设计模式(五)—生产者/消费者模式(3)
下一篇:LabVIEW程序设计模式(五)—生产者/消费者模式(1)_前言
推荐阅读最新更新时间:2024-03-30 23:02
基于LabVIEW的便携式汽车仪表检测仪的研制----目的与名词解释
本文研究的内容是基于LabviEW的便携式汽车仪表测试系统。所以首先要对仪表的种类和构造进行研究,了解和分析汽车中车速表、转速表、水温表、燃油表、里程表、各种LED报警灯、LCD等的结构原理以及他们的显示原理,分析它们工作时的参数以及这些表的国家标准等,然后搭建硬件平台,设计软件程序,再让软件和硬件连接,进行参数设置,进行测试。 本文要研究的是基于LabVIEW测试系统,因此在本文中用LabviEW作为便携式汽车仪表检测系统的软件平台,在研究中我们把LabVIEW用作仪表测试结果的显示和仪表信号的输入,故LabVIEW也本文要研究的重要内容之一。 本文研究内容还包括汽车中的通信模块,在本文中用到CAN总线以及P
[测试测量]
labview Multilistbox特效制作
经常有朋友谈到控件的特殊效果如何制作的问题.LABVIEW中目前常用三种办法,利用属性节点,自定义控件和XCONTROL. 今天是用属性节点实现Multilistbox的特殊效果. 默认的控件形式如下图所示 改变后的效果如下图所示,可以自由定义相邻行的颜色,可以自由定义相邻行的字体颜色,其他特性,修改一下就可以了,原理是相同的. 设计方法如框图所示.
[测试测量]
Labview簇
簇 簇是一种类似数组的数据结构,用于分组数据。簇和数组有着重要的差别,其中一个重要差别是,簇可以包含不同的数据类型,而数组仅可以包含相同的数据类型。例如,一个数组可以包含10个数字指示器,一个簇却可以包含一个数字控件,一个开关和一个字符串控件。 尽管簇和数组的元素都是有序存放的,但访问簇的元素最好是通过释放的方法同时访问其中部分或全部元素,而不是通过索引一次访问一个元素。簇和数组的另一个差别是簇具有固定的大小。 簇通常用于将出现在框图上的有关数据元素分组管理。因为簇在框图中仅用唯一的连线表示,所以对于减少连线混乱和子VI需要的连接器端子个数,使用簇有着积极的效果。可以将簇看做是一捆连线,线缆中每一个连线表示簇的不同元素。在框图上
[测试测量]
新款NI LabVIEW工具包可自动测试软件
2009年2月美国国家仪器有限公司(NI)近日推出了新的LabVIEW图形化开发环境的软件工程工具——LabVIEW单元测试工具包(LabVIEW Unit Test Framework)和LabVIEW桌面执行追踪工具包(LabVIEW Desktop Execution Trace toolkits)。它们与新推出的NI 需求管理软件(NI Requirements Gateway 1.1)在功能上是完全一致的。这使得工程师们在利用LabVIEW软件开发大型或复杂应用时,可以利用这些工具包有效验证系统,并根据需求改进软件性能和测试编码。
软件调试和测试对于开发人员来说是一个复杂、昂贵且耗时的工作。随
[嵌入式]
基于LabVIEW的电子式互感器校验系统
1.前言 随着数字化变电站和智能电网建设步伐的加快,电子式互感器得到了迅速的发展。 电子式互感器包括电子式电流互感器和电子式电压互感器两种。为了保证电子式互感器的准确度,确保系统安全、稳定,需要对互感器进行校验。电子式互感器校验系统用来对电子式互感器的比差和角差进行校验。 与传统互感器相比,电子式互感器在测量原理、结构和输出信号的方式上发生了根本的变化,其校验原理和方法与传统互感器校验原理和方法完全不同,因此传统互感器的校验方法不能应用到电子式互感器的校验中。 LabVIEW是一种图形化的编程语言(G语言),区别于传统的文本式的编程语言,它将各种功能封装成函数模块,能够快速建立系统的图形用户界面,具有开发效率高,开发周期短的特点,
[测试测量]
航空器增压舱功能性测试的新创意
Author(s): Danang Juliardi - Indonesian Aerospace Industry: Aerospace/AvioNIcs Products: Software, Data Acquisition The Challenge: 通过创新 测试 方法降低航空器密封性检验设备的投资成本。通过自动化过程控制增加 测试 结果的精度及数据的可靠性。 The Solution: 将电子设备用于综合过程序列 测试 ,由计算机控制 测试 装置。 测试 系统从手工改为全自动化方法模式。数据 测试 的记录及处理通过计算机核查。 "基于用户开发V I 实现的低成本虚拟仪器系统具有高性价比。Labview作
[测试测量]
对PWM电路关键点波形进行自动测量并输出的判断
自动测试系统(ATS)是指能自动完成测量、数据处理、显示(输出)测试结果的一类系统的总称。在不同的技术领域里,测试内容、要求、条件和自动测试系统各不相同,但都是利用计算机代替人的测试活动。一般自动测试系统包括控制器、激励源、测量仪表、开关系统、人机接口和被测单元一机器接口等部分。本自动测试系统的测试对象是PWM电路板,如图1所示。PWM(脉宽调制)是利用改变占空比而使输出电压得到改变的电路。PWM技术广泛甩于直流电机调速等场合。
其工作原理是:如图2所示,F点产生一个三角波,通过调节RP3可以调节三角波的幅度,调节RP2可以调节三角波的频率。U1D为电压比较器,F点波形和B点波形通过比较最终得出C点波形。由
[电源管理]
LabVIEW中的I/O接口设备驱动
1 引言 labview(laboratory virtual instrument engineering workbench,实验室虚拟仪器工程平台)是美国ni公司(national instrument company)推出的一种基于g语言(graphics language,图形化编程语言)的虚拟仪器开发平台。labview以其在数据采集、信号处理等方面的突出优势已经在测控领域获得了广泛应用。虚拟仪器系统的硬件平台由i/o接口设备和计算机构成(如图1所示),i/o接口设备是对外获取信号的通道,为了能使计算机能够对i/o接口设备有效地进行控制,就要考虑系统中i/o接口设备的驱动问题。 图1 虚拟仪器的硬件构成
[测试测量]