目前, 传统教育体系已经越来越不能适应当今科学技术和信息飞速发展的需要。传统的教育是以教师讲授为主,学生只是被动听讲,这种方式已经不适应培养人才的要求。另外,在实验设施不足的情况下,学生不能直接参与实验过程操作,不能很好地实现实验教学目标。传统的教学方式不利于充分发挥学生的想象力和创造力,也不利于及时追踪到最新的科技信息。随着计算机技术和网络技术的不断发展,近几年在教育领域提出了一种新的教学思路,即构建虚拟实验室的方法。而远程实验教学多数是利用虚拟技术实现,在这种虚拟实验中,实验者操纵的都不是实验设备实物,看到的只是一些利用三维技术做出来的动画,所获得的实验结果当然也不是远程设备的实际反映而是通过公式计算得到的数据[1]。针对这一问题,建立一个可以远程观测和控制实验设备的网络实验系统是一条有效的解决途径。它使实验者通过网络从异地计算机上进行实验操作和观察,所得到的实验结果与在实验室得到的结果完全一致,如同真实操作实验设备一样。
1 系统总体结构
远程控制实验系统的框架结构和实现方法如图1所示,系统以B/S的形式提供服务,用户通过客户端的浏览器登录Web服务器,Web服务器请求数据库进行身份认证后即可进行相应的实验。
从图1所示的体系结构可以清楚地看到,通过LabVIEW调用周立功PCI–5110 CAN 卡的DLL(动态链接库)文件来构建现场总线控制网络,并将控制信号通过CAN总线发送到CAN485MB智能协议转换器,转换后通过RS485接口进入PLC,驱动现场实验装置。
在LabVIEW平台的网络通信技术的支持下,不需要了解任何网络协议就能编写复杂的分布式应用程序,将控制界面及实时的数据信号和现场视频发布给客户端。本系统的特点是,通过对各种网络通信方式进行实验比较,使得远程客户端观看的视频延迟最低,清晰度最佳,实时性最好,从而为客户端提供了充足的视觉反馈。
虚拟实验系统可采用基于C/S和B/S两种网络模型来组建[2-3]。C/S模式适合数据传送量大的情况,而且具有效率高、数据可靠完整、兼容性强等特点。而对于数据传送量不大、需要远程模拟仿真的情况可以采用B/S模式,这样对于客户端的需求会很低,不需在客户端上安装相应的客户端软件,只需要浏览器便可登录服务器对远程测试进行监控。本实验室数据流量相对而言较少,采用的是B/S模式。在实现方法上主要采用LabVIEW的网络服务器Web Server进行网络发布。在客户端使用Remote Panel之前,必须先在服务端运行LabVIEW,并配置Web Server的文件路径和网络设置、客户机访问权限设置、VIs访问权限设置。这些设置不仅起到管理的作用,而且起到安全性的作用。相应的配置如下:
(1)文件路径和网络设置。在Web Server: Configuration中选中Enable Web Server,启用Web Server,并设置服务器所在位置,使其他用户可以通过浏览器查看并控制该VI。
(2)客户机访问权限设置。在Web Server: Browser Access中设置允许或禁止访问的客户机,以及其访问权限,这里允许所有的客户机访问、观看并控制远程面板。
(3)VIs访问权限设置。在Web Server: Visible VIs中设置允许客户访问的VIs,这里运行客户机访问所有的VIs。设置完成后,为了提供网页浏览器访问,必须在配置服务器时利用菜单栏中的Tools—Web Publish Tool进行网页发布。在Web Publish Tool中允许用户选择输入一个VI的名称,并自动生成一个HTML文件,将这个HTML文件保存在Web Server Configuration所指定的根目录中,这个根目录最好与Windows IIS的Internet信息服务中的默认Web站点的主目录相一致。若需要发布的VI中包含了数个SubVI,则只需要创建一个发布最上层VI的网页,其他所有的SubVI的前面板的属性设定为Open During Execution即可。
2 网络通信方式比较
远程实验系统可采用基于C/S和B/S两种网络模型来组建,针对不同的应用场所,LabVIEW提供了多种网络通信方式供用户灵活选择。主要包括共享变量,DSTP协议的DataSocket编程、DSTP协议的DataSocket编程、Web Server、SMTP Email Vis、TCP编程和UDP编程[4]等。
本文就DSTP协议的DataSocket编程、Web Server和TCP编程这3个网络编程方法在构建远程控制实验室时的应用做了具体的研究及比较。
2.1 DSTP协议的DataSocket编程
DataSocket技术是一种面向测控领域的通过网络实时交换数据的编程技术。DataSocket由DataSocket Server与DataSocket APL两部分组成。DataSocket Server负责提供DSTP协议(数据传输协议)和管理底层网络通信,实现与用户程序之间的数据交换,不需要用户编写有关网络通信的底层程序。DataSocket API是用户访问网络数据的接口。DataSocket API访问DSTP对象时就是通过访问DataSocket Server来实现现场数据的高速传输。图2中,首先在DataSocket Server Manager中新建一个类型为image的字符串项,驱动DataSocket Server后,发布者(Publisher)通过DataSocket API向URL位置指定的地址写入数据。客户端编程如图3所示。DataSocket技术能应用于任何编程环境,而且支持多种协议(DSTP、OPC、LOOKOUT、 HTTP、FTP和文件访问),本文就DSTP协议做了详尽的研究。
2.2 Web Server
在前面提到的DataSocket编程虽然可以很方便地用来传输现场数据到远程浏览,但是在远程计算机上也必须编写程序来接收数据。在很多情况下,用户希望能够直接将服务端的VI程序面板“原封不动”地复现在远程客户端上,在远程计算机上进行浏览和操作,而LabVIEW 的Web Server恰好能够实现这一功能。
在远程客户端连接服务端面板之前,需要先配置并启动本地LabVIEW的Web服务器,而后在远程客户端必须安装LabVIEW Run-Time引擎才能通过网页连接服务端VI面板。
配置并启动本地LabVIEW的Web服务器时,首先选择主菜单的“工具|选项|Web服务器:配置”,选择“启用Web服务器”,其他可保持默认。而后在“工具|Web发布工具”选项里即可进行网络发布。在远程客户端网页浏览器里输入如“http://202.200.186.160”形式的网址即可访问服务端,如图4所示。利用Web Server的好处是用户无需任何的编程就能在远程计算机上通过网页连接服务端的VI前面板进行浏览和操作,但相对DataSocket来说传输速率较低,在传输大量数据时有可能造成数据的丢失,故其较适合在数据传送量不大、需要远程模拟仿真的情况。
需要注意的是,要想在客户端连接服务端的摄像头视频,必须先在客户机上安装NI公司的visionrte.exe[4]应用程序,才能接收到完整的视频信息。
2.3 TCP编程
鉴于TCP协议在绝大多数计算机上都有安装,因此其使用也就更为普遍。但是其编程相对于其他的网络编程更加复杂,用户端需要考虑如何建立连接、分配端口号、进行地址转换等。TCP(Transmission Control Protocol)传输控制协议是一个面向连接的协议,允许从一台计算机发出的字节流无差错地发往互联网上的其他计算机。TCP是基于两个网络主机之间的点对点通信,从程序接收数据并将数据处理成字节流,再将字节组合成段,然后TCP对段编号和排序以便传递。在两个TCP主机交换数据之前,必须先相互建立会话。TCP会话通过三向握手的过程进行初始化。这个过程使序号同步,并提供在两个主机之间建立虚拟连接所需的控制信号。一旦初始的三向握手完成,在发送和接收主机之间将按顺序发送和确认段。关闭连接之前,TCP使用类似的握手过程验证两个主机都完成发送和接收全部数据[6]。
TCP通信的两端分别为服务器端和客户端。如图5和图6所示,服务端首先对指定的端口(如9000)监听,客户端向服务端被监听的端口发出请求,服务端接收到来自客户端的请求后便建立客户端与服务端的连接,然后就可以利用该连接进行通信了。
需要注意的是,在构建远程实验室时涉及到视频流的传输,而TCP传输的仅仅是字节流,这就必须将视频流进行解码后按照字节流传输出去,再在客户端通过程序编码将视频复现。
LabVIEW在构建远程控制实验系统时采用的上述各种网络通信方式可以看出,各有优劣。针对远程实验室系统的视频流传输,因其对传输延迟、传输速率等方面要求很高,故建议采用C/S模式即TCP协议或DataSocket协议,而其他的控制指令的发布完全可以采用Web Server。本系统最后实现了多个远程控制实验,调试结果表明用户可以进行实验,并且可以根据用户名保存或者查询历史实验记录。实验验证系统在校园网内具有良好的实时性,能够通过网络为用户提供实时的远程实验服务。