熊 曙,王 華,羅 路
(中國(guó)葛洲壩集團(tuán)裝備工業(yè)有限公司,武漢 430000)
發(fā)電機(jī)組智能化云服務(wù)平臺(tái)是建立在物聯(lián)網(wǎng)技術(shù)上的一種新型智能裝備在線(xiàn)管理應(yīng)用,它可以在手機(jī)或電腦等終端設(shè)備上實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)和控制、健康監(jiān)測(cè)、故障預(yù)防、運(yùn)行數(shù)據(jù)記錄等功能,達(dá)到產(chǎn)品設(shè)備從出廠(chǎng)組裝、安裝調(diào)試、運(yùn)行監(jiān)控、服務(wù)運(yùn)維的全過(guò)程信息化的目的,實(shí)現(xiàn)裝備的全生命周期維護(hù)和管理。
可編程的數(shù)據(jù)采集終端實(shí)時(shí)采集裝備運(yùn)行數(shù)據(jù),采集傳輸周期最快可達(dá)1秒/次。數(shù)據(jù)采集終端通過(guò)2G/4G/WIFI/LAN網(wǎng)絡(luò)將數(shù)據(jù)傳輸至云服務(wù)器,供用戶(hù)在WEB端、APP端和大屏上查看運(yùn)行數(shù)據(jù)及下發(fā)控制指令。同時(shí),數(shù)據(jù)采集終端中可自定義故障報(bào)警限值,實(shí)現(xiàn)故障信息的識(shí)別和信息推送[1]。數(shù)據(jù)上傳至云服務(wù)器后,通過(guò)系統(tǒng)的統(tǒng)計(jì)計(jì)算功能,對(duì)設(shè)備的運(yùn)行數(shù)據(jù)進(jìn)行實(shí)時(shí)分析計(jì)算,得出其健康指數(shù)、耗油量、發(fā)電量、能耗比等性能指標(biāo)。系統(tǒng)中的運(yùn)行維護(hù)模塊可根據(jù)機(jī)組的運(yùn)行數(shù)據(jù)自動(dòng)生成維護(hù)信息并發(fā)出提醒,可實(shí)現(xiàn)發(fā)電機(jī)組的故障預(yù)測(cè)。為了滿(mǎn)足其他能源裝備接入及個(gè)性化需求,本系統(tǒng)在保障安全、穩(wěn)定運(yùn)行的前提下,開(kāi)放了硬件接口和數(shù)據(jù)接口,使其具備多能源系統(tǒng)接入、用戶(hù)個(gè)性化定制和公司內(nèi)數(shù)據(jù)共享的基礎(chǔ)。
云平臺(tái)的架構(gòu)是保證整個(gè)平臺(tái)安全、穩(wěn)定、可靠運(yùn)行的基礎(chǔ),在可以根據(jù)需求進(jìn)行擴(kuò)展、搭建個(gè)性化應(yīng)用、提供彈性服務(wù)的同時(shí),也可以避免因部分應(yīng)用出現(xiàn)異常導(dǎo)致整個(gè)系統(tǒng)癱瘓。在用戶(hù)量不斷增大的情況下,云平臺(tái)能夠穩(wěn)定工作,支撐高并發(fā)的實(shí)時(shí)數(shù)據(jù)交互,并提供最新的平臺(tái)應(yīng)用[2]。
平臺(tái)采用微服務(wù)架構(gòu),將單一應(yīng)用進(jìn)行拆分,使得一組細(xì)粒度的服務(wù)圍繞業(yè)務(wù)能力組織,并且能夠根據(jù)自動(dòng)部署機(jī)制獨(dú)立部署,相互之間通過(guò)輕量級(jí)通信機(jī)制協(xié)作,為用戶(hù)提供應(yīng)用服務(wù)。對(duì)于具體服務(wù)而言,可以根據(jù)需要采用合適的語(yǔ)言和工具進(jìn)行開(kāi)發(fā),不必局限于特定語(yǔ)言和工具。單個(gè)服務(wù)的粒度變小,使得代碼更容易開(kāi)發(fā)和理解,服務(wù)可維護(hù)性和擴(kuò)展性也大大增加。由于服務(wù)的獨(dú)立性,更新單個(gè)微服務(wù)不會(huì)影響到其他微服務(wù)的運(yùn)行,也更容易進(jìn)行微服務(wù)的性能容量評(píng)價(jià)。配合服務(wù)間的調(diào)用協(xié)作流程也更容易定位系統(tǒng)出現(xiàn)瓶頸的位置,從而及時(shí)對(duì)系統(tǒng)進(jìn)行擴(kuò)容,提高系統(tǒng)性能。WEB服務(wù)器流程圖和平臺(tái)應(yīng)用架構(gòu)如圖1和圖2所示。
圖1 WEB服務(wù)器流程圖
圖2 平臺(tái)應(yīng)用架構(gòu)
數(shù)據(jù)解析過(guò)程使用的是HTTP協(xié)議和TCP連接,解析用戶(hù)命令并將數(shù)據(jù)發(fā)送到平臺(tái),完成數(shù)據(jù)命令的適配。在網(wǎng)關(guān)傳輸指令協(xié)議中,使用JSON格式進(jìn)行數(shù)據(jù)封裝和解析,通過(guò)網(wǎng)關(guān)解析器進(jìn)行解析,調(diào)用云服務(wù)中的人機(jī)服務(wù)和編譯服務(wù),完成一整套數(shù)據(jù)業(yè)務(wù)。
開(kāi)發(fā)的云平臺(tái)系統(tǒng)中,需要選擇優(yōu)良的通信協(xié)議完成設(shè)備和云服務(wù)器之間的數(shù)據(jù)通信,協(xié)議的選取有如下要求:1)協(xié)議要能夠完成設(shè)備和服務(wù)端的雙向通信;2)需要保證數(shù)據(jù)發(fā)送不占用過(guò)多的帶寬,因?yàn)槲锫?lián)網(wǎng)設(shè)備所處環(huán)境復(fù)雜,網(wǎng)絡(luò)訪(fǎng)問(wèn)不通暢;3)穩(wěn)定,能夠維持長(zhǎng)連接,不會(huì)產(chǎn)生斷連、虛連接的情況。
平臺(tái)選擇MQTT作為數(shù)據(jù)傳輸協(xié)議。MQTT基于二進(jìn)制數(shù)據(jù)傳輸,占用帶寬少,有自定義的標(biāo)簽庫(kù),組裝數(shù)據(jù)可靠,具備重連機(jī)制,并且擁有可擴(kuò)展、用戶(hù)授權(quán)、服務(wù)端身份驗(yàn)證、異常檢測(cè)、心跳配置等功能。
平臺(tái)的目標(biāo)是可接入公司所有的高端裝備,而現(xiàn)場(chǎng)高端裝備情況復(fù)雜,一是系統(tǒng)種類(lèi)繁多,二是同類(lèi)系統(tǒng)的規(guī)格、型號(hào)和生產(chǎn)廠(chǎng)商也有較大區(qū)別,因此兼容多種通信協(xié)議且具備遠(yuǎn)程升級(jí)能力的數(shù)據(jù)采集終端是實(shí)現(xiàn)廣泛接入的核心要素。
目前,無(wú)線(xiàn)網(wǎng)關(guān)的設(shè)計(jì)主要使用入網(wǎng)模塊和主控制芯片MCU,入網(wǎng)模塊是幫助設(shè)備連入網(wǎng)絡(luò)的穩(wěn)定模塊,MCU模塊與入網(wǎng)模塊通信,并且支持外部通信的接入。無(wú)線(xiàn)網(wǎng)管的硬件結(jié)構(gòu)如圖 3所示。
圖3 無(wú)線(xiàn)網(wǎng)關(guān)結(jié)構(gòu)
從圖3可以看到,MCU和無(wú)線(xiàn)通信模塊的部分硬件功能重疊。因此,項(xiàng)目充分利用無(wú)線(xiàn)通信模塊的資源,將原本需要外部MCU完成的程序移植內(nèi)嵌到無(wú)線(xiàn)模塊內(nèi)部,大大簡(jiǎn)化了硬件的結(jié)構(gòu),降低了硬件成本。利用RTOS的多線(xiàn)程、消息等技術(shù),高效完成APP開(kāi)發(fā);利用硬件的API接口,實(shí)現(xiàn)與設(shè)備的通信。數(shù)據(jù)采集終端結(jié)構(gòu)如圖4所示。
圖4 數(shù)據(jù)采集終端結(jié)構(gòu)
同時(shí),考慮到新設(shè)備接入,對(duì)數(shù)據(jù)采集終端進(jìn)行適配時(shí),需要將終端安裝到計(jì)算機(jī)的IDE開(kāi)發(fā)環(huán)境進(jìn)行編程,PC端還需針對(duì)設(shè)備完成串口驅(qū)動(dòng)安裝、環(huán)境變量配置等操作。
在云服務(wù)器上進(jìn)行了在線(xiàn)升級(jí)系統(tǒng)的發(fā)開(kāi),在云平臺(tái)中完成了交叉編譯GCC工具鏈的移植,在數(shù)據(jù)采集終端通過(guò) YModem協(xié)議實(shí)現(xiàn)了 OTA無(wú)線(xiàn)升級(jí),從而實(shí)現(xiàn)了服務(wù)器完成后端的編譯指令解析和硬件遠(yuǎn)程下載升級(jí)的功能。
在云服務(wù)平臺(tái)中,數(shù)據(jù)庫(kù)作為人機(jī)和設(shè)備數(shù)據(jù)之間的中間件,需要符合可靠存儲(chǔ)和快速查詢(xún)的要求。系統(tǒng)使用Redis-MySQL二級(jí)緩存、Nginx負(fù)載均衡、服務(wù)器架構(gòu)分離等優(yōu)化處理[3],確保了數(shù)據(jù)的實(shí)時(shí)性和控制命令下發(fā)的時(shí)效性。系統(tǒng)增加了時(shí)間控制模塊,以校正數(shù)據(jù)采集終端的時(shí)間。
為了在最大化利用平臺(tái)硬件資源的同時(shí)提高數(shù)據(jù)讀寫(xiě)速度,平臺(tái)采用NoSQL中的Redis作為MySQL的數(shù)據(jù)緩存。在進(jìn)行數(shù)據(jù)查詢(xún)時(shí),首先查找Redis數(shù)據(jù)庫(kù),若找到則返回查詢(xún)結(jié)果;如未查詢(xún)到結(jié)果,則在MySQL數(shù)據(jù)庫(kù)中查詢(xún),返回結(jié)果并更新Redis中的數(shù)據(jù),從而大幅提高了查詢(xún)速度。寫(xiě)入時(shí)則直接寫(xiě)入MySQL數(shù)據(jù)庫(kù),通過(guò)觸發(fā)器(trigger)及自定義函數(shù)(UDF)將變更的內(nèi)容更新到Redis數(shù)據(jù)庫(kù)中。數(shù)據(jù)讀寫(xiě)流程如圖5所示。
圖5 數(shù)據(jù)讀寫(xiě)流程圖
結(jié)合設(shè)備故障分析和檢修經(jīng)驗(yàn),平臺(tái)采用數(shù)據(jù)挖掘算法和相似度曲線(xiàn)預(yù)警方法,對(duì)能源系統(tǒng)的海量實(shí)時(shí)數(shù)據(jù)進(jìn)行挖掘、故障建模、狀態(tài)分析和潛在故障預(yù)警。
在云服務(wù)平臺(tái)采集到足夠多的設(shè)備運(yùn)行數(shù)據(jù)后,通過(guò)分析系統(tǒng)運(yùn)行過(guò)程中產(chǎn)生的海量歷史數(shù)據(jù),抽取出系統(tǒng)設(shè)備各相關(guān)參數(shù)之間的耦合關(guān)聯(lián),進(jìn)而通過(guò)與系統(tǒng)設(shè)備的故障模型對(duì)比,識(shí)別系統(tǒng)設(shè)備當(dāng)前的運(yùn)行狀態(tài)與正常運(yùn)行狀態(tài)之間的差異,得出系統(tǒng)健康狀態(tài)及維護(hù)建議[4]。故障診斷系統(tǒng)流程如圖6所示。
圖6 故障診斷系統(tǒng)流程
以設(shè)備的歷史運(yùn)行數(shù)據(jù)為基礎(chǔ),在健康管理組件中定義系統(tǒng)故障模型中各項(xiàng)參數(shù)的屬性,自動(dòng)采集系統(tǒng)的歷史數(shù)據(jù)并分析系統(tǒng)在各種工況下各參數(shù)之間的關(guān)聯(lián)性,創(chuàng)建能源系統(tǒng)實(shí)時(shí)動(dòng)態(tài)故障診斷模型。
能源系統(tǒng)運(yùn)行時(shí),故障診斷系統(tǒng)從數(shù)據(jù)服務(wù)器實(shí)時(shí)獲取系統(tǒng)當(dāng)前運(yùn)行參數(shù),通過(guò)系統(tǒng)故障診斷模型對(duì)比計(jì)算當(dāng)前系統(tǒng)運(yùn)行狀態(tài)與同工況下各歷史安全狀態(tài)的相似度,并通過(guò)一組相似度值生成相似度曲線(xiàn),反映系統(tǒng)整體狀態(tài)的安全變化情況。系統(tǒng)根據(jù)相似度的偏離量實(shí)時(shí)輸出一個(gè)代表設(shè)備在線(xiàn)安全狀態(tài)的健康指數(shù)。實(shí)時(shí)健康分析界面如圖7所示。
圖7 實(shí)時(shí)健康分析界面
本平臺(tái)系統(tǒng)已在公司服務(wù)器上完成部署,并接入某住宅小區(qū)項(xiàng)目的帕金斯 4016柴油機(jī)組進(jìn)行試運(yùn)行,以實(shí)現(xiàn)該機(jī)組信息的實(shí)時(shí)在線(xiàn)顯示和遠(yuǎn)程控制。
用戶(hù)通過(guò)平臺(tái)可下發(fā)多種類(lèi)型的控制命令,包括啟停機(jī)、運(yùn)行模式切換、修改設(shè)定值等,經(jīng)過(guò)系統(tǒng)配置,可就地控制各種功能。設(shè)備監(jiān)控界面如圖8所示,控制指令下發(fā)界面圖9所示。
手機(jī)端采用扁平化設(shè)計(jì),如圖10所示。用戶(hù)可快速了解機(jī)組的異常報(bào)警,接受任務(wù)通知,創(chuàng)建維保、檢修、巡檢等工作任務(wù),如圖10所示。
卡片式管理和維護(hù)客戶(hù)、項(xiàng)目、設(shè)備的基礎(chǔ)信息、組件信息和額定參數(shù),可避免因人員變動(dòng)、管理不善導(dǎo)致的資料丟失,客戶(hù)信息管理界面、項(xiàng)目信息管理界面和設(shè)備信息管理界面分別如圖11、圖12和圖13所示。
平臺(tái)保存設(shè)備所有的歷史運(yùn)行記錄,并將其保存在云服務(wù)器中,用戶(hù)可隨時(shí)查看和導(dǎo)出歷史數(shù)據(jù),并分析運(yùn)行數(shù)據(jù)趨勢(shì)。運(yùn)行數(shù)據(jù)查詢(xún)和導(dǎo)出界面如圖14所示,運(yùn)行數(shù)據(jù)趨勢(shì)圖如圖15所示。
圖8 設(shè)備監(jiān)控界面
圖9 控制指令下發(fā)界面
圖10 手機(jī)端應(yīng)用程序界面
圖11 客戶(hù)信息管理界面
圖12 項(xiàng)目信息管理界面
圖13 設(shè)備信息管理界面
圖14 運(yùn)行數(shù)據(jù)查詢(xún)和導(dǎo)出界面
圖15 運(yùn)行數(shù)據(jù)趨勢(shì)圖
平臺(tái)可對(duì)所有接入的設(shè)備進(jìn)行統(tǒng)計(jì)分析,如年利用小時(shí)數(shù)、故障率、開(kāi)機(jī)率等。平臺(tái)支持工程常用的數(shù)值統(tǒng)計(jì)和計(jì)算,用戶(hù)可自定義統(tǒng)計(jì)對(duì)象、統(tǒng)計(jì)方法和統(tǒng)計(jì)區(qū)間,系統(tǒng)自動(dòng)完成統(tǒng)計(jì)和計(jì)算,并將結(jié)果輸出至監(jiān)控畫(huà)面和報(bào)警列表。
運(yùn)維管理組件可編輯一系列基本規(guī)則。針對(duì)不同種類(lèi)的設(shè)備進(jìn)行組合,在達(dá)到預(yù)定的運(yùn)行周期后,對(duì)用戶(hù)推送維保任務(wù)。用戶(hù)在完成維保后,可上傳視頻、照片等完工證明材料以結(jié)束任務(wù),從而實(shí)現(xiàn)了維保任務(wù)的閉環(huán)管理。
1)基于物聯(lián)網(wǎng)技術(shù)建立了一套發(fā)電機(jī)組云控制管理系統(tǒng)平臺(tái);實(shí)現(xiàn)了數(shù)據(jù)高速、實(shí)時(shí)采集和處理,故障信息動(dòng)態(tài)存儲(chǔ),控制器數(shù)據(jù)云傳輸;完成了發(fā)電機(jī)組故障模型和故障預(yù)測(cè)算法的開(kāi)發(fā)。
2)在發(fā)電機(jī)組和制冷機(jī)組上完成了應(yīng)用驗(yàn)證,大大降低了機(jī)組運(yùn)行維護(hù)的人力、物力成本。
3)因公司服務(wù)器資源較為緊張,目前采用單臺(tái)云服務(wù)器部署本系統(tǒng),數(shù)據(jù)采集和應(yīng)用軟件沒(méi)有獨(dú)立,應(yīng)用層如占用系統(tǒng)資源過(guò)多,可能導(dǎo)致數(shù)據(jù)采集和存儲(chǔ)出現(xiàn)異常。由于沒(méi)有獨(dú)立的備份服務(wù)器,存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)。平臺(tái)研發(fā)過(guò)程中,考慮到大量用戶(hù)和設(shè)備同時(shí)接入的情況,采取優(yōu)先滿(mǎn)足大多數(shù)用戶(hù)需求的策略,即為了防止服務(wù)器壓力過(guò)大,對(duì)部分功能進(jìn)行了限制。后續(xù)研發(fā)過(guò)程中,會(huì)對(duì)此問(wèn)題加以?xún)?yōu)化和完善。