本文探讨了如何使用NI VeriStand来构建分布式处理和I/O系统,并提供诸多功能来帮助工程师更高效地开发强大的分布式系统。
飞机、汽车或其他工业项目中的控制系统由于需要执行监测、测试或仿真任务,其所需的计算能力和I/O远非单个处理器卡和机箱所能提供。本白皮书介绍了如何创建一个可扩展的分布式系统,来满足大型硬件在环(HIL)或实时测试系统的需求。NI VeriStand是一个现成可用的软件环境,用于配置HIL测试系统等实时测试应用。利用NI VeriStand的诸多特性,无需对软件架构进行设计、编程和维护,即可创建系统。
借助NI VeriStand,只需少量的配置,即可让一台或多台主控(操作)计算机与一个或多个实时执行终端进行通信。NI VeriStand处理主控计算机和执行终端之间的所有通信。图2显示了一个包含一台主控计算机和一个终端的简单拓扑。
图2:简单拓扑
主机上与终端通信的组件是NI VeriStand Gateway。通信是自动进行的,但这一概念对于理解大型拓扑至关重要。
利用NI VeriStand的系统资源管理器,您可轻松地将终端添加到NI VeriStand的系统定义中。一个系统定义文件可以包含无限数量的终端。每个终端都可以有自己特定的硬件和软件配置,所有终端都可以部署到一个网关并通过该网关与之进行交互。
图3:可以在一台主机上部署多个终端并与之交互。
其他主机可以与另一台主机的网关进行通信,进而与同一终端拓扑通信。
图4:多主机多终端拓扑
要做到这一点,其他主机只需要将NI VeriStand Gateway的地址更改为远程主机即可。应用程序的其余部分保持不变。
为了使分布式系统像单个系统一样运行,通常需要在组件系统之间共享数据。这是让所有不同部分能够协同工作的关键要素。数据共享通常使用反射内存接口来完成。
反射内存网络是实时局域网(LAN),在该网络中,每台计算机始终有一个共享内存集的最新本地副本。这些专用网络是为了提供高确定性的数据通信而专门设计的。它们提供了各种分布式仿真和工业控制应用所需的严格定时性能。虽然反射内存网络也受益于通用数据网络的进步,但它们是在不同的需求下驱动而生的一种完全独立的技术,适用于需要确定性、能够简单实现且软件开销小的应用。1
反射内存使NI VeriStand能够在多个终端之间共享数据,同时满足整个系统的性能和确定性要求。利用反射内存,仿真模型就可以进行拆分,并在不同的终端系统上同时执行。输入和输出值通过反射内存在各个系统之间共享。NI VeriStand 2010及后续版本支持GE Intelligent Platforms反射内存卡。NI VeriStand的许多组件可以自动使用反射内存来帮助您无缝地创建多终端系统。
例如,您可以将一个引用终端B数据的激励(测试)配置文件配置为在终端A上运行。您还可以将一个终端的数据映射到另一个终端,就像在不同的终端上将模型输出映射到模型输入一样。这是自动完成的,不需要用户进行显式配置。
图5显示的是一个带有反射内存卡的系统示例。
图5:具有反射内存的多个机箱
在设计系统时,务必要考虑定时和同步需求。 如果系统没有同步,输入和输出的采样就不会同时发生。此外,即使配置为相同的速率,随时间推移而产生的漂移也会导致系统中一个组件采集的样本比另一个组件多。这可能会给仿真系统带来问题。比如,两个仿真模型可能处在不同的时间状态。最后,如果没有一个准确的公共时基,数据分析就很难甚至无法进行。
分布式系统的同步包括硬件同步和软件同步。您可以选择将整个系统同步到外部时间参考,如1588、GPS或IRIG。
NI VeriStand基于配置的环境允许在一个或多个执行终端上创建由多种I/O组成的多样化同步系统。如需了解更多信息,请查看构建同步的NI VeriStand系统。
NI VeriStand的数据日志有多种格式,从单点数据到XNET原始帧,再到来自一个或多个终端的高速波形数据,不一而足。由于技术和数据格式的多样性,组合和查看这些日志中的数据也是一个挑战。DIAdem这一强大工具可以使该过程变得轻松。查看时间相关的NI VeriStand数据日志教程中提供了一个时间对齐DIAdem脚本、范例文件和分步说明指南。
NI VeriStand可用于配置实时I/O、激励配置文件、数据记录、警报和其他任务;可从各种软件环境导入模型来实现控制算法或系统仿真;提供了运行时可编辑的用户界面和方便易用的工具来创建测试系统界面;还可使用NI LabVIEW、NI TestStand、ANSI C/C++、.NET、Python及其他软件环境来添加自定义功能。
利用NI VeriStand,您可以使用现成的多终端功能轻松创建分布式HIL、测试单元、实时测试或监测系统。