




已阅读5页,还剩123页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录 单元 1 配置虚拟仪器软件与硬件 3 1 1 演示虚拟示波器和电压表 3 1 2 什么是虚拟仪器 4 1 3 配置虚拟仪器的硬件平台 5 单元 2 创建和编辑 调试 VI 9 2 1 LABVIEW 的基本开发平台 9 2 4 创建一个简单的 VI 程序 15 2 5VI 编辑和调试技术 16 2 6创建子 VI 20 2 7调用子 VI 25 单元 3 结构控制程序设计 27 3 1 While loop 结构与 chart 图表 27 3 1 1While loop 结构 27 3 1 2 波形图指示器 28 3 2 移位寄存器 Shift Register 33 3 3 For loop 37 3 4 分支 Case 结构 39 3 4 顺序结构 Sequence Structure 44 3 5 公式节点 Formula Node 47 单元 4 数组 array 和图形 graphs 程序设计 50 4 1 数组 array 50 4 1 1 创建数组及自动索引数组 50 4 1 2 数组函数 56 4 2 簇 cluster 60 4 2 1 创建簇控制和显示簇 60 4 2 2 使用簇与子 VI 传递数据 61 4 2 3 按名称捆绑与分解簇 62 4 2 4 数组和簇的互换 63 4 2 5error in 簇 和 error out 簇 63 4 2 6 波形图 Waveform 63 4 3 图形 64 4 3 1Graph 控件 65 4 3 2 Chart 独有控件 65 4 3 3XY 图形控件 XY Graph 67 4 3 4 强度图形控件 Intensity Graph 68 4 3 5 数字波形图控件 Digital Waveform Graph 68 单元 5 字符串和文件程序设计 70 5 1 字符串 70 5 2 文件的输入 输出 I O 72 5 2 15 2 1 文件文件 I OI O 函数函数 72 5 2 5 2 将数据写入电子表格文件将数据写入电子表格文件 73 单元 6 数据采集 Data Acquisition 80 6 1 基于了 LABVIEW 的数据采集卡系统总体结构 80 6 2 数据采集设备的设置与测试 81 6 3 采集模拟信号 85 6 3 16 3 1 A DA D 转换转换 86 6 3 26 3 2 模拟输入参数说明模拟输入参数说明 87 6 3 46 3 4 在在 DAQmxDAQmx 中创建应用程序中创建应用程序 88 虚拟测试技术 实验习题集 98 Excercise1 INTRODUCTION TO LABVIEW 98 Excercise2 CREATE A SIMPLE LABVIEW VI 99 Excercise3 Create a sub vi 100 Exercise 4 LOOP AND CHARTS 101 Exercise 5 ARRAY AND INDICATORS 104 Exercise 6 CASE AND SEQUENCE STRUCTURE 108 单元单元 1 配置虚拟仪器软件与硬件配置虚拟仪器软件与硬件 1 11 1 演示虚拟示波器和电压表演示虚拟示波器和电压表 虚拟仪器 virtual instrument 是基于计算机的仪器 或者说虚拟仪器技术就是用计算 机来做测量的技术 那么计算机能做测量吗 下面先看一个两个演示例子 例 1 虚拟示波器 图 1 1 虚拟示波器前面板 例 2 虚拟数字电压表 图 1 2 虚拟数字电压表前面板 上述例子说明 用计算机来做测量是可行的 1 21 2 什么是虚拟仪器什么是虚拟仪器 虚拟仪器 virtual instrumention 是基于计算机的仪器 计算机和仪器的密切结合是目 前仪器发展的一个重要方向 粗略地说这种结合有两种方式 一种是将计算机装 入仪器 其典型的例子就是所谓智能化的仪器 随着计算机功能的日益强大以及其体积的日趋缩小 这类仪器功能也越来越强大 目前已经出现含嵌入式系统的仪器 另一种方式是将仪器装 入计算机 以通用的计算机硬件及操作系统为依托 实现各种仪器功能 虚拟仪器主要是 指这种方式 下面的框图反映了常见的虚拟仪器方案 实际上 所有测试仪器可概括为三大功能模块组成 数据采集 数据测试和分析 结 果输出与显示 其中数据分析和结果输出完全可由基于计算机的软件系统来完成 因此只 要另外提供一定的数据采集硬件 就可构成基于计算机组成的测量测试仪器 虚拟仪器的主要特点有 1 尽可能采用了通用的硬件 各种仪器的差异主要是软件 2 可充分发挥计算机的能力 有强大的数据处理功能 可以创造出功能更强的仪器 3 用户可以根据自己的需要定义和制造各种仪器 注意 这里所指的虚拟仪器和 EDA 仿真软件中的虚拟仪器概念完全不同 它可以完全 替代传统台式测量测试仪器实现对真实信号的测量 而 EDA 仿真软件中的虚拟仪器是纯软 件的 仿真的 不能测量真实的信号 1 31 3 配置虚拟仪器的硬件平台配置虚拟仪器的硬件平台 虚拟仪器由通用仪器的硬件平台和应用软件两部分组成 一 硬件平台 虚拟仪器的硬件平台包括计算机和 I O 接口设备两部分 计算机是硬件平台的核心 I O 接口设备主要完成待测输入信号的采集 放大 和 A D 转换等 根据 I O 接口设备的不同 总线形式 虚拟仪器主要分为以下六种类型 测 控 对 象 PC DAQ板 GPIB仪器 串口仪器 VXI模块 PXI模块 I O接口设备 计 算 机 1 PC DAQ 插卡式虚拟仪器 它是以数据采集卡 信号条理电路以及计算机为硬件平台组成的插卡式虚拟仪器系统 这种系统采用 PCI 计算机总线 只要将数据采集卡插入计算机主板的空槽中即可以使用 插卡式虚拟仪器的组成原理框图 NI 公司的 M 系列数据采集卡 2 GPIB 仪器 它是以 GPIB 标准仪器总线与计算机为硬件平台组成的仪器测试系统 GPIB 仪器组成 3 串口仪器 串口仪器是以 serial 标准总线与计算机为平台组成的仪器测试系统 4 VXI 模块 它是以 VXI 标准总线仪器模块与计算机硬件为平台组成的仪器测试系统 VXI 虚拟仪器 5 PXI 模块 它是以 PXI 标准总线仪器模块与计算机为硬件平台组成的仪器测试系统 PXI 虚拟仪器 6 USB 模块 它是以 USB 标准总线仪器模块与计算机为硬件平台组成的仪器测试系统 NI USB 数据采集卡构成的虚拟仪器 1 1 4 配置虚拟仪器软件 配置虚拟仪器软件 虚拟仪器可使用相同的硬件系统 通过不同的软件就可以实现功能完全不同的各种测 量测试仪器 软件系统是虚拟仪器的核心 软件可以定义为各种仪器 因此可以说 软件 即仪器 虚拟仪器的应用软件包含应用程序和 I O 接口驱动程序两部分构成 1 I O 接口设备驱动程序 完成特定外部硬件设备的扩展 驱动以及计算机的通信 一般 I O 接口驱动程由提供 I O 设备的厂家提供 2 应用程序 在硬件平台具备以后 完成测试功能主要取决于应用程序 EXE 文件 3 开发工具 开发虚拟仪器必须有合适的软件工具 目前虚拟仪器软件开发工具主要有如下几类 文本式编程语言 如 visual C visual Basic labview windows CVI 等 图形化编辑语言 如 labview NI 公司 VEE HP 公司 等 这些软件开发工具为 用户设计虚拟仪器应用软件提供了良好的开发环境 4 LabVIEW 概述 LabVIEW Laboratory Virtual instrument Engineering 是一种图形化的编程语言 它广泛地被工业界 学术界和研究实验室所接受 视为一个标准的数据采集和仪器控制软 件 LabVIEW 集成了与满足 GPIB VXI RS 232 和 RS 485 协议的硬件及数据采集卡通讯的 全部功能 它还内置了便于应用 TCP IP ActiveX 等软件标准的库函数 这是一个功能强 大且灵活的软件 利用它可以方便地建立自己的虚拟仪器 其图形化的界面使得编程及使 用过程都生动有趣 图形化的程序语言 又称为 语言 使用这种语言编程时 基本上不写程序代码 取而代之的是流程图或框图 它尽可能利用了技术人员 科学家 工程师所熟悉的术语 图标和概念 因此 LabVIEW 是一个面向最终用户的工具 它可以增强你构建自己的科学 和工程系统的能力 提供了实现仪器编程和数据采集系统的便捷途径 使用它进行原理研 究 设计 测试并实现仪器系统时 可以大大提高工作效率 利用 LabVIEW 可产生独立运行的可执行文件 它是一个真正的 位编译器 像许 多重要的软件一样 LabVIEW 提供了 Windows UNIX Linux Macintosh 的多种版本 单元单元 2 创建和编辑 调试创建和编辑 调试 VI 知识点 Labview 的前面板和流程图设计 Labview 的操作模板和主菜单 创建两个 VI 程序 LABVIEW 的程序调式技术 创建子程序 本章概述 本章主要介绍 LABVIEW 的前面板窗口和流程图窗口 工具模板 控制模板和函数模板 通 过具体程序设计示例的来说明 LABVIEW 编程的一般步骤和程序调试技术 最后将介绍子 程序的概念以创建子程序的详细过程 2 1 LABVIEW 的基本开发平台的基本开发平台 LabVIEW 程序 简称 VI 包括前面板 front panel 流程图两个窗口 前面板前面板 前面板是图形用户界面 也就是 VI 的虚拟仪器面板 这一界面上有用户输入和显示输 出两类对象 具体表现有开关 旋钮 图形以及其他控制 control 和显示对象 indicator 图 2 1 所示是一个随机信号发生和显示的简单 VI 是它的前面板 上面有一个显示对象 以曲线的方式显示了所产生的一系列随机数 还有一个控制对象 开关 可以启动和停 止工作 显然 并非简单地画两个控件就可以运行 在前面板后还有一个与之配套的流程 图 控制对象 输 入 显示对象 输出 图 2 随机信号发生器的前面板板 流程图流程图 流程图提供 VI 的图形化源程序 在流程图中对 VI 编程 以控制和操纵定义在前面板 上的输入和输出功能 流程图中包括前面板上的控件的连线端子 还有一些前面板上没有 但编程必须有的东西 例如函数 结构和连线等 图 是与图 对应的流程图 我们可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子 还有一个随机 数发生器的函数及程序的循环结构 随机数发生器通过连线将产生的随机信号送到显示控 件 为了使它持续工作下去 设置了一个 While Loop 循环 由开关控制这一循环的结束 如果将 VI 与标准仪器相比较 那么前面板上的东西就是仪器面板上的东西 而流程图 上的东西相当于仪器箱内的东西 在许多情况下 使用 VI 可以仿真标准仪器 不仅在屏幕 上出现一个惟妙惟肖的标准仪器面板 而且其功能也与标准仪器相差无几 工具模板 工具模板 Tools Palette 为了便于创建 VI 程序 LabVIEW 平台上提供了三种模板供编程人员使用 这三种模 版分别是 工具 Tools 模板 控件 Controls 模板和函数 Functions 模板 函数 随机 数发生器 结构 循环 与前面板控件 对应的连线端 子 与前面板控件 对应的连线端 子 图 2 随机信号发生器的流程图 工具模板为编程者提供了各种用于创建 修改和调试 VI 程序的工具 如果该模板没有 出现 则可以在 Windows 菜单下选择 Show Tools Palette 命令以显示该模板 当从模板内 选择了任一种工具后 鼠标箭头就会变成该工具相应的形状 当从 Windows 菜单下选择了 Show Help Window 功能后 把工具模板内选定的任一种工具光标放在框图程序的子程序 Sub VI 或图标上 就会显示相应的帮助信息 工具模板图标有如下几种 工具模板图标 名称及功能 图标名称功能 操作工具使用该工具来操作前面板的控制和显示 使用它向数字 或字符串控制中键入值时 工具会变成标签工具的形状 选择工具用于选择 移动或改变对象的大小 当它用于改变对象 的连框大小时 会变成相应形状 标签工具用于输入标签文本或者创建自由标签 当创建自由标签 时它会变成相应形状 连线工具用于在框图程序上连接对象 如果联机帮助的窗口 被打开时 把该工具放在任一条连线上 就会显示相应 的数据类型 对象弹出菜 单工具 用左鼠标键可以弹出对象的弹出式菜单 漫游工具 使用该工具就可以不需要使用滚动条而在窗口中漫游 断点工具 使用该工具在 VI 的框图对象上设置断点 探针工具可以在框图程序内的数据流线上设置探针 程序调试员 可以通过控针窗口来观察该数据流线上的数据变化状况 颜色提取工使用该工具来提取颜色用于编辑其他的对象 具 颜色工具用来给对象定义颜色 它也显示出对象的前景色和背景 色 控件模板控件模板 Controls Palette 与上述工具模板不同 控制和功能模板只显示顶层子模板的图标 在这些顶层子模板 中包含许多不同的控制或功能子模板 通过这些控制或功能子模板可以找到创建程序所需 的面板对象和框图对象 用鼠标点击顶层子模板图标就可以展开对应的控制或函数子模板 只需按下控制或函数子模板左上角的大头针就可以把对这个子模板变成浮动板留在屏幕上 用控制模板可以给前面板添加输入控制和输出显示 每个图标代表一个子模板 如果 控制模板不显示 可以用 Windows 菜单的 Show Controls Palette 函数打开它 也可以在前 面板的空白处 点击鼠标右键 以弹出控制模板 注 只有当打开前面板窗口时才能调用 控制模板 控制模板如左图所示 它包括如图所示的几个子模板 控件子模板图标 名称及功能 图标名称功能 数值子模板包含数值的控制和显示 布尔值子模块逻辑数值的控制和显示 字符串子模板字符串和表格的控制和显示 列表和环 Ring 子模板 菜单环和列表栏的控制和显示 数组和群子模板复合型数据类型的控制和显示 图形子模板显示数据结果的趋势图和曲线图 路径和参考名 Refnum 子模板 文件路径和各种标识的控制和显示 控件容器库子模 板 用于操作 OLE ActiveX 等函数 对话框子模板用于输入对话框的显示控制 修饰子模板用于给前面板进行装饰的各种图形对象 自定义用户自定义的控制和显示 调用存储在文件中的控制和显示的接口 函数模板函数模板 Functions Palette 函数模板是创建框图程序的工具 该模板上的每一个顶层图标都表示一个子模板 若 函数模板不出现 则可以用 Windows 菜单下的 Show Functions Palette 函数打开它 也可以 在框图程序窗口的空白处点击鼠标右键以弹出函数模板 注 只有打开了框图程序窗口 才能出现函数模板 函数 模板如下图所示 函数模板的子模板 图标名称函数 结构子模板 包括程序控制结构命令 例如循环控制等 以及全局变 量和局部变量 数值运算子模板 包括各种常用的数值运算符 如 等 以及各种常见 的数值运算式 如 1 运算 还包括数制转换 三角函数 对数 复数等运算 以及各种数值常数 布尔逻辑子模板 包括各种逻辑运算符以及布尔常数 字符串运算子模 板 包含各种字符串操作函数 数值与字符串之间的转换函 数 以及字符 串 常数等 数组子模板 包括数组运算函数 数组转换函数 以及常数数组等 群子模板 包括群的处理函数 以及群常数等 这里的群相当于 C 语言中的结构 比较子模板 包括各种比较运算函数 如大于 小于 等于 时间和对话框子 模板 包括对话框窗口 时间和出错处理函数等 文件输入 输出子 模板 包括处理文件输入 输出的程序和函数 仪器控制子模板 包括 GPIB 488 488 2 串行 VXI 仪器控制的程序和 函数 以及 VISA 的操作功能函数 仪器驱动程序库 用于装入各种仪器驱动程序 数据采集子模板 包括数据采集硬件的驱动程序 以及信号调理所需的各 种函数模块 信号处理子模板 包括信号发生 时域及频域分析函数模块 数学模型子模块 包括统计 曲线拟合 公式框节点等函数模块 以及数 值微分 积分等数值计算工具模块 图形与声音子模 块 包括 3D OpenGL 声音播放等函数模块 通讯子模板 包括 TCP DDE ActiveX 和 OLE 等函数的处理模块 应用程序控制子 模块 包括动态调用 VI 标准可执行程序的函数函数 底层接口子模块 包括调用动态连接库和 CIN 节点等函数的处理模块 文档生成子模板 示教课程子模板 包括 LabVIEW 示教程序 用户自定义的子 VI 模板 选择 VI 子程 序 子模板 包括一个对话框 可以选择一个 VI 程序作为子程序 SUB VI 插入当前程序中 其它几个子模板是 LabVIEW 的附加 Toolkit 安装上去的 在 LabVIEW 完全版中不包括这 些子模板 2 4 创建一个简单的创建一个简单的 VI 程序程序 我们通过例子来说明如何创建一个 VI 例题 2 1 把摄氏温度转换为华氏温度 图 2 1 例题 2 1 的前面板 图 2 2 例题 2 1 框图程序 前面板编辑 前面板编辑 选择 File New blank vi 打开一个新的前面板窗口 选择 Windows Left and Right 或使用快捷键 CTR T 显示前面板和框图程序窗口 创建数字控件 并将这个数字控件标签 label 修改为 deg c 从 Controls Numeric Controls 中选择 Numeric Control 放到前面板中 用 tool palette A 工具 将修改 Numeric Control 的 label 项修改为 deg c 创建数字指示器 并将这个数字控件标签 label 修改为 deg f 流图图的编辑 按 CTR E 键 切换到框图程序窗口 从功能模板中选择下列函数图标放置在框图中 Multiply 在 function numeric 下 将两个数相乘得到它们的乘积 add 在 function numeric 下 将两个数相加得到它们的和 numeric constant 常数 此例中 双击数值型常数 将其值分别修改为 1 8 再 放置一个数值型常数 将其数值修改为 32 使用连线工具 按照图 2 2 框图连线 前面板如图 2 1 所示 框图程序如图 2 2 所示 Vi 的运行 的运行 单击窗口上部的 run 图标 运行该 vi 得到图 2 1 的结果 单击窗口上部的 continuous run 图标 输出结果可以随输入的变化而变化 单击 pause 可暂时停止程序 单击 abort excution 结束程序的运行 程序的存盘 程序的存盘 选择 file save 将此 VI 命名为 C F vi 保存 选择 file close 关闭 VI 练习 2 1 结束 2 5VI 编辑和调试技术编辑和调试技术 1 VI 编辑技术编辑技术 VI 程序具有三个要素 前面板 框图程序和图标 连接器 节点节点 类似于文本语言程序的语句 函数或者子程序 LabVIEW 有二种节点类型 函数节 点和子 VI 节点 两者的区别在于 函数节点是 LabVIEW 以编译好了的机器代码供用户使 用的 而子 VI 节点是以图形语言形式提供给用户的 用户可以访问和修改任一子 VI 节点 的代码 但无法对函数节点进行修改 上面的框图程序所示的 VI 程序有两个函数函数节点 一个函数使两个数值相加 另一个函数使两数相减 端点端点 是只有一路输入 输出 且方向固定的节点 LabVIEW 有三类端点 前面板对象端点 全局与局部变量端点和常量端点 对象端点是数据在框图程序部分和前面板之间传输的接 口 一般来说 一个 VI 的前面板上的对象 控制或显示 都在框图中有一个对象端点与之 一一对应 当在前面板创建或删除面板对象时 可以自动创建或删除相应的对象端点 控 制对象对应的端点在框图中是用粗框框住的 如例子中的 A 和 B 端点 它们只能在 VI 程 序框图中作为数据流源点 显示对象对应的端点在框图中是用细框框住的 如例子中的 A B 和 A B 端点 它们只能在 VI 程序框图中作为数据流终点 常量端点永远只能在 VI 程 序框图中作为数据流源点 图框图框 是 LabVIEW 实现程序结构控制命令的图形表示 如循环控制 条件分支控制和顺序 控制等 编程人员可以使用它们控制 VI 程序的执行方式 代码接口节点 CIN 是框图程 序与用户提供的 C 语言文本程序的接口 连线连线 是端口间的数据通道 它们类似于普通程序中的变量 数据是单向流动的 从源端口 向一个或多个目的端口流动 不同的线型代表不同的数据类型 在彩显上 每种数据类型 还以不同的颜色予以强调 下面是一些常用数据类型所对应的线型和颜色 数据类型图 形颜色 整形数 浮点数 逻辑量 字符串 文件路径 兰色 橙色 绿色 粉色 青色 当需要连接两个端点时 在第一个端点上点击连线工具 从工具模板栏调用 然后 移动到另一个端点 再点击第二个端点 端点的先后次序不影响数据流动的方向 当把连线工具放在端点上时 该端点区域将会闪烁 表示连线将会接通该端点 当把 连线工具从一个端口接到另一个端口时 不需要按住鼠标键 当需要连线转弯时 点击一 次鼠标键 即可以正交垂直方向地弯曲连线 按空格键可以改变转角的方向 从框图程序窗口创建前面板对象 用选择和连线工具 你都可以用鼠标右键点击任一节点和端点 然后从弹出菜单中选 择 创建常数 创建控制 或 创建显示 等命令 LabVIEW 会自动地在被创建的端 点与所点击对象之间接好连线 数据流编程数据流编程 控制 VI 程序的运行方式叫做 数据流 对一个节点而言 只有当它的所有输入端口 上的数据都成为有效数据时 它才能被执 行 当节点程序运行完毕后 它把结果数 据送给所有的输出端口 使之成为有效数 快速提示 接线头是为了帮助正确连接端口的连线 当把连线工具放到端 口上 接线头就会弹出 接线头还有一个黄色小标识框 显示该端口 的名字 据 并且数据很快从源送到目的端口 如左图所示 这个 VI 程序把两个输入数值相乘 再把乘积减去 50 0 这个程序中 框图程序从左往右执行 这个执行次序不是由于对象的摆放位置 而是由于相减运算函数 的一个输入量是相乘函数的运算结果 它只有当相乘运算完成并把结果送到减运算的输入 口后才能继续下去 请记住 一个节点 函数 只有当它所有的输入端的数据都成为有效 数据后才能被执行 而且只有当它执行完成后 它的所有输出端口上的数据才成为有效 再看另一个程序 你认为哪一个节点函数将先执行是乘法还是除法 在这个例子中 我们无法知道哪一个节点函数首先执行 因为所有输入量几乎同时到达 对于这样一种相 互独立的数据流程 如果又必须明确指定节点执行的先后次序 就必须使用顺序 Sequence 结构来明确执行次序 2 程序调试技术程序调试技术 1 找出语法错误 如果一个 VI 程序存在语法错误 则在面板工具条上的运行按钮将会变成一个折断的 箭头 表示程序不能被执行 这时这个按钮被称作错误列表 点击它 则 LabVIEW 弹出 错误清单窗口 点击其中任何一个所列出的错误 选用 Find 函数 则出错的对象或端口就 会变成高亮 2 设置执行程序高亮 在 LabVIEW 的工具条上有一个画着灯泡的按钮 这个按钮叫做 高亮执行 按钮上 点击这个按钮使该按钮图标变成高亮形式 再点击运行按钮 VI 程序就以较慢的速度运行 没有被执行的代码灰色显示 执行后的代码高亮显示 并显示数据流线上的数据值 这样 你就可以在根据数据的流动状态跟踪程序的执行 3 断点与单步执行 为了查找程序中的逻辑错误 你也许希望框图程序一个节点一个节点地执行 使用断 点工具可以在程序的某一地点中止程序执行 用探针或者单步方式查看数据 使用断点工 具时 点击你希望设置或者清除断点的地方 断点的显示对于节点或者图框表示为红框 对于连线表示为红点 当 VI 程序运行到断点被设置处 程序被暂停在将要执行的节点 以 闪烁表示 按下单步执行按钮 闪烁的节点被执行 下一个将要执行的节点变为闪烁 指 示它将被执行 你也可以点击暂停按钮 这样程序将连续执行直到下一个断点 4 探针 你可以用探针工具来查看当框图程序流经某一根连接线时的数据值 从 Tools 工具模板 选择探针工具 再用鼠标左建点击你希望放置探针的连接线 这时显示器上会出现一个探 针显示窗口 该窗口总是被显示在前面板窗口或框图窗口的上面 在框图中使用选择工具 或连线工具 在连线上点击鼠标右键 在连线的弹出式菜单中选择 探针 命令 同样可 以为该连线加上一个探针 2 6子子 VI 在设计 G 语言中 理解和使用 VI 的分层特性非常重要 当一个 VI 创建后 它可以作 为一个子 VI 在高层 Vi 的框图中使用 一个子 VI sub vi 类似于传统程序设计语言中的 函数或子程序 是可以供其他的 VI 调用的 VI 子 VI 是供其他 VI 使用的 VI 与子程序类似 子 VI 是层次化和模块化 VI 的关键组件 它能使 VI 易于调试和维护 使用子 VI 是一种有效的编程技术 因为 它允许在不同的场 合重复使用相同的代码 G 编程语言的分层特性就是在一个子 VI 中能够调用到另一个子 VI 下面可用一个表格表明子 VI 的作用 程序代码调用子程序 function average in1 in2 out out in1 in2 2 0 main average point1 point2 pointavg 子 VI 框图调用子 VI 框图 先看一个 SUB vi 的演示程序 从例题中可以看出 子程序就相当于一个函数 可以将任何一个定义了图标和联接器的 VI 作为另一个 VI 的子程序 在流程图中打 开 Functions Select a VI 就可以选择要调用的子 VI 2 6 1 创建子创建子 VI 创建子 VI 主要的工作就是定义它的图标和联接器图标和联接器 每个 VI 在前面板和流程图窗口的右上角都显示了一个默认的图标 启动图标编辑器的 方法是 用鼠标右键单击面板窗口的右上角的默认图标 在弹出菜单中选择 Edit Icon 下图显示了图标编辑器的窗口 可以用窗口左边的各种工具设计像素编辑区中的图标 形状 编辑区右侧的一个方框中显示了一个实际大小的图标 图标编辑器的具体使用细节 参阅有关资料 图标编辑器窗口 联接器是 VI 数据的输入输出接口 如果用面板控制对象或者显示对象从子 VI 中输 出或者输入数据 那么这些对象都需要在联接器面板中有一个连线端子 您可以通过选择 VI 的端子数并为每个端子指定对应的前面板对象以定义联接器 定义联接器的方法是 用鼠标右键单击面板窗口中的图标窗口 在快捷菜单中选择 Show Connector 联接器图标会取代面板窗口右上角的图标 LabVIEW 自动选择的端子 连接模式是控制对象的端子位于联接器窗口的左边 显示对象的端子位于联接器窗口右边 选择的端子数取决于前面板中控制对象和显示对象的个数 联接器中的各个矩形表示各个端子所在的区域 可以用它们从 VI 中输入或者输出数 据 如果必要 也可以选择另外一种端子连接模式 方法是在图标上单击鼠标右键单出快 捷菜单 选择 Show Connector 再次弹出快捷菜单 选择 Patterns 下面我们通过一个练 习说明具体操作 例题 目的 创建一个 VI 程序 以便以后作为子 VI 程序使用 任务描述 创建一个 VI 程序模拟温度测量 假设传感器输出电压与温度成正比 例如 当 温度为 70 F 时 传感器输出电压为 0 7V 本程序也可以用摄氏温度来代替华氏温度显示 本程序用软件代替了 DAQ 数据采集卡 使用随机函数仿真温度的电压 然后把所测 得的电压值转换成摄氏或华氏温度读数 图 前面板 流程图 STEP1 编辑 VI 前面板 1 用 File 菜单的 New 选项打开一个新的前面板窗口 2 把温度计指示部件放入前面板窗口 1 在前面板窗口的空白处点击鼠标键 然后从弹出的 Numeric 子模板中选择 Thermometer 2 在高亮的文本框中输入 温度计 再点击鼠标键按钮 3 重新设定温度计的标尺范围为 0 0 到 100 0 使用标签工具 A 双击温度计标尺的 10 0 输入 100 0 再点击鼠标键或者工具栏中的 V 按钮 4 在前面板窗口中放入竖直开关控制 1 在面板窗口的空白处点击鼠标键 然后弹出的 Boolean 子模板中选择 Vertical Switch 在文本框中输入 温度值单位 再点击鼠标键或者工具栏中的 V 按钮 2 使用标签工具 A 在开关的 条件真 true 位置旁边输入自由标签 摄氏 再在 条件假 false 位置旁边输入自由标签 华氏 框图程序 1 从 Windows 菜单下选择 Show Diagram 函数打开框图程序窗口 2 点击框图程序窗口的空白处 弹出函数模板 从弹出的菜单中选择所需的对象 本程序用到下面的对象 Random Number 0 1 产生 0 1 随机数函数 Numeric 子模板 产生随机数 模拟 温度传感器输出的温度信号电压 Multiply 乘法 函数 Numeric 子模板 在本例中 将读取电压值乘以 100 00 以 获得华氏温度 Subtract 减法 函数 Numeric 子模板 在本例中 从华氏温度中减去 32 0 以转 换成摄氏温度 Select 选择 函数 Comparison 子模板 取决于温标选择开关的值 该函数输出华 氏温度 当选择开关为 false 或者摄氏温度 选择开关为 True 数值 数值常数 用连线工具 点击你希望连接一个数值常数的对象 并选择 Create Constant 函数 若要修改常数值 用标签工具双点数值 再写入新的数值 字符串常量 用连线工具 点击你希望连接字符串常量的对象 再选择 Create Constant 函数 要输入字符串 用标签工具双击字符串 再输入新的字符串 3 使用移位工具 Positioning tool 把图标移至图示的位置 再用连线工具连 接起来 Demo Read Voltage VI 子程序模拟从数据采集卡的 0 通道读取电压 我们的程序再将读数乘以 100 0 转换成华氏温度读 数 或者再把华氏 温度转换成摄氏温度 4 选择前面板窗口 使之变成当前窗口 并运行 VI 程序 点击连续运行按钮 便 程序运行于连续运行模式 5 再点击连续运行按钮 关闭连续运行模式 请记住 如果要显示图标接线端口 则点击图标 再 从弹出菜单中选择 Show Terminals 功能 也可以从 Help 菜单中选择 Show Help 功能以打开帮助信息窗 口 STEP2 创建图标 Temp 此图标可以将现程序作为子程序在其他程序中调用 创建方法如下 a 在面板窗口的右上角的图标框中点击鼠标 从弹出菜单中选择 Edit Icon 功能 b 双点选择工具 并按下 Delete 键 消除缺省的图标图案 c 用画图工具画出温度计的图标 使用文本工具写入文字 双击文本工具把字体换成 Small Font 当图标创建完成后 点击 OK 以关闭图标编辑 生成的图标在面板窗口 的右上角 STEP3 创建联接器端口 a 点击右上角的图标面板 从弹出菜单中选择 Show Connector 函数 LabVIEW 将会根据控制和显示的数量选择一种联接器端口模式 在 本例中 只有两个端口 一个是竖直开关 另一个是温度指示 b 把联接器端口定义给开关和温度指示 c 使用连线工具 在左边的联接器端口框内按鼠标键 则端口将会变 黑 再点击开关控制件 一个闪烁的虚线框将包围住该开关 d 现在再点击右边的联接器端口框 使它变黑 再点击温度指示部件 一个闪烁的虚线框将包围住温度指示部件 这即表示着右边的联 接器端口对应温度指示部件的数据输入 e 如果再点击空白外 则虚线框将消失 而前面所选择的联接器端口 将变暗 表示你已经将对象部件定义到各个联接器端口 以后我们会讲到如何使用 SubVI From Selection 功能来创建子程序 SubVI STEP4 保存子 vi 确认当前文件的程序库路径为 Seminar LLB 用文件菜单的 SAVE 函数保存上述文件 并将 注意 在用鼠标画线时按下键 则可以画出水平或垂直方向的连线 注意 LabVIEW 的惯例是前面板上控制的联接器端 口放在图标的接线面板的左边 而显示的联接器端 口放在图标的接线面板的右边 也就是说 图标的 左边为输入端口而右边为输出端口 文件命名为 Thermometer Vi 现在 该程序已经编制完成了 它可以在其他程序中作为子程序来调用 在 其它程序的框图窗口里 该温度计程序用前面创建的图标来表示 联接器端口的 输入端用于选择温度单位 输出端用于输出温度值 6 关闭该程序 练习结束 建议 将所创建的子 VI 保存在目录下而不是保存在库文件中 尽管在称为 VI 库的单 个文件中能够保存多个 VI 但我们不希望这样做 将 VI 保存为单个文件是最有效的存储 方式 因为这样在复制 重新命名和删除文件时比使用 VI 库时要容易些 与其他目录一样 VI 库文件可以装入 保存和打开 但不是分层的 不能在 VI 库内创 建另一个 VI 库 也不能在 VI 库内创建新目录 VI 库文件创建后 当其出现在文件对话框 中时 其图标将与 VI 文件图标略有不同 2 7调用子调用子 VI 在任意一个 VI 程序的框图窗口里 都可以把其他的 VI 程序作为子程序调用 只要被 调用 VI 程序定义了图标和联接器端口即可 用户使用函数模板的 Select a VI 来完成 当使用该函数时 将弹出一个对话框 用户 可以输入文件名 一个子 VI 程序 相当于普通程序的子程序 节点相当于子程序调用 子程序节点并 不是子程序本身 就象一般程序的子程序调用语句并不是子程序本身一样 如果在一个框 图程序中 有几个相同的子程序节点 它就象多次调用相同的子程序 请注意 该子程序 的拷贝并不会在内存中存储多次 单元单元 3 结构控制程序设计结构控制程序设计 本章介绍 LABVIEW 为用户提供的程序结构 内容包括 while loop for loop 两种循环 结构 移位寄存器和反馈节点 分支结构 顺序结构 公式节点 事件结构 全局变量与局部 变量 菜单等 学习目标 学习 while 循环和 for 循环结构 学习 chart 的多种显示模式及其属性的静态设置 建立移位寄存器的概念 学习移位寄存器的应用 学习 case 选择结构 掌握分支结构程序的设计 学习 sequence 结构 掌握程序顺序的控制方法 3 13 1 While loop 结构与结构与 chart 图表图表 3 1 1While loop 结构 While loop 是 LABVIEW 的基本循环结构之一 类似于 C 语言中的 do while 循环结构 do 循环体 while 条件判断 while loop 可以反复执行循环内的框图程序 直到条件不满足 循环停止 While loop 可以从 function 模板中 structure 子模板中创建 创建方法是 从 functions tructure 选择 while loop 图标 放置在 block diagrame 窗口 While LOOP 可以反复执行循环体的程序 直至特定的条件不满足 才停止循环 该循 环有如下特点 计数从 0 开始 i 0 先执行循环体 而后 i 1 如果循环只执行一次 那么循环输出值 i 0 循环至少要运行一次 图 3 While 循环示意图 3 1 2 While loop 应用示例 例题例题 3 13 1 使用使用 WhileWhile 循环显示随机序列循环显示随机序列 创建一个可以产生并在图表中显示随机数的 VI 前面板有一个控制旋钮可在 0 到 10 秒之间调节循环时间 还有一个开关可以中止 VI 的运行 操作步骤如下 1 前面板 图 练习 的前面板 1 选择 File NewFile New 打开一个新的前面板 2 选择 Controls BooleanControls Boolean 在前面板中放置一个开关 设置开关的标签为控制开关 3 使用标签工具创建 ON 和 OFF 的标签 放置于开关旁 4 选中 ControlsControls GraphGraph 在前面板中放置一个波形图 是 chart 而不是 graph 设置它的标签为随机信号 这个图表用于实时显示随机数 5 把图表的纵坐标改为 0 0 到 1 0 方法是用标签工具把最大值从 10 0 改为 1 0 6 选择 Controls NumericControls Numeric 在前面板中放置一个旋钮 设置旋钮的标签为循环延时 这个旋钮用于控制 While 循环的循环时间 2 流程图 在流程图窗口 按照下图创建 图 练习 的流程图 1 从 Functions StructuresFunctions Structures 中选择 While 循环 把它放置在流程图中 将其拖至适 当大小 将相关对象移到循环圈内 2 从 Functions Functions NumeriNumeric 中选择随机数 0 1 功能函数放到循环内 3 在循环中设置 WaitWait UntilUntil NextNext msms MultipleMultiple 函数 Functions TimeFunctions Time I 0 then Square Root Value SQRT Number else Square Root Value 999 00 Display Message Error end if 例题 用数字控件选择一个四选一的 目的 如何用数字型控件构成选择结构 练习练习 结束 结束 例题 3 用枚举型控件选择 目的 1 学习用枚举控件实现 case 结构 2 理解 case whole Loop 结构的功能 工业案例 工业案例 修改 temperature running average vi 使它能够检测什么时候温度超出范围 如 果温度超出设定的界限 前面板上的 LED 将发亮 并且发出间歇报警声音 ViVi 的创建的创建 图 温度报警程序的前面板 1 打开 temperature running average vi 文件 修改图所示的前面板 Upper limit 规定了温度上限 如果温度超出了上限时 normally 指示灯亮 warning 指 示灯灭 2 修改框图程序 A D C B 温度报警程序的框图程序 1 温度报警程序的框图程序 2 in range and coerce 函数 function compaarison 其功能是判断 X 是否在上限值和下限制的范围内 如果 X 在范 围内 in range 输出布尔值 1 如果 X 超范围 in range 输出布尔值 0 beep 函数 function graphs 结尾 公式节点的帮助窗口中列出了可供公式节点使用的操作符 函数和语法规定 一般说来 它与 C 语言非常相似 大体上一个用 C 写的独立的程序块都可能用到公式节点中 但是仍 然建议不要在一个公式节点中写过于复杂的代码程序 下面这个例子显示了如何在一个公式节点中执行不同条件时的数据发送 请阅读下面这段程序代码 如果 X 为正数 它将算出 X 的平方根并把该值赋给 Y 如果 X 为负数 程序就给 Y 赋值 99 if x 0 then y sqrt x else y 99 end if 可以用公式节点取代上面这段代码 如下图所示 注意 公式节点中变量字母 X Y 大 小写是有区别的 开方的函数 sqrt X 中函数名称是 小写 练习练习 2 62 6 使用公式节点使用公式节点 目的 创建一个VI 它用公式节点计算下列等式 y1 x3 x 2 5 y2 m x b x 的范围是从 0 到 10 可以对这两个公式使用同一个公式节点 并在同一个图表中显示结 果 前面板 图 练习 的面板 打开一个新的前面板 按照上图 该图中包含运行结果 创建前面板中的对象 波形图显 示对象用于显示等式的图形 该 VI 使用两个数字式控制对象来输入 m 和 b 的值 流程图 1 按照下图创建流程图 图 练习 的流程图 2 在创建某个输入或者输出端子时 必须给它指定一个变量名 这个变量名必须与公式 节点中使用的变量名完全相符 3 公式节点中 在边框上单击鼠标右键 在快捷菜单中选择 Add Input 可以创建三个 输入端子 在快捷菜单中选择 Add Output 创建输出端子 4 x 的范围是从 0 到 10 包括 10 就必须连接 11 到计数端子 5 Build Array Functions ArrayFunctions Array 在这个例子中 它用于将两个数 据构成数组形式提供给一个多曲线的图形中 通过用变形工具拖拉边角就 可以创建两个输入端子 6 返回前面板 尝试给 m 和 b 赋以不同的值再执行该 VI 7 7 把该 VI 保存为 LabVIEW ActivityLabVIEW Activity 目录下的 Equations vi 8 8 练习练习 2 62 6 结束 结束 本部分参考资料 1 LBVIEW 基础教程 汪敏生等译著 2 LABVIEW7 1 编程与虚拟仪器设计 侯国屏 王坤 叶齐鑫编译 3 Labview 7 雷振山等 4 Labview 入门与虚拟仪器 张爱平 5 Labview basic 1 NI 技术培训教材 单元单元 4 数组 数组 array 和图形 和图形 graphs 程序设计 程序设计 本章介绍数组 array 簇 cluster 和波形图 graphs 及有关自动索引的基本概念 并 提供例程序 讨论分析数组和簇 波形图的应用 4 1 数组 数组 array 数组是同类型元素的集合 一个数组可以是一维或者多维 如果必要 每维最多可有 231 1 个元素 可以通过数组索引访问其中的每个元素 索引的范围是 0 到n 1 其中 n 是数组中元素的个数 图 4 一维数组示意图 图 所显示的是由数值构成的一维数组 注意第一个元素的索引号为 0 第二 个是 1 依此类推 数组的元素可以是数据 字符串等 但所有元素的数据类型必须一致 4 1 1 创建数组及自动索引数组 1 创建数组 一般说来 创建一个数组有两件事要做 首先要建一个数组的 壳 shell 然后在 这个壳中置入数组元素 数或字符串等 如果需要用一个数组作为程序的数据源 可以选择 Functions Array ArrayFunctions Array Array ConstantConstant 将它放置在流程图中 然后再在数组框中放置数值常量 布尔数还是字符串常 量 下图显示了在数组框放入字符串常量数组的例子 左边是一个数组壳 中间的图上已 经置入了字符串元素 右边的图反映了数组的第 个元素为 ABC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司运营流程与规章制度详解手册
- 生物信息学实验手册
- 三农灾害应急管理指南
- 三农工作者的实践指南
- 生物质颗粒燃料蒸汽发生器
- 重大项目进度协调会议纪要记录
- 育婴师复习试题含答案
- 艺术鉴赏油画技法分析题集
- 茶艺师复习试题含答案(一)
- 外科总论复习测试有答案
- 2024年中考语文试题分类汇编:小说阅读(第02期)含答案及解析
- DB65T 8022-2024 严寒和寒冷地区居住建筑节能设计标准
- 非遗融入幼儿园艺术课程的个案研究
- 《质子治疗技术》课件
- 医院影像科服务质量提升措施
- 2024年中国疾控中心信息中心招聘笔试真题
- 2024年度医院与基层医疗机构远程会诊及转诊合作协议3篇
- 建筑工程钢模板租赁合同范本
- 膝关节炎护理个案护理比赛
- 企业并购后的投后整合与管理挑战
- 慢性肾衰竭的护理病例讨论
评论
0/150
提交评论