首页 > 其他分享 >LabVIEW中引用的概念及在VI间传递值

LabVIEW中引用的概念及在VI间传递值

时间:2024-03-13 09:02:33浏览次数:21  
标签:控件 对象 VI LabVIEW 前面板 引用

一 引用的概念

LabVIEW中有一个重要概念:引用。引用的本质是一个临时指针,它可以指向一个具体的对象,并为其分配内存空间,是对象在程序中的唯一标识。

尽管LabVIEW不是纯粹面向对象的语言,但引用的概念与其它面向对象的语言,例如:C++,基本相同。我们可以把LabVIEW中的控件、VI、应用程序等都视为一个对象,通过引用可以对这些对象进行操作。区别在于:其它语言可以通过引用创建新的对象或为对象创建新的属性和方法。但LabVIEW只能通过引用操作对象固有的属性和方法。

二 控件引用

前面板上的控件,除了记录和保存数据,还自带丰富的属性和方法。为了更好更方便的操作这些控件,我们经常使用到控件的引用。如下图所示:

波形图表控件,在该控件上点击右键->创建->引用,然后在函数->编程->应用程序控制->属性节点中进行选择,这样就可以实现通过引用操作控件的属性和方法。

三 VI引用

在之前发布的文章中,我们在讲解动态调用的时候已经讲过此种情况。

通过引用节点调用VI,如下图所示:

以及异步调用VI:

这两种情况都是使用“打开VI引用”函数,获取VI的引用,实现对VI的操控。

四 范例

举一个简单的例子,实现主VI通过引用的方式获取子VI中控件的值,这也是一种VI间传递值的方法。

下图是主程序的前面板,运行时,前面板控件中显示的值都是从子VI传递过来的。

1.主VI和子VI都作为独立存在的一个对象;

2.实现两个VI之间值的传递,本质是对两块内存区域指定地址的访问和写入。

两个子VI的前面板:

代码编写:

1.在程序框图中,首先要获取子VI前面板上控件的引用;

2.然后用For循环找到需要的那个控件的引用;

3.再通过该引用获取子VI前面板上控件的值。

该范例资源随文附上,大家可自行查看。

标签:控件,对象,VI,LabVIEW,前面板,引用
From: https://blog.csdn.net/weixin_47394559/article/details/136644737

相关文章

  • envi5.6对多个图像的同地点数据对比
    一:多视图窗口创建点击Views中的CreateNewView这里创建了两个窗口,也可以再次进行上述操作,创造第三个视图  二:图像的输入选择要对比的文件分别拖动到两个视窗(这里以①和②为例)中 三:链接图像对比点击如图红圈标记的按钮 把如图标记的按钮都打开接下来便可以在......
  • 关于树莓派5(Ubnutu 23.10和树莓派5自带的系统通用)下载时出现error: externally-manage
    一.报错产生的原因  最近作者更新了这两个系统,在作者想去安装非 Debian的库的时候总是出现以下的报错:error:externally-managed-environment这是因为树莓派5升级了服务器系统,从Debian11到了Debian12,这个服务器系统对于外接库的限制还是比较严格的。作者也按照系......
  • 命令行 要查看在Windows上已安装的所有.NET Framework版本 查看在Windows上已安装的
       要查看在Windows上已安装的所有.NETFramework版本,可以按照以下步骤执行:打开命令提示符(CommandPrompt)或PowerShell。可以通过在Windows搜索栏中键入“cmd”或“PowerShell”来找到并打开这些应用程序。在命令提示符或PowerShell中,输入以下命令并按Enter键:......
  • D. Divide by three, multiply by two
    https://codeforces.com/contest/977/problem/Dvoidsolve(){intn;cin>>n;vector<pair<int,longlong>>a(n);for(auto&[x,y]:a){cin>>y;x=0;longlongtemp=y;while(......
  • hadoop报错:is running 446528000B beyond the 'VIRTUAL' memory limit
    发现问题今天在配置hadoop文件时,报错:isrunning446528000Bbeyondthe'VIRTUAL'memorylimit.Currentusage:73.9MBof1GBphysicalmemoryused;2.5GBof2.1GBvirtualmemoryused.Killingcontainer.意思是虚拟内存,超出了限制。然后将虚拟机内存改为3G关闭集群......
  • Java是值传递还是引用传递?
    1、典型回答值传递(Passbyvalue)和引用传递(Passbyreference)是关于参数传递方式的两个概念值传递:将传递参数的值,复制一份到方法的参数中。换句话说,值传递的是原始数据的一个副本,而不是原始数据本身引用传递:将实际参数的引用(内存地址)传递给方法,这意味着方法内部对参数的修改......
  • vivado 使用Design Runs窗口、
    使用DesignRuns窗口“设计运行”窗口显示在项目中创建的所有合成和实现运行。它包括用于配置、管理和启动运行的命令。打开DesignRun窗口选择窗口 →  DesignRuns打开“DesignRuns”窗口。设计运行窗口功能•每个实现运行都缩进显示在其子级的合成运行下面。•一......
  • vivado 自定义实施策略
    自定义实施策略实施设置定义定义新实施时使用的默认选项跑。在VivadoIDE中配置这些选项。图6:ImplementationSettings显示了Settings对话框中的Implementation页面。到从VivadoIDE打开该对话框,选择“工具” → 主菜单中的设置。提示:在非项目模式下运行时,“设置”命令在V......
  • VIM-灰常有用的正则匹配
    一、VIM,GVIM中正则匹配的用处VIM的一个强大之处就在于其文本搜索、匹配的能力,可用于替换、删除、查找等,极大提升用户的文本编辑效率,写代码必备技能。二、常用的匹配字符大体上可以分为四类,字符的匹配、数量的匹配(也可理解为匹配次数)、位置的匹配(开头、结尾等),和特殊字符的匹配......
  • 第143篇:手写vue-router,实现router-view
    好家伙, 今天来手写我们的老伙计vue-router, 1.替换router新开一个项目,并使用我们手写的router 2.大致结构letVue;//保存vue的构造函数classVueRouter{constructor(options){}}VueRouter.install=(_Vue)=>{Vue=_Vue;//备......