摘 要:近年来,一方面网络技术的快速发展使得基于Internet远程监控成为了可能; 反过来,它对供电系统又提出了更高的要求。本文结合工程实际
, 介绍了一种基于嵌入式 WEB通信电源的远程监控系统的研究与实现。
关键词:远程监控; 客户/服务器; 通信电源
概述
随着IT技术的发展, 带动了各行各业, 局域网、广域网和互连网的普遍实施, 多数单位有了自己的网站, 各系统也建立了自己的网络。因此,
对系统的可靠性要求也提高了。
传统的UPS电源往往是等到机器出现了故障, 不能正常供电, 才由值班人员去查找故障所在, 这样势必耗费很多宝贵的时间, 而且很多场合也是不允许的。随着微处理器CPU和监控软件的引入,
大大增加了UPS的自检功能。 多数UPS都配备了自己的监控软件, 当UPS故障时, 监控软件就可以通过面板上的液晶显示屏, 将故障的部位或器件显示出来,
大大节省了时间。
随着网络技术的普及, 用户又向UPS提出了更高的要求:UPS应具有无人值守功能, 并且不但具有自检功能, 还应具有联网功能, 即,
不但在网上可以随时观察UPS的各项运行参数, 而且在市电或UPS故障时, 可以向服务器、 工作站等发出信息, 同时也可以打电话、
发传真或寻呼等手段通知值班人员。反过来, 网络技术以及信息技术的发展为UPS通信电源的网络化监控提供了可能, 而建立在WEB上的纳入工厂整体信息化的远程监控系统,
才是未来发展的方向。
以数据库为中心的监控方案
传统的监控方法基本上都是以数据库为中心的解决方案,其中的控制网络可以是各种现场总线,也可以是其它工业控制网络,各个控制节点通过它进行通讯,监控机通过发射电台对电源运行状况进行监测,收集现场信息,经处理后传送给实时数据库服务器;Web服务器根据客户端浏览器发来的HTTP请求,通过服务器扩展模块,从实时数据库中获取数据,然后传回给客户端浏览器进行显示。可以看出,整个过程都是围绕着实时数据库服务器展开的。这种方法在实际应用中存在许多不足。例如,相对于监测功能,控制功能的实现比较困难,编程上难度较大,特别是安全性方面如认证、加密。为解决实时性问题,一般采用轮询方式,由客户浏览器定时刷新网页,而这会导致效率低下,有些系统也采用事件触发方式,利用数据库服务器的触发器功能主动推(push)数据,但它一般要求Web服务器与数据库服务器位于同一台机器上,不便于系统扩展;
数据库服务器是整个系统的核心,需处理Web服务器与监控机的请求,工作负载很重,有可能成为系统性能瓶颈。这些不足之处随着应用模型的扩大显得越来越明显,需要新的解决方案。
WEB监控系统
基于Web的电源远程监控系统,一般可分为3个子系统: 即现场监测与控制子系统;数据存储与转发子系统; 客户端接收与命令发送子系统。现场子系统负责采集各个现场控制节点的运行状况数据,然后传递给中间层子系统;中间层子系统是一个中介系统,由工控机、Web服务器和实时数据库服务器组成。工控机通过电台发射信号向现场采集数据,Web服务器通过服务器扩展技术如CGI、
ISAPI等完成与客户子系统以及现场子系统的交互;客户子系统是用户直接与之交互的部分,它接收用户的输入,从中间层子系统获取监测数据或向其发送控制命令。
现场信号采集模块选用研华ADAN4017。 研华系列的数据采集模块是一套内置微处理器的智能传感器对计算机接口模块,它们可以通过一套简单的ASCII格式的命令来控制并可以以RS485通信协议传输数据,它有信号滤波A/D、
D/A转换、数据比较以及数字通信功能。模块上没有设置开关来配置参数和定标矫正,只能接受来自主机的命令,来改变模拟量输入范围、热电偶或热电阻输入。所有模块的配置参数包括I/O地址、通信速率、奇偶校验,校验和高低报警均可以远程设置。另外看门狗定时器的超强功能可以使系统运行失败时重新启动模块。
因为RS-486网络具有低噪读传感器方式,所以模块可以放置在靠近噪声源的地方利用ADAM的RS-485接收模块,最多可以连接256个数据采集模块到一个RS-485多点网络上。主机通过RS-232/RS-485转化模块经串口连到485网络上。
基于应用服务器的WEB远程监控系统的工作原理(见图1)。
图1(略)
该系统中,工控机的功能与前面描述所不同的是它不但与实时数据库服务器进行通信,而且还通过套接字Socket与应用服务器通信,即它将采集到的数据传给数据库服务器的同时还接收来自应用服务器发出的控制命令。当用户访问系统时,通过浏览器向Web服务器发出HTTP请求,然后ActiveX控件随同HTML文件下载到客户端并由浏览器解释执行,ActiveX控件与应用服务器建立Socket连接,用户进行监控操作只要通过ActiveX控件的界面就可以进行了。
Socket编程
应用程序之间的数据交换是数据通信的重要问题,在TCP/IP网络环境下的应用程序是通过网络编程界面Socket实现的。 Socket通常又称为网络套接字,利用Socket进行通信有两种方式:
第一种是流方式,也称为面向连接的方式。在这种方式下,每一次完整的数据传输都要经过建立连接、使用连接、终止连接的过程。在数据传输过程中,各数据分组不携带目的地址而且内容相同。TCP协议采用的就是这种方式。第二种是数据报方式,又称为无连接方式。在这种方式下,每个分组都携带完整的目的地址,各分组在系统中独立传送。无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性UDP协议提供无连接的数据报服务(见图2)。
图2 应用程序与Socket关系(略)
使用Socket进行网络通信程序设计和其它客户机/服务器模式通信应用程序设计过程一样,客户机程序(进程)发送请求给服务器(进程),服务器进程对客户机的请求作出响应,并产生结果。
客户/服务器模式在操作过程中采取的是主动请求方式,首先服务器方要先启动,并根据请求提供相应服务。
服务器方
1.打开一通信通道并告知本地主机,它愿意在某一公认地址上接收客户请求;
2. 等待客户请求到达该端口;
3. 接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一新进程来处理这个客户请求。新进程处理此客户请求,并不需要对其它请求作出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。
4. 返回第二步,等待另一客户请求;
5.关闭服务器。
客户方
1.打开一通信通道,并连接到服务器所在主机的特定端口;
2.向服务器发送服务请求报文,等待并接收应答;继续提出请求;
3.请求结束后关闭通信通道并终止。
从上面所描述过程可知:
1.客户与服务器进程的作用是非对称的,因此编码不同。
2.服务进程一般是先于客户请求而启动的。只要系统运行,该服务进程一直存在,直到正常或强迫终止。面向连接的基于Socket的客户机/服务器结构应用程序的基本流程如图3所示。
图3 (略)
微软公司联合其他软硬件厂商开发了Windows下的网络接口-Windows Socket,这样开发人员就可以在Windows下方便的编写基于图形界面的网络程序。在使用VC进行开发时,可以利用MFC提供的CAsyncSocket类和CSocket类,它们都封装了Windows
Socket API。 CAsyncSocket类几乎是一一对应地封装了Windows Socket API,该类使得我们可以使用面向对象的方式进行Socket编程,而且可以非常方便地调用其它MFC对象,CSocket类则提供了一个较高级的Socket支持,它运用了MFC的序列化类来提供和传输Socket对象,使用这两个不同的类进行开发,各有优缺点。在灵活性方面,CAsyncSocket类接近于直接调用Windows
Socket API,灵活性较大。而CSocket类要求通信的两个程序必须能同时识别MFC序列化协议,灵活性较小。在开发的复杂程度方面,CAsyncSocket类需要开发者处理各种数据类型,比较复杂。CSocket类则在MFC的序列化类的基础上不需要开发者处理各种数据类型,所以比较简单。最后在系统资源消耗方面,CAsyncSocket类不需要为每个连接建立各自的连接线程,系统资源消耗的少。而CSocket类则需要为每个连接建立各自的连接线程,连接数目多时系统资源消耗较多。
当服务器端与客户端建立起通信时,客户端就可以动态地获得服务器端传送过来的各种信息,而它也可以发送各种控制指令给应用服务器,使之作出相应的处理。最后,由于监控机上运行的监控软件会以日志的方式不断的写入数据库,因此,监控人员有也可以通过网络服务器读取数据库的数据来获得监控软件的运行状况信息。
安全性问题
在客户端中,可以对操作对象设置访问权限,同时给操作者分配访问优先级和安全区,当操作者的优先级小于对象的访问优先级或不在对象的访问安全区内时,该对象为不可访问,即要访问一个有优先级设置的对象,要求先具有访问优先级,而且操作者的操作安全区须在对象的安全区内时,方能访问。操作者的操作优先级级别从0-999,每个操作者和对象的操作优先级级别只有一个。系统安全区共有64个,用户在进行配置时,每个用户可选择除"无"以外的多个安全区,即一个用户可有多个安全区权限,每个对象也可有多个安全区权限。除"无"以外的安全区名称可由用户按照自己的需要进行修改,以此来保障系统的安全运行。在软件运行过程中,优先级大于900的用户还可以配置其他操作者,为他们设置用户名、口令、访问优先级和安全区。只要用户定义了一记录报警和事件文件,在运行时,用户的登录、注销和对变量的操作等事件都记录在报警事件文件中。
结论
现实生活中的一切电子设备离开了电源就无从谈正常工作,尤其在信息化高速发展的今天, 停电所带来的经济损失是无法估量的。 因此,
研究如何提供稳定可靠的电源, 是很有经济和现实意义的。
|