这个 VI 介绍了如何使用 Network Streams 实现两个独立运行的 VI 之间的数据和命令交换。可以将其拆解为以下几个核心部分:
数据生产者 VI(通常称为 Target VI)
负责生成波形数据(如正弦波、方波)
通过 Writer Stream 将数据发送到网络
接收来自主机的命令(如 "Set Frequency")并执行相应操作
数据消费者 VI(通常称为 Host VI)
通过 Reader Stream 接收波形数据
显示接收到的波形(使用波形图表控件)
发送控制命令(如调整频率)到目标 VI
通信机制
使用 TCP/IP 协议,但 LabVIEW 封装了底层细节
基于流的通信模式,支持连续数据传输
自动处理网络连接建立和断开
关键步骤
网络流端点 (Network Stream Endpoints)
类似网络通信中的 "地址",用于标识通信双方
创建时需指定 IP 地址和端口号(默认 12345)
不需要严格的创建顺序,但必须配对使用
数据流操作
Writer Stream:用于发送数据
可发送多种数据类型(数值、数组、字符串等)
示例中使用 "Write Waveform" 函数发送波形数据
Reader Stream:用于接收数据
必须与发送端的数据类型匹配
示例中使用 "Read Waveform" 函数接收波形
错误处理
错误代码 - 314220 表示 "另一端点已销毁"
在示例中可以安全忽略此错误
实际应用中建议添加更完善的错误处理逻辑
开发步骤
创建前面板
主机 VI:添加波形图表、频率控制旋钮、启动 / 停止按钮
目标 VI:添加波形生成控件、状态指示器
网络配置
默认使用本地回环地址 (127.0.0.1) 进行测试
实际远程通信时需配置正确的 IP 地址
确保防火墙允许 LabVIEW 通过指定端口通信
调试技巧
连接失败
检查 IP 地址和端口号是否匹配
确保两个 VI 都已启动
尝试使用 ping 命令测试网络连通性
数据显示异常
确认数据类型匹配(例如不要尝试用数值控件显示波形数据)
检查数据流的发送和接收速率是否匹配
尝试添加数据缓冲区以平滑显示
性能问题
大数据量传输时建议使用 "高速数据流" 模式
考虑在循环中添加适当的延时以降低 CPU 使用率
对于复杂应用,可使用 Profiler 工具分析性能瓶颈
应用场景
分布式测试系统:将传感器数据从现场设备传输到中央监控站
远程控制:通过网络控制工业设备或实验仪器
多机协同计算:将计算任务分配到多个计算节点并行处理
数据记录与回放:实时传输数据并保存到文件,后续可回放分析
通过理解这些基本概念和操作步骤,可以快速掌握 LabVIEW 中基于 Network Streams 的 VI 间通信技术,为开发更复杂的分布式系统打下基础。