介绍LabVIEW通知器(Notifier)函数,演示两类并行循环通信场景:单对循环数据交互、多循环通知聚合,含程序框图(数据发送 / 接收、多循环通知)与前面板(数据显示)。
功能说明
(一)基础单循环通信(
程序框图 VI(数据发送端 - Loop 1 & 接收端 - Loop 2 )
- 功能:
Obtain Notifier
建引用,Loop 1
借Send Notification
发停止条件 + 实时数据;Loop 2
用Wait on Notification
收数据,依条件 / 错误停循环。 - 使用场合:简单并行循环异步传数据(如单任务状态、测量值)、控制启停,像基础数据采集 - 显示系统。
- 特点:轻量异步,无需复杂队列;引用传递简洁,减少全局变量依赖。
- 注意事项:确保引用正确共享,
Release Notifier
需在发送端循环后执行,防接收端失效。
前面板 VI
- 功能:实时显示
Data 1
(发送)、Data 2
(接收)波形,观测数据传递效果,配Stop
按钮终止程序。 - 使用场合:验证单对循环通信结果,快速查看数据交互可视化效果。
- 特点:直观呈现波形,简化调试验证;通过图表实时反馈,无需额外逻辑解析数据。
- 注意事项:需与发送端引用匹配,异常终止时处理接收端超时 / 错误,避免挂起。
(二)多循环通知聚合
程序框图 VI(多通知发送 - Notifier Loop 1/2& 聚合接收 -Notification Loop )
- 功能:
Obtain Notifier
为Loop 1/2
各建引用,Build Array
聚合后传入Notification Loop
的Wait on Notification from Multiple
;Loop 1/2
生成不同正弦波,借Send Notification
定时发消息;面板Stop
触发Release Notifier
,使引用失效、循环因错误停止。 - 使用场合:多并行任务(如多路信号采集)需向同一循环反馈状态 / 数据,或需聚合多源通知统一处理场景。
- 特点:支持多循环向单循环聚合通信,可设置不同发送延时(
Wait (ms)
)模拟异步时序;借引用失效统一停循环,简化多循环启停控制。 - 注意事项:
Build Array
需确保引用数组与Wait on Notification from Multiple
输入匹配;Release Notifier
触发后,需处理所有循环错误捕获,保证程序有序终止。
功能对比(以队列函数为例)
功能点 | 通知器(Notifier) | 队列(Queue) |
---|---|---|
交互模式 | 异步 “触发 - 响应”,单次传递(多通知可聚合) | 异步 “存储 - 读取”,数据可缓存 / 多次读取 |
复杂度 | 单循环通信简单,多循环聚合需管理引用数组 | 需关注队列创建、销毁及元素读写顺序 |
适用场景 | 单 / 多循环向单循环简单交互、启停控制;侧重触发响应 | 高吞吐量、多数据流转(如生产者 - 消费者多环节) |
资源占用 | 低,无缓存 overhead(多通知聚合仅管理引用) | 高,需维护队列存储资源 |
背景补充
LabVIEW 并行循环需安全通信机制,通知器轻量,弥补全局变量(非线程安全)缺陷;队列适合高吞吐量流转。工程师可按 “交互频率、是否缓存、逻辑复杂度” 选型:单 / 简单多循环交互选通知器,复杂数据流转用队列。多通知聚合扩展了通知器应用,适配多源异步反馈场景,在多路信号监控、多任务状态同步中更高效。