LabVIEWCompactRIO 开发指南18
使用网络流发送消息和命令
默认情况下,网络流旨在最大化吞吐量,但可以轻松实现它们以最大化发送命令或消息的低延迟。
为本部分提供LabVIEW示例代码
命令发送器体系结构
命令发送器是CompactRIO控制器必须响应的任何命令源。公共指令是一个UI事件处理器,是HMI的一部分,可将UI事件转换为CompactRIO控制器的命令。在网络体系结构的情况下,指挥官负责分发这些命令以及执行本地操作,例如暂时禁用UI项和报告状态。
在下一个示例中,在台式PC上运行的主机VI显示采集的数据,同时允许用户调整数据的频率以及功率谱快速傅里叶变换(FFT)分析的窗口类型。频率和窗口命令被发送到CompactRIO控制器并实时处理。
图4.18.示例主机VI的前面板
使用网络流发送命令时,请执行以下操作以确保低延迟:
1.指定较小的缓冲区大小(该示例使用10个元素的缓冲区大小)
2.使用刷新流VI在发送命令后立即刷新缓冲区
可以使用标准LabVIEWUI处理模板为源自UI的事件实现指挥器架构。通过生成命令消息并将其写入网络流,将UI事件转换为相应的命令。请务必在发送命令后刷新缓冲区,以确保低延迟。
图4.19.命令发送方体系结构示例
命令解析器体系结构
在CompactRIO实时目标上,可以使用命令解析器过程来分析传入的命令,并通过实时应用程序进行分发。在此示例中,RTFIFO功能用于在Acquire Data subVI和Send Data subVI之间流式传输数据。始终使用RTFIFO函数在实时目标上的进程之间流式传输数据,无论是否涉及时间关键型循环。由于流式传输需要RT FIFO,因此它们也用于分发传入的命令。
图4.20.命令解析器体系结构示例
为CompactRIO安装网络流支持
在为LabVIEW实时目标开发应用程序时,请记住,网络流支持是开发机上LabVIEW实时模块安装的一部分。要使用LabVIEW实时目标启用网络流,请选中网络流功能复选框,同时从MAX将软件安装到实时目标,如图4.21所示。
图4.21.在实时目标上安装网络流支持
可以在NI开发人员专区白皮书“LosslessCommunication with Network Streams: Components, Architecture, and Performance”中找到有关网络流的更多信息。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。
楼主最近还看过