LabVIEWCompactRIO开发指南22

CVT客户端通信(CCC)

如果使用第3章中讨论的CVT进行进程间通信,请考虑使用CCC。如果已经创建了CVT标签,并且想在网络上发布此数据,CCC不失为一个简单而优雅的解决方案。它基于TCP/IP,最适合1:1系统配置。如果使用的是1:N或N:1系统配置,请考虑在实现网络通信时将CVT标签绑定到网络发布的共享变量。

客户端通信接口的主要功能是在服务器(CompactRIO)上的CVT实例和客户端之间共享信息。通过将CVT的部分从一侧镜像到另一侧,反之亦然。

安装CCC库的说明

步骤1:导航至NI开发人员专区白皮书《CVTClientCommunication(CCC)ReferenceLibrary》。

步骤2:按照“下载”部分下的说明进行操作。CCC库显示在“UserLibraries”选项板下。

实现

CCC的基础实现是TCP/IP。具体来说,它是STM的改编版,它提供了一种独立于平台的按名称发送消息的方式,同时保持原始TCP通信的性能和吞吐量。在涉及数百甚至数千个标签的应用程序中,高效通信的重要性是显而易见的。

CCC接口由两个单独的元素组成。接口的服务器部分充当TCP服务器,由处理来自客户端的数据请求的命令解析器组成。接口的客户端部分充当TCP客户端并启动与服务器的通信。然后,它向服务器发送命令来配置和发送/接收数据。

图4.30.CCC概述

CCC协议实现强调性能优化,通过在第一次调用时尽可能多地配置,使重复操作的工作更少。因此,协议的实现方式是,客户端必须首先使用BoundAddress参数标识所有感兴趣的标记。在第一次执行时,服务器在CVT中按标签的索引查找标签。至此,仅使用CVT索引API来确保尽可能高的性能。

在客户端和服务器组件上,所有重复操作的实现都考虑到了确定性。它们在每个函数的第一次调用时分配所有必要的资源,并使用函数全局变量在迭代之间存储数据块。这可确保在第一次迭代后不会发生内存分配。

API和示例

CCC服务器是一个VI,旨在与应用程序的其余部分并行运行。这允许计算机控制的其余部分异步执行,从而更好地控制应用程序定时。服务器API具有用于启动和停止CCC服务器的功能。需要在调用CCCStartServer.vi.之前初始化CVT。

在大多数情况下,可以将接口的服务器和客户端元素用作插入式组件。服务器只需要配置TCP端口(默认为54444),客户端需要服务器的IP地址和端口号。图4.31显示了包含以下步骤的CCC服务器应用程序的示例:

1.初始化服务端CVT

2.初始化CCC服务器进程,该进程从应用程序的其余部分异步执行

3.使用CVTAPI函数(标签)在服务器端CVT中读写数据

4.停止CCC服务器进程

图4.31.CCC服务器示例-静态标记列表

在相应的客户端应用程序中,如图4.32所示,CCC写入和读取操作与其余HMI代码串联实现。这可确保在每次迭代时更新读取和写入标记的值。客户端应用程序包括以下步骤:

1.初始化客户端CVT

2.启动与服务器的连接

3.使用CVTAPI函数(标签)在客户端CVT中读写数据

4.使用CCC客户端读写VI在客户端CVT和服务器端CVT之间传输数据

5.结束与服务器的连接

图4.32.CCC客户端示例—静态标记列表

有关CCC的更多信息,请参阅NI开发人员专区白皮书《CVTClientCommunication(CCC)ReferenceLibrary》。

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。