您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > LabVIEW高级编程技巧
1LabVIEW高级编程技巧议程•NationalInstruments公司简介•LabVIEW高级编程技巧1.用户定义的调试指示器2.巧用LabVIEW控件3.定时结构4.基于事件触发的编程5.优化LabVIEW程序内存管理•程序模板的使用•LabVIEW状态图议程•NationalInstruments公司简介•LabVIEW高级编程技巧1.用户定义的调试指示器2.巧用LabVIEW控件3.定时结构4.基于事件触发的编程5.优化LabVIEW程序内存管理•程序模板的使用•LabVIEW状态图•持续强劲的增长和收益记录•2006年财政年度的收入达到6.6亿美元•全球超过4000名员工,在40多个国家拥有办事处•连续8年被《财富》杂志评为美国最适合工作的100家公司之一NetRevenueinMillionsDistributorsDirectSalesOffices$0$50$100$150$200$250$300$350$400$450$500$550$600$650$700'77'79'81'83'85'87'89'91'93'95'97'99'01'03'05NationalInstruments虚拟仪器技术倡导者20052006200320051998200019931997199019921986LabVIEW1.0MacintoshLabVIEW2.0编译语言程序LabVIEWSun,WindowsLabVIEW3.0多平台LabVIEW4.0专业化开发LabVIEW6i联网LabVIEW5.0Undo!和实时LabVIEW7ExpressPDA和FPGALabVIEW嵌入式和DSPLabVIEW8.2020周年纪念版简体中文版LabVIEW8分布式智能LabVIEW——持续20多年的创新和发展LabVIEW8.5多核处理器状态图模块2007议程•NationalInstruments公司简介•LabVIEW高级编程技巧1.用户定义的调试指示器2.巧用LabVIEW控件3.定时结构4.基于事件触发的编程5.优化LabVIEW程序内存管理•程序模板的使用•LabVIEW状态图调试指示器•灵活的调试工具,可详细显示数据线上通过的数据•指示器的操作可以体现VI的灵活性和强大功能•传统的调试指示器存在一些缺点,如只能显示数组中的一个元素用户定义的调试指示器•能显示各种数据类型•可定制指示器外观•可定制指示器处理功能•设置条件断点定制你的需求指示器不仅仅可以显示数据•将数据录入文件•对两个指示器之间的执行进行定时•计算总的调用次数或是每秒的调用次数演示:自定义调试指示器议程•NationalInstruments公司简介•LabVIEW高级编程技巧1.用户定义的调试指示器2.巧用LabVIEW控件3.定时结构4.基于事件触发的编程5.优化LabVIEW程序内存管理•程序模板的使用•LabVIEW状态图LabVIEW界面出色•LabVIEW控件助您设计专业美观的人机界面LabVIEW界面出色•LabVIEW控件助您设计专业美观的人机界面LabVIEW界面出色•LabVIEW控件助您设计专业美观的人机界面LabVIEW界面出色•LabVIEW控件助您设计专业美观的人机界面LabVIEW内置控件•LabVIEW内置多种工业级控件LabVIEW内置控件•波形图/波形图表•XY图•强度图•Picture控件•3D图片控件–LabVIEW8.0新控件–机械部件的状态显示自定义控件•LabVIEW控件基础上修改•使用贴图ActiveX控件•与第三方程序通讯•扩展LabVIEW的显示方式和效果Xcontrol控件•添加新属性及方法•组合多个控件•创建全新控件演示:3D直升机控制系统界面议程•NationalInstruments公司简介•LabVIEW高级编程技巧1.用户定义的调试指示器2.巧用LabVIEW控件3.定时结构4.基于事件触发的编程5.优化LabVIEW程序内存管理•程序模板的使用•LabVIEW状态图定时结构•精确的定时while循环•精确的定时顺序结构•多个时钟频率的定时•反馈,动态定时特性•多优先级设置•examples\general\timedloop.llb定时顺序结构类似添加内置定时功能的顺序结构定时循环定时循环演示:定时循环可具体手动设置定时循环运行的核设置定时循环运行的指定核可具体手动设置定时循环运行的核议程•NationalInstruments公司简介•LabVIEW高级编程技巧1.用户定义的调试指示器2.巧用LabVIEW控件3.定时结构4.基于事件触发的编程5.优化LabVIEW程序内存管理•程序模板的使用•LabVIEW状态图基于事件的编程•管理用户界面,通常采用的方法有中断响应和事件驱动•中断响应采用轮询机制处理,非常占用CPU资源,还可能会丢失用户界面的响应•事件驱动无需轮询即可捕捉到相关事件,顺序处理捕捉到的所有事件,不会丢失也不会颠倒顺序事件举例事件结构不需要轮询就可以捕捉到自定义菜单上的用户选择ItemTag返回菜单条目MenuRef返回菜单的refnumVirtualInstrument事件类型Application事件举例:•退出应用程序•超时Control事件举例:•关闭前面板•VI上的鼠标移动事件举例:•改变控件数值•特定控件上的鼠标移动LabVIEW新事件•更多的用户界面事件•动态注册的事件•用户定义的事件•ActiveX事件•.NET事件事件结构的基本使用•通常在While循环中使用•每次循环只处理一次事件,其它时间休眠•在事件结构的左侧边框端口上可获得事件数据事件结构的配置通过对话框来配置事件,右击事件结构的边框,选择“EditEventsHandledbyThisCase…”事件注册和面板锁定•包含事件结构的VI被预留以后,事件就成为已注册的•已注册事件发生后,会进入队列等待直到相应的事件结构开始执行,事件不会丢失也不会出现顺序混乱•默认情况下,前面板被锁定直到事件被处理完–可以关闭锁定,但只针对过滤事件•VI变成空闲后,事件被注销动态事件下列情况时,需要动态注册事件:–事件注册只能发生在应用程序的某些部分–在程序运行过程中需要改变哪些VIs或控件可以发生事件–在subVI中处理事件,而不是仅在注册事件的VI中动态事件RegisterForEventsEventStructureUnregisterForEventsCreateUserEventGenerateUserEventDestroyUserEvent编程模型注册事件连接到事件结构选择动态事件注销事件演示:动态事件程序产生的(用户)事件RegisterForEventsEventStructureUnregisterForEventsCreateUserEventGenerateUserEventDestroyUserEvent用户事件编程模型创建并注册用户事件产生用户事件注销用户事件消灭用户事件用户事件举例演示:用户事件ActiveX事件RegisterEventCallbackActiveX编程模型注册ActiveX事件选择事件创建和编辑CallbackVI演示:ActiveX事件小结:事件处理结构•允许在subvi中处理事件代码•提供统一的,简化的事件处理机制–用户界面–接口控制–外部代码–用户定义事件–注册和非注册事件议程•NationalInstruments公司简介•LabVIEW高级编程技巧1.用户定义的调试指示器2.巧用LabVIEW控件3.定时结构4.基于事件触发的编程5.优化LabVIEW程序内存管理•程序模板的使用•LabVIEW状态图为什么要优化LabVIEW程序内存管理•LabVIEW的自动管理内存特性–方便用户开发,满足一般应用需求•LabVIEW应用程序趋向大型化,复杂化–项目规模大,需求复杂–数据处理量大,性能要求高•好的编程风格帮助LabVIEW优化内存管理–可以显著提高程序运行效率–需要了解LabVIEW的内存分配机制监测VI内存占用和运行时间的工具•帮助定位和分析程序中的瓶颈部分工具性能分析性能和内存显示VI内存分配情况的工具•帮助分析程序中各个数据变量的内存拷贝情况–目标:消除黑点工具性能分析显示缓存区分配演示:监测内存使用优化LabVIEW程序内存管理•适时选择动态调用子VI•避免强制类型转换•合理分配数组内存•灵活使用LabVIEW自带的VI•使用元素同址操作结构InPlaceElementStructure在程序中动态调用子VI321——减少程序占用内存以及载入时间•打开VI引用•通过引用节点调用•关闭引用2配置VI加载1数据类型转换•强制点表明连接了两种不同的数据类型–LabVIEW中类型强制转换需要数据备份–涉及大数组的类型强制转换会占用大量内存推荐的类型转换方式•更好的解决方式是在随机数创建时进行转换–避免转换大块数据缓存(14.3KB)(22.7KB)合理分配数组内存•过多进行内存重新分配占用很大开销•慎用可能导致内存重新分配的相关函数–创建数组–连接字符串演示:LabVIEW数组分配灵活使用LabVIEW自带的VI•基本线性代数子程序VI(BasicLinearAlgebraSubroutines)–合理归并基本线性代数操作–减少不必要的内存复制开销–使程序更加简洁数学线性代数BLAS元素同址操作结构•更新数组或簇中的元素时,避免元素数据备份应用控制内存控制元素同址操作结构的优点•方便实现多种情况的缓存重用,消除元素复制开销–数组索引和替换–簇的绑定和解除绑定–波形的绑定和解除绑定–变体的缓存重用–任意元素的缓存重用举例:数组索引和替换•将数组第2个元素增大10倍方法一:方法二:元素数据备份举例:簇的绑定和解除绑定•个人纳税信息的更新演示:嵌套的元素同址操作结构使用事件结构模板•状态机•并行循环VI架构•队列信息处理器•生产者/消费者(数据)•用户接口事件处理器•生产者/消费者(事件)•根据需要组合或扩展各种结构议程•NationalInstruments公司简介•LabVIEW高级编程技巧1.用户定义的调试指示器2.巧用LabVIEW控件3.定时结构4.基于事件触发的编程5.优化LabVIEW程序内存管理•程序模板的使用•LabVIEW状态图通向高效工作的最佳捷径-NI培训和认证LabVIEWBasicsI&II课程内容丰富、细致,与实践相结合。在这几天的培训课程中,我得以系统完善自己关于NI硬件与LabVIEW软件的认识。对我们后来的系统维护和系统开发起到非常重要的指导作用。--北京艾科泰电子有限公司车殿丰ni.com/china/training确保项目成功机会提升专业开发技能开发大型应用实现轻松维护•NI培训会员将尊享整体费用的折扣,节约最高达70%的费用•根据学员水平,分级别定制专业课程•在指定时限内,无限次数选择收费培训课程•轻松获得全球通用的权威认证--“NI专业程序员认证”了解详情或报名参加活动,请拨打NI培训中心免费电话:800.820.3622技术课程,尽收囊中——加入NI培训会员计划投资30%的费用,节省50%的时间,只为您100%的成功ni.com/china/trainingNI公司联系方式免费咨询电话:8008203622Email:china.info@ni.com
本文标题:LabVIEW高级编程技巧
链接地址:https://www.777doc.com/doc-1233112 .html