LabVIEW之生产者/消费者模式--队列操作

发布者:幸福旅程最新更新时间:2016-07-28 来源: eefocus关键字:LabVIEW  生产者  消费者模式  队列操作 手机看文章 扫描二维码
随时随地手机看文章
      本文章主要是对学习LabVIEW之生产者/消费者模式的学习笔记,其中涉及到同步控制技术-队列、事件、状态机、生产者-消费者模式,这几种技术在在本章中都会有侧重点的进行介绍和总结!
  • 队列同步技术-操作函数

      同步控制技术可以实现在多个VI之间或者同一VI 不同县城之间同步任务和交换数据;在LabVIEW中提供了‘同步’函数选板,包括通知器、队列、信号量、集合点、事件、首次调用函数,本文主要关注同步控制技术之队列技术:

队列操作函数:

1 “获取队列引用”函数

 2 "元素入队列" 和 “元素出队列” 函数

函数作用:将元素入队列和出队列用(没什么好说的!)
超时毫秒(-1)端子:如果未连接,默认输入值为-1,表示永不超时,如果队列满,则一直等待直到队列有空位为止;
                如果连接端子,则新元素等待设定时间后仍无法入队列,则结束本次等待!

 3 “最前端插入元素” 和 “有损耗元素入队列” 函数

函数作用:将元素插入队列,不过插入队列方式有区别;
元素入队列、最前端插入元素、有损耗元素入队列三者区别:
”元素入队列“函数采用先入后出次序,而“最前端插入元素”函数则采用后入先出(FIFO)的原则,类似于堆栈,因此可以使用队列实现堆栈效果,相比数组实现有优势;
“元素入队列”函数如果队列满,则线程等待,直到有空位为止;“有损耗元素入队列”在这种情况下则会自动删除队列前端元素,并在末端插入元素,可以用于实现缓冲区效果;

      4 “预览队列元素”函数

预览队列元素和元素出队列区别:当返回队列前段的元素时,是否删除该元素!

5 “获取队列状态”函数:主要用于判定队列引用是否有效!

6 “清空队列”和“释放队列引用”函数

“清空队列”函数:清楚队列所有元素,并以数组形式返回元素,用于一次全部读取队列元素;

  • 队列课后练习

     1 基于队列的数据采集系统

      

复制代码
在此程序设计中学习到的知识:
1 数据类型和采用显示控件的关系:此队列的数据类型为一维数组,所以在元素出队列时的元素也为一维数组,因此要采用波形图空间;
2 子程序VI中设置了“等待函数”,但是没有while循环,将子VI放入while循环中,相当于在while循环中添加了“等待函数”,其实对其的理解可以从c语言中加深理解;
3 while循环中停止条件的处理:对于入队列循环,停止只意味着本循环停止,但并不意味着整个程序停止运行了,因为还有两个循环在运行;对于元素出队列循环,当元素空的时候会发生超时错误,进而停止本循环;在元素出队列循环停止后会销毁队列引用,从而导致获取队列状态循环出错,进而停止循环。具体结果如下:

复制代码

 2 队列传递数据练习

此程序学到的知识:
1 队列数据类型设置为常量,所以用于数据显示的控件为波形图控件;
2 注释的箭头设置:函数->编程->结构->修饰
    

 3 多数据源输入队列程序

此程序学习知识点:
1 对于队列的创建:通过队列创建函数的名字搜索该引用,如果没有则创建,如果有,则直接加入队列
2 此程序采用三个while循环创建三个线程,并将数据同时加入一个队列中,并最终进行显示
3 注意此程序中对while循环的停止条件的处理;

关键字:LabVIEW  生产者  消费者模式  队列操作 引用地址:LabVIEW之生产者/消费者模式--队列操作

上一篇:LabVIEW之安装队列工具包AMC安装问题解决
下一篇:labVIEW学习——属性节点

推荐阅读最新更新时间:2024-03-30 23:19

基于LabVIEW的电池管理系统监控平台开发
1 引 言   动力电池集成作为电动汽车核心技术之一对电动汽车运行的性能有着决定性的作用, 为保证动力电池安全且高效的应用, 需要对其运行状态进行实时在线的监测并同时对其进行控制, 电池管理系统在动力电池与整车控制之间起到了这样关键的桥梁作用。为保证电池管理系统为电动汽车提供准确可靠的动力电池信息并对电池进行可靠的管理, 需要对电池管理系统自身运行的各项功能进行实时的监测, 以及对电池运行数据进行采集分析, 同时在动力电池系统出现故障时需要对其进行诊断, 基于LabV IEW 的电池管理系统监控平台即是为实现上述需求而开发设计。   LabV IEW ( Labora tory V irtual INStrumentat
[电源管理]
labview编程技巧---定点数转换
接收到一串PCM数据,如下: 0000 1264 C97C 8937 77C8 3783 EE9B 0000 说明两个字节对应一个点的数据(高低位互换后,如:1264(存储时的样子),实际数值为:6412(16进制),他们对应的10进制浮点数如下: 0 0.781831482452 0.9749279121932 0.4338837391869 -0.4338837390251 -0.9749279121533 -0.781831482564 -1.79586368671E-10 问题: 例如: C877 (16进制) = -0.4338837390251 (10进制) 如何计算?如何判断这是个负数? 如何判
[测试测量]
<font color='red'>labview</font>编程技巧---定点数转换
使用LabVIEW 与 NI FlexRIO实现基于FPGA的单原子反馈控制
图1. 用于研究光与物质基本相互作用的激光系统的一部分。系统包括多种透镜,镜面,以及光学模块。 "使用NI FlexRIO,我们定制了自己的高性能硬件设备。基于LabVIEW FPGA,我们能够快速开发FPGA代码,因为它具有很高程度的概括性,同时适当地集成了VHDL IP" – Christian Sames, Max-Planck Institute of Quantum Optics The Challenge: 开发一种定制的时域数字转换器来研究光与物质相互作用的基本量子性质。 The Solution: 使用NI公司的 FlexRIO 与 LabVIEW FPGA模块来创建强大的,多功能的定制仪器,从而使我
[测试测量]
使用<font color='red'>LabVIEW</font> 与 NI FlexRIO实现基于FPGA的单原子反馈控制
LabVIEW中用时间命名文件方法解析
早上为了用系统时间给采集的数据文件进行命名而弄了老半天,所以现在整理一下,既为以后不时之需,又为具有同样问题的同仁提供参考! 程序的截图如下: 图中, 基本路径 是用来提取所要存放的文件位置的,我这里选择了桌面。后面的 1.txt 当然是随便选的,因为路径必须选到具体文件才能点确定。当然,我们也可以将文件存储在当前vi的位置,用的是 Current VI's Path (见下图)。 图中的 ..\files 是要新建的文件夹的名字,如果直接保存的话这一步就可以省略了,不过一般生成的文件还是分文件夹保存比较好(要养成好的编程习惯哦O( _ )O~)。 下面的 .txt 当然就是要保存的文件
[测试测量]
<font color='red'>LabVIEW</font>中用时间命名文件方法解析
LabVIEW中通过ADO创建一个Access数据库
这个问题在网上问的多,回答的倒是没看见。今天用到了就自己做了一个。下面把编程步骤和大家分享,希望对正在寻找答案的朋友有所启发。 第一步:在前面板上添加一个空的ActiveX(自动化)引用句柄 图1:创建ActiveX引用 第二部:浏览ActiveX类库,并从类库中Microsoft ADO Ext.2.8 for DLL and Security Version 2.8 图2:浏览ActiveX类库 图3:查找需要的类库 第三部:就是进行ADO的调用了,打开自动化连接,通过Create方法创建数据库。代码如下: 代码中的d:\test.mdb是数据库的保存路径和文件名,可
[测试测量]
labview事件结构中类型输出数值与其事件名称的对应关系
事件类型 输出数值(类型节点) 另外: 可通过右键某控件----高级----自定义 来创建 自定义控件!然后保存控件 方便下次使用! 其格式为.ctl 格式!
[测试测量]
基于LabVIEW的多通道温度测量系统设计
为了多种应用环境下的多点温度测量,设计一种基于LabVIEW的多通道温度测量系统。系统是基于LabVIEW图形化开发环境,利用RTD作为温度传感器,连续采集传感器信号,经过N19219四通道RTD输入模块进行信号调理,通过USB接入计算机,进行信号的连续采集测量,实时显示各通道信号并进行温度数据的分析处理。系统测试结果表明,测量系统的精度为0.01℃,有效测量范围为0~+300℃,验证其有效可行。 温度是工业生产和科学实验中常见的工艺参数之一,而且在许多工程项目中温度指标也是不可或缺的重要参数。例如碳化铁反应速率随操作时的变化而升降,反应过程中操作温度的高低不但影响反应完成所需的时间,还影响到转化率的大小。因此,准确、方便地获取
[测试测量]
基于<font color='red'>LabVIEW</font>的多通道温度测量系统设计
基于虚拟仪器的电梯上行超速保护装置检测系统
0 引言 电梯作为一种载人的起重运输设备被广泛应用于各种场所,保证电梯的安全可靠性是非常重要的。根据曳引式电梯的工作原理在电梯的运行中有超过一半的时间是对重侧重于轿厢侧,因此电梯上行超速和下行超速的事故率几乎相同,这是非常严重的。国家标准《电梯制造与安全规范》(GB7588-2003)第9、10条明确规定了在曳引驱动电梯上必须安装上行超速保护装置。作为电梯最重要的安全部件之一,主要用来解决电梯上行超速冲顶事故。因此对上行超速保护装置出厂前的检测直接关系到电梯的安全,根据该装置工作原理和结构特点提出了将检测技术和虚拟仪器技术应用到检测系统中的检测装置。该装置具有准确性、高效性、可靠性和先进性。 虚拟仪器是在以PC为核心的硬件
[测试测量]
基于虚拟仪器的电梯上行超速保护装置检测系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved