第讲labview程序设计进阶.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
养成良好的编程习惯 ? 程序框图不要太大 – 尽量在一屏中放下,或者至多只需在一个方向上拖动 – 程序如果实在太大,应考虑使用子 VI ( 将在后续介绍 ) ? 添加必要的注释 第六讲 LabVIEW 程序设计进阶 复习 ? 通过前面的学习和实验,已掌握 – LabVIEW 开发环境及基本编程和调试方法 – 简单的数据采集 – 在 LabVIEW 中进行信号处理 进阶 ? LabVIEW 项目 ? 通过变量传递数据 ? 典型程序设计架构 ? 属性节点与调用节点 ? 养成良好的编程习惯 ? 界面设计 LabVIEW 项目 ? 借助 LabVIEW 项目 – 管理文件 (LabVIEW VI 或项目相关的其他文件 ) – 生成可执行文件 (exe) 或安装包 – 将 LabVIEW 程序发布到其他目标上 ( 如实时控制器、 FPGA 等 ) 理解 : LabVIEW 数据流与并行 ? 问题 : 如何同时停止两个循环 ? 变量 ? 解决方案 : 利用 LabVIEW 中的局部变量 LabVIEW 中的变量 ? 局部变量 – VI 内部 ? 全局变量 – 同一机器上的 VI 之间 , 不一定建立项目 ? 单进程共享变量 – 可用于需要在不同机器之间共享变量的情况 , 需要建立项目 – 通过网络传输数据的相关内容可通过参考书自学 在 LabVIEW 项目中建立共享变量 单进程共享变量的使用 变量使用的注意事项 ? 避免不必要的使用(比如仅仅为了减少连线) ? 初始化变量(避免出现不确定状态) 避免竞争状态 ? 避免同时写入共享资源 ? 例 : 右边程序的执行结果 ? – Value = (Value * 5) +2 – Value = (Value + 2) * 5 – Value = Value * 5 – Value = Value +2 常用的 LabVIEW 程序设计架构 ? 单循环架构 – 状态机 – 事件结构 ? 多循环架构 – 生产者 / 消费者结构 – 基于事件的生产者 / 消费者结构 单循环架构 ? 如前面提到的简单数据采集 ( 连续模拟输入 ) 程序 ? 前面提到的状态机结构 复习 : 状态机结构 事件结构 ? 常用于响应前面板控件操作 ? 自定义事件 (自学内容) 前面板 用户动作 程序框图 执行 事件结构的使用 ? 通常与 While 循环一起使用 ? 每次循环响应一个事件 ? 没有时间发生则处于 Sleep 状态 事件结构 超时设置 事件选择标签 事件数据节点 事件过滤器节点 编辑事件 事件 事件源 配置事件 通知与过滤事件 通知事件 ( green arrow) 用户动作已经发生并处理 过滤事件 ( red arrow) 用户动作已发生但尚未处理事件 . 允许自定 义事件响应 事件结构的运行机制 ? 当运行一个 VI 时, LabVIEW 将自动注册那些已经在事件 结构对话框中配置好的事件 ? 当一个已经注册的事件发生时,它将进入事件队列并 等待对应的事件结构代码执行 – 不会错过事件,并且响应事件的先后顺序依照发生的顺序 ? 默认情况下,前面板会锁定,直到对应的事件被处理 – 仅对于通知事件,可以选择关闭锁定 ? 当 VI 代码执行完毕,注册的事件将被注销 一个简单的事件结构运用举例 使用事件结构时的注意事项 ? 一个 While 循环中只放置一个事件结构 ? 尽量不要在事件结构中放置复杂的处理代码 – 如果事件响应需要复杂的处理可结合后面将讲到的生产者 / 消费者模式 ? 更多关于事件结构的注意事项请参考 LabVIEW 帮助及 相关书籍 多循环架构 ? 并行循环 生产者 / 消费者模式 ? 很多 数据采集 - 处理 应用可采用这种模式 ? 问题 : 如何在两个循环之间“同步”传递数据?(使消费者循环 不会重复读取) 通过队列同步生产者 / 消费者循环 结合事件结构的生产者 / 消费者模式 LabVIEW 中的设计模式模板 属性节点 ? 在一些应用中,你也许希望通过程序实时改变一些前 面板控件的属性 – 例 1: 当用户输入错误信息时 , 希望 LED 显示控件变为红色 – 例 2: 当采集的温度超过某一阈值 , 希望波形曲线变为红色 ? 在 LabVIEW 中,可通过属性节点的编程完成这些功能 – 演示 : 创建并使用属性节点 调用节点 ? 通过调用节点对 VI 或控件 执行某种由程序控制的“方法”操作 ? 大部分“方法”具有参数 ? 举例 : 创建并使用调用节点 方法名称 参数 更多学习内容 ? 若想深入学习 LabVIEW ,还有以下内容值得学习 (在课 程设计或今后的工作中需要运用时,可参阅相关资源自学) – 自定义控件 – VI Server 与引用 – 动态加载子面板 – 网络编程 – 数

文档评论(0)

jinzhuang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档