摘要: 根据当前虚拟仪器技术网络化的需求,提出了一种利用Labwindows/CVI多线程技术、 ActiveX、DCOM技术(分布式COM)和SBS实时光网开发网络化虚拟示波器的实现方法,该方法在工程实践中得到了很好的应用,并为今后搭建实时虚拟仪器测控网络提供了依据。
关键词: Labwindows/CVI;SBS实时光网;多线程;ActiveX;DCOM;虚拟仪器
随着计算机软硬件技术不断发展与提高,虚拟仪器技术已成为当前测控领域内的关键性技术。在远程测控与仿真方面,虚拟仪器网络化,已成为急待解决的问题。通过利用SBS实时光网、虚拟仪器技术、ActiveX技术以及DCOM技术,实现了网络化虚拟示波器,从而使远程测控、数据共享成为了现实。
网络虚拟示波器系统设计
网络虚拟示波器系统总体上可分为两部分:数据采集网络、虚拟示波器。数据采集网络负责远程数据信息的采集和远程控制指令传送。虚拟示波器则通过数据网络将所获取的远程数据信息动态显示、存储。网络虚拟示波器系统总体结构框架如图1所示。
图1 网络虚拟示波器系统结构
由图可知,数据采集网络由远程信息数据源、数据源控制中心两部分组成。其中,远程信息数据源,通过 SBS实时光网,接收来自远程设备终端的数据,并将这些数据按照一定的规则整合成一数据流,发送给数据源控制中心。数据源控制中心,实质是一台大型服务器,其主要职能是接收来自远程信息数据源的数据,同时,还可将这些数据通过实时光网或以太网向其余数据信息处理终端进行发送,并将数据分析中心发出的远程控制指令发送给各远程设备终端。此外,该数据源控制中心,也可将各客户终端数据分析处理结果,发布到整个网络上,从而实现整个网络的数据信息资源共享。这对于复杂系统远程测控是十分重要的,它可以将生成复杂系统的繁琐控制指令分解给各客户终端来完成,实现控制指令的并行生成,使得复杂系统控制变得迅速、可靠。虚拟示波器作为一个客户终端可直接从数据源控制中心获取数据,完成数据波形信号动态显示、存储的任务。
数据采集网络系统设计
出于实时性考虑,数据采集网络采用实时光网进行搭建。SBS实时光网是由美国SBS公司开发的具有星形结构的实时网络。它以光作为信息传输的介质,因而具有极强的实时性。
SBS 的广播内存是唯一的高性能Hub结构配置的网络,应用于多台计算机实时的、确定的内存共享。广播内存的Hub结构比环形结构(如VMIC)更稳定。一个节点的故障只影响本节点,不影响整个网络,同时,具有较高的网络稳定性、高带宽和非常低的延迟特性。广播内存使网上所有计算机(节点)共享内存 (NetRAM),每一个节点有它自己的NetRAM的物理备份,节点通过光纤与安装在中心Hub的一个端口卡相连接。写入本地节点卡的数据对Hub是以广播方式传送的并且同时写入所有节点的内存。
Hub将各种数据流合并到一个能广播传送到所有节点的普通数据流里,广播内存保证数据同时并且按同一顺序到达所有的节点内存。链接传输率高达43MB/s,写延迟是10微秒,在优先权高的节点延迟更小,并且是可预知的。所有的节点能通过“写入 NetRAM”的方式,透明地并确定地广播传送中断、消息或者数据块到其它的节点。通过一个简单的“写入NetRAM”由任何节点传送中断,一个写中断桌面(WIT)控制中断。从本节点的NetRAM备份中读取数据。Hub将分离的数据流从节点卡合并到一个普通数据流里,并同时广播到所有的节点。一个 Hub通过一个背板和端口卡所插的14个槽,支持28个独立的节点。每一个Hub端口卡设有FIFOs,保证单个节点接收的各种数据流合到一个普通数据流里并广播到所有节点时有最大的传输率。背板是一个用于互联很多节点卡的通用链接板,以形成网络。综合的错误监控和纠错特点确保最高的Hub可靠性。数据源控制中心通过该实时数据采集光纤网络与远程终端实现数据的交换和信息的共享。
虚拟示波器设计
众所周知,虚拟仪器技术的诞生掀起了仪器仪表开发的一场革命。它将硬件软化,节省了大量硬件研制成本,大大缩短了仪器设备的开发周期。因此,一直受到测控领域人士的青睐。在虚拟示波器的设计中,我们采用Labwindows/CVI 来进行设计与开发。Labwindows/CVI是由美国National Instrument公司(美国国家仪器公司,NI)推出的进行虚拟仪器设计的交互式C语言开发平台。它将功能强大、使用灵活的C语言与用于数据采集分析和现实的测控专业工具有机的结合起来,为熟悉C语言的开发人员建立检测系统、自动测试环境、数据采集系统、过程监控系统、虚拟仪器等提供了一个理想的软件开发环境。与一般虚拟示波器不同,传统的虚拟示波器数据来源是通过A/D采样而获得的,网络虚拟示波器是通过数据网络来获取数据的,其自身不存在A/D采样波形失真的问题,从而消除了A/D采样对示波器频带造成的瓶颈。根据网络化虚拟示波器的特点,我们设计出了如图2所示的网络虚拟示波器。
图2 网络虚拟示波器
在网络虚拟示波器控制程序中,我们使用了多线程技术,以保证波形显示的稳定、可靠。多线程技术是指,将数据获取和波形显示分别在两个不同的线程中进行,即控制程序在一个线程中进行波形显示的同时,在另一线程中进行数据的采集。这样,既保证数据采集的可靠性,又保证了波形显示的真实稳定。需要指出的是,数据采集频率fs直接影响示波器的频带。根据香浓采样定律,网络虚拟示波器的频带应小于fs/2。因而,数据采集频率fs的大小将直接影响到示波器频带的宽窄。此外,为了消除波形显示的闪烁和抖动,我们在控制程序中开辟了两个缓冲区。其目的是在波形显示时,两个缓冲区的数据进行交替显示,这样就消除了波形显示过程中的闪烁和抖动。网络虚拟示波器控制流程如图3所示。
图3 网络虚拟示波器控制流程
由图3可知,网络虚拟示波器启动后,首先建立与数据网的连接,随后,获取网络上的数据写入空缓冲区中,同时将写满数据的缓冲区数据显示到示波屏上,如此往复,示波器便会将数据信号源源不断显示出来。如要终止波形显示,则要将网络虚拟示波器与数据网断开,而后关闭网络虚拟示波器即可。当然显示过程中,可以对波形的幅值和相位进行调节,已达到波形最佳观测效果。
虚拟示波器与数采网络的挂接
虚拟示波器如何与数据采集网络进行挂接是网络虚拟示波器的一项关键技术。硬件方面,出于强实时性考虑,我们使用SBS实时光网作为它们之间的连接体。当然对于实时性要求不高的其他客户端可通过普通以太网进行连接。软件方面,为了能够从网络获取数据,我们采用了ActiveX和DCOM技术。ActiveX是对开发面向可用于不同软件开发环境下的具有可重用性组件技术的一种统称。DCOM技术是一种分布式COM技术,使用它可以将运行在服务器上的组件,复用在同一网络的客户端。我们利用DCOM技术这一优点,通过运行在数据源控制中心的DCOM服务器应用程序,获取远程信息数据源传来的数据,而后,运行虚拟示波器的客户端,通过运行在其上的ActiveX客户端应用程序获取DCOM服务器上的远程数据,从而,实现虚拟示波器的网络数据获取。利用以上软硬件方面的技术,我们实现了虚拟示波器与数据采集网络的成功挂接。从而实现了网络化虚拟示波器,该网络虚拟示波器成功的应用于某型无人机的地面半实物仿真试验中,为试验数据在线观测、数据回放、存储与分析提供了强有力的支持。图4为试验过程中部分数据曲线观测结果。
图4 网络虚拟示波器半实物仿真试验数据观测结果
结语
我们将网络虚拟示波器成功应用在了远程测控、半实物仿真等方面,这对于需要实现无人值守,全自动化监控的应用领域有着重要的意义。它的出现可以大大提高工业自动化的水平,缩减人员消耗,降低成本,对于工作条件恶劣,工作环境危险的领域实现无人值守,有着重要的应用价值。网络虚拟示波器所取得的成果,可为今后虚拟仪器网络化提供一种极好的工程解决方案。当然,网络虚拟示波器采用SBS实时光网来传送数据,会使组网成本大为提高。今后,我们将在保证网络数据传输实时性前提下,使用普通以太网来组网进行更深入的研究。
参考文献:
1. Thuan L Thai:DCOM 入门.中国电力出版社,2001
2. 张毅刚、乔立岩等.虚拟仪器软件开发环境Lab Windows/CVI6.0编程指南,机械工业出版社,2002年8月
3. Labwindows/CVI Programmer Reference Manual. National Instruments Co,1998.
4. SBS公司,实时网络用户使用指南