- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于LabVIEWRT的数据实时传输系统
在仿真系统诸如分布式仿真系统、半实物仿真系统中, 数据通讯的正确性、快速性和可靠性对仿真的质量有着至关重要的决定影响。而通讯的实时性能与各部分的数据传输速度密切相关, 其中包括了硬件以及软件上各方面的因素。以往在硬件上采取的措施常常是研制高速的数字 /模拟量接口设备等, 但这种方法存在很多缺陷, 如缺乏通用性、传输距离受较大限制等等。而随着各种实时网络产品的开发, 其在仿真系统中的应用也愈加增多。这些产品的共同特点就是通讯速率快、传输距离长、通用性好, 并且可以连接多个节点组成一个实时网络,因而具有十分优越的应用性。本文根据实际仿真设备通讯的需求, 利用反射内存VM IP-CI- 5565及其集线器 VM I ACC - 5595组建了一个数据传输网络。并结合虚拟仪器编程语言LabVIEW( RT ), 编制了数据采集/传送软件。通过从硬件以及软件上多方面对提升系统实时性能的考虑, 使得系统具有良好的工作表现, 从而组建了一个具有较好适用性以及扩展性的通讯系统。
1 系统硬件组建
1 1 1 实时通讯网络与反射内存
实时通讯网络是用于需要较高实时性要求的应用领域的专用网络通讯技术, 一般采用基于高速网络的共享存储器技术实现。它除了具有严格的传输确定性和可预测性外, 还具有速度高、通信协议简单、宿主机负载轻、软硬件平台适应性强、可靠的传输纠错能力、支持中断信号的传输等特点。实时通讯网络可广泛用于各种领域, 例如实时的飞行仿真器、核电站仿真器、电讯、高速过程控制 (轧钢厂和制铝厂 )、高速测试和测量以及军事系统。VMIPCI-5565是 VMIC公司生产的基于 PCI总线的反射内存卡, 它使用光纤进行数据的传输, 从而不存在电磁辐射,也不受到来自无线电的电子 /电磁干扰, 具有很好的安全性和可靠性。另外, 5565采取了高性能的 H ub (网络集线器 ) 结构配置成实时网络, 可以实现多达 256个节点的计算机内存共享, 可以实现高速的实时数据通信[ 1]。因而, 其对于分布式仿真系统来说, 具有良好的应用价值。 VMIPCI- 5565组建的网络结构如图 1所示。
图 1反射内存网络组建结构
1 1 2 VM IACC- 5595的内部结构与系统网络结构反射内存卡 VM IPC I- 5565对应的网络集线器型号为 VMIACC-5595 , 它是一个8端口并且通过层叠可以实现 256节点网络的网络集线器。而由于 VM I ACC - 5595独 特的内部结构 [ 2], 使得在配置网络时会发现整个网络的实时性能有一定的差异。根据 VM IACC - 5595内部结构图[ 2]可知, 在利用其组建网络时, 纵使从外部看网络是星形结构, 但内部依然是双环形结构。VM I ACC - 5595简化的内部结构如图 2所示。
图 2 简化的 VM I ACC- 5595单机结构
可见由于 VM I ACC- 5595内部存在由 0、1、 2 、 3和 4、 5 、6、7节点组成的两个环形, 数据在任意两节点之间传送的时间并不像严格意义上的星形结构那样完全相同。如数据从 0节点传向 1节点和传向 3节点所费时间理论上应该是 1 /3关系,这样的差异在实际网络节点功能配置时是不得不考虑的。通过分析可以发现, 在设计网络时需要着重考虑节点 3和节点 0、节点 7和节点 4的内在关系, 这样可以即满足设计需求, 又能够减少数据在反射内存网络上的传输延迟。即根据节点对数据的要求来配置节点的位置, 若节点以发送数据为主则应配置在 3或 7节点, 而以接受处理为主要任务的节点则应配置在 4或 0节点。当存在数据向其它网络转接或集中处理节点时, 这点的考虑就会更加重要。后经实验证明, 不同配置的网络在 100个 32位精度数据传输时间上的差异在 10微秒级左右, 而随着数据量的增加时间差异会更加显著。在本系统中, 把主要产生数据的设备) ) ) /海鹰仿真机 0和 /银河仿真工作站0 (或数据采集计算机 ) 置于 3 、 7节点,而把数据处理设备如 SG I图形工作站、干扰与背景实时控制计算机等配置与其它节点。这样, 从节点的功能配置上力求到了最优化。
2 系统软件实现
2 1 1 LabVIEW 编程环境及其实时组件 (RT)
系统中数据采集 /传送程序利用 LabVIEW ( RT) 编制而成。 LabV I EW 是由美国NI公司推出了一种优秀的面向对象的图形化编程语言, 目前正被大量用于开发数据监测、数据测量采集系统、工业自动控制相同和数据分析系统等领域。LabV IEW 的实时组件 LabV I EW Rea l- T i m e ( RT) 是为了满足测控领域中日益增多的实时性需求而出现的。与 Lab -V I EW 不同, RT的工作模式为: 在宿主机上开发应用程序,然后下载到目标计算机上去运行。目标机可以是 N I公司专门研制的 RT目标智能板卡, 也可以是通用的计算机, 但目标机上运行的却是一个专门下载 (预先安装 ) 的实时系统。比如文中系统所采取的 LabVIEW RT 810版本, 其目标机上运行的是 N I基于实时系统 Pharap改造开发的实时系统。由于目标机运行的与本身操作系统无关, RT工作模式就具有较好的适用性[3]
。
应用 LabV IEW RT环境编程时, 必须的步骤如下:
( 1) 配置目标计算机 [4]。包括设置第一启动盘 (根据下一步的启动方式决定是硬盘还是软盘 ), 屏蔽无关的操作、中断如 USB功能等, 以使目标机启动在实时状态下及尽量增强目标机的实时性能。 [p]
( 2) 连接启动宿主机与目标计算机, 并使目标机运行在实时状态下。宿主机与目标机的连接可以是普通的网络连接。使目标计算机运行在实时状态下则有从硬盘启动和从软盘启动两种方式, 启动软盘及硬盘的设置均在 NI产品随带的硬件操作环境 MAX下设置, 具体步骤可见文献 [ 4]。本文所设置的目标机是一个数据采集计算机, 由研华工控机和 N I公司的基于 PC I总线的数据采集卡 PC I6036E组成。目标机启动模式采取了制作启动软盘的方式。
( 3) 在宿主机上进入 LabVIEW RT编程模式, 选定将要运行程序的目标机, 编制宿主机和目标机要运行的程序。 LabVIEW RT的不同版本在这一部分的环境可能有差别, 本文用的 8 1 0版本是目前最新的版本, 它直接应用了一个 RT工程管理窗口, 使得对子程序模块 ( VI) 的管理十分方便、直观。
( 4) 完成程序的编制以及相应的设置后, 直接把程序下载到目标机上即可以运行。应用 LabV I EW RT编制的程序只要下载到目标机上就可以自己独立运行, 而只要没有特殊的设置, 纵使宿主机崩溃关机了, 其运行依然不受影响。而且, 通过设置可以把目标机上的程序设置成开机即自动运行状态, 这样宿主机就可以不需控制目标机而进行其它目标机的开发。这在很多自动测试、控制网络等系统中有着极大的优点, 可以极大地提高系统开发效率并节省很多的资源。另外, 文中系统开发所应用的 LabVIEW RT的 810版本还增加了一个 /共享变量 0 的新功能。它采用了一个 / 先进先出0 的内存栈列机制, 通过应用共享变量可以方便、可靠的实现控制计算机与目标机计算机之间的数据传送以及逻辑控制。比起以前版本为实现网络通讯所必须采取的 DataSocket技术等, 共享变量的逻辑以及代码极其简单。也正因为此, 共享变量的出现也大大提升了 LabVIEW 以前并不受赞扬的网络通
讯性能 [5]
。
2 12 软件组成与实时性控制
2 1211 软件组成及流程
一般情况下, 非 N I公司的产品, 即第三方硬件产品, 并不能直接应用在 LabV IEW RT环境之下。而此时就必须自行开发板卡在 LabV IEW RT环境下的驱动, 其包括很多的过程 [ 6]。
然而 NI公司恰好开发出了 VM IPCI- 5565的驱动, 作为例程发布在 N I主页上供开发者学习。实验证明, 在对目标机进行一定设置后, 此驱动可以应用在 LabV IEW 的 RT环境下。系统软件的组成分为宿主机控制程序和目标机采集程序两部分, 功能可以实现由控制界面控制采样时间限、采样模式及点数、采样率等参数设置的任意通道的数据采集和直接发送。软件的流程如图 3所示。
2 1212 软件中的实时性考虑
图 3 系统软件流程图
为尽量提升软件运行的效率和数据处理的实时性, 软件从总体方案和具体函数的选择应用上都进行了优化考虑。具体表现在: 在总体方案上, 程序尽量在开始采集命令下达之前实现所有的硬件参数配置以及控制变量的复位, 而在数据采集开始后使目标机上运行的代码尽量少。而在具体函数的应用上, 也以运行代码的简洁高效为原则。这包括了对数据采集函数的改进组合和对数据发送时函数的选择。数据采集函数在运行时,通过判断采集模式 (是连续还是定点 ) 选择在 DAQm x函数模
块基础上改进的采集子 VI[ 7- 8]。另外需要注意的是, 在数据发送时必须根据反射内存卡函数的运行特点和发送数据的模式, 合适选择编制的数据发送子V I 。由于反射内存卡的驱动函数是由 LabVIEW 中的 V ISA底层函数综合应用而成的[ 6], 尤其是数据读写函数, 全部由 VISA中寄存器读写函数组成。所以一般的浮点型采集数据无法直接写进寄存器, 而必须开发合适的数据转换函数。此时有两种方法: 一即把所有数据通过 LabV IEW 的 datafl a ttern子 VI转化成字符型 ( 8位精度整形 ) 数据 (此时又分两种情况, 有适用于连续数据的单点转化和适用于定量序列的向量转 ) , 发出后再通过相反的方法转换回原始数据; 二则是把浮点数据判断正负后设置代表负数的标志位, 再通过一个固定的数学变换全部转换成整形数据, 把转换后的数据和对应标志位数据一同发送, 接收后再结合标志位进行数据反变换即可。
可见, 第一种方法把一个 32位浮点数变成了 4个 8位整形数来发送, 而第二种方式增加了一倍的数据量, 但完成一个数据发送却只发送两次。于是, 如若是少量的数据序列, 则推荐采取第一种方式来发送; 而若是大批量数据发送, 则可以在预先分配标志位内存区的情况下采用第二种方法。而随后的实验则证明, 这样的选择在实际上是正确的。
3 系统测试及结果分析
系统搭建完毕后, 对其的功能和性能进行了测试。测试方案为:
( 1) 数据采集计算机上在 LabVIEW RT环境下直接产生定量数据, 通过写入反射内存发送, 计算出平均耗时, 以得到软件的性能指标;
( 2) 数据采集计算机上在 LabVIEW RT环境下产生模拟数据, 经自我采回后再写入反射内存发送, 计算出平均耗时;
( 3) 利用 /银河 - SI M 仿真工作站0 产生数据, 由数据采集计算机节点采集数据并向数据接收计算机节点发送, 比较仿真工作站的模拟波形和接收计算机的数据波形, 以验证系统功能。
测试结果表明:
( 1) 软件发送 10000个 32位浮点数时, 通过第一种处理方式耗时 7 m s , 第二种处理方式耗时5m s , 性能达到了预期要求, 且耗时上的差异与理论上的推断相符。
( 2) 软件完全可以在同时输出 2路模拟信号的情况下,实现可控制的任意多路 ( 1~ 7)、任意通道 ( 0~ 8) 同一采样率下的数据采集与传送, 且准确性较高、可靠性好。
( 3) 整个系统可以实现数据较好的实时传输, 完成数据的实时处理。
4 结束语
本文实现的系统是实验室开发的 / 智能集成仿真网络接口系统0 的一部分, 整体系统可以实现反射内存网络和广播内存网络的实时数据通讯 [9- 10]。而本子系统除能完成总体的任务外, 由于具有网络结构开放、工作模式简洁高效的特点,更具有较大的发展空间和拓展应用前景。在系统投入应用后,在某制导武器的仿真试验中工作良好, 在武器的开发定型中发挥了积极的作用。