摘 要:以传统的C/S、B/S网络化模型为基础,将功能强大的LabVIEW网络通信技术和运行控制技术相结合,灵活地运用CGI(公共网关接口)技术和VI Server技术,构建了适用于远程网络实验系统的C/S/B(客户端/服务器/浏览器)网络化模型,并运用该模型提出一种适用于通信电子类基础课程的远程实验系统的软件实现方案。
关键词:LabVIEW;C/S/B模型;远程实验;公共网关接口
1引言
随着虚拟仪器技术向网络化方向不断发展,一个基于网络技术的远程虚拟实验室不仅为异地实验和学术交流提供了高效的平台,也给传统的实验教学模式和学生的学习方式带来巨大的变化,同时可以大大提高实验效率,使教师和学生能够集中精力和时间用于实验的执行、数据的分析及结论的总结上,而不必将大量时间花在实验系统设备的搭建上。
结合LabVIEW及其网络开发工具包提出一种适用于远程实验教学的C/S/B网络结构模型,运用串口通信和运行控制技术等软件编程技术,结合数据采集卡、硬件实验板等实现了远程实验系统。?
2LabVIEW强大的网络功能
2.1TCP /IP或UDP协议通信
TCP/IP或UDP协议是目前全球通用的网络协议。IP是网络层协议,实现的是不可靠无连接的数据包服务。TCP和UDP都是建立在IP基础上的传输层协议。TCP是基于可靠连接的协议;U DP是基于不可靠无连接的协议。如果希望得到可靠的数据传输,那么使用TCP是较好的选择。利用LabVIEW的TCP实现网络通信,只是对TCP/IP协议的简单包装,虽然原理比较简单,但是由于涉及底层TCP编程,相对比较复杂。其一般通信方法为:在服务器端,利用T CP Listen监听指定端口的TCP网络连接,连接建立后,利用TCP Write/Read写或读数据,最后用TCP Close Connection关闭连接。
2.2VI Server透明的、多平台的网络访问
通过VI Server,只要在LabVIEW的Option对话框中设置VI Server的访问权限,就可以通过一个调用引用节点(Call by Reference Nodes)方便地运行远程的不同平台上的LabVIEW V I,就像本地VI一样。
2.3Web服务器
Web服务器是虚拟仪器由LAN向WAN扩展的,实现其网络化扩展极具价值的一环。使用LabVI E W的Web服务器,可以方便简单地实现在Web上发布LabVIEW程序;同时,网络上的计算机无需安装LabVIEW,就可以查看以HTML文件发布的Web网页,甚至通过网页控制程序的运行。使虚拟仪器Web化得以实现,借此建立起强大的网络化功能。
2.4G Web Server
G Web Server是NI公司推出的用于远程运行VI的服务器。客户端用<http://server name/directory/vi?parameter_name1=parametervalue1>这样的URL向G Web Server申请调用VI。而G Web Server将该VI调用请求视作是CGI调用,并把后续的参数用CGI方式传递给VI,这样就可以动态改变实验参数,像执行一般的CGI程序一样动态的执行服务器端的G程序。G Web Server是一种类型的HTTP Server,他是可以独立于其他正在运行的单独的VI程序。利用他还可以直接向网页发布虚拟仪器,并生成动态网页,将实验参数返回,同时G Web Server所具有的TCP/IP网络通讯功能为示波器波形在客户端实时显示提供了可能。
G Web Server可以执行以下任务:
(1) 向网页发布虚拟仪器可以在WWW上发布VI程序的静态或动态图像。
(2) 与CGI虚拟仪器一起工作当客户端从浏览器发送VI请求后,能够动态执行CGI VIs。
(3)与CGI animation一起工作可以与由CGI VIs生成的服务器—推进模式一起工作。
(4)与图像映射文件一起工作不需要外部CGI应用程序就能与图像映射文件一起工作。
(5)可以与其他系统集成可以在开发系统上运行G Web Server或集成到可执行程序中。
(6)工作在不同平台上可以在所有平台上运行G Web Server。
(7)执行的安全性可以通过目录VI名称,对访问权限进行限制。
3C/S/B模式的远程实验系统结构
3.1C/S模型
C/S模型,就是网络通信中常用的客户/服务器模型,多用于集散控制系统。这种模型用多个客户终端来采集数据,同时用一个服务器充当数据库的功能;客户端通过通信协议将测试数据写到远端服务器。在这种模型下,系统设计时既要做客户端的虚拟仪器开发和远程发布设计,也要做远程服务器端的数据接收设计。
3.2B/S模型
B/S模型,就是浏览器/服务器模型。主要用于在Web网页上发布数据。通常用户以此扩展虚拟仪器的网络化功能。在这种模型下,用户端只需要安装浏览器,就可以直接通过访问远端地址,实现对远端虚拟仪器运行的监控。由于他的主要工作集中在服务器端的开发上,不必对客户端进行开发和设计,极大地简化了开发和设计难度。
3.3C/S/B模型
以上两种模型虽然能够满足大多情况的要求,但是对于大型集散控制的发布和远程控制,还是存在一些不足。为弥补这种不足,以适应实验系统信息化和网络化的需要,自然出现了C/S/B模型,他是C/S模型和B/S模型的结合和扩展。其原理是:在服务器端控制下,客户端程序测试、采集数据以及传送到服务器端,最后通过服务器端实现Internet发布功能,在远端浏览器上实现对客户端的运行进行显示和监控。
其网络结构如图1所示。
4基于LabVIEW的C/S/B模式远程实验系统结构的实现
远程实验室的开发是建立在labVIEW基础上的。所有设备之间通过GPIB和DAQ卡进行通信。G PIB和DAQ卡用来连接labVIEW和示波器、信号发生器和硬件电路等,还必须采用Interne t传输工具开发用于系统和用户通信的软件。
4.1系统硬件结构
网络是客户机和网络服务器交换信息的通道,网络浏览器为运行必要的脚本程序提供平台,摄像头被连通并把硬件设备环境上传到因特网上,多功能数据采集卡用来控制和采集实验数据。其硬件结构如图2所示。
4.2系统软件结构
软件结构由远程浏览器(Netscape)、Web服务器和设备服务器(虚拟仪器客户端)组成。Web服务器是核心,通过Web服务器,用户可以访问站点,控制实验过程、处理实验数据并获得实验结果。设备服务器主要完成数据采集并传送到Web服务器端处理。其软件结构如图3所示。
4.3实验数据的交互过程
网络控制通过NI公司的LabVIEW网络开发工具包(Internet Developer Toolkit)来完成。TCP/IP通信由虚拟仪器开发软件LabVIEW完成。公共网关接口(CGI)和传输控制协议(TCP)用于客户机和网络服务器之间的通信。CGI程序的编写与网页HTML相联系,HTML是通过因特网传送数据的一种通用表单语言。其交互过程如图4所示。
各子程序的功能如下:
(1) run cgi.vi用于启动remote ctl.vi和tcp client.vi子程序。
(2)ctl cgi.vi用来控制测试点选择和输入信号的选择。
(3)remote ctl.vi通过调用引用节点(call by reference nodes)远程控制设备服务 器中的程序tcp server.vi。
(4)tcp client.vi通过建立起的TCP连接接收由设备服务器的tcp server.vi采集的数 据。
(5)tcp server.vi启动data acq.vi并将数据通过TCP连接传送到网络服务器端。
(6)data acq.vi通过数据采集设备从硬件电路采集数据。远程用户通过浏览器进入远程虚拟电子实验室系统网站的登录页面。开始实验操作时,Web服务器接收到来自客户端的有效CGI请求后, 该服务器上的G Web Server运行run cgi.vi,一方面启动remote ctl.vi, remote ctl.vi根据从表单中获取的实验参数调用tcp server. vi进而启动数据采集程序data acq.vi,通过数据采集设备从硬件电路采集数据并传送到网络服务器端;另一方面run cgi.vi启动网络服务器上的tcp client.vi,接收tcp server.v i传送的数据,以CGI响应的方式刷新客户端显示,完成整个实验的操作过程。
4结语
基于LabVIEW的C/S/B结构的远程实验系统运用功能强大的LabVIEW虚拟仪器技术,将传统的B/S结构和C/S结构相结合,构建了适用于远程网络实验系统的C/S/B网络化模型,本研究提出的网络化实现提供了一个具有借鉴意义的参考方法。通过对这一实现方法的扩展和深化,对通信电子类基础课程的远程实验系统也有很好的借鉴价值。
参考文献
[1]Chen K W E,Chan C L, Cheung N C,et al.Virtual Laboratory Development for Teaching Power Electronics.IEEE 2002
[2]Chen S H,Chen R,Ramakrishnan V,et al?Development of Remote Laboratory Experimentation Through Internet? Proce eding of the 1999 Hong kong Symposion on robotics and control,Hong Kong,1999
[3]秦学华,刘亚斌.基于LabVIEW的虚拟仪器网络化实现[J].测控技术,2004,(2):7172