基于生产者_消费者的数据采集系统设计.pdf

上传人:qwe****56 文档编号:74678594 上传时间:2023-02-27 格式:PDF 页数:5 大小:1.01MB
返回 下载 相关 举报
基于生产者_消费者的数据采集系统设计.pdf_第1页
第1页 / 共5页
基于生产者_消费者的数据采集系统设计.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《基于生产者_消费者的数据采集系统设计.pdf》由会员分享,可在线阅读,更多相关《基于生产者_消费者的数据采集系统设计.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、机械 2011 年第 09 期 总第 38 卷 计算机应用技术 39 收稿日期:20110506 作者简介:雷晏瑶(1985),女,山东青岛人,硕士研究生,主要研究方向为测试与智能仪器。基于生产者/消费者的数据采集系统设计 雷晏瑶,李智(青岛大学 机电工程学院,山东 青岛 266071)摘要:以 LabVIEW 为开发平台,介绍了生产者/消费者架构的设计思路和实现过程。详细介绍了以生产者/消费者为架构并结合事件响应机制创建的数据采集系统,可实现多通道数据的采集、数据的在线分析、数据的存储与复现。另外,该系统还具有友好的人机界面,可以有选择性地显示多个通道的数据波形及分析数据,且方便对之进行维护

2、和实现功能的扩充。结果表明在对实时性和连续性要求较高的数据采集系统的程序设计中采用生产者/消费者架构,可使程序响应时间更快、执行效率更高。关键词:LabVIEW;数据采集;生产者/消费者结构;事件结构 中图分类号:TP274+.1 文献标识码:A 文章编号:10060316(2011)09003905 Design of data acquisition system based on producer/consumer LEI Yan-yao,LI Zhi(College of Mechanical and Electronic Engineering,Qingdao University,

3、Qingdao 266071,China)Abstract:The designing idea and realization process of the Producer/consumer structure is described on the LabVIEW platform is given.The data acquisition system which is constructed by taking Producer/Consumer structure as a framework and combining with event respond mechanism i

4、s introduced in details.The system can realize the data acquisition with multi-channels as well as real-time data analysis,data store and recall.In addition,the system can also provide a friendly Human-machine interface which can selectively display multi-channels data waveform and analyzed data and

5、 be convenient for the system maintenance and function expansion.The result shows that the adoption of the producer/consumer structure in the use of program design which has serious request in real-time and continuous data acquisition system can make the processes response faster and more efficient.

6、Key words:LabVIEW;data acquisition;producer/consumer structure;event structure LabVIEW 是一种图形化的编程语言和开发环境,它广泛地被工业界、学术界和研究实验室所接受,被公认为是标准的数据采集和仪器控制软件。它是一种面向最终用户的开发工具,可以增强工程人员构建自己的科学和工程系统的能力,可为实现仪器编程和数据采集系统提供便捷途径1。本文以 LabVIEW 2009 为开发平台,着重介绍生产者/消费者架构的实现以及在数据采集系统中的应用。40 计算机应用技术 机械 2011 年第 09 期 总第 38 卷 1 L

7、abVIEW 编程架构 提到架构,首先想到的是静态单循环结构顺序结构,程序按照依次的顺序执行最终完成设计任务;其次是动态单循环结构状态机,它实现了状态之间的跳转,提高了程序设计的灵活性,满足了一些较为复杂程序的设计要求。但是这两种架构都是单循环结构,如果要设计一个数据采集系统,要在采集信号的同时分析数据,而数据产生的速率又快于数据分析的速率,为了不让数据丢失,这时就需要并行的多循环结构。1.1 生产者/消费者结构 生产者/消费者结构采用了队列的数据存储方式。队列的数据存储是开辟一个缓存区,依据先进先出(First Input First Output,FIFO)的原则进行的。新来的元素总是被加

8、入队尾,即不允许“加塞”;每次离开的元素总是队列头上的,即不允许中途离队,当前“最老的”元素离队。这样就保证了数据传递过程中不会出现数据丢失的现象2。一般的数据采集系统是通过数据流的方式对数据进行一次采集一次分析,然后再进行第二次采集第二次分析,如此往复,而这样的过程会增大数据采集周期3。生产者/消费者结构,则可以通过并行的方式实现多个循环,从而可以避免时间的延迟所导致的数据丢失。通常可以在多个位置向队列中写入元素,即多生产者,而只应在一个位置从队列中取出元素,即消费者。如果感觉需要多个消费者,则应该为每个消费者创建各自的队列。1.2 事件结构 事件结构是一个功能非常强大的编程工具,用于编写等

9、待事件发生的高效代码,代替循环检查事件是否发生的低效代码。在 while循环中放置一个事件结构,是事件结构的常见用法,也是最好的用法。事件结构可以捕获在VI(虚拟仪器程序)运行时任何时刻发生的事件,而不仅是事件结构等待时发生的事件。当VI 首次运行时,事件结构在后台创建一个事件队列以缓存事件。当事件发生时,将事件放入事件队列。当事件结构执行时,将从队列中取出最早的事件 FIFO。如果队列中没有事件,将一直等到下一事件发生。因此最终结果是,无论是处理事件过程中或处理事件后发生的事件,事件结构都不会遗漏,在事件结构处理这些事件之前将一直保存在事件队列中4,5。1.3 程序架构的实现 实验需实现对转

10、子试验台的 5 路传感器信号实现实时采集、数据存储和数据分析与显示等功能。采集设备为美国 NI 公司(National Instruments)的 NI ELVIS II+,可同时实现 8路模拟信号的输入,驱动为 DAQmx。整个程序设计建立在上述生产者/消费者架构上。根据实验要求建立三个循环、两个队列。第一个循环为事件响应循环,在程序运行的整个过程中,测试前面板控件的值并执行相应的程序(图 1);第二个循环为数据采集循环,循环内包含一个有四个分支的 case 结构,四个分支分别为:“initialize”、“idle”、“read”、“exit”;第三个循环为数据分析循环,循环内包含一个有两

11、个分支的 case 结构,为“真”和“假”。两个队列分别是数据采集队列(图 2)和数据分析队列(图 2)。队列数据类型为枚举类型,元素与数据采集循环中 case 结构分支四个状态一一对应。该队列包括三个生产者与一个消费者:第一个生产者(图 21.1)机械 2011 年第 09 期 总第 38 卷 计算机应用技术 41 将元素“initialize”入队列执行程序的初始化设置;第二个生产者(图 21.2)用来控制循环的下一个状态;第三个生产者(图 21.3)与事件响应循环相结合,控制对事件的响应;消费者(图 21.4)的元素输出端与 case 分支选择端相连,连续不断地从队列中取出元素,控制执行

12、不同状态的程序。队列的数据类型为波形数组,该队列包括一个生产者与一个消费者:生产者(图 22.1)放在数据采集循环的“read”分支中;消费者在数据分析循环中,将“超时”端与 case 分支选择端相连,判断是否执行数据分析。(a)(b)(c)图 1 事件结构 图 2 数据采集系统程序框图 这样三个循环并行执行,使程序响应时间更快、执行效率更高。因此,生产者/消费者架构的提出满足了编程中同时进行多个过程又不会相互影响执行速度的需要,同时将事件结构放入生产者循环,通过队列将事件信息传递给消费者,在消费者中得到响应,使得原有的事件结构更加灵活,大大提高了处理的效率和程序设计的灵活性6。2 系统程序设

13、计 2.1 数据的采集 程序运行时自动进行初始化设置,如对前面板位置、前面板运行状态、各控件初值等的设置,随后将元素“idle”入队列,程序(图3)自动进入“idle”分支,在该分支中设置采样模式为连续采样,在前面板中可设置采样率、每通道采样(即缓冲区大小)。设置前面板中【停止】按钮的机械动作为“释放时触发”,由该按钮控制布尔型全局变量的值,从而判断是否执行“DAQmx Start Task.vi”。另外,“idle”分支为默认分支,采集任务没有开始时,该循环将连续执行此分支中的程序。当按下前面板的【开始采集】按钮后,事件结构产生响应,元素“read”入队列,数据采集循环进入“read”分支,

14、执行“DAQ mx read(Anolog 1D Wfm Nchan Nsamp).vi”,这样每循环一次数据采集卡便以快速连续的方式对所有通道进行采样。由于此时全局变量值为“假”,所以执行元素入队列操作,将读取到的数据输入队列中。当按下【停止】按钮,则全局变量的值为真,执行“DAQ mx stop task.vi”,采集任务终止并停止向队列中输送波形数据。再次按下【开始采集】按钮后,采集任务继续执行。图 3“idle”分支程序框图 42 计算机应用技术 机械 2011 年第 09 期 总第 38 卷 2.2 多通道数据的分析与显示 队列的“元素出队列”函数的“超时”端口值为“假”,同时在程序

15、的前面板中设置每个通道的开关状态,并结合选项卡控件,便可以显示不同通道采集到的数据及实时在线分析,包括时域波形、自功率谱图、XY 图等。时域波形的分析主要包括对波形的均方根值、频率值、幅值等数据的测量,并将测量结果显示在时域波形下方。主要用到的 API函数有:基本平均直流均方根(Basic Averaged DC-RMS.vi)、提取单频信息(Exract single tone information.vi)、幅值和电平(Amplitude and levels.vi)。由于是多通道采集,如果将所有通道的测量结果都显示出来会显得前面板杂乱无序、不直观、不易于进行数据的对比与分析,因此在程序的

16、设计中,将各个通道的选择开关创建成布尔数组,再经过转换变成整数,最后连接到条件结构的选择器接线端,将条件结构的基数选择为二进制表示,这样可以清楚地看出对每个通道的选择情况。同时将通道选择开关链接到时域波形的属性曲线可见节点上,这样只有被选择的通道才会在前面板中显示图形。如:当通道 ai0、ai1、ai2、ai3、ai4、ai5 值分别为真、假、假、真、假时,选择器接线端则执行值为 01001 的程序,即只显示通道 ai0 和通道 ai3 的测量数据和波形图(图 4)。这种多通道显示数据的编程方法简单、明了、易于扩充,可在设备允许的通道数范围内任意扩充。图 4 数据采集前面板 多态 DAQ mx

17、 read.vi 所读到的波形以数组形式存放,因此对波形的时域分析(图 5)、自功率谱图(图 6)、XY 图(图 7)等一系列谱图的在线分析都需要使用索引波形数组函数(Index waveform array.vi),根据通道名称或者索引值索引所需单个波形,分别输入自功率函数、XY 图等进行分析。图 5 时域分析子 VI 程序框图 (a)(b)图 6 自功率谱分析子 VI 程序框图 图 7 轴心轨迹分析子 VI 程序框图 2.3 数据的存储与回放 由于实验是多通道数据采集、且采样速度要求较高,因此数据量较大。为了方便存储和管理这些数据,程序采用 TDMS(Technical Data Mana

18、gement Streaming)文件格式7。数据存储程序框图见图 8。该段程序是放在数据采集循环中的,循环一开始就创建 TDMS 打开.vi 等待写入数据,将前面板的存储按钮的机械 2011 年第 09 期 总第 38 卷 计算机应用技术 43 机械动作设为“单击时转换”在数据采集的过程中当按下该按钮后,条件结构选择器接线端为真,执行“数据的写入.vi”,再次按下时则取消存储。在事件结构中添加“回放”:值改变”事件,并将回放控件的机械动作设置为“释放时触发”,这样在程序运行的任何阶段,只要按下回放按钮就可以打开“TDMS 文件查看器.vi”,可以对不同的通道所采集的数据进行数据与图形的查看,

19、并且为后续离线分析的程序设计奠定了良好的基础。图 8 数据存储程序框图 3 结语 基于生产者/消费者构建的数据采集系统易于维护和功能的扩充;采用队列的数据传输方式满足了数据缓存的需要;使用并行执行的多循环提高了程序的效率,同时能避免数据采集周期与数据分析周期不一致造成的数据丢失或数据重复利用问题;事件响应机制可以控制程序执行流程的改变,且又不占用、浪费CPU 资源,能够很好地响应前面板动作;多通道数据的显示便于对各通道参数进行性能分析,对设备运行状况实时监控。参考文献:1侯国屏,王珅,叶齐.LabVIEW7.1 编程与虚拟仪器设计M.北京:清华大学出版社,2005.2Rick Bitter,T

20、aqi Mohiuddin,Matt Nawrocki.LabVIEW Advanced Programming Techniques(Second Edition)M.BocaRaton:CRC Press LLC,2007.3叶枫桦,周新聪,白秀琴,郭智威,袁成清.基于 LabVIEW队列状态机的数据采集系统设计J.现代电子技术,2010,(04):204-207.4Jeffrey Travis,Jim Kring.LabVIEW for EveryoneM.New Jersey:Prentice Hall PTR,2008.5 Travis J.,Kring J.LabVIEW 大学实用

21、教程(第三版)M.北京:电子工业出版社,2008.6唐进元,李松,邵文.基于 LabVIEW 生产者消费者模式的齿轮传动振动测试系统J.机械传动,2011,(01):5-7.7Conway J,Watt s Steve A.Software Engineering Approach to LabVIEWM.New J ersey:Prentice Hall PTR,2003.8孟凯,陈小虎.基于 LabVIEW 的数据采集、监测系统设计J.机械,2009,(11):41-43.(上接第 30 页)(2)用位移势函数和拉普位移函数叠加的方法找到了满足轴孔过盈配合空间轴对称微分方程和边界条件的位移

22、函数,求出了轴孔过盈配合问题的解析解。(3)轴孔过盈配合的过盈量越大,应力也越大。应力大小与轴和孔的内/外径相关。(4)求出了设定边界条件下轴孔过盈配合边缘应力集中的解析解,找到了产生应力集中的原因,并提出了减小应力集中的方法。参考文献:1魏延刚.轴毂过盈联接的应力分析和接触边缘效应J.机械设计,2004,1(1):36-39.2徐芝纶.弹性力学M.北京:高等教育出版社,1990.3陆明万,罗学富.弹性理论基础M.北京:清华大学出版社,1990.4钱伟长,叶开源.弹性力学M.北京:科学出版社,1983.5刘小明,愈进萍,谭道宏.弹性力学题解M.武汉:华中科技大学出版社,2003.6周邦寅,王一平,李立.数学物理方程M.北京:电子工业出版社,2005.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁