labview的深入探索------什么是"节点"
2015-08-25 来源:eefocus
即便是用了LV多年,有些基本概念还是非常模糊的,比如'节点'和'函数'(NODE AND FUNCTION),我们称LV本身提供的函数为节点,或者节点函数,那自己做的子VI被调用时算不算节点,它内部包含的下一级别的子VI是不是节点那?控件是不是节点?装饰是不是节点?程序的结构比如顺序结构、循环结构是否是节点那?
LV经常用节点的数量来统计VI的性能,所以了解节点的真正含义是非常有必要的。
首先看看帮助文件对节点的定义:
上图中,顶层VI有三个节点,但是EXPRESS VI内部包括53个节点,自己做的SUBVI内部包含8个节点,而WRITE SPREAD SHEET尽管内部包含大量操作,我们可以打开跟踪,但是它只是一个节点,从这里可以看出,经管EXPRESS VI使用非常方便,但是LV没有把EXPRESS VI称为函数,而写文本文件VI尽管内部非常复杂,但是仍然是一个节点.
所以使用LV内置的函数可以提高程序运行效率,而EXPRESS VI尽管使用方便,但是效率很低.
上图表明,我的计算二次函数VI,的确内部包含8个节点,那么如果我多次调用它,情况会如何那?
二次函数本身8个节点没有变化,每多调用一次,节点增加一个,6+8=14个节点.
对于经常使用的操作,如果作成子VI,可以有效地减少节点数量,提高运行效率.
为什么LV内置的函数只是一个节点那,而我们自己做的子VI却包含内部使用的节点那?
猜测LV启动后,很多内置的函数已经调入内存了,因此我们使用它不过是增加了一个节点,而我们自己做的SUBVI则不同,它是添加在程序框图中被调入内存的,所以节点数量应该包括它内部使用的节点.
进入测试测量查看更多内容>>
LV经常用节点的数量来统计VI的性能,所以了解节点的真正含义是非常有必要的。
首先看看帮助文件对节点的定义:
节点是程序框图上的对象,带有输入输出端,在VI运行时进行运算。节点类似于文本编程语言中的语句、运算符、函数和子程序。LabVIEW有以下类型的节点:
- 函数-内置的执行元素,相当于操作符、函数或语句。
- 子VI-用于另一个VI程序框图上的VI,相当于子程序。
- Express VI-协助常规测量任务的子VI。Express VI是在配置对话框中配置的。
- 结构-执行控制元素,如For循环、While循环、条件结构、平铺式和层叠式顺序结构、定时结构和事件结构。
- 公式节点和表达式节点-公式节点是可以直接向程序框图输入方程的结构,其大小可以调节。表达式节点是用于计算含有单变量表达式或方程的结构。
- 属性节点和调用节点-属性节点是用于设置或寻找类的属性的结构。调用节点是设置对象执行方式的结构。
- 通过引用节点调用-用于调用动态加载的VI的结构。
- 调用库函数节点-调用大多数标准库或DLL的结构。
- 代码接口节点(CIN)-调用以文本编程语言所编写的代码的结构。
这里函数的概念本身就不好理解,内置的执行元素,加减运算符号算一个节点,一个文件操作函数内部包含大量的子函数或者子VI,也是一个节点?
我们自己制作的VI称作子VI,它可以理解成函数吗?从分类上看显然不是,那它到底有那些不同那?
显然,两个输入控件+一个显示控件+运算符号共四个节点,前面板的装饰当然也是控件,因为我们可以得到它的参考,进而控制它的属性,从分类上看,它也是继承于最基本的图形对象的,所以装饰是控件,但不是输入控件,也不是输出控件,换个角度看,它没有数据的流入或者流出,因此,装饰不属于节点.
从上图可以看出,常量,结构,属性节点都属于节点,一个属性节点可以同时控制多个属性,它仍然只算是一个节点,所以通过一个属性节点控制可以减少节点数量,全局变量和局部变量也都属于节点,因为它都涉及了数据的流入或者流出.
我们感兴趣的是自己做的子VI和内置函数有何不同之处
上图中,顶层VI有三个节点,但是EXPRESS VI内部包括53个节点,自己做的SUBVI内部包含8个节点,而WRITE SPREAD SHEET尽管内部包含大量操作,我们可以打开跟踪,但是它只是一个节点,从这里可以看出,经管EXPRESS VI使用非常方便,但是LV没有把EXPRESS VI称为函数,而写文本文件VI尽管内部非常复杂,但是仍然是一个节点.
所以使用LV内置的函数可以提高程序运行效率,而EXPRESS VI尽管使用方便,但是效率很低.
上图表明,我的计算二次函数VI,的确内部包含8个节点,那么如果我多次调用它,情况会如何那?
二次函数本身8个节点没有变化,每多调用一次,节点增加一个,6+8=14个节点.
对于经常使用的操作,如果作成子VI,可以有效地减少节点数量,提高运行效率.
为什么LV内置的函数只是一个节点那,而我们自己做的子VI却包含内部使用的节点那?
猜测LV启动后,很多内置的函数已经调入内存了,因此我们使用它不过是增加了一个节点,而我们自己做的SUBVI则不同,它是添加在程序框图中被调入内存的,所以节点数量应该包括它内部使用的节点.
相关文章
- 300PLCmpi转以太网通过CHNet-S7300与LABVIEW OPC通信
- e络盟利用免费数据记录软件和 CompactDAQ 硬件增强传感器测量功能
- 开发一种基于Matlab与LabVIEW的电机测试平台
- 基于LabVIEW软件设计的调试平台在工业控制中的应用
- e络盟开售NI LabVIEW+套件,加速测试产品上市
- e络盟将携手NI举办网络研讨会,带您了解LabVIEW
- 一种基于STM32和LabVIEW的无线温湿度检测系统的设计
- 基于单片机DHT22温湿度LabView上位机监控系统设计
- 基于labVIEW与单片机的上位机与下位机通信
- e络盟携手NI,推出LabVIEW与测试自动化教育课程