第10章 LabVIEW常用工具包.ppt_第1页
第10章 LabVIEW常用工具包.ppt_第2页
第10章 LabVIEW常用工具包.ppt_第3页
第10章 LabVIEW常用工具包.ppt_第4页
第10章 LabVIEW常用工具包.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LabVIEW常用工具包 IntelligentElectronicsInstituteHuazhongUniversityofScience Technology 2 目录 LabVIEW常用工具包简介LabVIEWOffice报表生成工具包LabVIEW数据库连接工具包OpenG工具包MGI工具包JKI状态机工具包 3 LabVIEW常用工具包简介 工具包 具有专用功能的LabVIEW插件NI官方工具包 LabVIEWOFFICE报表生成工具包LabVIEW数据库连接工具包 第三方工具包 VIPackageManagerMGI工具包 4 LabVIEWOffice报表生成工具包 基础性的报表生成VI WORD与EXCEL相关操作VI 插入VI说明信息及打印相关VI 基于模板的报表生成VI 函数 编程 报表生成 5 EXCEL报表生成 要准确迅速的进行报表生成工作需要进行两个主要两个步骤 Where 和 What 即告诉报表生成工具包 在Office文档的 哪个位置 放置上 什么内容 6 该例程的编写步骤如下 1 使用新建报表 vi进行报表建立 报表类型选择为 Excel 同时为了使程序运行时不会弹出Excel软件窗口 窗口状态选项要选择为 minimized 2 放入ExcelEasyTitle vi 该VI可以在ExcelSpecific目录下找到 使用本VI可以给当前报表设置标题 在本例中 将报表标题设置为 IEI系统测试报告 标题位置为A1单元格 则需要设定 name 值为 A1 title 值为 IEI系统测试报告 另外 使用本VI还可以设置标题的字体等等 3 放入ExcelEasyText vi 该VI可以在ExcelSpecific目录下找到 使用本VI即可以告诉报表工具包在Excel的哪个位置放置上什么内容 在本例中 假设要在Excel文件的A2单元格内放入 报告时间 这个字符串 则需要设定 name 值为 A2 text 值为 报告时间 另外 使用本VI还可以设置报表的字体以及边框等等 4 使用报表保存至文件 vi将报表保存为 xls格式 本例中将报表命名为IEIReport xls保存在C盘根目录下 5 使用处置报表 VI关闭报表文件 释放资源 EXCEL报表生成 7 Word报表的生成方式和Excel报表类似 该例程的编写步骤如下 1 使用新建报表 vi进行报表建立 报表类型选择为 Word 同时为了使程序运行时不会弹出Excel软件窗口 窗口状态选项要选择为 minimized 2 放入WordEasyTitle vi 该VI可以在WordSpecific目录下找到 使用本VI可以给给当前Word报表设置标题 在本例中 将报表标题设置为 IEI系统测试报告 另外 使用本VI还可以设置标题的字体等等 3 放入WordEasyText vi 该VI可以在WordSpecific目录下找到 使用本VI即可以将所需内容添加至Word报表中 在本例中 需要将报表日期插入当前报表 则需要将报表日期字符串连接至 text 端 另外 使用本VI还可以设置报表的字体 背景颜色以及对齐方式等等 4 使用报表保存至文件 vi将报表保存为 doc格式 本例中将报表命名为IEIReport doc保存在C盘根目录下 5 使用处置报表 vi关闭报表文件 释放资源 Word报表生成 8 基于模板的报表生成方式 1 建立模板 1 打开MicrosoftExcel程序 新建空白工作簿 2 将A1单元格的名称改为 ReportTitle 3 将A2单元格的名称改为 ReportTime 4 将该工作簿保存为Excel97 2003模版的格式保存 本例中命名为Exceltemplate xlt保存在C盘根目录下 9 基于模板的报表生成方式 2 使用交互式VI编程MSOfficeReport vi就会自动添加两个变体数据类型的输入端 名字分别为 ReportTitle 和 ReportTime 即为创建Excel模版时定义好的名字 之后可以通过分别为这两个输入端赋值来生成所需要的报表 10 报表生成例程 11 报表生成例程 该例程遵循 打开 操作 保存 关闭 的文件编程模式 首先使用新建报表 vi建立Excel报表 后使用ExcelEasyTitle vi设置报表标题为 IEI测试报告 同时将标题字体设置为 微软雅黑 字号设置为24号 接下来使用ExcelEasyText vi插入报告概述 同时将报告概述的字体设置为 宋体 字号设置为12号 下一步使用ExcelEasyTable vi将表格插入到Excel报表中 字体和字号依前设置 接下来使用ExcelEasyGraph vi将波形图插入到Excel报表中 最后设置好报表的保存路径 保存完毕后使用处置报表 vi关闭报表 释放资源 12 LabVIEW数据库连接工具包 数据库分类 关系型数据库 非关系型数据库著名的商业用数据库管理系统有MSSQLServer Orace DB2 VisualFoxpro MicrosoftAccess等等 另外 开源的数据库管理系统有MySQL ApacheDerby PostgreSQL Ingres等等 MSSQLServer是Microsoft公司开发的商用数据库管理系统 在工业测试应用中非常流行 安装和使用都非常方便 并且支持SQL语言 所以本节基于MSSQLServer2005为例介绍数据库连接工具包的操作方式 13 LabVIEW数据库连接工具包 数据库是以表格的形式来记录数据的 数据表的每一行 表示一条记录 Record 数据表的每一列 表示记录中的字段 Field 通俗的说就是记录的一项内容 比如仪器名称等等 能够唯一标识表中某一行的属性或属性组 叫主键 PrimaryKey 一个表只能有一个主键 但可以有多个候选索引 因为主键可以唯一标识某一行记录 所以可以确保执行数据更新 删除的时候不会出现张冠李戴的错误 14 LabVIEW数据库连接工具包 在使用LabVIEW数据库连接工具包操作数据库之前 需要先连接数据库 这就像操作文件之前 先要打开文件一样 连接数据库主要有以下两种方式 分别为使用DSN连接数据库和使用udl文件连接数据库 15 使用DSN连接数据库 LabVIEW数据库连接工具包基于ODBC OpenDatabaseConnectivity 技术 在使用该工具包的时候 需要提供数据源名DSN DataSourceNames 才能连接到数据库 所以需要先创建DSN 在Windows控制面板 管理工具 数据源 ODBC 中打开数据源管理器 在 用户DSN 选项卡中单击 添加 按钮 选择 SQLServer 驱动 输入用户名和密码后 点击 测试数据源 如果配置正确的话 就会弹出 测试成功的提示 本例中的DSN配置如图所示 完成以上步骤后 就可以在 用户DSN 中看到新建立的DSN了 16 使用udl文件连接数据库 Microsoft公司设计的ODBC标准只能访问关系型数据库 对非关系型数据库则无能为力 为了解决这个问题 Microsoft公司另外提供了一种技术 Active数据对象ADO ActiveDataObjects 技术 ADO使用通用数据连接UDL UniversalDataLink 来获得数据库信息以实线数据库连接 udl文件的创建方法非常简单 可以在任意文件夹下建立一个文本文件 然后将其后缀名改为udl即可 本例中将此文件命名为IEI Measurements udl 双击打开udl文件进行配置 在 提供程序 选项卡中选择 MicrosfotOLEDBProviderforSQLServer 然后在 连接 选项卡中设置好数据库服务器的相关信息 点击 测试连接 按钮 如果配置没有问题 则会提示 测试连接成功 至此udl文件配置完成 17 LabVIEW数据库基本操作 建立好数据源之后 使用LabVIEW数据库连接工具包就可以非常方便的对数据库进行操作了 LabVIEW数据库连接工具包安装完成后 可以在背面板的函数 互联接口 Database面板下找到所有的相关VI 18 LabVIEW数据库基本操作 数据库操作遵循 打开数据库 操作数据库 关闭数据库 的基本流程 其中 使用DBToolsOpenConnection vi来打开数据库连接 使用DBToolsCloseConnection vi关闭数据库连接 在 操作数据库 步骤中可以对数据库进行所需的操作 19 创建数据表 创建数据表是由LabVIEW数据库连接工具包中的DBToolsCreateTable vi来实现的 首先使用DBToolsOpenConnection vi来打开数据库连接 连接文件使用前面创建的IEI Measurements udl文件 之后使用DBToolsCreateTable vi来建立新的数据表格 表格的名称设定为 Device 其中包含4个字段 分别为 DeviceName DeviceType DeviceID 和 Company 20 删除数据表 删除数据表格的过程与创建表格的过程类似 使用DBToolsDropTable vi实现 假设要删除前面建立好的表格 只需要在DBToolsDropTable vi中指明要删除的表格名称即可 另外 创建表格和删除表格的参数非常类似 在实际工程应用中 一般将二者编写为同一个VI 在其中实现表格的创建和删除操作 21 添加数据记录 添加数据记录可以由LabVIEW数据库连接工具包中的DBToolsInsertData vi实现 DBToolsInsertData vi需要3个主要的参数 table 参数确定将要插入的表格名称 data 参数确定将要插入的数据 columns 参数对应插入列的名称 可以先使用DBToolsListColumns vi列出表格中列的名称 可以省去手动输入列名的麻烦 以方便下一步的数据插入 22 查询数据记录 查询数据记录 读出数据记录 也是数据库中经常使用的操作步骤 在LabVIEW数据库连接工具包中 查询数据记录使用DBToolsSelectData vi来实现 只需要在DBToolsSelectData vi的 table 输入端指明需要查询记录的表格名称 该VI会把表中的所有数据读出来 使用 columns 参数可以选择性的读出所需要的列 23 数据库高级操作 数据库操作除了创建表格 删除表格 添加记录 查询记录这些基本操作之外 常用的还有删除记录 更新现有数据等高级操作 这些高级操作在LabVIEW数据库连接工具包中并没有对应的现成VI 所以需要接触SQL语句来实现 LabVIEW数据库连接工具包执行SQL语句是通过DBToolsExecuteQuery vi实现的 该VI可以在函数 互联接口 Database Advanced面板下找到 24 数据库高级操作 Delete 通过查询SQL参考手册 可知删除一条记录的SQL关键字为 DELETE 其语法为 DELETEFROMtable nameWHEREcolumn name some value假设要删除DeviceName为 ELVIS 的数据记录 则使用SQL语句删除记录的程序框图如图所示 25 数据库高级操作 Update 在SQL语言中 修改数据记录的关键字为 UPDATE 其语法为 UPDATEtable nameSETcolumn name new valueWHEREcolumn name some value假设要修改DeviceName为 ELVIS 的数据记录 将其 DeviceID 修改为 6 程序框图如图所示 26 OpenG工具包 G 代表图形化编程语言 OpenG 则代表源代码公开的图形化编程语言 即 开源 语言 所谓 开源 包含两层含义 其一 对于用户来讲它是免费软件 其二 它允许用户自由地查看 修改和传播源代码 OpenG就是这么一种可运行在LabVIEW开发环境下 免费的 源代码公开的图形化编程语言软件包 实质是使用LabVIEW开发的 由于开源的LabVIEW工具包多而且杂 不便于用户的查询 下载和安装 因此JKISoftware社团开发了一种方便于用户下载和管理LabVIEW工具包的软件 VIPM VIPackageManager 下面首先介绍VIPM的安装和使用方法 之后在此基础上介绍OpenG工具包中各种VI的使用方法 27 VIPM安装和使用 VIPM安装包可在VIPM主页 上下载 最新版本为VIPM2010 VIPM分三种版本 其中CommunityEdition是免费版 另外两种ProfessionalEdition和EnterpriseEdition需要付费才能使用 28 配置VIPM和LabVIEW的连接 点击菜单栏中的Tools Options 进入软件配置界面 点击 LabVIEW 选项卡 在左边的列表中会自动列出当前系统中已经安装的LabVIEW版本 点击左下角的 EditSelectedItem 按钮 进入连接配置界面 在此界面配置好TCP IP端口 默认为3363 点击 Test 按钮 如果配置正确 则会提示测试成功 至此 VIPM与LabVIEW之间的连接配置完成 29 安装OpenG工具包 配置好VIPM与LabVIEW的连接之后 就可以使用VIPM安装所需要的工具包了 以安装OpenG工具包为例 首先点击主界面上方的按钮 CheckAllPackageRepositoriesforAvailablePackages 程序会列出所有可以下载安装的工具包 在列出的工具包中找到OpenGToolkit 右键点击 Install VIPM会自动把全部的OpenG工具包安装完毕 OpenG工具包也包含前面板控件和背面板函数两部分 前面板控件主要包含一些常用的按钮 背面板空间是OpenG工具包的核心 包含了丰富的函数 30 OpenG函数 31 指定范围随机数产生工具 LabVIEW自带的随机数发生器只能产生 0 1 范围内的随机数 而在实际应用中 需要的随机数往往是其他范围的 此时 使用RandomNumber WithinRange vi就可以很方便的产生任意范围的随机数 双击此vi可以查看它的源代码 如图所示 从一次函数的角度看就是线性化处理 该vi高极限和低极限默认分别为1和0 也就是说如果不给定任何输入参数 等价于LabVIEW自带的的 0 1 随机数发生器 32 数值转换枚举工具 OpenG数值工具提供的另一个函数CoercetoEnum vi可以将数值转换为枚举数据类型 这是一个非常有用的工具函数 NI公司的状态机工具包就使用了这种方法 从程序框图上看 该函数通过变体数据 将数值数据转换成枚举数据 在LabVIEW中数值类型是可以直接转换成枚举的数据类型的 之所以采用这种转换方式 主要的目的是为了便于实现状态机或者条件分支结构 33 布尔触发工具 OpenG布尔工具只包含一个函数 即BooleanTrigger vi 该vi可以用来检测输入布尔变量的上升沿或者下降沿 在PLC编程中 上升沿和下降沿的概念非常重要 在数据采集中也同样很常用 当布尔量前一个装状态为FALSE 当前状态为TRUE 我们称之为上升沿 当布尔量前一个状态为TRUE 当前状态为FALSE 称之为下降沿 BooleanTrigger vi使用了未初始化的移位寄存器来保存上一次循环的布尔值 并与当前值进行比较 进而判断出上升沿或是下降沿 34 检测数据改变工具 OpenG的比较工具同样仅包含一个函数 即DataChanged vi 该函数可以判断输入值是否发生了变化 如果当前值与上次值不同则为TRUE 相同为FALSE 这实际上也是一个 沿 的变化 该函数类似于事件结构 当一个控件的值发生变化时触发一个事件 不过是在轮询结构中使用的 35 过滤数组工具 在实际编程中 经常需要对数组进行过滤操作 也就是将数组中某些特定值剔除 使用OpenG数组工具中的Filter1DArray vi可以方便的实现数组过滤功能 36 数组搜索工具 OpenG数组工具里包含一个常用数组搜索工具 SearchArray vi 它是对LabVIEW数组工具中的搜索一维数组 vi的扩展 搜索函数的目的是查找数组是否存在给定的元素并返回其所在位置 即索引 由于找到后立即返回 因此该函数无法直接返回所有满足条件的元素的索引 必须通过循环给定另外的开始位置 重新寻找 很多情况下 我们需要找到所有满足条件的索引 这就是OpenG数组搜索工具SearchArray vi完成的功能 37 删除数组元素工具 在LabVIEW自带的数组工具中 有一个删除数组元素 vi 但是使用此vi具有很多局限性 首先它每次只能删除一个或者一段元素 其次 删除一段元素的时候 这段元素必须是连续的 而OpenG工具包中的删除数组元素工具DeleteElementsFromArray vi是对LabVIEW自带vi的扩展 使用DeleteElementsFromArray vi可以非常方便的删除数组中任意位置的任意数量的元素 38 索引数组元素工具 OpenG的索引数组元素工具Index1DArrayElements vi也是对LabVIEW自带数组索引工具的扩展 LabVIEW自带的数组索引工具每次可以索引出一个元素 连续多个元素 整行或者整列 而使用OpenG的索引数组元素工具可以指定索引数组 从而索引出任意数量的元素 39 获取VI引用工具 CurrentVIsReference vi可以返回当前vi的引用 而CurrentVIsParentsReference vi可以返回当前vi的父函数的引用 这两个工具在实际应用中是经常需要用到的 尤其是获得当前vi的父函数的引用 可以省去编程人员查阅函数调用链的麻烦 40 创建VI克隆引用工具 OpenVICloneReference vi也是经常用到的工具 该工具是对LabVIEW自带函数打开VI引用 vi的扩展 当用户使用OpenG中的OpenVICloneReference vi的时候 首先给指定的VI创建一个模版 之后再创建这个模版的引用 在使用完此引用之后 会自动销毁之前创建的模版 释放资源 使用这种方式的好处是使新创建的引用和原VI完全隔离 对新创建引用的任何操作将不会影响原VI的运行 41 MGI工具包 MGI是MooreGoodIdeas INC 的缩写 MGI是一个以LabVIEW软件和NI公司的硬件产品为主体的自动化系统专业技术开发公司 该公司由DavidAMoore s在1999年创办 几年来 这个团队的业务能力得到不断发展和壮大 同时根据客户的实际需求和他们自身多年来的工作需要 总结 设计 开发了一套特有的VIs库 MGIFreewareVis 也就是下文将要介绍的MGI工具包 自由的提供给其他的LabVIEW爱好者参考使用 42 数组移位工具 在MGI的1维数组工具中包含一个数组移位函数MGIShiftArray vi 使用该函数可以非常方便的对数组元素进行任意位数的移位操作 移位之后的空元素将使用NaN填充 使用数组移位函数的典型例程如图所示 原数组经过位数为 2 的移位操作之后 原数组所有元素均向左移动2位 同时用NaN填充最右边空出的两个元素 43 以阈值插值1维数组扩展工具 MGI的1维数组工具包含一个以阈值插值1维数组扩展函数MGIThreshold1DArrayExtended vi 它是LabVIEW自带以阈值插值1维数组函数的扩展 该函数扩展了LabVIEW自带以阈值插值1维数组函数的使用范围 它可以产生数组限制之外的指数索引 当阈值在输入数组的范围之内时 MGIThreshold1DArrayExtended vi和LabVIEW自带的以阈值插值1维数组 vi返回的指数索引值完全相同 但是当输入的阈值超出数组范围 大于数组最大值或者小于数组最小值 时 LabVIEW自带的以阈值插值1维数组 vi只会返回数组内和阈值最相近的指数索引 而MGIThreshold1DArrayExtended vi则会返回精确的指数索引 而不受数组范围的影响 44 1维数组滑动平均工具 MGI的1维数组工具包包含一个1维数组滑动平均函数MGICenteredWeightedMovingAverage vi 使用该函数可以根据输入的权值参数 Weighting 和大小参数 Size 对输入数组进行滑动平均计算 经过滑动平均操作后的数组会比原数组更为平滑 从而有利于其后的运算或观察 45 计算2维数组大小工具 MGI的2维数组工具包包含一个计算2维数组大小函数MGIXYSizes vi 该函数可以计算出2维数组X维度和Y维度的大小 46 求一元二次方程实根工具 MGI数值工具包中包含一个求一元二次方程实根函数MGIGetRealQuadraticRoots vi 使用该函数可以解出一元二次方程Ax 2 Bx C 0的实数根 如果方程没有实数根 则函数返回NaN 使用该函数解一元二次方程实根的典型例程如图所示 47 数值转换为数字数组工具 MGI数值工具包中包含一个将数值转换为数字数组函数MGINumbertoDigits vi 使用该函数可以将一个I32型数值转换为任意进制的数字数组 该函数默认将输入数值转换为10进制数字数组 而用户可以根据具体需求任意指定进制类型 如2进制 8进制等 转换完毕后 可以使用N Digits 0 Base 0 Digits 1 Base 1 Digits 2 Base 2 Digits n Base n重建原始数值 48 强制转换工具 MGI数值工具包中包含一些强制转换函数 如将角度转换为弧度函数MGIDegreestoRadians vi 将弧度转换为角度函数MGIRadianstoDegrees vi 将角度限制在 0 360 范围函数MGICoerceDegrees vi 将弧度限制在 范围函数MGICoerceRadians vi等等 49 浮点数 比较工具 MGI数值工具包中包含一个比较浮点数的函数MGIApproximatelyEqual vi 专门用来比较浮点型数值是否相等 浮点型数值因为精度的关系 在程序设计中不能直接使用 来判断是否相等 必须使用 的比较方式 MGIApproximatelyEqual vi函数判断两个浮点型数值的比值是否在99 至101 范围内 从而判断两个浮点型数值是否相等 50 展宽字符串工具 MGI字符串工具包中包含一个用来展宽字符串的函数MGIPadString vi 使用该函数可以将输入字符串展宽为用户需求的长度 EndLength 用户可以自由输入展宽所用的字符 默认的展宽字符为 s 当待展宽的字符串的长度大于EndLength时 函数返回原字符串 当待展宽的字符串的长度小于EndLength时 函数将使用用户指定的展宽字符 默认为 s 将字符串展宽为EndLength长度 51 安全文件名字符串工具 MGI字符串工具包中包含一个将字符串转换为安全文件名字符串的函数MGIMakeString 使用该函数可以删除文件名或者文件夹名中不允许使用的字符 从而得到安全的文件名字符串 该函数在文件保存操作中应用广泛 在任何操作系统中 总有一些字符是不允许作为文件名或者文件夹名的 比如在Windows操作系统中 等等字符不允许在文件或者文件夹名中出现 MGIMakeString使用一个搜索替换字符串的内置函数对这些字符进行搜索 从而删除掉这些字符 返回安全的文件名字符串 52 字符串匹配工具 MGI字符串工具包中包含一个字符串匹配函数MGIStringPatternMatchExists vi 该函数和LabVIEW自带的字符串匹配函数的区别是 LabVIEW字符串匹配函数每次只能匹配一个字符串 而使用MGIStringPatternMatchExists vi一次可以匹配多个字符串 函数将返回第一个匹配成功的字符串索引 53 JKI状态机工具包 JKISoftware社团不仅开发出了VIPM工具包管理软件 还开发出了一套实用的LabVIEW程序结构 其中的JKI状态机工具包因为其应用的广泛性以及开发的简单性 逐渐成为大型工业程序开发的必选结构之一 JKI状态机具有如下特点 1 基于字符串型的状态机结构 2 单线程的生产者 消费者模式 3 基于事件结构 便于捕捉各类事件 JKI状态机工具包同样需要借助于VIPM软件来安装 安装完毕之后 在LabVIEW函数选板 JKIToolkits JKIStateMachine中可以找到JKI状态机的相关函数 54 JKI状态机工具包 55 JKI状态机工具包 将String BasedQueuedStateMachine图标拖动到背面板上 JKI状态机工具在帮助用户构建状态机结构的同时 还对每个状态均进行了详细的注释说明 JKI状态机基于字符串型的状态队列结构以及单线程的生产者 消费者模式 程序会创建一个空的字符串队列作为状态队列 在程序运行过程中 生产者 会不断的将新的状态加入状态队列中 同时 消费者 会不断从状态队列中取出状态字符串 并执行这些状态 在JKI状

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论