LabVIEW程序框图中的连线是节点间数据传输的通道,也是构成数据流的关键环节之一,更是图形化代码中的一部分。我个人更倾向于将连线看作是赋值,将源端的数据赋予下一个端口。

连线的习惯用法是从左到右连接。

应该讲,连线本身是中性的,就是一个线段。但是,在LabVIEW中它可以显示出它所连接的数据的数据类型(通过形状和色彩)。

从数据流的观点来看,连线中的数据类型是与前端的数据源的数据类型自动匹配的。并且连接两端的数据类型应该一致。比如数值输入控件就不可能与字符串显示控件相连接。参见下图。
 
Picture
图6-1 错误的连线——数据类型不匹配
但是,如果被连接的两端的数据类型是匹配的,则连线成功,数据可以在此间流动。参见下图。

Picture
图6-2 成功的连线——数据可流动
成功的连线的标志有两个:一个是控件的类型正确,一个输入控件、一个显示控件;二是连线两者间的数据类型完全匹配。
下面我们来看看不完全匹配的例子。参见下图。
 
Picture
图6-3 源的数据类型改变——连线的数据类型也改变
当我们将输入控件的数据类型改变为I8时,连线的数据类型也发生了变化,正如我们前面所谈到的它是与数据源自动匹配的。
由于显示控件的数据类型没有发生改变,所以这里自动加入了一个强制转换的节点(小红点)。我们且可以认为带有强制转换点的连接是不完全匹配。此时数据仍可流动,数据流的原则没有发生任何变化。
把二者调换一下在看看什么现象会发生。参见下图。

Picture
图6-4 源的数据类型没变——连线的数据类型也不变
这里仍发生了不完全匹配,但是因为源的数据类型没有发生变化,所以连线的数据类型也不会改变。强制转换节点出现,表示不完全匹配。

LabVIEW中连线有不同的形状和色彩,仅表示它所传递数据的数据类型,这个数据类型取决于源端的数据类型。当然,也同时构成了图形化代码的可视性、美观性。

数据源(输入控件)的输出可以连接到多个数据匹配的节点,终端(显示控件)只能接受一个数据源的数据。

由于局部变量、全局变量等没有连线的约束,破坏了图形化代码数据流的关系,所以使用时应多加小心。


2011年3月13日补充:

最近在有关资料中看到这样的说法:

连线的语意是:

——每段连线都是一个缓存器
——连线的每个分支都意味着数据拷贝

 




Leave a Reply.