对一个网络隐变量写入单点值,但是有两个值存入了缓存



主要软件:
主要软件版本: 8.5
主要软件修正版本: N/A
次要软件: Measurement Studio>>Measurement Studio for .NET Support

问题: 在LabWindows/CVI 8.5中,写入单点值到一个隐式的(i.e系统)变量中,但是在用户端的缓冲区中出现了两个值。是什么导致的这种现象,我该怎么解决呢?

解答: 发生这种现象是因为LogosXT通过传递quality=NO_KNOWN_VALUE到隐式变量而产生了一个附加值。您可以通过以下方法来避免该事件的发生:

方法 1

从缓存中读取数据时,检查数据的性质,如果返回NO_KNOWN_VALUE的标志位,则丢弃该数据。

方法 2

使用显性变量。

方法 3

禁用LogosXT;参考LabWindows/CVI Help文档中的Network Variable Performance获取更多信息,但是这种方法是不被推荐使用的。

注意:在Measurement Studio网络变量库(版本8.1.2)中您会看到同样的现象。以下例程代码指出了在Measurement Studio网络变量库中如何使用第一种方法来解决这个问题。附件中的工程中同样包含该代码段。

NetworkVariableData readData = subscriber.ReadData();

// The first read is likely to have a quality of "No Known Value"
if (readData.HasQuality && readData.Quality == NetworkVariableDataQualities.NoKnownValue)
{
  // Pass over the value and accept the next value
  readData = subscriber.ReadData();
}


相关链接:

附件:


BufferedSubscriber.zip - BufferedSubscriber.zip



报告日期: 08/28/2007
最近更新: 11/26/2007
文档编号: 49OFK90S