版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5.2 LabVIEW设计模式一一主/从设计模式和生产者/消 费者设计模式在上一节中曾经谈到过,Nl LabVIEW中提供了六 种最基本的设计模式。本节首先介绍其中的两种:主/从设计模式与生产者/消费者设计模式(Master/Slave designpattern and Producer/Consumer design pattern )。这是由 于这两种设计模式在结构上极为相似(使用的内置函数不同),所以我们在这里将一起来讨论(基本结构参见图5.2-1、图5.2-2 )。Mitt*-时点iwhRiaTi 1 i订 | “4邛 r逊k i- (T- |TO*;址严 呻-r石?lITck la
2、 it*;!曲h卫卯师图5.2-1主/从设计模式图5.2-2生产者/消费者设计模式5.2.1 主/从设计模式(Master/Slave design pattern )与主/从设计模式的相关内置函数(Notifier_通知)参见下图所示.MFunciiomPr tgiramihin piG.lsNotifier Opfir&tiomE *Notifiur Operst onsMea ju rttntnt I/O 屏倔亍口叭鼻饭i/O ViaDn and iMlstiDHA/1埶h诃a叫PrDEiTTng Oaf CcmrnviiiEiTi&q onriKEiiiMlTyM*S-ii(bConf
3、t fd D: pn 鼠 SimLil-stiax1AddendFaDrile昭 Lib 2Im Snlrct s VLn F/ FuriEiliS J KI Teellnti O-prnG图521 -1 主/从设计模式内置函数(通知)关于这些内置函数的定义和使用方法请参考LabVIEWHelp文件,这里就不再进行讨论了对于绝大多数LabVIEW勺学习者来讲,仅仅依据这些主 从操作提供的内置函数(通知) ,即便是借助于帮助文件也 很难理解和设计出正确勺应用程序代码或基本架构。因为 这些 内置函数勺内部程序代码是不对外开放勺、不公开勺,所以我 们也就很难理解勺更准确或更全面。那么如何正确勺使用它
4、们呢? 通常有两个最简单、最直接勺方法可以解决这个问题: 一是,查看 NI 给出勺设计模式或例程;二是,查看其它使用者 所提供勺实用例程。其实,这里也再次间接勺告诉大家,更多查看和理解其它LabVIEW开好者所提供的实用例程是学习 LabVIEW勺最好方 法之一。通过图 5.2-1 ,就可以初略地领会到 NI 基于数据流的图形化代码主从设计模式的表达形式或架构。从图 5.2-1 中,可以看到主从设计模式的基本 构成是:包括了两个 While 循环(上面为主循环、下面的为从 循环)和若干个“通知”内置函数( Notifier )构成。主 循环 中的 Case 结构用来确定是否向从循环发出通知。该
5、设计模式支持图形化代码的多种数据类型的数据 输入(图 5.2-1 中的数据类型为:字符串) ;并且用一个 Stop 按键来控制这两个 While 循环的停止。如果用“高亮执行”方式来查看它的数据流运行状 态时,我们会发现:当主循环中的 Case 结构的条件输入端为: F 时,主循环不会发出通知,从循环也不执行任何操作; 当主 循环中的Case结构的条件输入端为:T时,主循环发出通知, 从循环执行相应的操作。当我们按下“ Stop ”键时,主循环停 止并利用错误簇(表现为:出现错误)通知 从循环也停止。主从设计模式工作时,数据(元素)传递是发 生在两个 While 之间,依据 While 循环的
6、数据流工作原理,我 们的确很难理解数据是如何在两个 While 循环之间传递的 。这 使得这种结构的两个 While 循环之间传递数据的关系看起来有 点象全局变量(或本地变量) 。其实,它与全局变量功能上是相近的,但还是有些区别。其中最主要区别在于:负责产生信息的主循环必须保持 循环查询数据是否发生变化。在数据没有发生改变的时候,从 循环结 构则完全停止执行,只有当新数据可用时才重新启动 (通知)。这就会使计算机减少浪费在无止境的轮询中的时间。 另外,全局变量破坏了数据流的关系,而这里则完全保证了数 据流 的关系。主从设计模式主要用来解决两个或多于两个的同 时发生的并且拥有不同运行速率的线程的
7、通信应用中或者在运 行于同一台机器的两个 VI 之间通信的工具。这种方式一般用来 同步 两个独立的进程,所以它的这些内置函数是分类在函数选 板的同步模版中。其实,在数据采集和处理中,更需要这种主从构架的应用。比如,在连续数据采集和分析、处理中,我们可能会将采集、分析、处理放在一个 While 循环内。那么 While 循 环运行一次的时间就是采集、分析、处理这三部分运行时间之 和。如果任务中需要快速采集和实时处理,显然这种在采集、 分析、处理同放在一个 While 循环中的方式很不好, 很可能导 致数据采集的不连续性(数据时间上出现间断点) ,也就是采 集完后将等待分析、处理完成后才能再次进行
8、采集。如果真的不希望这种情况发生,那就可以通过采用 主从设计模式来解决这样类似的问题。比如,将数据采集放 到主循环中,分析和处理放置到从循环中。由于我们不是LabVIEW内置函数的设计者,所以不清楚主从设计模式的数据存储方式,所以我们只能认定:这 种工作方式当 Send Notification 有效时,元素被存储,当 Wait on Notification 有效时,元素被读取,从而实现主从 结构间的数据传递。这样做就会高枕无忧了吗?其实不然!这种构架的缺点是:如果取走元素的速度慢,而发送元素的速度快,則会发生元素漏掉的情形。为了验证这样的说法,我们做一个简单的验证程序。例 5.2.1-1
9、主从结构数据传递试验图 5.2.1-2 是该程序的程序框图Th 雲 出叩沖 llbj忡利厨审 blrw 和 4* 也 yB i E-Irfiur .u.B4iiljH 4审宿-.tfiuu. &n Nsl! rl c Bfl Ti IZJ利hu ih审斛TWtvifiir hti ch” 孑图521-2主/从模式数据传输试验程序框图主循环产生一个随机数并发送到从循环,在每个循环中各放置一个Chat图形显示器来观察随机数发送和接收的情况。主/从循环各放置一个定时器,选择不同的定时时间来验证数据传输的正确性。1、主循环定时:150ms从循环定时:150msA.32hin 21-硼- 血0-D占Od
10、-010.21 1-IifiiTimeAjZha rlPl DtCo.on.li.fl.业 CIO.D. wpm=aE图521-3 主循环、从循环定时均为 150ms从图5.2.1 -3可以看出数据传递是准确可靠的2、主循环定时:200ms从循环定时:150ms图 5.2.1 -4 主循环定时200ms从循环定时为150ms从图5.2.1 -4也可以看出数据传递是准确可靠的3、主循环定时:150ms从循环定时:200msCJprq-aE/kuiii i 亡:f 叮7* rsip- iFiin勺勺 p O口cmM二clUJrr,|11 lau. ! LLiH-lWFIHr IIuh0!Eiivb
11、Mrv lbw qkius JCC j ?r 匚 LL ruwr-ldi!I cw和jF.c&f ir k I iW 时LLruui-Tiil农菱沁m Chsr I 是aXI匸迪 上E兰快It$rl JThh c Vlefi Lu k*rttT|lie ds 5*t f ur i *图 5.2.2-2生产者/消费者模式数据传输试验生产者循环产生一个随机数并发送到消费者循环, 在每个循环中各放置一个 Chat图形显示器来观察随机数发送和 接收的情况。生产者/消费者循环各放置一个定时器,选择不 同 的定时时间来验证数据传输的正确性。1生产者循环定时:150ms消费者循环定时:150ms4-hf i
12、 n rj i11.1-D- 打Timi.eW前4et Cl- irt 2缶L叮a jFl pi 0ai图522-3 生产者循环、消费者循环定时均为150ms从图5.2.2-3可以看出数据传递是准确可靠的2、生产者循环定时:200ms消费者循环定时:150msWat. uf-ritiWnu&frM C-tsrrHEas二-2一二石0anCZan 1i-Im- -iiF3ct 血T i mefl H Ijjpn 悩-.CiBvta kh F.#:.i *nrii.fcv p* STM?*;S,.匚Efit?irv ihi AI, 口he 山.JlITB n.1. 亠 ML 0 iuri k_i 丄L X- iic tir-a v*jg-ihv wviv-l IXpm ih drill iFGT;I 勺曲 Ih4 KqaMfllt-fliP I 匸 u tM Qma 曰 taitDiP?j-jL-J”ajiruu Siu:tnII 十 I-7?-.痿亍in- , mpc处:|EaSnunnir Lcrp|
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 19045-2:2024 EN Ophthalmic optics - Contact lens care products - Part 2: Method for evaluating disinfecting efficacy by contact lens care products using trophozoites of
- GB 4407.2-2024经济作物种子第2部分:油料类
- 总经理聘用协议+合同范本
- 2024版物联网技术研究与应用开发合同
- 全新委托进口代理合同模板下载
- 质损车销售协议完整
- 物理化学教学课件:12-06
- 二零二四年度跨境电商合作运营合同2篇
- 品质保证协议书
- 铝合金门窗产业链合作协议2024
- 人力资源许可证制度(服务流程、服务协议、收费标准、信息发布审查和投诉处理)
- 开具保函委托协议书范本
- 坠床不良事件分析分析报告
- 国开本科《行政法与行政诉讼法》期末考试(案例分析题)总题库
- 欧洲央行-破产中的公司重组与劳动分配(英)
- QC/T 242-2024汽车车轮静不平衡量要求及检测方法
- 2024-2030年中国钒酸铋市场当前竞争现状及前景动态研究研究报告
- 《少年闰土》学习任务群教学设计
- DL∕T 956-2017 火力发电厂停(备)用热力设备防锈蚀导则
- 国家开放大学电大《11662会计信息系统(本)》期末终考题库及标准参考答案
- 2024交管12123学法减分考试及答案
评论
0/150
提交评论