熊 曙,王 华,罗 路
(中国葛洲坝集团装备工业有限公司,武汉 430000)
发电机组智能化云服务平台是建立在物联网技术上的一种新型智能装备在线管理应用,它可以在手机或电脑等终端设备上实现远程监测和控制、健康监测、故障预防、运行数据记录等功能,达到产品设备从出厂组装、安装调试、运行监控、服务运维的全过程信息化的目的,实现装备的全生命周期维护和管理。
可编程的数据采集终端实时采集装备运行数据,采集传输周期最快可达1秒/次。数据采集终端通过2G/4G/WIFI/LAN网络将数据传输至云服务器,供用户在WEB端、APP端和大屏上查看运行数据及下发控制指令。同时,数据采集终端中可自定义故障报警限值,实现故障信息的识别和信息推送[1]。数据上传至云服务器后,通过系统的统计计算功能,对设备的运行数据进行实时分析计算,得出其健康指数、耗油量、发电量、能耗比等性能指标。系统中的运行维护模块可根据机组的运行数据自动生成维护信息并发出提醒,可实现发电机组的故障预测。为了满足其他能源装备接入及个性化需求,本系统在保障安全、稳定运行的前提下,开放了硬件接口和数据接口,使其具备多能源系统接入、用户个性化定制和公司内数据共享的基础。
云平台的架构是保证整个平台安全、稳定、可靠运行的基础,在可以根据需求进行扩展、搭建个性化应用、提供弹性服务的同时,也可以避免因部分应用出现异常导致整个系统瘫痪。在用户量不断增大的情况下,云平台能够稳定工作,支撑高并发的实时数据交互,并提供最新的平台应用[2]。
平台采用微服务架构,将单一应用进行拆分,使得一组细粒度的服务围绕业务能力组织,并且能够根据自动部署机制独立部署,相互之间通过轻量级通信机制协作,为用户提供应用服务。对于具体服务而言,可以根据需要采用合适的语言和工具进行开发,不必局限于特定语言和工具。单个服务的粒度变小,使得代码更容易开发和理解,服务可维护性和扩展性也大大增加。由于服务的独立性,更新单个微服务不会影响到其他微服务的运行,也更容易进行微服务的性能容量评价。配合服务间的调用协作流程也更容易定位系统出现瓶颈的位置,从而及时对系统进行扩容,提高系统性能。WEB服务器流程图和平台应用架构如图1和图2所示。
图1 WEB服务器流程图
图2 平台应用架构
数据解析过程使用的是HTTP协议和TCP连接,解析用户命令并将数据发送到平台,完成数据命令的适配。在网关传输指令协议中,使用JSON格式进行数据封装和解析,通过网关解析器进行解析,调用云服务中的人机服务和编译服务,完成一整套数据业务。
开发的云平台系统中,需要选择优良的通信协议完成设备和云服务器之间的数据通信,协议的选取有如下要求:1)协议要能够完成设备和服务端的双向通信;2)需要保证数据发送不占用过多的带宽,因为物联网设备所处环境复杂,网络访问不通畅;3)稳定,能够维持长连接,不会产生断连、虚连接的情况。
平台选择MQTT作为数据传输协议。MQTT基于二进制数据传输,占用带宽少,有自定义的标签库,组装数据可靠,具备重连机制,并且拥有可扩展、用户授权、服务端身份验证、异常检测、心跳配置等功能。
平台的目标是可接入公司所有的高端装备,而现场高端装备情况复杂,一是系统种类繁多,二是同类系统的规格、型号和生产厂商也有较大区别,因此兼容多种通信协议且具备远程升级能力的数据采集终端是实现广泛接入的核心要素。
目前,无线网关的设计主要使用入网模块和主控制芯片MCU,入网模块是帮助设备连入网络的稳定模块,MCU模块与入网模块通信,并且支持外部通信的接入。无线网管的硬件结构如图 3所示。
图3 无线网关结构
从图3可以看到,MCU和无线通信模块的部分硬件功能重叠。因此,项目充分利用无线通信模块的资源,将原本需要外部MCU完成的程序移植内嵌到无线模块内部,大大简化了硬件的结构,降低了硬件成本。利用RTOS的多线程、消息等技术,高效完成APP开发;利用硬件的API接口,实现与设备的通信。数据采集终端结构如图4所示。
图4 数据采集终端结构
同时,考虑到新设备接入,对数据采集终端进行适配时,需要将终端安装到计算机的IDE开发环境进行编程,PC端还需针对设备完成串口驱动安装、环境变量配置等操作。
在云服务器上进行了在线升级系统的发开,在云平台中完成了交叉编译GCC工具链的移植,在数据采集终端通过 YModem协议实现了 OTA无线升级,从而实现了服务器完成后端的编译指令解析和硬件远程下载升级的功能。
在云服务平台中,数据库作为人机和设备数据之间的中间件,需要符合可靠存储和快速查询的要求。系统使用Redis-MySQL二级缓存、Nginx负载均衡、服务器架构分离等优化处理[3],确保了数据的实时性和控制命令下发的时效性。系统增加了时间控制模块,以校正数据采集终端的时间。
为了在最大化利用平台硬件资源的同时提高数据读写速度,平台采用NoSQL中的Redis作为MySQL的数据缓存。在进行数据查询时,首先查找Redis数据库,若找到则返回查询结果;如未查询到结果,则在MySQL数据库中查询,返回结果并更新Redis中的数据,从而大幅提高了查询速度。写入时则直接写入MySQL数据库,通过触发器(trigger)及自定义函数(UDF)将变更的内容更新到Redis数据库中。数据读写流程如图5所示。
图5 数据读写流程图
结合设备故障分析和检修经验,平台采用数据挖掘算法和相似度曲线预警方法,对能源系统的海量实时数据进行挖掘、故障建模、状态分析和潜在故障预警。
在云服务平台采集到足够多的设备运行数据后,通过分析系统运行过程中产生的海量历史数据,抽取出系统设备各相关参数之间的耦合关联,进而通过与系统设备的故障模型对比,识别系统设备当前的运行状态与正常运行状态之间的差异,得出系统健康状态及维护建议[4]。故障诊断系统流程如图6所示。
图6 故障诊断系统流程
以设备的历史运行数据为基础,在健康管理组件中定义系统故障模型中各项参数的属性,自动采集系统的历史数据并分析系统在各种工况下各参数之间的关联性,创建能源系统实时动态故障诊断模型。
能源系统运行时,故障诊断系统从数据服务器实时获取系统当前运行参数,通过系统故障诊断模型对比计算当前系统运行状态与同工况下各历史安全状态的相似度,并通过一组相似度值生成相似度曲线,反映系统整体状态的安全变化情况。系统根据相似度的偏离量实时输出一个代表设备在线安全状态的健康指数。实时健康分析界面如图7所示。
图7 实时健康分析界面
本平台系统已在公司服务器上完成部署,并接入某住宅小区项目的帕金斯 4016柴油机组进行试运行,以实现该机组信息的实时在线显示和远程控制。
用户通过平台可下发多种类型的控制命令,包括启停机、运行模式切换、修改设定值等,经过系统配置,可就地控制各种功能。设备监控界面如图8所示,控制指令下发界面图9所示。
手机端采用扁平化设计,如图10所示。用户可快速了解机组的异常报警,接受任务通知,创建维保、检修、巡检等工作任务,如图10所示。
卡片式管理和维护客户、项目、设备的基础信息、组件信息和额定参数,可避免因人员变动、管理不善导致的资料丢失,客户信息管理界面、项目信息管理界面和设备信息管理界面分别如图11、图12和图13所示。
平台保存设备所有的历史运行记录,并将其保存在云服务器中,用户可随时查看和导出历史数据,并分析运行数据趋势。运行数据查询和导出界面如图14所示,运行数据趋势图如图15所示。
图8 设备监控界面
图9 控制指令下发界面
图10 手机端应用程序界面
图11 客户信息管理界面
图12 项目信息管理界面
图13 设备信息管理界面
图14 运行数据查询和导出界面
图15 运行数据趋势图
平台可对所有接入的设备进行统计分析,如年利用小时数、故障率、开机率等。平台支持工程常用的数值统计和计算,用户可自定义统计对象、统计方法和统计区间,系统自动完成统计和计算,并将结果输出至监控画面和报警列表。
运维管理组件可编辑一系列基本规则。针对不同种类的设备进行组合,在达到预定的运行周期后,对用户推送维保任务。用户在完成维保后,可上传视频、照片等完工证明材料以结束任务,从而实现了维保任务的闭环管理。
1)基于物联网技术建立了一套发电机组云控制管理系统平台;实现了数据高速、实时采集和处理,故障信息动态存储,控制器数据云传输;完成了发电机组故障模型和故障预测算法的开发。
2)在发电机组和制冷机组上完成了应用验证,大大降低了机组运行维护的人力、物力成本。
3)因公司服务器资源较为紧张,目前采用单台云服务器部署本系统,数据采集和应用软件没有独立,应用层如占用系统资源过多,可能导致数据采集和存储出现异常。由于没有独立的备份服务器,存在数据丢失的风险。平台研发过程中,考虑到大量用户和设备同时接入的情况,采取优先满足大多数用户需求的策略,即为了防止服务器压力过大,对部分功能进行了限制。后续研发过程中,会对此问题加以优化和完善。