使用​NI VeriStand​创建​分布​式​系统

概览

​分布​式​系统​有​多种​形式。​例如,​在​不同​的​位置​采集​输入​和​输出​而不是​利用​一个​中央​处理​器​采集​方式​称为​分布​式​I/​O。​另​一个​例子​是​为​单​系统​添加​多个​处理​器,​实现​运算​分布​式​化。​本文​讨论​了​如何​使用​NI VeriStand​创建​分布​式​处理​和​I/​O​系统,​其中​包含​了​许多​特性,​能​将​开发​分布​式​系统​变得​更​为​有效​和​强大。

​ ​飞机、​汽车​或​其他​工业​项目​中的​控制​系统​常常​需要​比​单​个​处理​器​板​卡​和​机​箱​所能​提供​的​更多​的​计算​能力​和​I/​O​来​进行​监视、​测试​或​仿真。​本​白皮书​详细​介绍​了​如何​创建​可​扩展、​分布​式​的​同步​系统,​满足​大型​硬件​在​环​(HIL)​或​实​时​测试​系统​的​需求。​NI VeriStand​是​用于​配置​包括​HIL​测试​系统​在内​的​实​时​测试​应用​的​即​用​型​软件​环境。​利用 NI VeriStand特性,​无​需​对​软件​体系​结构​进行​设计、​编​程​和​维护,​就​可以​创建​系统。

内容

分布​式​系统​需求

您​通常​可以​将​大型​系统​分解​为​多个​不同​组​件,​独立​实现​每​个​组​件​的​硬件​和​软件。​为​提供​更高​的​计算​能力​和​更大​的​I/​O​容量,​您​可以​在​不同​硬件​上​运行​系统​的​各个​组​件。

例如,​飞机​的​襟翼、​缝​翼、​方向舵、​引擎、​副翼​等​都​需要​仿真​和​测试。​如​图​1​所​示,​采用​模​块​化​的​方法,​可以​将​系统​分解​为​多个​硬件​部件。


图​1. 可以​用​多个​PXI​系统​仿真​飞机​组件

系统​级​集成​特性

使用​NI VeriStand,​一个​或​多个​操作​者​计算​机​(主机)​可以​在​最少​用户​配置​的​情况​下,​与​一个​或​多个​实​时​执行​目标​进行​通信。​NI VeriStand​处理​操作​者​计算​机​(主机)​与​实​时​执行​目标​之间​的​所有​通信。​图​2​给​出了​包含​主机​和​目标​的​简单​拓​扑​结构。


图​2. 简单​拓​扑​结构

NI VeriStand​网​关​是​主机​用于​和​实​时​目标​通信​的​组​件。​虽然​通信​管理​是​自动​完成​的,​它​仍然是​理解​大型​拓​扑​结构​所需​的​重要​概念。

您​可以​方便​地​在​NI VeriStand​系统​浏览​器​中将​目标​添加​到​拓​扑​结构​中。


图​3.在​系统​浏览​器​中​添加​目标

单​个​系统​定义​文件​可以​包含​无限​多个​目标,​甚至​可以​混和​不同​目标​类型。


图​4.单​个​系统​定义​文件​可以​包含​多个​目标

每​个​目标​有​自己​的​专用​硬件​和​软件​配置,​所有​目标​可以​通过​单​个​网​关​实现​部署​和​交互。


图5. 可在​单​个​主机​上​部署​多个​目标​并​进行​交互

通过​与​另​一个​主机​网​关​进行​通信,​更多​的​主机​计算​机​可以​与​相同​的​拓​扑​结构​进行​通信。


图​6. 多个​主机​与​多个​目标​拓​扑​结构

要​完成​这​点,​其他​主机​只需​将​NI VeriStand​网​关​地址​修改​为​远程​主机​即可。​其他​应用​程序​保持​不变。

在​分布​式​系统​之间​共享​数据

要​让​分布​式​系统​如同​单​个​系统​一样​工作,​必须​在​系统​组​件​之间​共享​数据。​这​是​让​不同​部分​可以​一起​工作​的​关键​要素。​通常​可以​使用反射​内存​接口实现。

反射​内存​网络​是​实​时​本地​局​域​网​(LAN),​每​个​计算​机​在​其中​都​拥有​共享​内存​集合​的​最新​本地​复​本。​这些​专用​网络​是​为了​提供​高​确定​性的​数据​通信​而​专门​设计​的。​可以​提供​多种​分布​式​仿真​和​工业​控制​应用​所需​的​高级​定​时​性能。​反射​内存​网络​获益​于​通用​数据​网络,​是​不同​需求​推动​下​产生​的​完全​独立​的​技术,​适用​于​要求​确定​性、​简单​实现​和​软件​负荷​小​的​应用​程序1

反射​内存​为​NI VeriStand​提供​了​在​多个​目标​之间​共享​数据​的​能力,​并且​满足​了​整个​系统​的​性能​与​确定​性​需求。​使用​反射​内存,​仿真​模型​可以​分别​在​不同​的​目标​系统​上​同时​执行。​输入​与​输出​数值​通过​反射​内存​在​不同​目标​系统​上​共享。GE​智能​平台​反射​内存​板卡本地​支持​NI VeriStand 2010​及其​后​的​版本。​NI VeriStand​的​许多​组​件​可以​使用​反射​内存​无缝​创建​多​目标​系统。

此外,​NI VeriStand​将​数据​在​目标​之间​自动​分布​式​化​用于​不同​的​用途。​例如,​您​可以​配置​激励​(测试)​档案,​运行​在​需要​目标​B​数据​的​目标​A​上。​NI VeriStand​在​目标​之间​自动​创建​并​激活​链​路​获取​数据。​这​可以​在​无​需​用户​配置​的​情况​下​自动​完成。

图​7​显示​了​包含​反射​内存​板​卡​的​实例​系统。


图​7. 使用​反射​内存​的​多个​机箱

同步​分布​式​系统

在​设计​系统​时,​考虑​时序​与​同步​的​需求​是​十分​重要​的。​如果​分布​式​硬件​不​进行​同步,​输入​和​输出​的​采样​不会​同时​发生。​另外,​随着​时间​的​推移,​尽管​系统​被​配置​为​同样​的​速率,​漂移​会​导致​系统​的​一个​组​件​比​另​一个​组​件​得到​更多​的​采样。​如果​仿真​是​您​的​目标,​就​会​产生​问题。​例如,​两​个​襟翼​仿真​可能​处于​不同​的​时间​状态。​另外,​因为​数据​并非​来自​相同​的​时间​点,​数据​记录​和​分析​将​被​破坏。

同步​基础​概要介绍​了​例如​时钟​漂移​和​时钟​偏差​的​许多​细节。

分布​式​系统​的​同步​包括​硬件​同步​和​软件​同步。​您​可以​选择​性​地​将​整个​系统​与​GPS​或​IRIG​等​外部​时间​参考​进行​同步。

硬件​同步

硬件​同步​意味​着​系统​的​每​个​硬件​共享​一个​硬件​参考​时钟,​用于​定​时​和​开始​I/​O​任务。​系统​中的​每​个​硬件​都​利用​相同​的​硬件​参考​时钟​生成​其​自己​的​时钟,​每​个​硬件​都在​相同​的​时间​开始。

一些​常见​的​硬件​定​时​和​同步​任务​实例​有:​多个​数据​采集​板​卡​的​同步​采样;​在​更新​数据​采集​模拟​输出​同时,​更新​现场​可​编​程​门​阵​列​(FPGA)​板​卡​数字​输出​PWM​的​占​空​比;​在​数字​万​用​表​(DMM)​与​开关​之间​握手;​波形​发生​器​和​数字​化​仪​的​锁​相;​或者​射频​(RF)​下​变频​器​和​中​频​(IF)​数字​化​仪​的​同步。

您​可以​用​NI PXI​机​箱​创建​NI VeriStand​分布​式​系统。​PXI(PCI Extensions for Instrumentation,​面向​仪器​系统​的​PCI​扩展)​是​基于​PC​的​坚固​平台,​提供​了​用于​测量​与​自动​化​系统​的​高性能​低成本​部署​解决​方案。​PXI​将​外​设​组​件​互​连​标准​(PCI)​电子​总​线​与​坚固​的​CompactPCI​模​块​化​Eurocard​机械​封​装​相​结合,​并​增加​了​专用​同步​总​线​和​关键​软件​特性。

机​箱​包含​高性能​PXI​背​板,​其中​包含​PCI​总​线​和​定​时​与​触发​总​线。​PXI​模​块​化​仪器​增加​了​10 MHz​专用​系统​参考​时钟、​PXI​触发​总​线、​星​型​触发​总​线​和​槽​对​槽​局部​总​线,​满足​了​高级​定​时、​同步​与​边带​通信​的​需求,​并且​不​损失​任何​PCI​的​优点。

在​PXI​机​箱​之间​共享​参考​时钟​最​简单​的​方法​是​使用​机​箱​背部​的​CLK10 BNC​接​头。​几乎​所有​的​现代​PXI​机​箱​都有​BNC​端子。​每​个​机​箱​有​CLK10​输出​接​头​和​CLK10​输入​接​头。​将​机​箱​的​CLK10​输出​与​另​一个​机​箱​的​CLK10​输入​相连,​就​可以​确保​使用​相同​的​参考​时钟。

要​共享​开始​触发​器,​我们​推荐​使用​NI​数据​采集​(DAQ)​设备。​一个​机​箱​可以​将​触发​信号​导出​供​一个​或​多个​其他​机​箱​作为​开始​信号​使用。

图​8 是​硬件​同步​配置​的​例子。​在​这个​配置​中,​NI PXI-1042​主机​箱​利用​BNC​电缆​将​CLK10​作为​参考​时钟​导出​到​N​个​其他​PXI​机​箱。


图​8. 多​机​箱​的​硬件​同步

NI VeriStand​在​一个​机​箱​内​自动​处理​所有​硬件​同步,​还​可以​将​采样​时钟​和​触发​信号​导出​或​导入​到​其他​目标​上。

在​NI VeriStand​系统​浏览​器​中将​数据​采集​设备​添加​到​系统​配置​后,​您​可以​如​图​9​所​示,​看到​一个​用​粗​体​显示​的​数据​采集​设备​名称。​NI VeriStand​自动​选择​了​这个​设备​作为​机​箱​的​主​数据​采集​设备。​主​数据​采集​设备​接受​外部​触发​信号,​完成​多​目标​同步。​NI VeriStand​在​单​个​机​箱​中将​从​数据​采集​设备​与​主​数据​采集​设备​进行​同步,​从​设备​不​包含​在​多​机​箱​同步​中。


图​9. 粗​体​显示​的​设备​被选​为​主​数据​采集​设备

在​机​箱​页​面​中,​您​可以​定制​并​触发​主​数据​采集​设备,​在​树​形​结构​中​选择​机​箱。​如​图​10​所​示,​图​中标​出了​对​多​机​箱​硬件​同步​而言​重要​的​环节。


图​10. 在​PFI 6​机​箱​中​导入​触发器

在​图​10​中,​对​机​箱​进行​配置,​从而​在​PFI 6​的​Dev1​中​导入​触发​器。​查阅​Dev1​设备​的​硬件​手册​寻找​PFI 6​端子。

在​创建​这些​配置​并​完成​BNC​与​触发​器​连​线​之后,​可以​将​它们​部署​到​运行​VeriStand​的​实​时​执行​目标​上来​实现​硬件​同步。

如果​您​所​使用​的​机​箱​没有​CLK10 BNC​接​头,​或是​您​需要​更好​的​同步​性能,​您​可以​使用​定​时​与​同步​板​卡​(NI-665x)​实现​相同​功能。​如果​您​决定​使用​NI-665x​板​卡​实现​这个​功能,​需要​确定​每​个​系统​配置​都​添加​了“10MHz PLL”定​时​与​同步​设备,​而且​设置​为​导入​或​导出​10 MHz​时钟。

软件​同步

软件​同步​意味​着​系统​中​(在​这个​例子​中​是​NI VeriStand​实​时​引擎),​不同​代码​块​共享​相同​的​执行​时钟​和​一个​开始​信号,​以​实现​在​相同​时间​开始​执行​任务。

在​拥有​合适​的​硬件​设备​并且​当​该​设备​可用​时,​NI VeriStand​实​时​引擎​被​设计​为​使用​硬件​定​时​单​点​I/​O(HWTSPIO)。​HWTSPIO​是​一种​数据​采集​软​硬件​特性,​允许​将​软件​执行​锁定​到​物理​硬件​时钟​上。​软件​锁定​到​硬件​只​适用​于​模拟​输入,​因此​即使​不​使用​模拟​输入​通道,​PXI​系统​配置​中也​至少​要​包含​一个​模拟​输入​通道。

所以​如果​硬件​采用​如上​同步​方式,​并且​每​个​配置​中​都​包括​硬件​模拟​输入​通道,​那么​每​个​目标​的​NI VeriStand​实​时​引擎​软件​都会​被​自动​同步。

参考​时钟​同步

在​一些​情况​下,​不仅​要求​系统​组​件​相互​同步,​还​要求​同步​到​外部​时钟​参考。​因为​上述​同步​系统​组​件​的​方法​中​包含​了​一个​与​其他​分布​式​系统​共享​时钟​和​触发​信号​的​主​目标,​参考​时钟​同步​可以​通过​简单​地​将​该​主​目标​连接​到​外部​时钟​参考​实现。

NI VeriStand​的​Clock 10 Discipline​附加​组​件​让​NI VeriStand​引擎​可以​根据​外部​参考​时钟​进行​同步。​外部​参考​时钟​可以​是​NI PXI-6682​模​块​支持​的​任何​参考​时钟​之一。​附加​组​件​结合​PXI-6682​和​其他​定​时​与​同步​板​卡,​对​PXI​机​箱​按照​外部​参考​时钟​约束。​您​可以​在​这个​页​面​了解​关于​这个​附加​组​件​的​更多​细节。

图​11​为​相互​同步​并与​外部​时钟​参考​进行​同步​的​分布​式​系统​实例。


图​11.多​机​箱​与​外部​时钟​参考​的​硬件​同步

结论

使用​NI VeriStand,​您​可以​配置​实​时​I/​O、​激励​文件、​数据​记录、​警报​和​其他​任务,​通过​从​多个​软件​环境​中​导入​模型​实现​控制​算法​或​系统​仿真,​使用​运行​时间​可​编辑​的​用户​界面​快速​构​建​可以​和​商用​工具​媲美​的​测试​系统​界面,​使用​NI LabVIEW、​NI TestStand、​ANSI C/​C​+​+、.NET、​Python​和​其他​软件​环境​添加​定制​功能。

通过​利用​NI VeriStand,​您​可以​采用​即​用​多​目标​特性​方便​地​创建​分布​式​HIL、​测试​单元、​实​时​测试​或​监视​系统。