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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

LabVIEW高级编程技巧PPT推荐.ppt

1、研发,区域咨询,技术支持,市场,NI 客户的分布,超过25,000个客户分布在多达80个国家 财富500强中95的制造型企业,1.调试指示器,灵活的调试工具,可详细显示数据线上通过的数据指示器的操作可以体现 VI 的灵活性和强大功能传统的调试指示器存在一些缺点,如只能显示数组中的一个元素,用户定义的调试指示器,能显示各种数据类型可定制指示器外观可定制指示器处理功能设置条件断点,定制你的需求,指示器不仅仅可以显示数据将数据录入文件对两个指示器之间的执行进行定时计算总的调用次数或是每秒的调用次数,内建的定制指示器,在数据连线上点击鼠标右键菜单显示所有相关的指示器指示器存放在目录 vi.lib_pr

2、obesdefault下,Keep graphics below the text and to the right,客户指示器的结构,包含一个控件控件的数据类型就是所指示的数据线包含一个指示器Boolean,类似条件断点True=暂停执行False=继续执行,Keep graphics below the text and to the right,2.定时循环,精确的定时 while 循环多个时钟频率的定时反馈,动态定时特性多达128个循环优先级examplesgeneraltimedloop.llb,定时循环的配置,定时循环,3.基于事件的编程,管理用户界面,通常采用的方法有中断响应和事

3、件驱动中断响应采用轮询机制处理,非常占用CPU资源,还可能会丢失用户界面的响应事件驱动无需轮询即可捕捉到相关事件,顺序处理捕捉到的所有事件,不会丢失也不会颠倒顺序,事件举例,事件结构不需要轮询就可以捕捉到自定义菜单上的用户选择ItemTag 返回菜单条目MenuRef 返回菜单的 refnum,Virtual Instrument,事件类型,Application,事件举例:退出应用程序超时,Control,事件举例:关闭前面板VI 上的鼠标移动,事件举例:改变控件数值特定控件上的鼠标移动,通知事件和可滤除事件,通知事件通知 LabVIEW 发生了一个用户行为;只能在 Event Data N

4、ode中使用可滤除事件在用户界面处理之前验证或改变事件数据,避免影响 VI;可在 Event Filter Node 和 Event Data Node 中使用,LabVIEW 7 新事件,更多的用户界面事件动态注册的事件用户定义的事件ActiveX 事件,事件结构的组成部分,Event Selector Label 确定观察的事件Timeout 等待事件的毫秒数;缺省值 1(无限期)Defaulted Tunnels 新型tunnel,允许未连线的事件案例提供缺省值Dynamic Event Terminals 用于动态事件的注册,事件结构的组成部分,Event Data Node 确定事件

5、发生时 LV 提供的数据,与 Unbundle By Name 函数类似Event Filter Node 确定Event Data Node 中可提供的数据子集,可供事件案例修改,事件结构的基本使用,通常在 While 循环中使用每次循环只处理一次事件,其它时间休眠在事件结构的左侧边框端口上可获得事件数据,事件结构的配置,通过对话框来配置事件,右击事件结构的边框,选择“Edit Events Handled by This Case”,事件注册和面板锁定,包含事件结构的 VI 被预留以后,事件就成为已注册的 已注册事件发生后,会进入队列等待直到相应的事件结构开始执行,事件不会丢失也不会出现顺

6、序混乱默认情况下,前面板被锁定直到事件被处理完可以关闭锁定,但只针对过滤事件VI 变成空闲后,事件被注销,3.1 动态事件,下列情况时,需要动态注册事件:事件注册只能发生在应用程序的某些部分在程序运行过程中需要改变哪些 VIs 或控件可以发生事件在 subVI 中处理事件,而不是仅在注册事件的 VI 中,动态事件,Register For EventsEvent StructureUnregister For EventsCreate User EventGenerate User EventDestroy User Event,编程模型,注册事件,连接到事件结构,选择动态事件,注销事件,3.

7、2 程序产生的(用户)事件,Register For EventsEvent StructureUnregister For EventsCreate User EventGenerate User EventDestroy User Event,用户事件编程模型,创建并注册用户事件,产生用户事件,注销用户事件,消灭用户事件,用户事件举例,3.3 ActiveX 事件,Register Event Callback,ActiveX 编程模型,注册ActiveX 事件,选择事件,创建和编辑Callback VI,总结:事件处理结构,允许在subvi中处理事件代码提供统一的,简化的事件处理机制用户

8、界面接口控制外部代码硬件触发用户定义事件注册和非注册事件,4.改善VI 的性能,改进内存使用使用高效数组函数谨慎处理字符串和数组避免不必要的复杂数据结构减少 I/O 开销减少 I/O 调用的次数减少开启和关闭资源的次数减少屏幕更新,4.1 改进内存使用,LabVIEW 处理了大部分内存管理的细节资源分配,复制,释放,溢出减少程序框图的大小提高可读性和稳定性内存管理自动进行,你不需要过多的干预理解 LabVIEW 是何时并如何为你“代劳”内存管理的可以大大提高 对内存使用的效率,VI 在内存中的数据结构,Front PanelBlock DiagramCode框图编译成机器码Data Space

9、 Control/indicator 数值Block diagram 常量动态定义的数据,VI 何时加载到内存中,始终载入 data 平台符合时载入Code(Mac OS,Windows,Sun,Linux)Panel 和 Diagram 在必要时载入(recompiling),Main VI,SubVI,Always in memory,Resident sometimes,FrontPanel,BlockDiagram,Code,DataSpace,FrontPanel,BlockDiagram,Code,DataSpace,内存使用情况,Tools Advanced Profile VI

10、s勾选“Profile Memory Usage”&“Memory Usage”在执行应用程序之前点击“Start”状态只在程序执行完成后更新程序执行过程中内存使用情况不能被查看,监测内存使用,显示内存分配,File Tools Advanced Show Buffer Allocations,内存优化,LabVIEW 尽量减少内存再分配需要重新分配内存的函数Build ArrayConcatenate Strings,High Memory Reallocation Low Memory Reallocation,最佳内存使用,尽量使用 subVIs不要滥用全局和局部变量只在必要时打开 su

11、bVI 前面板高效地创建和处理数组不使用大的、复杂的数据类型,coercion dots,构建和处理数组,使用具有 inplaceness 特点的数组函数 Inplaceness 是指函数 in place 操作数据,而不会另外建立一个数据备份。,子数组,LabVIEW 尽可能的重用内存缓冲子数组不存储实际的数据子数组在必要时会生成真实的数组由于子数组不要对数据进行拷贝,因此提高了程序的执行速度,子数组,子数组函数返回一个 7499x2 的子数组这个例子程序需要执行2秒钟2 GHz Pentium 4,子数组,在函数 Array Subset之前引线执行只需5毫秒子数组到真实数组的生成发生在循

12、环之前,4.2 减少 I/O 开销,I/O VIs 比计算操作多花很多时间把 I/O 调用降低到最少每次调用传递尽可能多的数据使用多点 DAQ VIs 而不是单点 VIs,Slow Method(many I/O calls),Fast Method(One I/O call),减少开启和关闭资源,Slow Method,Fast Method,使用底层 VIs 来减少开启和关闭资源的次数 Slow Method中,文件被打开和关闭100次Fast Method中,文件只打开和关闭1次,保持资源的打开状态,使用底层的文件打开和关闭函数连接文件读写函数open,read/write的引用 提高读

13、速度 操作系统不需检查权限、分配新的文件描述符等 提高写文件的速度 允许操作系统缓冲写操作,标准化,LabVIEW 以“大字端”形式读写数据X86 机器采用“小字端”形式存储数据选择不需要转换的数据类型如:U8,I8,String(data),SGL,DBL可以编程转换Flatten to stringType castManual code,4.3 减少屏幕显示的更新,使用高效的 controls 和 indicatorsGraphs 和 charts 在接收新数据的时候会重新画图,从而影响执行速度设计subVI 的前面板在执行中保持关闭来减少显示开销使用多点更新的画图方法最小化 chart

14、 更新的次数获得最高的数据显示速率,屏幕显示实例,Slow Method(每次更新一点),Fast Method(每次更新100点),减少循环中不必要的计算,避免将产生相同结果的运算放在循环内避免在循环中不必要的访问全局变量,减少 SubVI 开销,每个subVI 都会有一些开销(大概几十微秒);虽然看起来不大,但如果是在一个循环结构中,就会累加出一个很大结果。在高速运行的循环结构中,不要显示 subVI 的前面板如果可能,将循环结构移到 subVI 中完成。,全局和局部变量,每一次变量的读操作都会给数据生成一个新的缓冲区在使用大数组、字符串或复杂数据结构时会带来很大影响从内存使用和执行速度来

15、看,使用数据线永远是更有效的方法,属性节点,使用属性节点会引起线程间的交换,从而降低效率如果只是为了更新控件的值,不要使用属性节点如果同时改变其它属性,更新数值不会造成更大损失,因为线程交换已经发生了,更新前面板控件,GoodBetterBest,创建高效的平行框图,LabVIEW 周期性地在平行循环间切换使用 Wait(ms)function 确保不太重要的循环占用较少的处理器时间,5.共享库函数,What?Windows 中的.dll,UNIX/Linux 中的.so,等等Why?降低磁盘空间和内存占用How?应用程序只在需要的时候调用库函数程序开始执行以后,由运行链接编辑器来处理所有调用

16、,动态链接库(DLL),Microsoft Windows 中的一种软件模块包含可执行代码和可被Windows应用程序或其它 DLL 调用的数据 函数和数据只有在运行状态下,被Windows 应用程序或其它DLL调用时才被加载和链接一个 DLL 包括:一个特殊函数(DllMain)几个编程者自定义来完成常用任务的函数,DLL 特性,不能单独运行的可执行文件应用程序要求时,由操作系统加载应用程序把 DLL 代码作为自己二进制文件的一部分来使用应用程序不需要知道原始DLL是由什么语言编写的,也不需要清楚这些功能是如何实现的。DLL就像一个有输出函数的黑盒子,LabVIEW 中调用 Shared Library/DLL,Advanced Call

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

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