ImageVerifierCode 换一换
格式:PPT , 页数:141 ,大小:4MB ,
资源ID:15040636      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15040636.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(精讲LabVIEW设计模式PPT资料.ppt)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

精讲LabVIEW设计模式PPT资料.ppt

1、通用型通用型:状态机模式、消息队列模式、用户界面事件模式专用型:专用型:主从线程模式、生产/消费模式、后台服务模式、应用程序启动模式、代理模式LabVIEW设计模式设计模式基本工具基本工具循环结构移位寄存器分支结构枚举型常量事件结构状态机模式状态机模式“我需要执行一系列的事件步骤,但是步骤顺序我需要执行一系列的事件步骤,但是步骤顺序可通过编程决定的。可通过编程决定的。”自动贩卖机模型自动贩卖机模型InitializeWaitChangeQuarterDimeNickelExitVendNo inputQuarter DepositedTotal=50Change RequestedDime D

2、epositedNickel DepositedTotal 50Total=50Total=50Total 50Total=50基本三要素:基本三要素:状态、事件、动作状态、事件、动作背景背景动态结构:允许不同的状态,按通过编程决定的顺序进动态结构:允许不同的状态,按通过编程决定的顺序进行执行行执行静静态顺序序结构构状态机结构状态机结构对于一个最简单的状态机结构而言,它是可以用顺序结构代替的;而对于相对复杂的状态机结构而言,却可以作为测试流程的组织者和管理者。在在LabVIEW下实现状态机结构下实现状态机结构While循环+Case结构每一Case即为一个状态当前状态中需有决定下一状态的判定代

3、码使用枚举常量枚举常量通过移位寄存器传递至下一状态 切切换代代码工作流程工作流程初始状初始状态FIRST STATE下一状下一状态 执行步行步骤移位寄存器用于传递状态Case结构对每一状态都配备一个分支切换代码根据执行步骤中的结果来决定下一状态枚举常量枚举常量 一个自定义的枚举类型对应一个状一个自定义的枚举类型对应一个状态机中的状态集合态机中的状态集合枚举常量枚举常量 枚举类型是一种允许程序员自定义枚举类型是一种允许程序员自定义元素的数据类型,它可以显示数值对应元素的数据类型,它可以显示数值对应的具体含义,帮助程序员理解程序中使的具体含义,帮助程序员理解程序中使用的变量值。用的变量值。枚举常量

4、举例枚举常量举例 控件选板控件选板“Modern”1、枚举控件、指示、常量、枚举控件、指示、常量2、默认、默认U163、修改、修改 Edit Items4、隐式与显式类型转换、隐式与显式类型转换DEMO1顺序型状态机模式顺序型状态机模式数据传数据传递方式递方式DEMO2改进的顺序型状态机模式改进的顺序型状态机模式1、去掉、去掉i 2、添加一个移位寄存器、添加一个移位寄存器DEMO3测试流程型状态机测试流程型状态机1、解决顺序型状态机不便阅读和修、解决顺序型状态机不便阅读和修改的问题,采用枚举型常量。改的问题,采用枚举型常量。2、采用自定义型控件,方便修改。、采用自定义型控件,方便修改。over

5、消息队列模式消息队列模式“我需要执行一系列的事件步骤,但是步骤顺序可通过我需要执行一系列的事件步骤,但是步骤顺序可通过编程决定的。编程决定的。”步骤是由用户界面事件决定的,如某个应用程序共要处步骤是由用户界面事件决定的,如某个应用程序共要处理理4个状态,分别是个状态,分别是A,B,C和和D,前面板有,前面板有3个按钮分别个按钮分别控制控制3种运行时的状态序列种运行时的状态序列ABCD、DCAB和和BDCA。引入消息队列模式,通过建立队列缓冲区来解决这个问引入消息队列模式,通过建立队列缓冲区来解决这个问题,这种模式也称为题,这种模式也称为“队列型状态机模式队列型状态机模式”。消息处理过程消息处理

6、过程建立消息队列加入消息探测消息EXIT?删除消息接收消息执行代码销毁消息队列消息源YesNo队列建立方式队列建立方式队列函数和数组队列函数和数组队列函数队列函数最常用的最常用的4个函数个函数数组数组1、数组函数、数组函数2、配合移位寄存器、配合移位寄存器3、无需手动销毁队列空间、无需手动销毁队列空间数组方式数组方式DEMO队列函数方式队列函数方式DEMO队列函数与数组的不同队列函数与数组的不同1、消息传递方式不同、消息传递方式不同 移位寄存器移位寄存器&FIFO2、释放消息队列的方式不同、释放消息队列的方式不同用户界面事件模式用户界面事件模式“我需要轮询用户的操作,但是这样会降低我程我需要轮

7、询用户的操作,但是这样会降低我程序的运行速度,并且有时我还检测不到序的运行速度,并且有时我还检测不到”LabVIEW中基于事件驱动的编程中基于事件驱动的编程LabVIEW事件示例事件示例 按下鼠标 键盘按键 前面板的用户交互LabVIEW 事件结构事件结构什么是事件结构?带有多个子框图的结构节点,就像条件结构条件结构事件结构是如何工作的?当面板上事件发生时才被唤醒自动执行相应事件框图内的事件代码当处理完成相应事件后便结束,并不一直循环等待为什么要使用事件为什么要使用事件结构结构?用更简单的事件处理替代原来的查询循环最小化 CPU 的使用不会遗漏用户界面交互事件可检测更多的交互事件编程生成您自己

8、的事件编程生成您自己的事件用户界面事件的两种类型用户界面事件的两种类型通知事件通知事件和和过滤事件过滤事件事件源:用户界面事件事件源:用户界面事件用户自定义事件用户自定义事件5个函数个函数用户自定义事件用户自定义事件DEMO事件注册事件注册静态事件注册:只有用户界面事件静态事件注册:只有用户界面事件 选择事件源(程序、选择事件源(程序、VI或控件)、特定事件、编辑或控件)、特定事件、编辑 分支处理事件数据。分支处理事件数据。Vi运行时自动注册。运行时自动注册。动态事件注册:何时产生何种事件动态事件注册:何时产生何种事件静态事件注册静态事件注册demo动态事件注册动态事件注册4个步骤个步骤1、获

9、取要处理事件对象的、获取要处理事件对象的VI服务器引用;服务器引用;2、将、将VI服务器引用连接至服务器引用连接至“注册事件注册事件”函数;函数;3、将事件结构放在、将事件结构放在While循环中,等待处理循环中,等待处理对象事件直到终止条件出现;对象事件直到终止条件出现;4、通过取消注册时间函数停止事件发生。、通过取消注册时间函数停止事件发生。动态事件注册动态事件注册demo最值器最值器用户界面事件用户界面事件demo一个动态一个动态+5个静态个静态状态机状态机用户界面事件混合用户界面事件混合demo初始化时不初始化时不再需要用户再需要用户自定义事件自定义事件其他模式其他模式“我希望同一时刻

10、能够处理多个消息事件,而不我希望同一时刻能够处理多个消息事件,而不是下一个消息代码必须等待上一次响应完成后才是下一个消息代码必须等待上一次响应完成后才能执行能执行”“我不希望消息排队,等待很烦的,有时采集数据和我不希望消息排队,等待很烦的,有时采集数据和记录数据应该同时进行的记录数据应该同时进行的”。主从线程模式主从线程模式通常应用于具有多个通常应用于具有多个同时发生的并且拥有同时发生的并且拥有不同运行速率的线程不同运行速率的线程的程序中。比如采集的程序中。比如采集电压同时写入磁盘,电压同时写入磁盘,采集速率采集速率1KHz,记录,记录则每则每5秒一次。秒一次。1、数据通信采用全局变量、局域变

11、量或共享变量;、数据通信采用全局变量、局域变量或共享变量;2、Stop为为Switch模式模式3、有时会用到事件发生模块、有时会用到事件发生模块Occurrence生产者生产者/消费者消费者“我需要可以同时间执行的两个过程,并且需保我需要可以同时间执行的两个过程,并且需保证它们不会互相影响执行速度。证它们不会互相影响执行速度。”生产者生产者/消费者消费者全局变量、局域变量或共享变量的每次复制都是原始数全局变量、局域变量或共享变量的每次复制都是原始数据的一个副本,占据了大量的空间。实际上只需要使用据的一个副本,占据了大量的空间。实际上只需要使用一部分缓冲区作为数据存储的中间部分,这需要借助队一部

12、分缓冲区作为数据存储的中间部分,这需要借助队列技术。列技术。存储单元存储单元数据流入数据流入数据流出数据流出生产者生产者/消费者具体做法消费者具体做法最简单模式最简单模式在在LabVIEW下实现生产者下实现生产者/消费者消费者无数据相关的多个循环主/从关系在循环间实现通讯与同步工作流程工作流程主循环负责通知各个从循环是否执行允许循环间异步执行数据的非相关性实现多线程程序过程分解 实现循环间的数据通讯实现循环间的数据通讯变量通知器队列信号量集合队列队列在队列中添加元素在队列中添加元素从队列中释放元素从队列中释放元素Reference to existing queue in memory选择队列

13、中元素的数据类型出列操作需要等待数据进入或者超时情况生产者生产者/消费者循环消费者循环后台服务模式后台服务模式问:问:“我需要程序在后台运行,不要前面板,不要交互我需要程序在后台运行,不要前面板,不要交互”答:答:“采用采用VI属性和方法接口,足以使你控制后台运行的属性和方法接口,足以使你控制后台运行的VI”例子:一个网络服务监听程序,程序只需要接收与客户端例子:一个网络服务监听程序,程序只需要接收与客户端Sockets的的连接,实现三次握手,连接完成后将引用交给前端应用程序处理,连接,实现三次握手,连接完成后将引用交给前端应用程序处理,同时继续监听。同时继续监听。后台服务模式后台服务模式后台

14、服务模式后台服务模式应用程序启动模式应用程序启动模式 “我想设计一个启动画面,同时显示应用程序加载的进度,加载完我想设计一个启动画面,同时显示应用程序加载的进度,加载完毕后退出启动画面,运行主程序毕后退出启动画面,运行主程序”应用程序启动模式应用程序启动模式1、SubVI目录目录2、启动应用程序、启动应用程序.vi3、主程序、主程序“网络实验系统网络实验系统.vi”代理模式代理模式 “我希望顶层我希望顶层VI(主(主VI)需要某个子)需要某个子VI时,才将其载入内存时,才将其载入内存”“可以在应用程序中引入迟载入技术可以在应用程序中引入迟载入技术”代理模式代理模式总结总结设计模式简化LabVI

15、EW开发过程被广泛使用及证明其可用常用的LabVIEW设计模式数据流事件驱动状态机结构生产者/消费者而功能型全局变量(functional global variable)是为了避免竞争机制而实现的一种非重入型子vi定时结构定时结构精确的定时 while 循环精确的定时顺序结构多个时钟频率的定时反馈,动态定时特性多优先级设置examplesgeneraltimedloop.llb定时顺序结构定时顺序结构类似添加内置定时功能的顺序结构定时循环定时循环1、优先级:相对同一个程序框图中的多个定时循环而言,优先级数大的循环优先执行。每一个定时循环都有自己的线程,这里的优先级即线程优先级。2、循环名称,对于可重入子VI中包含定时循环,且该子VI的多个实例出现在同一个程序框图中,可以将循环名称作为子VI的输入端子。3、Deadline:用于指定完成一个循环的时间限定,如未在指定的时间内完成,则左端数据

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1