陈思蕊, 袁三男, 李文龙, 王渝鑫
(上海电力大学 电子与信息工程学院, 上海 200090)
近年来,随着电力机房规模的扩大和复杂性的增加,对电力机房的实时监控与管理提出了更高要求。国内的相关研究多以ARM芯片、Modbus协议实现电力机房监控[1],国外多关注基于云计算和物联网的技术[2],如Zigbee和Z-Wave[3]。gSOAP是一种能够把C/C++语言接口转换为基于简单对象访问协议(Simple Object Access Protocol,SOAP)的Web Service(网络服务)工具。使用gSOAP作为电力机房动环监控系统的框架,可以实现分布式架构支持、实时数据传输和处理,使其具有更强的安全性、灵活的扩展性,以及跨平台兼容性等特点。这些创新点有助于提高电力机房监控系统的性能、可靠性和安全性,提供更好的监控和管理能力,对电力机房环境监控领域具有重要意义。本文通过充分利用嵌入式平台和gSOAP技术,设计了高效稳定的电力机房动环监控系统,提升了安全性、稳定性与管理效率。
本文提出的基于嵌入式平台和gSOAP技术的电力机房动环监控系统,可实时监测温度、湿度、电压、电流等参数,支持远程控制和设备管理,提供实时与历史数据展示。其采用i.MX6ULL硬件平台,使用gSOAP框架作为底层通信协议,通过RS485与其他设备联动。系统还包括告警通知、本地图像存储和远程视频监控功能。
集中监控中心(Supervision Center,SC)是面向多现场监控单元(Field Supervision Unit,FSU)管理的高级监控层次,即集团监控平台。其通过B接口连接全国的FSU[4]。FSU是由若干监控模块和其他辅助设备组成,面向设备数据采集、处理的监控层次,具有采样、数据处理、数据中继等功能。FSU与SC之间通过Web Service和文件传输协议(File Transfer Protocol,FTP)的方式互联,消息协议为扩展标记语言(eXtensible Markup Language,XML)格式,二者形成B接口协议的协议标准。接口网络结构如图1所示。
图1 接口网络结构
A接口协议指FSU与被监控的传感器设备、电力设备、视频设备等之间的连接。监控点指被监控设备上的某个特定信号。
电力机房监控系统启动时,首先进行参数初始化,判断系统是首次启动还是运行后启动。若是首次启动,系统将读取出厂配置文件进行参数配置;若是运行后启动,则会恢复上次已配置的参数[5]。其次进行网络配置,包括无线模块操作、网络拨号和虚拟专用网络(Virtual Private Network,VPN)设置等。然后根据软件部署和模块划分,创建4个线程:A接口设备接入和设备数据采集解析线程;B接口客户端线程;B接口服务器端线程;运维配置线程。整个软件设计采用模块化结构,单个模块的异常不会影响其他模块的工作,数据与程序完全分离[6],各模块之间的交互主要通过数据库实现。
Web界面采用嵌入式Web服务器GoAhead WebServer、动态服务器页面(Active Server Pages,ASP)、JavaScript、CSS等技术方式[7-10]。运维配置采用前后端分离技术。其中:前端采用HTML+CSS+JavaScript技术来构造Web界面,并增加相应的事件触发按钮,通过AJAX技术将功能请求与相应的接口绑定;后端采用GoAhead框架编写接口函数,响应前端请求后,将数据以JSON格式返回前端。
A接口首先通过加载厂家提供的协议库对设备资源进行初始化,包括FSU硬件资源信息、软件资源信息和串口资源信息。该接口支持设备协议的动态管理,包括动态加载和卸载协议库,并能及时加载更新的协议库资源。A接口可以通过写串口数据的方式,将控制命令发送到设备的硬件接口,实现对设备的控制,如开关操作、参数配置等。
2.3.1 B接口实现方式
B接口基于Web Service技术,采用超文本传输协议(Hyper Text Transfer Protocol,HTTP)+SOAP+XML的方式。其具体实现方式如下。
(1) 网络服务描述语言定义 网络服务描述语言(Web Services Description Language,WSDL)是一种基于XML的规范,描述了接口的数据类型、操作和消息格式。使用WSDL来定义系统B接口的结构和操作。
(2) SOAP消息格式 SOAP消息包含请求和响应的数据以及相关的标头信息,如操作名称、命名空间等。使用XML构建符合SOAP协议的消息格式。
(3) HTTP传输方式 使用HTTP作为底层的传输协议。在发起接口请求时,将SOAP消息封装在HTTP请求体中,并通过Post方法发送给响应方的接口统一资源定位符(Uniform Resource Locator,URL)。响应方接收到请求后,返回的响应消息也通过HTTP进行传输。
(4) XML编解码 在SOAP消息中使用XML来编码和解码接口数据,使用XML的结构和标签来描述接口请求和响应的数据结构和内容。
(5) SOAP协议交互 根据WSDL定义的接口操作,将请求消息发送到接受的接口URL,并等待响应方的响应。响应方收到请求后,根据SOAP消息中的操作类型和参数进行相应的处理,并将响应数据封装到SOAP消息中返回给请求方。
(6) 消息协议 采用XML格式进行数据交换,XML报文格式如表1所示,根据报文类型区分数据传输类型,并实现相应功能。
表1 XML报文格式
2.3.2 B接口上gSOAP技术的应用
(1) 通过使用gSOAP技术,可以实现监控系统的分布式架构。gSOAP支持客户端和服务器端之间的双向通信,可以实现监控系统的分布式部署,将监控任务分散在多个节点上,提高系统的可靠性和可扩展性。
(2) gSOAP具有高效的数据传输和处理能力,可以实现监控数据的实时传输和处理。通过gSOAP的异步通信机制和高并发处理能力,可以减少数据传输的延迟,有效地实现动态监控和实时预警。
(3) gSOAP提供了多种安全机制,如安全套接层/安全传输层(SSL/TLS)协议、SOAP消息加密和数字签名等,可以增强监控系统的安全性[11]。通过对数据的加密和身份验证,可以保护敏感数据不被非法篡改和访问,提高系统的安全性和信任度。
(4) gSOAP支持自定义的数据类型和接口描述语言,可以根据监控系统的特定需求进行灵活地扩展。开发人员可以基于gSOAP进行定制开发,以满足不同的功能和接口要求,提供更加个性化和定制化的解决方案。
(5) gSOAP是一个跨平台的框架,可以在不同的操作系统和硬件平台上运行[12]。这使得电力机房监控系统可以在不同的环境中使用和部署,实现系统的灵活性和可移植性。
2.3.3 B接口工作流程
FSU客户端能够建立安全可靠的连接,与SC进行数据交换,并在需要时灵活地建立或关闭连接,有效地促进了数据的传输效率和安全性。FSU与SC建立连接过程如图2所示。
图2 FSU和SC建立连接过程
具体的工作流程如下。
步骤1 FSU客户端先进行4G/3G拨号上网,成功后建立Internet协议安全性/第二层隧道协议(IPSec/L2TP)隧道连接,并获取内网IP[13]。
步骤2 IPSec/L2TP隧道连接成功后,FSU向SC传送注册(login,login_ack)报文,报文需携带用户名、内网IP,以及FSU所外接的设备ID等,需由SC端进行验证。这种方式确保了数据的安全传输。
步骤3 登录成功后,B接口协议利用该连接进行通信。
步骤4 若连接中断,需要重新进行上述连接和注册过程,以确保持续的网络通信。
步骤5 当在此IPSec/L2TP隧道连接上成功传送登出(logout,logout_ack)报文时,FSU客户端可拆除建立的IPSec/L2TP隧道,断开传输控制协议(Transmission Control Protocol,TCP)连接,保证安全关闭。
FSU与SC成功建立连接后,作为客户端向SC平台注册机发送注册指令进行注册。SC作为服务器端,由SC平台注册机统一分配采集机,并通知采集机,向采集机下发FSU的注册信息,进行系统注册。SC返回注册成功信息并将分配的采集机IP反馈给FSU。注册成功后,B接口利用该连接进行通信。FSU会持续检查外接设备数据库是否有监控点的告警信息,如果有,则向采集机上报。FSU客户端的工作流程如图3所示。
图3 FSU客户端的工作流程
当SC端请求读取、写入或者删除某个设备信息时,SC首先会向FSU发送一个查询请求,此时SC作为客户端,FSU作为服务器端。FSU需时刻查询是否有SC的请求信息,若有则需解析SC发送的请求信息,打开数据库,读取请求设备数据并配置参数,操作成功后向SC发送答复报文。FSU服务器端的工作流程如图4所示。
图4 FSU服务器端的工作流程
FSU具备双向通信功能,其流程如图5所示。FSU的双向通信功能有效地解决了大规模设备网络化管理中的通信难题,提升了通信效率和系统的稳定性。通过这一功能,FSU可以灵活地管理和控制数据传输,主动响应SC的请求并上报设备事件数据。当FSU作为服务器端时,能够与SC建立连接,并接收SC轮询获取的慢数据请求,包括实时请求数据、设备控制请求。这些请求涵盖了温度、湿度、电压、电流、电量、频率、开关状态等数据,并能够及时返回给SC。此外,FSU还提供文件传输协议(File Transfer Protocol,FTP)接口,为SC提供视频图像文件的传输功能。当FSU充当客户端时,它能够主动向SC发起设备事件数据的上报,包括配置信息、实时数据、历史数据、实时报警、历史报警、控制结果,实现设备状态信息的实时更新。
图5 FSU双向通信功能流程
2.3.4 XML报文的生成与解析
MiniXML是一个小型的C语言开源库,旨在解析和生成XML文件,也是一种轻量级的XML解析器。该解析器最大的特点是小巧、独立,无需其他库的支持,只需要使用GCC(GNU Compiler Collection,GNU编译器套件)编译器和make程序即可编译。
使用MiniXML库创建XML文档的流程如下:
步骤1 定义要生成的报文结构和内容;
步骤2 创建一个空的MiniXML文档对象;
步骤3 逐级创建XML元素,通过调用MiniXML提供的方法,将元素添加到文档对象中,使用元素的名称、属性和文本内容等定义元素的特性[14-15];
步骤4 如果报文中需要包含子元素,可以在父元素中重复步骤3,将子元素添加到父元素中;
步骤5 完成报文的创建后,将MiniXML文档对象转化为字符串或写入文件,生成最终的报文。
使用MiniXML库解析XML文档的流程如下:
步骤1 获取要解析的报文,可以从文件中读取或者从字符串中获取;
步骤2 创建一个空的MiniXML文档对象;
步骤3 将要解析的报文加载到文档对象中;
步骤4 通过遍历文档对象的元素和属性,逐级提取报文中的内容,并进行相应的处理和存储;
步骤5 如果报文中存在子元素,可以递归地解析子元素,重复步骤4,直至完成报文的解析。
经过测试,在动环监控系统中,FSU与SC成功进行了通信,报文数据如图6所示。SC监控中心实时性能查询界面如图7所示。其可实时观察到电力机房监控点的状态。
图6 报文数据
图7 SC监控中心实时性能查询界面
B接口协议具有高效的数据传输能力和稳定的连接性,有助于实时监控并传输大量的监测数据。分析该动环监控系统的测试结果,得到系统具有以下特点。
(1) 双向通信实现更快速、高效地数据传输,使得监控系统的数据可以实时共享和交互。图6(a)所示的FSU客户端在上报告警信息的同时,也能接收图6(b)所示SC客户端轮询获取的慢数据请求。这样,就可以将机房的动态和变化快速反馈给相关的监控系统和用户,帮助其做出更准确和及时的决策。
(2) 进一步拓展与其他系统的数据集成能力。通过与能源管理系统、机房设备管理系统等内部系统的数据交互,可以实现更全面和综合的机房监控和管理。同时,与外部系统的数据对接,扩大了电力机房的服务范围和应用场景。
(3) 注重数据传输的安全性和隐私保护。通过加密、身份验证等安全机制,确保数据传输的机密性和合法性。同时,合规地管理和保护用户的个人信息和敏感数据,防止数据泄露和滥用。
(4) 可以结合自动化和智能化技术,实现监控系统的自动报警、异常探测、故障诊断等功能。通过数据的分析和学习,提供预测性维护和优化调整的支持,也为电力机房的运行和维护提供更智能和高效的方法。
本文设计的系统具有几个关键优势。首先,嵌入式平台具有高性能和低功耗的特性,为监控系统提供稳定可靠的硬件基础。其次,gSOAP技术的运用保证了系统之间的高效通信和数据交换,从而提高了监控系统的性能和可靠性。最后,系统提供了多种扩展功能,如告警通知、本地图像存储和远程视频监控等,使得用户可以全面掌控电力机房的运行状态,提高了管理效率和精确度。综上所述,基于嵌入式平台和gSOAP技术的电力机房动环监控系统设计是一种高效稳定的解决方案,通过整合硬件平台、通信协议和功能扩展,提高了机房的安全性和稳定性,以及工作人员的管理效率和精确度,能够有效满足电力机房环境监控与管理的需求。