LabVIEWCompactRIO 开发指南19
原始以太网(TCP/UDP)
TCP和UDP是所有以太网标准的低级构建块。原始TCP和UDP工具在几乎所有编程环境中都得到原生支持,包括LabVIEW。它们提供较低级别的通信功能,这些功能更灵活,但用户友好性较差。必须在应用程序级别处理建立连接和打包数据等功能。
如果需要对通信协议进行非常低级别的控制,或者如果正在设计自定义协议,TCP和UDP是不错的选择。它们也被推荐用于将数据流到第三方应用程序,因为网络流仅支持与LabVIEW应用程序进行通信。对于向第三方应用程序发送消息,STM更易于使用,并提供同等甚至更好的性能。为了将当前值或标签发送到第三方应用程序,CCC,Web服务或Modbus,具体取决于具体系统配置,也有更容易的实现。
TCP提供具有错误处理功能的点对点通信,以保证数据包传递。UDP可以广播多个设备可以接收相同信息的消息。UDP广播消息可能由网络交换机过滤,并且不提供有保证的数据包传递。TCP通信遵循客户端/服务器方案,其中服务器侦听客户端打开连接的特定端口。建立连接后,可以使用基本的写入和读取功能自由交换数据。借助LabVIEW中的TCP函数,所有数据都以字符串形式传输。这意味着必须将布尔或数字数据平展为字符串数据,以便在读取后写入和取消平展。由于消息的长度可能不同,因此由程序员确定给定消息中包含多少数据并读取适当数量的字节。有关LabVIEW中客户端/服务器通信的基本概述,请参阅LabVIEW示例Data Server.vi 与Data Client.vi。
简单TCP/IP消息传递(STM)
STM是NI系统工程师基于TCP/IP设计的一种网络协议。如果要与第三方API通信或需要标准协议,建议通过网络发送命令或消息。它通过使用格式化数据包使数据操作更易于管理,并通过最大限度地减少重复数据的传输来提高吞吐量。
为本部分提供LabVIEW示例代码。
下载:可以从NI开发人员专区白皮书LabVIEWSimple Messaging Reference Library (STM)下载并安装STM库。STM库位于“User Libraries”选板中。
元数据
元数据作为集群数组实现。每个数组元素都包含打包和解码一个变量值所需的数据属性。即使只定义了Name属性,也可以根据应用程序要求,通过添加元属性(如数据类型)来使用集群来自定义STM。元数据群集是一个typedef,因此添加属性不应破坏代码。
图4.22显示了为两个变量配置的元数据集群示例:迭代和随机数据。
图4.22.字符串的元数据数组
在传输每个数据变量之前,将创建一个数据包,其中包含数据大小、元数据ID和数据本身的字段。图4.23显示了数据包格式。
图4.23.数据包格式
元数据ID字段使用与数据变量对应的元数据数组元素的索引进行填充。接收主机使用元数据ID为元数据数组编制索引,以获取消息数据的属性。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。