首页 > 应用 > 测试测量
[导读]无意中发现,labview中的队列在编程中简约且实用。用白话描述一下队列就是:创建一个栈,先入先出的栈,通过元素如队列将该元素压进栈,通过元素出队列将元素弹出。同时,可以设置队列的大小,当队列满的时候,协调队

无意中发现,labview中的队列在编程中简约且实用。用白话描述一下队列就是:创建一个栈,先入先出的栈,通过元素如队列将该元素压进栈,通过元素出队列将元素弹出。同时,可以设置队列的大小,当队列满的时候,协调队列的输入和输出,让输入(也就是元素如队列)等待,直到出现了存储空间,才执行输入。下面是队列的函数,包括:
我们看一个典型应用:(这个是labview帮助里面的例子)


前面产生一个随机数,压进队列,后面的循环从队列中读出元素。这两个循环可以设置不同的循环时间。当入队列的时间快于出队列的时间,队列很快就会满掉,此时,队列调节入队列循环等待,当有空间时,执行如队列循环。当入队列时间小于出队列时间时,后一个循环等待队列中存在元素时,才能够读取元素(元素出队列)。t入反之:

队列先解释道这了。我现在就想试试字符串是不是可以压进队列,同时读出来会是什么样子。下面的实验就是:我谢了这样的一段代码,是想让字符串输入队列再读出来。框图如下:
发现这段代码执行不下去。一直在执行但是不能结束。经过分析,我认为是这样的:由于我把队列的大小设置成为2,而我需要雅茹三个元素,所以,必须等待有一个元素被读取之后,才能将第三个元素压进去。而我设计的这个程序有问题,问题在于:我的后一个循环的队列引用是从第一个循环传过来的,第一个循环没执行完,那么第二个循环就无法执行。但是第一个循环要想结束,必须需要将第三个元素压入,但是条件是第二个循环读出来一个元素。他们互相限制,自然就死循环了。于是把程序框图改成:
队列引用菜前面直接引过来,就不会出现这样的问题。并且所有的三个元素没有丢失。能够全部压进队列并被独取出来。另外:如果设置的是字符串的话,确实是以字符串为单位的。压入的时候什么样子,读出来就是什么样子。就像一个字符串数组一样。OVER

本文引用地址: http://www.21ic.com/app/test/201807/791951.htm

换一批

延伸阅读

[测试测量] labview实现串口通信(三)

labview实现串口通信(三)

在调试的过程中,我们经常会发现有收到的数据延迟的现象,现在提出几点解决的方法:(1)在循环中加入适量的延时,通过一个简单的例子看,你会发现在cpu的占用率在加延时和不加的时候有很大的区别,当加的时候基本不占......

关键字:labview 串口通信

[测试测量] [LabVIEW]基于LV的CAN报文数据解析

[LabVIEW]基于LV的CAN报文数据解析

今天做了这个东东?CAN报文数据解析前面板?逻辑框图?前面板中将列表控件作为输入,自己假设一些CAN报文输入进去。??列表中的PF列及为数据报文,是我们感兴趣的内容,主要解析这部分,因为输入的数据是16进制的字符串,......

关键字:LabVIEW CAN 报文数据

[测试测量] LabVIEW程序设计模式(五)—生产者/消费者模式(2)_VI的可重入性

LabVIEW程序设计模式(五)—生产者/消费者模式(2)_VI的可重入性

在介绍VI的动态调用之前有必要对LabVIEW在执行VI过程中的规则有个大致的了解。众所周知,LabVIEW是通过VI的文件名(VI Name)来表示独立的VI的,并不是VI的路径。因此,LabVIEW不允许具有相同名字的VI同时载入内存中......

关键字:LabVIEW 程序设计模式 可重入性

我 要 评 论

网友评论

技术子站

更多

项目外包

更多

推荐博客