LabVIEW Real-Time 模块 入门指南 ™ 本文档提供了帮助用户入门 LabVIEW Real-Time 模块的设计练习。用户可通过一系列 的练习检查、更改和部署实时应用程序,及了解编程实时操作系统的概念和实践经验。 目录 重要概念 ............................................................................................................................ 2 安装和配置 Real-Time 模块 ............................................................................................. 2 安装 Real-Time 模块 ................................................................................................. 3 配置 RT 终端 ............................................................................................................. 3 安装 RT 终端软件...................................................................................................... 3 优化多 CPU 支持 ............................................................................................... 3 打开 Real-Time 项目 ......................................................................................................... 4 查看 RT 终端的 VI .................................................................................................... 5 初始化数据传输组件.......................................................................................... 5 使用定时循环采集数据 ...................................................................................... 6 使用 While 循环传输网络数据 .......................................................................... 6 关闭数据传输组件 ............................................................................................. 7 查看主机的 VI ........................................................................................................... 7 连接至网络流 ..................................................................................................... 8 读取网络流 ......................................................................................................... 9 断开网络流 ......................................................................................................... 9 创建和部署应用程序 ......................................................................................................... 10 配置 RT 终端属性...................................................................................................... 10 部署程序生成规范至 RT 终端................................................................................... 10 调试 RT 终端 VI 和独立应用程序 .................................................................................... 11 调试 RT 终端 VI ........................................................................................................ 11 调试独立的实时应用程序.......................................................................................... 11 参考资料 ............................................................................................................................ 12 LabVIEW 帮助 .......................................................................................................... 12 LabVIEW Real-Time 模块发行说明和升级说明 ...................................................... 12 重要概念 下列重要概念是 Real-Time 模块初学者必须了解的基础信息: • • 实时 (RT) 应用程序-设计用于稳定性执行和精确定时的应用程序。 • 抖动-应用程序程序最快与最慢执行之间的时间差。设计实时应用程序时,通常优 先考虑最小化抖动。 • 实时操作系统 (RTOS) -设计用于运行具有增强型确定性和降低型抖动的应用程 序的操作系统。通用操作系统 (例如,Microsoft Windows)完成操作的时间是不 可预期的。相比较,RTOS 中的每个操作均具有已知的最大执行时间。通过设计用 于 RTOS 的应用程序,用户可确保应用程序运行的确定性。 • • • RT 终端-运行 RTOS 的控制器。例如, NI PXI-8108 或 cRIO-9012。 独立 RT 应用程序- RT 终端上电后可直接运行的 RT 应用程序。 设备驱动程序软件-转换 LabVIEW 命令为适用于特定 RT 终端和已安装的 I/O 设 备格式的软件组件。配置 RT 终端时安装相应的设备驱动程序软件。 主机-用于设计实时应用程序的计算机。部署主机上的实时应用程序至 RT 终端。 或者通过运行在主机上的用户接口与 RT 终端通信。 NI Measurement & Automation Explorer (MAX) -用于配置 RT 终端的软件。在 主机上安装 Real-Time 模块后,使用 MAX 安装 Real-Time 模块、 RTOS 和 RT 终 端上的设备驱动程序软件。 子网-设备通过该部分网络使用 TCP/IP 协议通信。 MAX 自动检测与主机连接至 同一子网的 RT 终端。 共享变量-可读取数据或写入数据的内存空间。用户可在带有单进程共享变量的一 台计算机上,或者在带有网络发布共享变量的多台计算机上读取和写入共享变量。 共享变量用户将一个数据集合中最新的值发布至一台或多台计算机。 RT FIFO - RT FIFO 类似一个固定大小的队列,写入 FIFO 队列的第一个值为可 从 FIFO 队列读取的第一个值。 RT FIFO 限制共享数据的大小,并为数据预分配内 存,以保证程序执行的确定性。使用 RT FIFO 函数在 VI 间或运行在 RT 终端上的 并行循环间共享数据。 网络流-包含写入方端点和读取方端点的无损耗、单向的一对一信道。使用网络流 通过网络进行无损耗的数据传输。 确定性-确定性是实时应用程序的特性之一,它用于描述应用程序响应外部事件的 一致性,即系统要在给定时间范围内完成操作。设计实时应用程序时,通常优先考 虑最大化确定性。 • • • • • • 安装和配置 Real-Time 模块 开发实时应用程序前应完成下列任务: 在主机上安装 Real-Time 模块 1. 2. 3. 2 配置 RT 终端 在 RT 终端上安装 RTOS 和设备驱动程序软件 | ni.com | LabVIEW Real-Time 模块入门指南 安装 Real-Time 模块 关于 Real-Time 模块和设备驱动程序安装的说明信息,见软件随附的 LabVIEW Real-Time 模块发行说明和升级说明,或访问 ni.com/manuals 获取。 配置 RT 终端 在主机上安装 Real-Time 模块后,使用 MAX 配置终端的常规设置。 注 初次配置时,必须将 RT 终端连接至运行 MAX 的主控计算机所在的子网。 关于配置 RT 终端的详细信息,请在 MAX 中选择帮助 »MAX 帮助,打开 Measurement & Automation Explorer 帮助的目录选项卡中的 MAX 远程系统帮助。 关于配置 RT 终端,请参考下列资源: • LabVIEW RT 终端配置教程-关于配置联网 RT 终端的分步教程,见 Measurement & Automation Explorer 帮助中的 LabVIEW RT 终端配置主题。 • 其他和高级设置-关于配置 RT 终端的额外设置,见 LabVIEW 帮助中的配置 RT 终端设置主题。 安装 RT 终端软件 配置 RT 终端后,使用 MAX 中的 LabVIEW Real-Time 软件向导在 RT 终端上安装软 件和驱动程序。按照下列步骤打开 LabVIEW Real-Time 软件向导: 1. 2. 3. 4. 5. 打开 MAX。 在远程系统目录树中查找并展开终端。 右键单击软件,选择添加 / 删除软件。 选择添加 / 删除软件后, MAX 将打开 LabVIEW Real-Time 软件向导。 LabVIEW Real-Time 软件向导中显示了安装在主机上的全部 NI 软件和驱动程序,可从中选 择在 RT 终端上安装的软件。 单击 LabVIEW Real-Time 一侧的图标。 选择安装组件。 优化多 CPU 支持 如 RT 终端为多核 CPU,关于优化用于多核 CPU 系统的 RT 应用程序的详细信息,见 LabVIEW 帮助的目录选项卡中的优化多 CPU 系统上的实时应用程序章节。 关于用于多核 CPU 系统的 RT 应用程序的详细信息,也可登录 NI 网站 ni.com/info 并输入信息代码 rtsmp 查询。 LabVIEW Real-Time 模块入门指南 | © National Instruments | 3 打开 Real-Time 项目 必须使用 LabVIEW 项目创建实时应用程序,及与 RT 终端通信。用户还可以使用 LabVIEW 项目部署文件和独立实时应用程序至 RT 终端。 在本教程中将分析 "Getting Started" 项目。该项目包含在 RT 终端上采集和处理数据的 VI,并在主机上显示数据。按照下列步骤打开 "Getting Started" 项目: 1. 打开 LabVIEW。 2. 单击帮助 » 查找范例打开 NI 范例查找器。 3. 浏览工具包和模块 » 实时 » 使用指南。 4. 双击 Getting Started.lvproj 打开项目浏览器窗口。图 1 为 Getting Started.lvproj 的项目浏览器窗口。 图 1. 项目浏览器窗口 4 | ni.com | LabVIEW Real-Time 模块入门指南 查看 RT 终端的 VI 首先查看运行在 RT 终端上的 VI。双击项目浏览器窗口中的 Real-Time Main.vi 打开 VI。 图 2. RT 主程序 VI RT 主程序 VI 生成并传输来自仿真数据采集设备的单点数据。下文介绍了该 VI 与常见 RT 编程实践的区别。双击 RT 主程序 VI 中的子 VI,分析它们的设计。 RT 主程序 VI 执行下列任务: • 初始化数据传输组件 • 采集定时循环的数据 • 使用 While 循环传输网络数据 • 关闭数据传输组件 初始化数据传输组件 图 3. 初始化数据传输组件 1 2 3 Active? 共享变量被初始化为值 TRUE,以防止应用程序开始时,共享变量读取错 误的值。 2. “RT FIFO 创建 ” 函数创建 RT FIFO,类型输入端指定 RT FIFO 存储的数据类型。 本范例中未指定 RT FIFO 的大小,因此 “RT FIFO 创建 ” 函数使用默认值 (10 个元素)。 NI 建议用户设计应用程序时定义 RT FIFO 元素的数量和大小。指定 RT FIFO 的元 素数量有助于预防数据记录错误。关于定义 RT FIFO 大小和元素数量的详细信息, 见 LabVIEW 帮助。 3. “ 更新 RT 流 ” 子 VI 的 Connect 分支创建了网络流的写入方端点 RTAcqData。 1. LabVIEW Real-Time 模块入门指南 | © National Instruments | 5 使用定时循环采集数据 图 4. 使用定时循环采集数据 3 2 1 该配置工具 (称为输入节点)显示用于自定义定时循环的接线端。双击输入节点, 显示配置定时循环对话框。通过该对话框配置其他定时循环设置。例如,定时循环 周期为 250 ms。 1. 注 将定时循环周期与应用程序的其他部分相匹配,使写入速率和读取速率 一致。应用程序的读取速率必须大于等于写入速率,以确保全部数据能够被 读取。 2. “RT FIFO 写入 ” 函数写入来自 “ 随机数 (0-1)” 函数的单个元素至 RT FIFO,仿真 数据采集。 3. 当生成错误或单击运行在主机上的 VI 的前面板的 “ 停止循环 ” 子 VI 的停止按钮 时, “ 停止循环 ” 子 VI 停止运行 While 循环。 使用 While 循环传输网络数据 图 5. 使用 While 循环传输网络数据 1 3 4 “RT FIFO 读取 ” 函数读取 RT FIFO 中最早的元素,并发送该数据至包含 “ 更新 RT 流 ” 子 VI 的条件结构。 如 RT FIFO 中包含元素,条件结构将执行 “ 假 ” 条件分支。 “ 更新 RT 流 ” 子 VI 的 Stream 条件分支将来自 “RT FIFO 读取 ” 函数的元素写入至 RTAcqData 网络流。 如 RT FIFO 为空,条件分支执行空的 “ 真 ” 条件分支,此时没有数据进入 RTAcqData 网络流。 1. 2. 6 2 | ni.com | LabVIEW Real-Time 模块入门指南 图 6. 真条件分支 3. 当生成错误或单击运行在主机上的 VI 的前面板的 “ 停止循环 ” 子 VI 的停止按钮 时, “ 停止循环 ” 子 VI 停止运行 While 循环。 4. “ 等待下一个整数倍 ” VI 将 While 循环的周期更改为 250 ms。使用带有 “ 等待下 一个整数倍 ” VI 的 While 循环控制确定性低于定时循环的函数速率。例如,传输 网络数据。 关闭数据传输组件 图 7. 关闭数据传输组件 2 1 3 1. 如某个循环因产生错误停止, “ 出错时停止 ” 子 VI 将停止其他循环。 NI 建议在全 部多循环应用程序中执行类似的功能。 2. “ 更新 RT 流 ” 子 VI 的 Destroy 分支销毁了 RTAcqData 网络流的端点。销毁网络流 的读取方和写入方端点将释放流占用的内存。 “RT FIFO 删除 ” 函数关闭 RT FIFO 引用并释放分配用于 FIFO 的内存。 3. 查看主机的 VI 查看 RT 主程序 VI 后,双击项目浏览器窗口中的 Windows Main.vi 打开运行在主机上 的 VI。 图 8. Windows 主程序 VI LabVIEW Real-Time 模块入门指南 | © National Instruments | 7 Windows 主程序 VI 读取来自 RT 终端的数据流并使用波形图表显示数据。下文介绍了该 VI 与常见 RT 编程实践的区别。双击 Windows 主程序 VI 中的子 VI,分析它们的设计。 Windows 主程序 VI 执行下列任务: • 连接至网络流 • 读取网络流 • 断开网络流 连接至网络流 图 9. 连接至网络流 “ 更新 Windows 流 ” 子 VI 的 Connect 条件分支使用 “ 创建网络流读取方端点 ” 函数创 建在 RT 主程序 VI 中用于网络数据流写入方端点的读取方端点,如图 10 所示。 图 10. “ 更新 Windows 流 ” 子 VI 的 Connect 条件分支 “ 生成读取方 URL” 子 VI 使用 “ 连接字符串 ” 函数组合字符串至用于网络流的写入方 URL,如图 11 所示。 图 11. 生成读取方 URL 8 | ni.com | LabVIEW Real-Time 模块入门指南 读取网络流 图 12. 读取网络流 2 1 1. 2. “ 更新 Windows 流 ” 子 VI 的 Stream 条件分支使用 “ 从流中读取单个元素 ” 函数 读取 RT 终端通过网络传输的数据。双击 “ 更新 Windows 流 ” 子 VI 并选择 Stream 条件分支查看该函数。 RT 终端的数据在 Windows 主程序 VI 前面板的波形图表中显示。 断开网络流 图 13. 断开网络流 1. “ 更新 Windows 流 ” 子 VI 的 Destroy 条件分支使用 “ 销毁流端点 ” 函数关闭网络 流的引用。销毁网络流的读取方和写入方端点将释放流占用的内存。双击 “ 更新 Windows 流 ” 子 VI 并选择 Destroy 条件分支查看该函数。 注 总是关闭不再需要的网络流的引用。 LabVIEW Real-Time 模块入门指南 | © National Instruments | 9 创建和部署应用程序 您已经查看了 "Getting Started" 项目,可创建独立的实时应用程序并将其部署至 RT 终 端。 配置 RT 终端属性 使用 RT 终端的属性对话框配置 RT 终端的项目设置。 按照下列步骤在项目浏览器窗口输入 RT 终端的 IP 地址: 1. 2. 右键单击 RT 终端并选择属性,打开实时 (常规)终端属性对话框。 在 IP 地址 /DNS 名栏内输入 RT 终端的 IP 地址,单击确定按钮。 这些设置在部署 RT 终端后生效。右键单击 RT 终端,从快捷菜单中选择部署,将设置 部署至终端。 注 部署 RT 终端时, RT 终端属性对话框的最新设置将覆盖当前终端的设置。 部署程序生成规范至 RT 终端 "Getting Started" 项目包含 My Real-Time Application 程序生成规范。使用该程序生成 规范,用户可在 RT 终端上创建和运行独立的实时应用程序。用户可将应用程序设置为 RT 终端上电后打开。 按照下列步骤,在 RT 终端上生成和运行独立的实时应用程序: 1. 在项目浏览器窗口,右键单击 My Real-Time Application 并从快捷菜单中选择生 成,生成独立的实时应用程序。应用程序生成器根据程序生成规范的设置生成一个 独立的实时应用程序。生成完成后,单击完成按钮关闭生成状态对话框。 2. 右键单击程序生成规范,在快捷菜单中选择作为启动项运行。作为启动项运行快捷 菜单项将应用程序设置为启动时运行的程序,部署应用程序至终端,并提示用户重 启 RT 终端。 将程序生成规范设置为启动程序后, LabVIEW 将在项目浏览器窗口的程序生成规 范图标周围显示绿色外框。设置启动应用程序后,从程序生成规范生成的应用程序 在 RT 终端上电后自动打开。 3. (可选)如要监控使用主控 VI 的应用程序,在项目浏览器窗口右键单击 RT 终端, 选择禁用自动部署变量阻止自动部署共享变量。如运行主控 VI 时启用自动部署变 量选项, LabVIEW 将关闭运行在终端上的独立应用程序并重新部署共享变量设 置。 4. 双击项目浏览器窗口中我的电脑下的 Windows Main.vi。 5. 在终端 URL 文本框中输入 RT 终端的 IP 地址。 6. 运行 VI,波形图表中将显示通过独立实时应用程序采集和发送的数据。 10 | ni.com | LabVIEW Real-Time 模块入门指南 调试 RT 终端 VI 和独立应用程序 使用 LabVIEW 提供的一系列工具调试 RT 终端内存中的 RT 终端 VI 和独立实时应用 程序。 调试 RT 终端 VI 打开带有 RT 终端连接的前面板,使用 LabVIEW 调试工具调试终端上运行的 VI。 主机连接至 RT 终端时,使用 LabVIEW 调试工具 (高亮显示执行过程、单步调试)步 过调试 LabVIEW 代码。关于使用 LabVIEW 调试工具调试 VI 的详细信息,见 LabVIEW 帮助。 调试独立的实时应用程序 使用调试应用程序或共享库对话框调试在 RT 终端上运行的独立的实时应用程序。 必须使用调试应用程序或共享库对话框启用独立实时应用程序的调试。按照下列步骤在 "Getting Started" 项目中,启用独立实时应用程序的调试: 1. 在项目浏览器窗口,右键单击 RT 终端的程序生成规范下的 My Real-Time Application,选择属性。 2. 从类别列表中选择高级。 3. 勾选启用调试复选框并单击确定。 4. 右键单击 My Real-Time Application,从快捷菜单中选择生成,生成独立的实时 应用程序。 按照下列步骤使用调试应用程序或共享库对话框调试独立实时应用程序。 1. 右键单击 My Real-Time Application,从快捷菜单中选择作为启动项运行,在 RT 终端上运行应用程序。 2. 在项目浏览器窗口中,选择操作 » 调试应用程序或共享库,显示调试应用程序或 共享库对话框。 3. 在机器名或 IP 地址文本框中输入 RT 终端的 IP 地址,单击刷新按钮查看 RT 终端 内存中独立实时应用程序的列表。 4. 从应用程序或共享库下拉菜单中选择 startup.rtexe,单击连接按钮,连接至 RT 终端的启动应用程序。 5. 6. LabVIEW 打开待调试的启动 VI 的前面板。打开 VI 的程序框图,使用探针、断点 和其他 LabVIEW 调试技术查找应用程序错误。 关闭启动 VI 和调试应用程序或共享库对话框。 取消独立实时应用程序在 RT 终端上电时启动的选项,然后部署程序生成规范,将 改动应用至启动属性。 LabVIEW Real-Time 模块入门指南 | © National Instruments | 11 参考资料 Real-Time 模块随附有详尽的产品文档,这些文档可帮助您创建在 RT 终端上运行的确 定性应用程序。 LabVIEW 帮助 LabVIEW 帮助中包含下列专用于 Real-Time 模块的信息,在 LabVIEW 中单击帮助 » LabVIEW 帮助打开帮助文档。 • Real-Time 模块最佳实践-设计、开发和部署 Real-Time 模块应用程序的最佳实践 信息。 • Real-Time 模块概念-包括创建确定性应用程序的编程概念、应用程序架构和 Real-Time 模块的功能。 • Real-Time 模块详解-包括使用 Real-Time 模块功能的分步指导。 • Real-Time VI -包括 Real-Time 模块 VI、函数和错误代码的参考信息。 • Real-Time 操作系统-包括在实时操作系统上使用 LabVIEW 的信息。 • Real-Time 模块错误代码-包括专用于 Real-Time 模块的错误代码信息。 LabVIEW Real-Time 模块发行说明和升级说明 LabVIEW Real-Time 模块发行说明和升级说明包含安装和配置 Real-Time 模块的信息, 以及升级和新增功能的列表。按照下列步骤查看文档: 1. 打开 labview\manuals 目录。 2. 双击 RT_Release_Upgrade_Notes.pdf 查看文档。 关于 National Instruments 商标,请访问 ni.com/trademarks 参考 NI Trademarks and Logo Guidelines。此处提及的其它产品和公 司名称为其各自公司的商标或商业名称。关于 National Instruments 产品和技术的专利权,见软件中的帮助 » 专利信息、光盘上的 patents.txt 文档,或登录 ni.com/patents 查看 National Instruments Patent Notice。最终用户许可证协议 (EULA) 和第三方法 律声明,请参考 NI 产品的自述文件。关于 National Instruments 全球贸易合规性政策,以及如何获取 HTS 编码、 ECCN 和其他进 出口数据的详细信息,请参考 ni.com/legal/export-compliance 的 Export Compliance Information。 © 2003–2013 National Instruments. 版权所有。 371375F-0118 2013 年 6 月