




免费预览已结束,剩余103页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LabVIEW应用工程管理 IntelligentElectronicsInstituteHuazhongUniversityofScience Technology 2 目录 LabVIEW自动测试测量系统的层次结构LabVIEW软件工程LabVIEW工程项目管理LabVIEW设备驱动使用LabVIEW控制仪器使用LabVIEW控制DAQLabVIEW应用工程实例 3 LabVIEW自动测试测量系统的层次结构 这种结构可以为自动化测试系统提供一套高效的解决方案 4 测试管理软件从最顶层管理用户的测试模式 流程 数据 报表 帮助用户充分挖掘测试设备的效能 从而构建一套高效 高性价比 可移植的自动测试系统 LabVIEW自动测试测量系统的层次结构 5 LabVIEW自动测试测量系统的层次结构 测试开发软件测试管理软件能够管理的内容 必须由测试开发软件具体实现 LabVIEW即是一种能够充分满足需求的测试开发软件 6 LabVIEW自动测试测量系统的层次结构 系统服务与驱动程序这一层的开发工作必须全面而细腻 才能保证系统具有良好的可维护性 兼容性和移植性 7 LabVIEW自动测试测量系统的层次结构 处理总线平台在自动测试系统中 处理总线平台是软件与硬件的载体 也是软硬件交互的通道 直接决定了整个系统的性能和稳定性 可分为以下3类 普通PC平台 成本低 稳定性差 兼容性差 适用于试验阶段 基于PC的坚固型系统 NI公司提出的处理总线平台 基于PC架构 进行了坚固性的优化升级 适合于各种工业自动测试系统 工控机平台 大型工业测试系统最常选用的处理总线平台 稳定性和兼容性最好 适应严酷的工业测试环境 8 LabVIEW自动测试测量系统的层次结构 模块化I O与仪器控制NI公司提出的 以软件为核心 的理念 将软件提升到了很高的层面 相应的硬件部分也变得更加模块化 更具有灵活性 模块化I O具备诸多方便性和自由性 但在实际自动测试系统中 分立仪器以及特殊用途仪器等等也经常会被采用 9 LabVIEW自动测试测量系统的层次结构 模块化I O与仪器控制对仪器的控制需要借助于不同总线技术 总线 BUS 是最重要的硬件组成部分 也是各硬件模块之间交互的纽带 总线的速度以及稳定性直接关系到整个自动测试系统的执行效率以及出错率 10 LabVIEW自动测试测量系统的层次结构 模块化I O与仪器控制在当前工业自动测试系统中 常用总线一般根据具体需求可以分为以下4类 GPIB总线 应用最早也最为广泛的总线 稳定性强 可靠性高 在常用的分立仪器以及特殊用途的仪器上应用较多 USB总线 具备自动检测 即插即用的特性 因此在便携式的仪器以及需要经常拆分及组装的系统上应用非常广泛 Ethernet LAN LXI总线 即通常说的基于网络的总线 借助于互联网可以进行分布式的测试测量以及对仪器进行远程控制 PCI PXI PXI e总线 具备最高的带宽和最低的传输延迟 在高速数据采集以及实时测量控制系统中应用广泛 11 LabVIEW自动测试测量系统的层次结构 小结 总之 以软件为核心的开放性系统架构和模块化系统集成技术推进自动化测试测量系统开发与应用 将为实施图形化系统设计LabVIEW应用工业与工程项目管理奠定重要技术基础 12 目录 LabVIEW自动测试测量系统的层次结构LabVIEW软件工程LabVIEW工程项目管理LabVIEW设备驱动使用LabVIEW控制仪器使用LabVIEW控制DAQLabVIEW应用工程实例 13 LabVIEW软件工程 LabVIEW定位在让那些没有任何编程经验的测试测量工程师也能够编写自己的测试测量软件 但是这并不意味着知道了程序的大概功能就可以直接动手编写程序代码 对于简单的程序 这样做是可行的 但遇到大规模的系统开发 这样做会给程序开发带来较大的隐患 因此在着手开发程序之前 做好详细的需求分析和计划可以极大地降低大型系统开发的难度 节省开发时间 提高软件设计质量 降低软件开发成本 在工业应用的测试系统的构建过程中 不仅需要考虑用户交互 测试流程 数据处理保存的设计 还需要考虑各系统之间的相互关系 这需要开发者具有相应的软件工程的背景知识 14 LabVIEW软件工程 软件生命周期软件也有一个孕育 诞生 成长 成熟 衰亡的生存过程 把上述基本的过程活动进一步展开 可以得到软件生存周期的6个阶段 软件项目计划 planning 确定待开发软件系统的总目标 对其进行可行性分析 并对资源分配 进度安排等做出合理的计划 需求分析和定义 requirementanalysisanddefinition 确定待开发软件系统的功能 性能 数据 界面等要求 从而确定系统的逻辑模型 15 LabVIEW软件工程 软件生命周期软件设计 softwaredesign 设计是软件工程的技术核心 软件设计可以分为概要设计和详细设计 概要设计的任务是模块分解 确定软件的结构 模块的功能和模块间的接口 以及全局数据结构的设计 详细设计的任务是设计每个模块的实现细节和局部数据结构 编码 coding 编码的任务是用程序语言为每个模块编写程序 测试 testing 测试是保证软件质量的重要手段 其主要方式是在设计测试用例的基础上检验软件的各个组成部分 运行和维护 running maintenance 已交付的软件投入正式使用 便进入运行阶段 这一阶段可能持续若干年甚至几十年 软件在运行中可能由于多方面的原因需要对它进行修改 其原因可能有 运行中发现了软件中的错误需要修正 为了适应变化了的软件工作环境 需做适当变更 为了增强软件的功能需做变更 16 LabVIEW软件工程 软件开发模型1 瀑布模型 WaterfallModel 在瀑布模型中 软件开发的各项活动严格按照线性方式进行 当前活动接受上一项活动的工作结果 实施完成所需的工作内容 当前活动的工作结果需要进行验证 如果验证通过 则该结果作为下一项活动的输入 继续进行下一项活动 否则返回修改 17 LabVIEW软件工程 软件开发模型1 瀑布模型 WaterfallModel 瀑布模型强调文档的作用 并要求每个阶段都要仔细验证 但是 这种模型的线性过程太理想化 已不再适合现代的软件开发模式 几乎被业界抛弃 其主要问题在于 各个阶段的划分完全固定 阶段之间产生大量的文档 极大地增加了工作量 由于开发模型是线性的 用户只有等到整个过程的末期才能见到开发成果 从而增加了开发的风险 早期的错误可能要等到开发后期的测试阶段才能发现 进而带来严重的后果 18 LabVIEW软件工程 软件开发模型2 快速原型模型 RapidPrototypeModel 快速原型模型的第一步是建造一个快速原型 实现用户与系统的交互 用户对原型进行评价 进一步细化待开发软件的需求 通过逐步调整原型使其满足用户的要求 开发人员可以确定用户的真正需求是什么 第二步则在第一步的基础上开发用户满意的软件产品 19 软件开发模型3 增量模型 IncrementalModel 在增量模型中 软件被作为一系列的增量构件来设计 实现 集成和测试 每个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成 增量模型在各个阶段并不交付一个可运行的完整产品 而是交付满足客户需求的一个子集的可运行产品 开发人员逐个构件地交付产品 这样做的好处是软件开发可以较好地适应变化 客户可以不断地看到所开发的软件 从而降低开发风险 LabVIEW自动测试测量系统的层次结构 20 LabVIEW软件工程 软件开发模型3 增量模型 IncrementalModel 但是 增量模型也存在以下缺陷 由于各个构件是逐渐并入已有的软件体系结构中的 所以加入构件必须不破坏已构造好的系统部分 这需要软件具备开放式的体系结构 在开发过程中 需求的变化是不可避免的 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型 但也很容易退化为边做边改模型 从而使软件过程的控制失去整体性 21 LabVIEW软件工程 软件开发模型4 螺旋模型 SpiralModel 螺旋模型 它将瀑布模型和快速原型模型结合起来 强调了其他模型所忽视的风险分析 特别适合于大型复杂的系统 22 LabVIEW软件工程 软件开发模型4 螺旋模型 SpiralModel 但是 螺旋模型也有一定的限制条件 具体如下 螺旋模型强调风险分析 但要求许多客户接受和相信这种分析 并作出相关反应是不容易的 因此 这种模型往往适应于内部的大规模软件开发 如果执行风险分析将大大影响项目的利润 那么进行风险分析毫无意义 因此 螺旋模型只适合于大规模软件项目 软件开发人员应该擅长寻找可能的风险 准确地分析风险 否则将会带来更大的风险 23 LabVIEW软件工程 测试管理软件5 演化模型 EvolutionaryModel 演化模型主要针对事先不能完整定义需求的软件开发 用户可以给出待开发系统的核心需求 并且当看到核心需求实现后 能够有效地提出反馈 以支持系统的最终设计和实现 软件开发人员根据用户的需求 首先开发核心系统 用户试用核心系统 并提出精化系统 增强系统能力的需求 软件开发人员根据用户的反馈 实施开发的迭代过程 每迭代一次 系统都演进一次 实际上 这个模型可看做是重复执行的多个瀑布模型 24 LabVIEW软件工程 软件开发模型6 混合模型 HybridModel 混合模型把几种不同模型组合成一种模型 它允许一个项目能沿着最有效的路径发展 实际上 一些软件开发单位都是使用几种不同的开发方法组成他们自己的混合模型 25 LabVIEW软件工程 小结 在程序开发过程中遇到毫无头绪的情况下 可以从软件开发模型入手 针对不同的项目 需要使用不同的软件开发模型 甚至混合使用几种开发模型 这需要在开发过程中灵活选择 26 目录 LabVIEW自动测试测量系统的层次结构LabVIEW软件工程LabVIEW工程项目管理LabVIEW设备驱动使用LabVIEW控制仪器使用LabVIEW控制DAQLabVIEW应用工程实例 27 LabVIEW工程项目管理 在工业领域应用LabVIEW 是为了构建自动测试测量系统 从而达到节约人工 提高效率的目的 28 LabVIEW工程项目管理 LabVIEW的工程应用特点基于LabVIEW内置库和数千种仪器驱动支撑体系 开发的系统可以连接任何仪器或传感器 满足各种各样工业测量和控制的需要 经过20多年快速发展 LabVIEW已经应用于各个工业领域 尤其在自动测试测量领域获得广泛应用 不论是在标准测试领域 如太阳能电池组件测试 电能质量测试等 还是在定制测试应用中 图形化系统设计LabVIEW编程都能游刃有余 相比于传统的人工手动测试 基于LabVIEW的自动测试系统将测试测量应用推向了一个更高的水平 29 LabVIEW工程项目管理 LabVIEW的工程应用特点提高测试效率增强系统可靠性减少数据误差灵活扩展升级降低测试成本方便管理 30 LabVIEW工程项目管理 LabVIEW实用项目管理方法我们按照软件工程的思想 根据LabVIEW测试系统设计的特点 组织编写了一套实用的项目管理方法 经过实践检验 能够适应大多数LabVIEW项目管理的综合需求 可以推动相应的具体程序开发工作 满足不同客户应用众多需求 31 LabVIEW工程项目管理 LabVIEW实用项目管理方法我们在软件开发活动中 采用一种快速原型模型与演化模型相结合的混合模型 在软件生命周期的需求分析阶段 采用快速原型模型 尽可能快速直观地与用户确定软件功能需求 随后则采用演化模型 在满足项目基本功能需求的情况下 根据用户在使用过程中反馈的问题和新的要求 开发功能更完善 性能更稳定的系统软件 32 LabVIEW工程项目管理 LabVIEW实用项目管理方法1 需求分析观点 用户界面的设计在很大程度上可以反映系统功能 在这个阶段使用快速原型作为商谈系统需求的切入点 开发人员和用户在需求分析时就可以更顺畅 更准确地沟通 从而同时保证需求分析环节的可靠性和高效性 注意 快速原型必须采用忽视设备 或称作模拟设备输入 输出 的编程方式 33 LabVIEW工程项目管理 LabVIEW实用项目管理方法1 需求分析但是 使用快速原型模型并不是为了得到一个可以使用的系统软件 而是为了方便快速准确地分析 确定系统需求 同时 图形化自动测试系统的快速原型也偏重实现用户界面 构建的代码结构通常比较粗糙 所以 在得到双方确认的系统原型之后 需要编写 系统技术方案 逐一陈述快速原型反映出来的系统需求 指导开发用于实际的系统 最终 通过确认 系统技术方案 完成需求分析 34 LabVIEW工程项目管理 LabVIEW实用项目管理方法2 核心系统开发在大型测试系统开发中 最重要的就是分工合作 要分工就必须为系统划分模块 要合作就必须设计模块的输入 输出接口 不同于文本语言在一维队列上进行开发 基于LabVIEW的测试系统是在一个二维平面上进行开发的 网状的代码结构在进行模块划分时要特别注意输入 输出接口的设计 35 LabVIEW工程项目管理 LabVIEW实用项目管理方法2 核心系统开发核心系统开发的下一步是将 系统技术方案 解释成团队内部用于开发的 软件编程结构 软件编程结构 包含以下几个要素 模块划分 功能描述 子vi划分 设计接口 vi命名 36 LabVIEW工程项目管理 LabVIEW实用项目管理方法2 核心系统开发测试系统运行时 需要控制测试进行的流程 并监视测试进行的状态 这个界面作为主界面在系统软件中处于核心地位 它的编写状况直接影响整个系统软件的可靠性和测试的效率 在实际应用时 可以采用一种用户界面响应代码和功能执行代码并列的编写方式 37 LabVIEW工程项目管理 用户界面响应代码 功能执行代码 38 LabVIEW工程项目管理 LabVIEW实用项目管理方法2 核心系统开发 39 LabVIEW工程项目管理 LabVIEW实用项目管理方法3 系统脱机调试测量设备是自动测试系统的重要组成部分 但在LabVIEW中 与设备相关的设备驱动处于软件的最底层 不连接设备运行软件时 与设备进行通信的部分代码会由于不能正确通信而报错 导致软件不正常终止 系统软件无法进行整体调试 40 LabVIEW工程项目管理 LabVIEW实用项目管理方法3 系统脱机调试通过灵活运用DiagramDisableStructure 程序框图禁用结构 和CaseStructure 条件结构 使与设备进行通信的部分在不连接设备时不工作 而输出模拟的数据传递到下游程序 从而达到系统正常运行 脱机进行整体调试的目的 41 LabVIEW工程项目管理 LabVIEW实用项目管理方法4 系统上机调试不论是脱机调试还是上机调试 都是为了发现编程中存在的问题 进一步完善测试系统 重视脱机调试 有利于减少系统开发成本 但最终的系统设计完成 定型交货 还是要进行上机调试才能完成 42 LabVIEW工程项目管理 LabVIEW实用项目管理方法4 系统上机调试在保证系统方案正确 设备齐全无故障的情况下 上机调试主要有两项工作 设备驱动调试和系统整体功能调试 设备驱动调试是指 在单个设备上 使用最底层的设备驱动验证控制指令 设备功能 数据格式等是否与设想的一致 逐个驱动 逐台设备进行调试 直至确认所有设备驱动正常工作 系统整体功能调试是指 连接所有设备 按照设计的测试流程进行测试 发现脱机调试中不能发现的整体性问题 43 LabVIEW工程项目管理 LabVIEW实用项目管理方法4 系统上机调试当上机调试完成后 应该进行系统交货 索取用户的书面确认 若一次系统上机调试不能完全解决问题 则需要书面确认问题 修改设计方案等 做到有据可查 按章办事 系统交货 主要包括测量设备 软件安装程序 系统操作说明书等 44 LabVIEW工程项目管理 LabVIEW实用项目管理方法5 系统升级完善需要给用户一段售后服务期 提供使用培训 bug消除等服务 如果用户在使用之后提出更高的性能要求或更多的功能需求 一般需要另行签订一份合同 以避免发生 无限售后服务 的情况 45 LabVIEW工程项目管理 LabVIEW实用项目管理方法5 系统升级完善即便是用户没有提出售后服务的要求 也有必要根据情况完善系统功能 推出更成熟的系统 因为工业应用一般都遵循国际 国家的测试标准 一套成熟的测试系统可以多次销售 良好的系统升级 完善工作带来的成本上升 可以通过多次销售摊低 甚至可以提高整体效益 46 目录 LabVIEW自动测试测量系统的层次结构LabVIEW软件工程LabVIEW工程项目管理LabVIEW设备驱动使用LabVIEW控制仪器使用LabVIEW控制DAQLabVIEW应用工程实例 47 LabVIEW设备驱动 在LabVIEW平台上 通过VISA DAQmx等驱动包构建测试系统使设备 设备接口呈现出黑箱特性 因此项目负责人在进行系统结构设计时可以不关心硬件 设备 的情况 而只关心其输入和输出 但这不意味着设备驱动编写的工作是无关紧要的 正相反 编程人员需要格外重视LabVIEW设备驱动程序的编写 48 LabVIEW设备驱动 LabVIEW工程应用与设备 49 LabVIEW设备驱动 LabVIEW工程应用与设备 50 LabVIEW设备驱动 SCPI指令系统SCPI StandardCommandsforProgrammableInstruments 是建立在IEEE488 2基础上的可程控仪器标准命令 主要侧重解决仪器程控指令和仪器响应信息的标准化问题 目的是减少自动化测试测量仪器的编程时间 51 LabVIEW设备驱动 SCPI指令系统SCPI命令集的语法形式 它包含3个要素 助记符 层次结构和参数格式 SCPI的助记符按照以下规则简略书写 如果一个英文单词的字母个数不多于4个 这个词本身就是助记符 如果一个英文单词的字母个数超过4个 则用前4个字母作为助记符 如果助记符结尾是元音字母 则去掉这个元音字母 只保留3个字母 如果不是单词而是一个句子 则使用每个单词中的第一个字母和最后一个单词的全部字母作为关键词 再按规则 进行处理 例如 单词Frequency Power free ACVolts的助记符为FREQ POW FREE ACV 52 LabVIEW设备驱动 SCPI指令系统SCPI的指令普遍采用复合层次结构 同类指令则构成 指令树 复合层次结构是指 将多个助记符连接构成一个复合词 各个助记符之间用冒号隔开 以表示一个特定的功能 例如 设置输入衰减器 InputAttenuator 可写为 INPut ATTenuator 53 LabVIEW设备驱动 SCPI指令系统SCPI规定了几种标准的参数格式 一般有数值参数 布尔参数 开关参数等形式 其中数值参数用ASCII码传递 另外还包括最大值 最小值 无穷大等 布尔参数有两个取值 即1 0 或ON OFF 开关参数可能有多个开关值 最典型的指令 例如 MEASure POWer 为测量功率 VOLT PROT20V 为设置过压保护值 最大输出电压 20V 54 LabVIEW设备驱动 LabVIEW设备驱动编写1 层次分明直接与硬件进行作用的所有代码都应当被限制在设备驱动之中 除了能方便调用提高编程效率以外 这样做最突出的优势就是可以实现软硬件剥离 防止软件问题和设备故障混杂难辨 从而提高系统调试效率 同样 在进行设备驱动编写时 也可以采用层次划分的方法 将使用单一指令的功能放置在底层 需要使用多种指令 按照一定流程进行复杂控制或通信的功能放置在顶层 55 LabVIEW设备驱动 LabVIEW设备驱动编写2 功能完备从开发和未来扩充功能的角度 所有涉及的驱动都应该具备尽可能丰富的可选输入和输出 驱动的编写通常安排在系统开发的初期 如果不以这种思路编写驱动 在后期功能调整 扩充的时候 就很可能发生牵一发而动全身的修改 56 LabVIEW设备驱动 LabVIEW设备驱动编写3 演示 调试接口 与 系统脱机调试 中介绍的程序编写方式类似 用条件结构替换使能结构 并增加一个演示控制的接口 就可以实现脱离设备 便携演示功能 如上图 当输入控件 DEMO 为 假 时 执行硬件通信 当为 真 时 执行 演示 调试代码 57 LabVIEW设备驱动 具体到演示部分代码的编写 应当尽量模拟实际的输入 输出情况 并在必要的情况下添加人工扰动的输入接口 从而模拟实际情况下的变动乃至超出阈值的情况 如图9 14所示 为图9 13所示代码的另一部分 在保证输入 输出一致的基础上 尽量保持延时相等和输出数据的波动性 LabVIEW设备驱动编写3 演示 调试接口 58 目录 LabVIEW自动测试测量系统的层次结构LabVIEW软件工程LabVIEW工程项目管理LabVIEW设备驱动使用LabVIEW控制仪器使用LabVIEW控制DAQLabVIEW应用工程实例 59 使用LabVIEW控制仪器 仪器与计算机之间是使用驱动指令进行通信的 在LabVIEW中可以使用VISA标准发送命令到仪器并获取仪器返回的数据 这些封装了VISA指令的函数称为驱动 通过这些VISA指令 我们可以控制仪器的行为 例如 使用某些数字万用表仪器 可以编程使其高速获取缓冲数据 这时更像是一台示波器 有备注 60 使用LabVIEW控制仪器 仪器驱动的结构典型仪器驱动由3个部分组成 顶层是应用层 用于LabVIEW对该仪器控制的示例程序 中层是函数体 是封装过的VISA指令函数 底层是与通信协议直接相关的函数 最直接的VISA指令 61 使用LabVIEW控制仪器 仪器驱动的类型LabVIEW中有3种通用的仪器驱动来控制仪器 1 LabVIEWPlugandPlay驱动LabVIEWPlugandPlay仪器驱动是一套用来控制和通信可编程仪器的VI 由于该种类型的仪器驱动保留了通用的结构和接口 因此可以用很少的甚至是不需要代码快速地和仪器连接与通信 2 IVI驱动IVI驱动是允许仿真和仪器可交换性的更高级的驱动 它可以实现类似仪器的驱动互换性 与其他类型的驱动相比 IVI驱动有以下3种优势 仪器状态缓存来提高性能 多线程安全 仪器属性存取 3 分布式仪器驱动 62 使用LabVIEW控制仪器 LabVIEW中的VISA模块VISA是虚拟仪器体系结构 VirtualInstrumentSoftwareArchitecture 的简称 它是由VXIPlug Play系统联盟在1996年2月提出的 其目的是制定一种新的标准 确保不同厂商 不同接口标准的仪器能相互兼容 可通信和数据交换 并且提供给用户方便易用的驱动程序 VISA的主要特点是 面向对象编程 是当前所有仪器接口类型功能函数的超集 并且十分简洁 与仪器的I O接口类型无关 与操作系统和编程语言无关 便于驱动的可移植性 LabVIEW的VISA模块位于 仪器I O VISA 函数子选板中 通过选择不同类型的VISession可以调用相应的驱动程序控制GPIB Serial Ethernet PXI或VXI总线的仪器 63 使用LabVIEW控制仪器 LabVIEW中的VISA模块1 使用InstrumentI OAssistant校验VISA通信在使用VISA对仪器进行控制时 需要获取对应仪器的地址 并使用 IDN 指令校验与仪器的通信 以确认计算机是否能够与仪器正常进行通信 在 函数 仪器I O 选板中 将仪器I O助手ExpressVI放入程序框图 LabVIEW会自动搜索与系统相连的仪器并获取仪器的地址 此外 可以使用QueryandParse步骤向仪器发送一个确认指令来使通信生效 多数情况下为 IDN 64 使用LabVIEW控制仪器 LabVIEW中的VISA模块 65 使用LabVIEW控制仪器 LabVIEW中的VISA模块2 使用VISA查找资源函数校验VISA通信如果LabVIEW中没有VISAVI或仪器驱动可用 可以使用 VISA查找资源 函数校验VISA通信 LabVIEW同样提供了另外一种交互式运行的工具 VISAInteractiveControl VISAIC 在Windows平台下可以通过选择 开始 NationalInstruments VISA VISAInteractiveControl 选项来启动 VISAIC 工具 也可以选择MAX中的 工具 NI VISA VISAInteractiveControl 选项来启动VISAIC 66 使用LabVIEW控制仪器 LabVIEW中的VISA模块 67 使用LabVIEW控制仪器 LabVIEW中的VISA模块3 编写VISA应用程序在使用InitializeInstrumentDriver vi初始化仪器时 需要知道资源名称或仪器描述符 也就是VISA别名或IVI逻辑名 它描述的是资源的准确名称和位置 它有下面的格式 InterfaceType boardindex Address INSTR例如 GPIB0 2 INSTR就是仪器描述符 表示使用第一块GPIB卡的设备地址2与仪器通信 实际上 简单的VISA应用程序只需要两个VISA函数 VISA写入和VISA读取 68 使用LabVIEW控制仪器 使用LabVIEW创建典型的VISA应用以Agilent公司生产的34401数据采集单元为例 说明LabVIEW与其他厂商的仪器利用VISA通信的步骤和方式 假定使用34401数据采集单元采集AC电压信号 频率fmax 100Hz 的有效值 并且只有在触发源信号为上升沿时才开始采集信号 69 使用LabVIEW控制仪器 使用LabVIEW创建典型的VISA应用首先使用Initialize vi进行仪器的初始化工作 建立与仪器的远程连接 ConfigureAperture vi用于配置仪器采集信号的类型 这里选择的是AC电压信号 为了进行有效的测量 使用ConfigureACFilter vi以过滤无用频率的信号 该步骤是可选的 其次是配置触发源 触发电平和触发模式 再使用InitiateMeasurement vi使仪器进入测量状态 准备进行读取AC电压值 Read SinglePoint vi函数用于获取34401返回的AC电压数据 并赋值给测量数据显示控件 最后需要使用Close vi释放占用的仪器资源 70 目录 LabVIEW自动测试测量系统的层次结构LabVIEW软件工程LabVIEW工程项目管理LabVIEW设备驱动使用LabVIEW控制仪器使用LabVIEW控制DAQLabVIEW应用工程实例 71 使用LabVIEW控制DAQ 有备注 一个通用DAQ测量系统不同于其他的系统 其主要的测量任务实质上是由安装在计算机中的软件完成的 而DAQ硬件只是将输入信号转换成计算机能操作的数字信号 这意味着同一个DAQ设备能执行多种测量任务 不同的测量任务仅仅是软件的不同 这就给予了用户足够的灵活性 同时也要求对应的程序设计语言可以方便 简单地与DAQ设备通信 这正是LabVIEW相对于其他编程语言无可比拟的优势 72 使用LabVIEW控制DAQ 信号源信号源是待测单元的激励信号端 不同的测试系统需要选择相应的信号源 避免信号源对待测单元的影响 对于模拟输入信号而言 按地线方式划分 信号源可分为接地信号源和浮地信号源 73 使用LabVIEW控制DAQ 信号调理信号调理是指对测量信号进行放大 隔离 滤波 激励 线性化等处理的过程 在将原始信号送入相关数据采集设备或者测试仪器之前 往往需要进行预处理步骤 如增加有效信号强度 减少噪音信号强度 线性化等 以便更准确容易地获得原始信号的特征 74 使用LabVIEW控制DAQ 信号采样对于模拟信号数据采集系统而言 一个最重要的参数是采集设备采样输入信号或产生输出信号的速率 在固定时间内采样率高的设备可以读取更多的点 可以比低速采样率更好地表现原始信号 1 混叠混叠是由采样速率过慢引起的 会输出有误的信号 因此为了避免混叠 采样频率通常应若干倍于原始信号的最大频率 2 采样率采样率越大 就越能够重现原始信号 但是 长时间快速采样会导致没有足够的内存或硬盘空间保存数据 并且会增加仪器的生产难度和成本 所以还需要综合考虑 75 使用LabVIEW控制DAQ 触发触发器是引起某种动作的信号 如开始采集数据等 如果需要在某个特定时刻开始一次测量就需要采用触发器 以更加准确地获取需要的信号 而不采集无用的信号 1 模拟边沿触发当模拟信号符合指定要求时 如水平信号或斜坡的上升下降沿 可以使用模拟边沿触发 2 模拟水平触发当模拟信号在两个电压电平所定义的区间进出时 可以使用模拟水平触发器 3 数字边沿触发数字边沿触发通常是TTL信号 它有两个间断电平 高电平和低电平 当数字信号从高电平到低电平移动时会产生一个下降沿 而从低电平到高电平移动时会产生一个上升沿 可以使用数字边沿触发 76 使用LabVIEW控制DAQ 信号分析信号分析是一系列的过程 转换获得的信号 抽取信号相关信息 滤除噪声 以及用比原始信号更易理解的形式表达该信号 1 滤波滤波是一种最常见的信号处理技术 它能够从所采集的信号中滤除不需要的信号或噪声 2 加窗谱泄露是一种所测得的谱好像从某个频率泄露到其他频率上的现象 当采样波形的长度不是采样周期的整数倍时会出现这种情况 减少谱泄露的方法通常是将时域波形乘以窗函数 77 使用LabVIEW控制DAQ 信号分析 78 使用LabVIEW控制DAQ 测量直流电压电压有两种类型 直流电 DC 和交流电 AC 前者是随时间变化很缓慢的模拟信号 如电压 温度 压力和张力等信号 1 单点读数在LabVIEW中使用内置的DAQmx函数可以很方便地对DAQ设备进行控制 如图所示为一种风速测量的单点读数编程方式 2 多点读数如果信号变化很快或者测量线上存在噪声 则无法使用上述方法得到准确的读数 可以采用采集多个点取平均值的方法 如图所示为一种风速测量的多点读数编程方式 79 使用LabVIEW控制DAQ 测量交流电压由于交流信号交替改变 其电压 电流和功率都不再是常量 在测试时一般采用有效值表征其大小 对于正弦型交流电而言 如图是在LabVIEW中利用NI DAQmx获取交流电压读数的例子 80 使用LabVIEW控制DAQ 测量电流电流是由于运动电荷的改变而形成的一种物理现象 通过欧姆定律I V R可以将其与电压方便地相互转换 普通的多功能DAQ并没有提供直接获取电流值的方式 而是通过测量采样电阻两端的电压值来计算出电流 如图9 37所示 将信号输出端与采样电阻RP相连 使用DAQ设备直接采集RP两端的电压 但是值得注意的是 DAQ设备的输入电压范围一般是 10 10V 因此必须根据输出电流的典型值合理地选择采样电阻RP 81 使用LabVIEW控制DAQ 测量电阻电阻是指电流在传输过程中受到的阻碍 1 表示1V的电压在产生1A电流时受到的阻碍 常用的测量电阻的方法是2线制法和4线制法 它们都是基于欧姆定律 使用测量装置测出电压在电流通过前后的落差 82 使用LabVIEW控制DAQ 产生电压信号使用DAQ设备中的模拟输出AO可以产生单一的直流信号或时变信号 缓冲信号 前者采用单点输出方式以产生一个稳定的DC信号 当需要改变该模拟输出通道的值时 就必须调用一个VI进行DC更新 后者采用缓冲输出方式以产生一个频繁变化的波形 当计算机无法将整个波形保存在一个缓冲区中时 就必须在信号产生过程中不断地向缓冲区载入新数据 如图显示了采用NI DAQmx在某个模拟输出通道上产生频率为10Hz 振幅为1V的正弦波 83 使用LabVIEW控制DAQ 使用LabVIEW创建典型的DAQ应用可以使用NIMeasurements面板的VI生成DAQ应用 测试步骤如图所示 首先需要根据DAQ物理通道创建虚拟通道和DAQ任务 得到该任务的Handle 接着需要使用设置时钟 vi函数设置采样模式 采样点数和采样速率 该步骤是可选的 然后使用设置触发 vi函数设置数据采集的触发 主要是配置触发模式和触发源 该步骤是可选择的 如果没有配置触发方式则直接开始采集任务并不等待触发信号 此外 还需要使用读取 写入数据 vi函数将输入写入DAQ设备或者从DAQ设备中读取数据 最后需要使用DAQmx清除任务 vi函数释放DAQ资源 84 使用LabVIEW控制DAQ 使用LabVIEW创建典型的DAQ应用如果需要连续采集某个单通道的电压 并且只有当PFI3信号发生上升沿跳变时才开始采集模拟信号 如图9 42所示 首先根据物理通道创建DAQ模拟输入采集任务 接着根据要求将采样模式设置为 连续采样 并设置每个物理通道每次读取的采样点数和采样速率 然后 还需要配置PFI3为触发源信号 并设置使用上升沿触发 配置完成后 就可以使用DAQmx开始任务 vi开始执行该采集任务 由于是连续采集 为了使程序能够持续运行 还需要使用While循环并用DAQmx读取 vi不断获取DAQ卡中模拟输入通道得到的数据 85 目录 LabVIEW自动测试测量系统的层次结构LabVIEW软件工程LabVIEW工程项目管理LabVIEW设备驱动使用LabVIEW控制仪器使用LabVIEW控制DAQLabVIEW应用工程实例 86 LabVIEW工程应用实例 LabVIEW作为代表性的图形化系统设计编程语言 在工业上特别是测试测量领域有广泛的应用前景 本节将结合为某大型能源公司开发的一套 太阳能电池板组件连续性实验系统 为例 从最开始的需求分析 核心系统开发 系统脱机调试 系统上机调试直至系统后期的升级维护进行全面介绍 87 LabVIEW工程应用实例 系统需求分析接触一个项目后 首先要研究的就是对这个项目的开发难度 时间成本和人力成本 和收益等进行评估 这个工作一般可由项目团队的负责人完成 也可以由团队完成 初期评估非常必要 否则可能会对项目和团队造成严重危害 88 LabVIEW工程应用实例 系统需求分析完成初期评估并确定承接这个项目后 需要对客户的需求进行分析 通常 客户并没有自动化测试测量的专业背景 他们往往给出的只是测试测量功能的一个大致描述 所以需要在了解基本需求后 编写一个快速模型 并以此为基础与客户继续进行充分沟通 设身处地地去思考客户最终要实现的是什么功能 以客户能理解的通俗语言 结合文档和快速模型形式 展现给客户 并不断沟通修改 直至达成一致 完成需求分析后 作出一份需求文档 由双方签字确认 89 LabVIEW工程应用实例 系统需求分析在跟进的编程过程中 除非有特殊原因 否则项目需严格地按照需求文档进行 因为在实际的工业工程应用中 由于产业扩张 产品升级 客户的想法会发生变化 但是 如果项目需求经常变动 甚至反复变动 这会极大消耗系统开发人员的精力 降低开发项目的收益 所以 在初步沟通后 要给出充足的时间让客户去审查初步讨论的方案 然后再进行充分沟通 保证满足客户需求并有效实现测试测量功能 并经双方签字确认 不能轻易修改 将这个思路贯彻在具体项目中 将为随后的项目开发省去很多麻烦 90 LabVIEW工程应用实例 系统需求分析在需求分析中 不论是接受还是拒绝客户的要求 始终要把握一点 那就是承接这个项目 最终目的是为了快速高效地帮助客户的实现测量功能 所有的开发工作都是围绕这个观点展开的 91 LabVIEW工程应用实例 如表所示 就是IEI开发团队在 太阳能电池板组件连续性实验系统 项目中 与客户达成一致后编写的客户部分需求列表 92 LabVIEW工程应用实例 系统软件开发由于现代工业测试测量系统的复杂性和项目开发时间的紧迫性 往往需要一个团队协作完成 在团队协作时 采用模块化 层次化的结构设计系统软件能提高团队的协调性 提高项目的整体推进效率 在本项目开发中 IEI开发团队将整个测试系统根据功能的差异分成几个主要的模块 主界面模块 配置模块 设备驱动 数据采集模块 数据分析模块和报表生成模块 并撰写了一份称为 编程结构 的文档 详细说明各个模块的功能 子vi及其重要输入 输出接口 93 LabVIEW工程应用实例 系统软件开发参照 编程结构 这一文档进行任务分配 团队中每个开发人员的工作就变得相对独立 在较大的自由度上可以不受干扰地实现特定模块 同时 由于各个模块和vi的重要数据接口已经被定义 也保证了所有开发任务可以实现无缝连接 如此 在整体上就能大大提高系统的开发效率 94 LabVIEW工程应用实例 下面所示为 太阳能电池板组件连续性实验系统 编程结构 的一段引用 95 LabVIEW工程应用实例 系统脱机调试在完成核心系统开发之后 下一项工作就是进行调试 对于本项目而言 脱机调试就是在没有连接太阳能电池板组件 恒流源 数据采集器等设备的情况下 进行系统调试 如图所示为readdatahengliu vi中的demo代码 使这一底层驱动在DEMO模式下不运行设备通信代码 而是产生一些仿真数据 提供给上层 下游 程序使用 从而保持整个系统运行在仿真环境中 方便发现与设备无关的代码错误和功能缺陷 96 LabVIEW工程应用实例 系统脱机调试在本项目脱机调试过程中需要编写demo代码 主要包括配置模块中的设备自检部分 数据采集模块 驱动模块 报表生成模块 经过相应处理后 这套测试系统在没有接入设备的情况下也能够模拟实际运行的情况 97 LabVIEW工程应用实例 系统上机调试上机调试就是亲临测试现场 连接设备进行调试 到达现场后 在保证系统方案正确 设备齐全无故障的情况下 主要有两项工作 设备驱动调试和系统整体功能调试 程序设计人员到达测试现场后 一般将调试工作分成以下4个方面进行 98 LabVIEW工程应用实例 系统上机调试1 确认系统方案是否有重大变更俗话说 计划赶不上变化 在工业工程应用中 由于设备预算超支 对测试对象估计不足 没有相关测试标准等原因 客户的测试测量需求可能发生变化 这种变化应该尽量在系统开发阶段 通过定期的协商 交流从客户获取并确认 但是 仍然可能在开发人员到达测试现场后发生新的变化 疏忽 误解和新的认识都会产生这种需求变化 99
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《幼儿教师招聘》模拟题库讲解附答案详解
- 2025年教师招聘之《小学教师招聘》考前冲刺模拟题库及1套完整答案详解
- 保健食品可持续发展模式创新创业项目商业计划书
- 教师招聘之《幼儿教师招聘》考试黑钻押题附参考答案详解【培优a卷】
- 演出经纪人之《演出经纪实务》题库检测题型及答案详解(全优)
- 2025年教师招聘之《小学教师招聘》通关练习题库包附参考答案详解【综合题】
- 教师招聘之《小学教师招聘》高分题库附参考答案详解(研优卷)
- 教师招聘之《小学教师招聘》押题模拟完整答案详解
- 2025年教师招聘之《幼儿教师招聘》押题练习试卷及参考答案详解【突破训练】
- 2025年四川天府新区党工委管委会工作机构所属事业单位选调10人笔试高频难、易错点备考题库及参考答案
- GB/T 37507-2025项目、项目群和项目组合管理项目管理指南
- 粪菌移植技术进展
- GB 14930.2-2025食品安全国家标准消毒剂
- 《食品专业英语》课件-1 Food+Processing-+An+Overview
- 全过程跟踪审计实施方案
- 2025年下半年教师资格证考试《小学教育教学知识与能力》密押真题卷
- 职业技术学院《农业生态与环境保护》课专业课程标准
- 食品保质期验证报告范文
- 院士专家工作站合作建站协议书范本
- 体育行业反兴奋剂管理制度
- 2024年大唐集团招聘笔试试题及答案-
评论
0/150
提交评论