今日分享一个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