摘要:提出一种以LabWindows/CVI作为系统开发平台,利用C/S模式,采用TCP/IP协议,组建虚拟仪器远程网络测控系统的方案。此方案在工业企业生产和武器系统测试等远程多类型参数实时测量有广阔的应用前景。
关键词:LabWindows/CVI;虚拟仪器;TCP/IP协议; C/S模式
1 前言
在参数测量领域经历了模拟仪器、数字仪器和智能仪器的充分发展后,20世纪90年代末,在信息技术高速发展的推动下,该领域进入了虚拟仪器和网络化测控技术阶段。
现代武器系统测试过程中潜在的不安全因素,工业企业生产过程中各部分的协调运转和管理,都要求依靠Intranet或Internet进行。将虚拟仪器技术与Intranet、Internet技术融合,使虚拟仪器系统更加突破了传统的测量理念,测量数据得到了真正意义上的共享,远程测量得以实现。
2 测控模式及软件的选取
由于在武器系统测试和工业企业生产过程中涉及到对多种传感器的数据采集和仪器的驱动,同时也存在着对传感器系统的调整和生产测试现场环境恶劣等问题,所以整个测控系统要充分体现很强的适应性和健壮性,这要求测试系统能在不同的测试终端甚至是远程测试终端完成测试数据的获取,然后通过局域网或广域网将测试数据传输到主控计算机完成各种测试故障的分析、测试策略的制定等。
伴随第三代自动测试系统出现的区别于传统仪器模式的新的测试仪器——虚拟仪器是在以计算机为核心的硬件平台上,由用户设计定义具有虚拟面板,其测试功能由测试软件实现的一种计算机仪器系统。其实质是利用计算机显示器模拟传统仪器的控制面板,以多种形式输出检测结果;利用计算机软件实现信号数据的运算、分析和处理;利用I/O接口设备完成信号的采集、测量与调理,从而完成各种测试功能的一种计算机仪器系统。与传统测试仪器相比,虚拟仪器具有明显优势:仪器功能定义方便,性能更新快捷,面板设定灵活,准确性高,研制周期短,性价比高,并且可以方便的与网络及周边设备互联。
构造和使用虚拟仪器的关键在于应用软件。NI公司开发的面向计算机测控领域的虚拟仪器软件开发平台LabWindows/CVI具有强大的对网络数据传输的支持能力,它提供了一个TCP(Transmission Control Protocol)的函数库。该函数库提供了基于标准TCP/IP协议的网络数据传输的API函数,可以实现与平台无关的、可靠的、面向连接的网络数据传输功能[1]。
本文即以LabWindows/CVI作为系统开发平台,利用C/S模式,采用TCP/IP协议,组建了虚拟仪器的远程网络控制系统。
3 LabWindows/CVI建立的网络协议
Labwindows/CVI是美国NI公司开发的基于C语言的软件开发平台,适用于自动测试、自动控制、测试仪器通信、测试硬件控制和信号分析处理的开发工具。与其它虚拟仪器开发软件相比,LabWindows/CVI具有以下特点:集成式开发平台,交互式编程方法,简单直观的图形用户界面设计,完善的兼容性,灵活的程序调试手段,功能强大的函数库,支持TCP/IP和DDE(动态数据交换)等网络功能[2]。
Labwindows/CVI建立的网络协议主要有:
(1)TCP/IP——应用广泛,一个可靠的网络协议,可用于所有计算机。
(2)UDP——是在计算机的进程之间提供最简单的低级通信。进程是通过发送数据报到一个目的计算机或端口上进行通讯。特点是容易造成数据的丢失,适用于可靠性要求不高的计算机通信系统中,UDP是一个高性能的无连接的网络协议,可用于所有计算机。
(3)DDE——动态数据交换是在Windows程序之间交换数据的一个协议。相比于TCP/IP协议通信的过程中,想要建立一个连接,然后传输原始数据。而DDE在更高的层上工作,程序向彼此发送信息来交换信息。一种简单的信息是向另一个程序发送命令。其他大多数信息用于传送按名字引用的数据,可适用于Windows31、Windows95、WindowsNT间的通信。
(4)ActiveX——支持自动化程序,可以是一个服务器或是客户机。用于Windows95和WindowsNT的通信。
(5) Apple Events——可用于 Macintosh,用于在 Macintosh程序之间发送和接收数据。
(6)PPC——Macintosh协议,程序对程序间通信的一种低级方式,用于在Macintosh程序之间发送和接收数据,由于它比较低级,所以能够提供比较高的可靠性。在结构上PPC与与TCP相像,无论是服务器和客户端程序。PPC指定一个远程程序的方法不同于TCP。除此之外,两个协议提供了相似的特点和功能,它们多能够处理队列和数据的可靠传输,多可以使用多个打开的连接[3]。
4 系统结构
整个系统由虚拟仪器、服务器、客户机组成。客户机通过Internet与服务器建立连接,通过服务器对虚拟仪器进行控制。
4.1 虚拟网络测量系统模型
为具体实现这套虚拟仪器网络系统,首先定义了一个虚拟网络测量模型,采用客户端/服务器(C/S)网络模式,该模式具有先进性、运行效率高、数据可靠完整、数据传输量大、开放性强、兼容性强等特点[4]。虚拟仪器测量系统模型如图1所示。
4.2 虚拟网络测量协议及虚拟任务组织协议
在定义了虚拟网络测量模型之后,还必须定义建立在该模型基础之上的虚拟网络协议组;协议组建立在OSI参考模型基础之上。在客户机/服务器模式中,虚拟网络协议组的层次结构与OSI七层协议模型对应关系如图2所示。
虚拟网络测量协议主要用于实现客户机与服务器之间的测试信息表示和数据格式的标准化,是客户机与测试服务器进行通信的基础,是实现网络测量系统模型虚拟网络化的关键。虚拟网络测量协议建立在10Base-T以太网以及TCP/IP协议的基础上。
在C/S模式中,测试服务器响应客户机发送来的测试和控制信息,实现特定的测试和控制任务,并将结果信息返回客户机。一次具体的通信过程如图3所示。
在这一过程中,一方面,需要具体规范测试及控制功能的数据表示,在实际应用中,我们采用标准仪器控制语言SCPI作为测量信息的语法表示;另一方面,需要定义用户给予服务器之间传输信息的标准传输报文格式。
4.3 虚拟仪器网络系统的实现
建立了以上模型、协议的基础上,我们采用LabWindows/CVI作为系统开发平台,并利用其提供的TCP/IP函数库和Windows Socket SDK函数库,具体实现了虚拟仪器远程网络控制系统,系统软件的总体结构如图4所示。
在测试服务器处于系统结构的核心,负责测试仪器管理、测试服务管理,必须具有支持冲突、出错管理、进程显示等多种功能,是软件设计的重点。
在LabWindows/CVI开发平台上实现仪器测试,当一个客户需要测量仪器时,向服务器发送服务请求,服务器收到该请求后,进行分析、测量并将测得信号返回客户机。
5 实验设计
结合系统构成原理,可以通过局域网构建一个简单的测试网络,实现不同网关之间数据的传送:服务器启动程序后系统进行初始化,等待客户机连接请求,;较验正确后建立连接并等待命令,若客户端有命令则开始处理服务请求,分析处理完毕后返还客户机测试信息。程序的基本流程图可见图3。
5.1 服务端主要程序设计
服务器端程序的主要任务为:
①注册TCP/IP服务器;
②根据客户端请求命令,进行测量,并将测试结果返回客户端;
③在面板上显示仪器状态及测试结果。
下面对程序的各个功能分别介绍:
用PromptPopup函数弹出一个对话框提示用户输入提供服务的端口号,以便建立连接, portNum是端口号,见图5。
5.2 客户端主要设计
客户端程序的主要任务为:
①与服务器端建立连接;
②根据面板控件的操作,通过TCP/IP端口发送命令;
③接收服务器端传回的测试数据,并在面板上显示仪器状态及测试结果。
1.用PromptPopup函数弹出对话框提示用户输入提供服务的地址及端口号,以便建立连接。建立连接服务器地址,见图6。
服务器的地址可以写成DNS解析域名,也可写成服务器的IP地址。输入端口号后连接到服务端:
2.用ConnectToTCPServe函数与服务器建立连接。
3.根据面板控件操作,通过TCP/IP端口发送命令,函数switch1callback、switch2callback、daqcallback、wavecallback为面板控件对应的回调函数,当对面板控件进行操作后,程序自动调用相应的回调函数,读取面板控件的状态,并发送命令。
4.当服务器通过TCP/IP端口传回数据时,用ClientTCPRead函数将数据读取到receiveBuf中,并对其进行分析,判断数据内容,并在面板上显示。
5.3 程序运行效果
程序编写调试完毕后,将服务器端程序和客户端程序分别在两台通过网络连接的计算机上运行, 成功的实现了两端程序的连接。操作可靠,数据传输显示正确,基本实现了虚拟仪器远程网络控制的要求。
6 结束语
测控系统的网络化已成为现代测控领域的发展趋势,并将成为科学研究和自动化控制系统的重要组成部分。虚拟仪器远程网络控制系统在设计周期、难度和费用上都大大低于现场测控仪器的设计,因此在LabWindows/CVI环境下利用TCP/IP协议实现虚拟仪器远程网络控制给测控技术的发展注入了活力。
参考文献
[1]张凤均. LabWindows/CVI开发入门和进阶[M].北京航空航天大学出版社,2001.
[2]海泰电子. 虚拟仪器产品与技术.
[3]刘君华. 基于LabWindows/CVI的虚拟仪器设计[M].电子工业出版社,2003.
[2]常永昌. 远程控制软件的设计与实现[J]计算机应用,2003.




