LabView之生产者/消费者模式(队列)

今日分享一个LabView队列功能——生产者/消费者模式,对于这一功能谈谈自己的理解。

生产者/消费者模式,是LabView中一个比较好用的数据传递模块,它不仅能够在单个VI中传递数据,还能再多个不同VI中互相调用,其结构也很简单,如下图:

图中1、2、3、4分别为: 获取队列引用(创建队列)、元素入队列、释放队列引用、元素出队列,那么具体怎么用呢?让我们来看下面这张图:

 首先,引用名为BBB的队列,然后通过串口接收数据,当串口VISA将数据从缓冲区中读取,随后这些数据被存进队列中,见右下角程序框图;而在做上交程序框图中,则将队列中的数据出列并打印在字符串显示控件中,这就完成了一次入列出列的操作。

值得注意的是,生产者/消费者模式,只要引用的队列名称相同,便可在同一队列中进行读写操作,但是如果多个队列同名则会造成数据混乱。除此之外,还需要设定队列的大小,以防内存溢出的情况。

上图是生产者/消费者模式运用在不同VI上的示范,原理相同,在串口接收过程将数据压入队列,在另一个VI界面中,获取一个相同名称为aaa的队列,这样两者便能够相互传递数据,通过引用aaa队列将数据取出并打印在显示控件上即可 。

链接:https://pan.baidu.com/s/1_tXwEpM4ObhQl5Gbc5_VKw?pwd=ku97 
提取码:ku97

  • 11
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
LabVIEW中的生产者/消费者设计模式是一种常用的并行编程模式,用于在多个循环之间传递数据。生产者循环负责生成数据并将其放入队列中,而消费者循环则从队列中获取数据并进行处理。 以下是一个简单的LabVIEW示例,演示了如何使用生产者/消费者结构: 1. 首先,创建一个队列,用于在生产者消费者之间传递数据。在LabVIEW中,可以使用“Enqueue Element”和“Dequeue Element”函数来实现队列的入列和出列操作。 2. 创建一个生产者循环,用于生成数据并将其放入队列中。在循环中,使用“Enqueue Element”函数将数据添加到队列中。 3. 创建一个消费者循环,用于从队列中获取数据并进行处理。在循环中,使用“Dequeue Element”函数从队列中取出数据。 4. 连接生产者循环和消费者循环,以确保数据的正确传递。在LabVIEW中,可以使用“Tunnel”或“Queue”来实现循环之间的数据传递。 5. 运行程序,观察生产者循环生成数据并将其放入队列中,然后消费者循环从队列中获取数据并进行处理。 下面是LabVIEW代码示例: ```labview // 创建队列 queue = New Queue.lvclass:Create Queue // 创建生产者循环 producer loop { // 生成数据 data = Generate Data() // 将数据放入队列中 Enqueue Element(queue, data) } // 创建消费者循环 consumer loop { // 从队列中获取数据 data = Dequeue Element(queue) // 处理数据 Process Data(data) } // 连接生产者循环和消费者循环 Connect producer loop to consumer loop // 运行程序 Run ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值