摘要:针对现有远程监控系统设计方案存在的不足,论文结合嵌入式 web技术和 Applet技术提出了一套通用的远程 B/S模式监控系统实施方案。首先,论文分析了系统的体系结构和工作流程;然后详细介绍了嵌入式 web服务器层中的协议转换和参数信息存储模块的具体实现方法;昀后阐述了嵌入式环境下利用 Java Applet技术开发远程监控网页的优势,介绍了监控网页的具体实现过程和发布步骤。
引言
构建远程监控系统能够有效地解决因监控设备分散而引起的集中管理困难的问题。目前设计远程监控系统主要采取以下方案 [1-3]。
(1)将嵌入 TCP/IP协议的单片微处理器提升为具有采集、存储、网络通信等功能于一体的嵌入式 web服务器,然后在此基础上开发远程监控系统,这种方案具有涉及硬件少、开发成本低等优点,但是开发过程复杂,后期功能扩展、升级困难。
(2)采用基于 PC机+网卡+采集卡的模式构建远程监控系统,这种方法开发成本高、在远距离、多点监控系统中实现困难。
(3)将 PC机作为整个远程控制系统中连接数据采集网络和远程监控上层网络的中间层,由它负责设备状态参数的接收和网络转发。在此基础上可构建 C/S或 B/S两种模式的远程控制系统。这种方案具有开发工具成熟、开发周期短等优点,但是存在开发成本高,系统稳定性和可靠性差等问题。另外采用 C/S模式,远程监控端一般通过 socket套接口方式和 PC主控制器通信。这种开发模式,每个远程 PC机需要安装特定终端监控软件,后期维护工作量较大。
(4)用嵌入式 web服务器替代第 3种方法中的 PC机,实现 B/S模式的远程设备状态监控。这种方案具有开发成本低、后期维护升级方便、系统稳定性、可靠性高等优点,是现有远程控制实现方案中较优的一种。但目前针对这一方案开展的研究工作存在几点不足:首先,给出的整体控制方案结合某一具体应用太紧密,没有从共性点出发探讨嵌入式远程 B/S监控系统的体系结构以及需解决的问题;其次,主要采用 CGI编程实现了参数信息在浏览器端的表格形式显示,但在复杂工业现场监控画面展示、参数动态曲线显示等方面明显存在不足;昀后,对设备状态参数的存储也考虑较少。
本文针对以上问题,探讨了基于嵌入式web和 Java Applet技术构建远程 B/S监控系统的通用设计框架,并对实现所涉及到的问题进行了介绍。
体系结构及工作流程
嵌入式远程 B/S模式监控系统划分为三个层次:现场数据采集层、嵌入式 web服务器层和远程参数监控层。现场数据采集层是整个远程监控系统的基础,负责采集各种参数(如温度、湿度、流量等),并通过不同总线将其传给嵌入式 web服务器。远程参数监控层即远程任意联网的 PC机,它处于系统昀上层。嵌入式 web服务器位于现场数据采集层和远程参数监控层之间,是整个系统的节点。它一方面和底层的各种采集装置通信,完成参数信息的接收、处理、存储任务;另一方面与远程客户 PC机通信,并按照 TCP/IP协议格式与客户端 Applet程序进行数据交互 [3]。具体的体系结构如图 1所示。
该系统的工作流程:1)底层采集设备将各种参数按照不同的总线标准 (如 RS232/485总线)传输到嵌入式 web服务器。2)嵌入式 web服务器的参数接收模块以轮询方式定时接收和解析以不同现场总线传送上来的参数信息,并根据系统需求调用存储模块加以存储。3)用户在浏览器访问内嵌 Applet的监控网页。4)该 Applet从嵌入式服务器端到客户浏览器端。5)浏览器端 Applet向参数转发服务模块发送数据访问请求。6)参数转发服务模块根据用户请求将参数信息反馈给浏览器端Applet。7)Applet基于获取的参数信息进行动态监控画面的显示。
关键技术
嵌入式 web服务器是整个远程监控系统的节点,限于篇幅本文只重点探讨嵌入式web服务器层实现过程中涉及到的一些关键技术。
3.1 协议转换
嵌入式 web服务器在整个远程监控系统中扮演协议转换器的角色,它将不同的参数协议包格式统一转换成 TCP/IP协议包格式,为在 WWW平台上实现所有参数信息的统一呈现提供了可能。
本系统中协议转换功能主要通过参数接收进程和参数转发服务进程共同协助完成[4]。参数接收进程主要负责和底层采集设备建立连接。该进程首先读取系统配置文件,并获取各采集点的采集周期、传输协议格式等配置信息;然后根据配置信息创建多个线程分别接收、解析和处理底层各采集装置上传的参数协议包,昀后将参数信息写入共享内存区域即可。参数信息的存储则由存取进程具体完成。参数转发服务进程作为以太网通信中的服务端,主要负责与上层监控程序 Applet进行数据交互。该进程在特定端口*到远程监控客户端的访问请求后,首先创建专门的线程与之建立连接,然后各线程通过访问共享内存区域或嵌入式数据库获取用户所需的参数信息,并以 TCP/IP协议格式转发给对应的远程客户端。这两个进程同步、并行执行,有效保证了系统的实时性要求。
3.2 环境参数信息的两级存储
嵌入式远程监控系统的参数存储可采用以下几种方案[5,6]:1)沿用传统监控系统存储方案,增设一个工业级数据库服务器来专门负责参数信息的存储和管理。该方法虽然可以采用大型关系型数据库方便地实现数据的海量存储,但由于数据库采用引擎驱动,嵌入式 web服务器和远端数据库服务器之间频繁的数据交互会影响系统的实时响应能力;另外,如果信息采集点较多、采集周期短,缓慢而频繁的远程数据库读写操作也会使实时数据因为写失败而丢失,影响系统的正常运行。2)以文件系统形式存储参数信息,这种方式存储效率低、安全性不高。3)采用嵌入式数据库对数据进行存储和管理。嵌入式数据库体积小,能在资源受限的嵌入式环境使用;另外它是程序驱动式,用户请求和数据服务在同一个进程内进行,避免了进程间通信造成的额外消耗。但是当数据采集层的采集频率高时,嵌入式数据库中的数据会急剧膨胀,如果不对数据做转存处理,数据库的存取性能将逐渐下降。
结合第1、3种方法,本文提出了参数信息两级存储方案。存储实施策略:接收进程将采集装置传送的协议数据解析后首先存放到共享内存区,然后在特定条件下(如共享内存区存储容量达到阀值,存储周期到等)启动存储进程,并由其将内存区中的数据批量存储到嵌入式 web服务器的内部数据库。存储实施前,应该根据采集点数、采集周期、采集数据类型等信息大致估算常用信息的存储容量,并在此基础上适当扩展嵌入式系统存储器,移植合适的嵌入式数据库。另外,可考虑将参数信息按照采集地点或采集时间分别存储在数据库不同的参数信息表中,这样可以减少因读写冲突引起的存取延迟,保证系统的实时响应能力。二级归档存储实施策略:首先在归档条件符合的情况下,将需要归档的信息从嵌入式数据库中导出到预定义的缓存区内;然后启动归档进程并通过 FTP将数据上传给远程数据库服务器。归档存储的存储模式有手动归档、定时归档、条件归档等。
3.3 动态监控网页开发技术
CGI技术是目前嵌入式环境下开发动态 web的主要技术之一,通过 CGI编程能方便地实现浏览器与嵌入式 web服务器之间的动态数据交互。但是,它在数据的图形化展示方面的能力不强,开发较为复杂的监控页面难度较大。
Java是具有稳定、安全、跨平台、可移植等诸多优点的面向对象程序设计语言。Java程序分为两类即Java Application和Java Applet,其中应用在www上的Java Applet程序为非独立运行程序,要嵌入在web页面并由客户端Web浏览器内部的Java虚拟机解释执行 [7]。嵌入式开发环境下,建议使用Applet技术开发上层动态监控页面,该方法具有如下优点:
1) Java提供的Swing(用户界面组件)、多线程、事件处理机制等技术,能帮助开发人员方便、快捷地设计出具有交互性强、界面友好等特点的动态web页面。
2)Java Applet只和web服务器进行数据交互,数据的图形化展示则是在客户端完成。与CGI在服务器端生成图形文件,然后将图形文件传至客户端浏览器这种方式相比,采用Java Applet可减轻服务器负担,减少网络流量。
3)Java语言具有平台独立性,而这一特性是实现跨平台数据网络发布所必须的。 Java Applet监控程序主要完成两个任务:1)与参数转发服务进程进行动态数据交互;
2)利用Swing(用户界面组件)、事件处理机制等技术进行动态数据的图形化呈现。一般来说这两个任务需要并行执行,因此在实现过程中会采用Java线程技术将它们分别作为Applet线程同步执行,并利用Java提供的内建机制解决两个线程共同访问共享资源时出现的相互冲突问题。另外为了防止控制界面动态刷新时出现闪烁现象,动态数据的图形化显示可采用“双缓冲”技术,即先在内存中把待显示的图形绘制好,然后,性地将内存中的图形覆盖到屏幕显示区。由于内存访问的速度非常快,人眼基本感觉不到,从而可克服屏幕闪烁现象[7]。
在嵌入式环境下,发布内嵌 Applet的动态监控网页可采取以下步骤:1)根据监控需求在宿主机上开发 Java Applet动态监控程序;2)设计 HTML监控页面并通过<Applet></Applet>标签对将 Applet程序嵌入其中;3)将 HTML网页和Applet编译后生成的字节码文件一起到目标机(即本系统的嵌入式 web服务器)的虚拟目录下;4)当用户通过浏览器访问该监控网页时,内嵌在该网页的 Java Applet字节码文件就会从嵌入式 web服务端到客户端并由浏览器端的 Java虚拟机解释执行。
4 结束语
本文探讨的远程监控系统以嵌入式 web服务器作为节点,将现场数据采集层上传的多种总线协议数据格式转换成 TCP/IP格式并在Internet上进行了统一呈现,实现了参数采集底层网络与上层监控网络的无缝链接。
创新点:1)给出了一套通用、可行的远程 B/S模式监控系统实施方案,对相关工程技术人员结合自己实际的工程需求,开发特定领域的远程监控系统具有一定的指导和借鉴意义。
2)提出了在嵌入式环境下采用 Applet技术开发上层动态监控页面的新思路,较好地解决了监控系统参数数据在浏览器端的实时刷新和动态图形描绘问题。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。