- 1、本文档共70页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]Advanced LabVIEW Programming Tips and Techniques
August 2004 NI CONFIDENTIAL August, 2004 NIWeek 2004 LabVIEW 高级编程技巧 内容概要 National Instruments 公司简介 LabVIEW 高级编程技巧 用户定义的调试指示器 定时循环 基于事件触发的编程 改善VI的性能 调用动态链接库 1. 调试指示器 灵活的调试工具,可详细显示数据线上通过的数据 指示器的操作可以体现 VI 的灵活性和强大功能 传统的调试指示器存在一些缺点,如只能显示数组中的一个元素 用户定义的调试指示器 能显示各种数据类型 可定制指示器外观 可定制指示器处理功能 设置条件断点 定制你的需求 指示器不仅仅可以显示数据 将数据录入文件 对两个指示器之间的执行进行定时 计算总的调用次数或是每秒的调用次数 内建的定制指示器 在数据连线上点击鼠标右键 菜单显示所有相关的指示器 指示器存放在目录 vi.lib\_probes\[default]下 客户指示器的结构 包含一个控件 控件的数据类型就是所指示的数据线 包含一个指示器 Boolean, 类似条件断点 True = 暂停执行 False = 继续执行 2. 定时循环 精确的定时 while 循环 多个时钟频率的定时 反馈, 动态定时特性 多达128个循环优先级 examples\general\timedloop.llb 定时循环的配置 定时循环 3. 基于事件的编程 管理用户界面,通常采用的方法有中断响应和事件驱动 中断响应采用轮询机制处理,非常占用CPU资源,还可能会丢失用户界面的响应 事件驱动无需轮询即可捕捉到相关事件,顺序处理捕捉到的所有事件,不会丢失也不会颠倒顺序 事件举例 事件类型 通知事件和可滤除事件 通知事件 通知 LabVIEW 发生了一个用户行为; 只能在 Event Data Node中使用 可滤除事件 在用户界面处理之前验证或改变事件数据,避免影响 VI; 可在 Event Filter Node 和 Event Data Node 中使用 LabVIEW 7 新事件 更多的用户界面事件 动态注册的事件 用户定义的事件 ActiveX 事件 事件结构的组成部分 Event Selector Label – 确定观察的事件 Timeout –等待事件的毫秒数; 缺省值 –1 (无限期) Defaulted Tunnels –新型tunnel, 允许未连线的事件案例提供缺省值 Dynamic Event Terminals – 用于动态事件的注册 事件结构的组成部分 Event Data Node – 确定事件发生时 LV 提供的数据,与 Unbundle By Name 函数类似 Event Filter Node – 确定Event Data Node 中可提供的数据子集,可供事件案例修改 事件结构的基本使用 通常在 While 循环中使用 每次循环只处理一次事件,其它时间休眠 在事件结构的左侧边框端口上可获得事件数据 事件结构的配置 通过对话框来配置事件,右击事件结构的边框 ,选择 “Edit Events Handled by This Case…” 事件注册和面板锁定 包含事件结构的 VI 被预留以后,事件就成为已注册的 已注册事件发生后, 会进入队列等待直到相应的事件结构开始执行,事件不会丢失也不会出现顺序混乱 默认情况下, 前面板被锁定直到事件被处理完 可以关闭锁定,但只针对过滤事件 VI 变成空闲后,事件被注销 3.1 动态事件 下列情况时,需要动态注册事件: 事件注册只能发生在应用程序的某些部分 在程序运行过程中需要改变哪些 VIs 或控件可以发生事件 在 subVI 中处理事件,而不是仅在注册事件的 VI 中 动态事件 3.2 程序产生的 (用户) 事件 用户事件举例 3.3 ActiveX 事件 总结:事件处理结构 允许在subvi中处理事件代码 提供统一的,简化的事件处理机制 用户界面 接口控制 外部代码 硬件触发 用户定义事件 注册和非注册事件 4. 改善VI 的性能 改进内存使用 使用高效数组函数 谨慎处理字符串和数组 避免不必要的复杂数据结构 减少 I/O 开销 减少 I/O 调用的次数 减少开启和关闭资源的次数 减少屏幕更新 4.1 改进内存使用 LabVIEW 处理了大部分内存管理的细节 资源分配, 复制, 释放, 溢出 减少程序框图的大小 提高可读性和稳定性 内存管理自动进行,你不需要过多的干预 理解 LabVIEW 是何时并如何为你“代劳”内存管理的可以大大提高 对内存使用的效率 VI 在内存中的数据结构 Front Panel Block Diagram Code 框图编译成机器码 Da
文档评论(0)