在实时通信向导中,为什么我的一些控件不可用?



主要软件:
主要软件版本: 7.1
主要软件修正版本: N/A
次要软件: LabVIEW Modules>>LabVIEW Real-Time Module

问题: 当我运行实时通信向导时,我分别得到输入控件列表和现实控件列表。但是并不是我所有的输入控件和显示控件全部被列出来了,这是为什么?

解答:

有两个原因说明为什么输入控件和显示控件不在列表中:

  • 输入控件和显示控件需要被置于While循环中。实时通信向导不会为所选循环之外的输入控件和输出控件创建代码,当VI启动的时候,它们被假定为设置的参数,所以它们应该应该由调用函数传入。如果你想在VI运行时的时候更新它们,那么你应该讲它们移入While循环之中。
  • 实时FIFO不支持输入控件和显示控件的数据类型。实时通信向导使用实时FIFO在普通优先级循环(NPL)和时间关键循环(TCL)之间传输数据。实时FIFO不支持所有的LabVIEW数据类型。参考实时FIFO支持数据类型列表帮助。要在实时FIFO中使用相关的输入控件和显示控件,首先你必须改变其数据类型,比如:
    • 2-D数组:使用索引数组将数组拆分为多个一维数组。例如一个20*6的数组可以变成6个元素数目为20的数组。你也可以使用重组数组VI将其转换成元素数目为120的一维数组。
    • :使用解捆绑并为每个元素创建一个控件。

值得注意的是,从LabVIEW RT 8.0起,使能RT FIFO的网络发布共享变量实现类似于LabVIEW RT 7.1中的普通优先级循环的功能,也就是说,在运行时创建一个缓冲,并从缓冲中读取至共享变量引擎。然后主机端可以以类似于7.1中读取本地变量的编程方式读写这些共享变量。

这使得在很多应用中,实时通信向导的功能显得有些过时了。

从8.0版本开始,实时FIFO不支持以下数据类型:The following data types are not supported in RT-FIFO's starting in version 8.0 of the module:

  • 布尔数组:使用int8型的数组,其元素为0和1;
  • 二维数组:如上所述;
  • 字符串:如上所述。

尤其需要注意的是,从8.0版本起可以使用自定义类型支持簇类型

 



相关链接: Developer Zone Tutorial: Real-Time FIFO for Deterministic Data Transfer Between VIs
Developer Zone Community: Passing 2D Arrays Using RT-FIFOs

附件:





报告日期: 07/14/2003
最近更新: 09/06/2012
文档编号: 2ZD58VH6