LabVIEWCompactRIO 开发指南1
概述和背景
本指南提供了使用NI LabVIEW系统设计软件以及LabVIEW实时和LabVIEW FPGA模块设计NI CompactRIO控制和监控应用程序的最佳实践。基于这些模块的控制器的应用范围包括粒子加速器(如CERN大型强子对撞机)的控制,发动机电子控制单元(ecu)的硬件在环测试,油井钻井的自适应控制,以及预测性维护的高速振动监测。本指南提供了开发可读、可维护、可扩展并针对性能和可靠性进行了优化的CompactRIO应用程序的技巧。
CompactRIO架构
CompactRIO是一个坚固的、可重构的嵌入式系统,包含三个组件:一个运行实时操作系统(RTOS)的处理器、一个可重构的FPGA和可互换的工业I/O模块。实时处理器提供可靠,可预测的行为,并擅长浮点数学和分析,而FPGA擅长需要高速逻辑和精确定时的小型任务。CompactRIO应用程序通常包含人机界面(HMI),为操作员提供图形用户界面(GUI),用于监控系统状态和设置操作参数。
图1 可重构嵌入式系统架构
LabVIEW
LabVIEW是一个图形化编程环境,被成千上万的工程师和科学家用来开发复杂的控制系统,使用图形图标和类似流程图的线。它提供了与数千种硬件设备的集成,并提供了数百个内置库,用于高级控制、分析和数据可视化——所有这些都是为了更快地创建用户定义的系统。LabVIEW平台可扩展到多个目标和操作系统,在CompactRIO的情况下,LabVIEW可用于访问和集成LabVIEW可重构I/O(RIO)架构的所有组件。
实时控制器
实时控制器包含一个处理器,该处理器可靠且确定地执行LabVIEW实时应用程序,并提供多速率控制,执行跟踪,板载数据记录以及与外设的通信。额外的选项包括冗余9 VDC至30 VDC供电输入,实时时钟,硬件看门狗定时器,双以太网端口,高达2gb的数据存储,内置USB和RS232支持。
图2 NI cRIO-9024实时控制器
实时操作系统(RTOS)
RTOS能够可靠地执行具有特定时序要求的程序,这对于许多科学和工程项目非常重要。构建实时系统所需的关键组件是一个特殊的实时操作系统;下一节将讨论构成整个实时系统的其他硬件和软件部分。对于许多工程师和科学家来说,在安装了通用操作系统(如Windows)的标准PC上运行测量或控制程序是不可接受的。在任何时候,操作系统都可能因为许多原因而延迟用户程序的执行:运行病毒扫描、更新图形、执行系统后台任务等等。对于需要不间断地以特定速率运行的程序(例如,巡航控制系统),这种延迟可能导致系统故障。请注意,这种行为是由设计决定的——通用操作系统被优化为同时运行多个进程和应用程序,并提供其他功能,如丰富用户界面图形。相比之下,实时操作系统被设计为以精确的时间运行单个程序。具体来说,实时操作系统可以帮助实现以下功能:
■在最坏的情况下完成任务
■仔细划分项目的不同部分的优先级
■在每次迭代中以几乎相同的时间运行循环(通常在微秒内)
■检测一个循环是否错过了计时目标
可靠性
除了提供精确的定时外,RTOSs还可以设置为可靠地运行数天、数月或数年而不停止。这不仅对构建需要全天候运行的系统的工程师很重要,而且对任何停机时间昂贵的应用程序也很重要。“看门狗”功能通常也包含在实时系统中,如果用户程序停止运行,它可以自动重新启动整个计算机。此外,实时系统中使用的硬件通常被设计为坚固耐用,以长时间维持恶劣的条件。
NI硬件上的RTOSs
每个系列的NI实时目标都至少运行在三种不同的RTOSs中的一种。LabVIEW Real-Time提供了一个抽象层次,帮助程序员在很大程度上忽略底层RTOS的细节。然而,为了向更高级的用户提供上下文,请注意NI实时目标上的RTOSs包括Phar Lap/ETS、VxWorks和NI Linux real-time。请访问ni.com/linux了解更多关于新的基于linux的RTOS的信息。
可重构I/O FPGA
可重构I/O FPGA机箱是嵌入式系统架构的核心。它直接连接到I/O,用于高性能访问每个模块的I/O电路和定时、触发和同步。由于每个模块都直接连接到FPGA而不是通过总线,因此与其他控制器体系结构相比,用户几乎不会遇到系统响应的控制延迟。默认情况下,该FPGA自动与I/O模块通信,并向实时处理器提供确定性I/O。开箱即用,FPGA使实时控制器上的程序能够以小于500 ns的环路抖动访问I/O。也可以直接对该FPGA进行编程以进一步定制系统。由于FPGA的速度,该机箱经常用于创建包含高速缓存I/O,快速控制回路或自定义信号滤波的控制器系统。例如,使用FPGA,单个机箱可以以100 kHz的速率同时执行20多个PID控制回路。此外,由于FPGA在硬件中运行所有代码,因此它提供了最高的可靠性和确定性,这对于基于硬件的联锁、自定义定时和触发或消除非标准传感器和总线通常需要的自定义电路是理想的。有关FPGA技术的概述,请参见第5章:通过LabVIEW FPGA定制硬件。
图3 可重构FPGA机箱
I/ O模块
I/O模块包含隔离、转换电路、信号调理和内置连接,可直接连接到工业传感器/执行器。通过提供多种布线选择,并将连接器接线盒集成到模块中,CompactRIO系统显著降低了空间要求和现场布线成本。用户可以选择超过70 NI的C系列I/O模块,用于CompactRIO连接几乎任何传感器或执行器。模块类型包括热电偶输入;±10v同步采样,24位模拟I/O;24 V工业数字I/O与高达1 A电流驱动;差分/TTL数字输入;24位IEPE加速度计输入;应变测量;RTD测量;模拟输出;功率测量;控制器局域网(CAN)连接;以及用于记录的安全数字(SD)卡。此外,用户可以构建自己的模块或从第三方供应商处购买模块。使用NIcRIO-9951 CompactRIO模块开发套件,用户可以开发自定义模块以满足特定应用的需求。该套件提供访问低级电子CompactRIO嵌入式系统架构,用于设计专门的I/O,通信和控制模块。它包括LabVIEW FPGA库与用户的自定义模块电路接口。
图4 用户可以选择超过50 NI C系列I/O模块
系统配置
最简单的嵌入式系统由一个以“无头”配置运行的单个控制器组成。此配置用于除了维护或诊断目的之外不需要HMI的应用程序中。然而,大多数控制和监控应用需要HMI向操作员显示数据或允许操作员向嵌入式系统发送命令。常见的配置是1:1,即1台主机对1个目标,如图5所示。HMI通过直接连接、集线器或无线路由器通过以太网与CompactRIO硬件通信。
图5 1:1(1主机对1目标器)配置
系统能力和复杂性低一个级别是1:N(1台主机到N个目标)或N:1 (N台主机到1个目标)配置。主机通常是台式PC或工业触摸面板设备。图6中所示的1:N配置是由本地操作员控制的系统的典型配置。当多个操作员使用HMI从不同位置检查系统状态时,N:1配置很常见。
图6 对于由本地操作员控制的系统,通常采用1:N(1台主机对N个目标)配置。
复杂的机器控制应用程序可能具有许多控制器和HMI的N:N配置(图7)。它们通常涉及充当数据记录和转发引擎的高端服务器。这种系统配置适用于物理上较大或复杂的机器。使用它,用户可以从不同的位置与机器进行交互,或者在一组操作员之间分配特定的监视和控制职责。
图7 分布式机器控制系统
指南通过各种FPGA,控制器和HMI架构组件的推荐实现。它还提供了示例代码,在某些情况下,还提供了可选实现和实现之间的权衡。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。