張恒飛,李小龍,梅林輝
(1.長江信達(dá)軟件技術(shù)(武漢)有限責(zé)任公司,湖北 武漢 430010; 2.國家大壩安全工程技術(shù)研究中心,湖北 武漢 430010)
隨著水利信息化建設(shè)的快速推進(jìn),智能前端感知被不斷認(rèn)知和重視。以信息登記、轉(zhuǎn)發(fā)、查詢?yōu)橹鞯囊话阈攒浖到y(tǒng)不能很好地解決用戶的實(shí)際需求,以“透徹的前端感知+先進(jìn)的技術(shù)體系+智能的專業(yè)模型”為核心的智能服務(wù)體系能很好地為用戶管理決策提供數(shù)據(jù)和分析支持[1-2]。近年來,物聯(lián)網(wǎng)技術(shù)取得了日新月異的發(fā)展,并在水文水情監(jiān)測[3-4]、水資源監(jiān)測[5]、工程安全監(jiān)測[6]、水質(zhì)監(jiān)測[7-8]、農(nóng)村水利[9]、城鄉(xiāng)供水[10]、工程施工[11]等業(yè)務(wù)場景中取得廣泛應(yīng)用。
為了實(shí)現(xiàn)物聯(lián)網(wǎng)感知設(shè)備在水利場景中的管理和控制,李琦等[12]提出了一種基于REST架構(gòu)的湖泊環(huán)境監(jiān)測物聯(lián)網(wǎng)平臺,針對湖泊環(huán)境監(jiān)測傳感器節(jié)點(diǎn)進(jìn)行集成管理。謝啟順[13]提出水資源監(jiān)測物聯(lián)網(wǎng)平臺的設(shè)計(jì),利用ZigBee無線傳感器網(wǎng)絡(luò)實(shí)現(xiàn)水資源數(shù)據(jù)采集。孫啟玉等[14]提出一種基于云技術(shù)的物聯(lián)網(wǎng)智能灌溉系統(tǒng),結(jié)合了云計(jì)算、物聯(lián)網(wǎng)、大數(shù)據(jù)等技術(shù),對灌溉設(shè)備和物聯(lián)網(wǎng)終端控制器進(jìn)行管理。韓續(xù)[15]基于百度云進(jìn)行了MQTT協(xié)議擴(kuò)展,完成了金山泵站監(jiān)測設(shè)備的接入和管理。王文斌等[16]基于阿里云物聯(lián)網(wǎng)平臺,同樣利用MQTT協(xié)議,實(shí)現(xiàn)大型農(nóng)業(yè)園區(qū)混流泵房的監(jiān)測控制。上述研究解決了單一項(xiàng)目、單一協(xié)議、同類設(shè)備的集成管理。但由于水利物聯(lián)網(wǎng)設(shè)備建設(shè)階段不同、所屬項(xiàng)目不同、監(jiān)測目標(biāo)不同、實(shí)施單位不同,同一個(gè)管理區(qū)域、同一個(gè)工程的前端采集多種多樣[16-18],現(xiàn)有物聯(lián)網(wǎng)平臺難以統(tǒng)一接入、管理,造成運(yùn)維成本高、采集保證率低等問題難以解決。針對以上問題,本文設(shè)計(jì)研發(fā)了基于分布式混合存儲架構(gòu)的多協(xié)議水利智能物聯(lián)感知平臺(圖1)。與現(xiàn)有物聯(lián)網(wǎng)平臺相比,該平臺能夠靈活處理主流的網(wǎng)絡(luò)通信協(xié)議和常見的水利報(bào)文協(xié)議,實(shí)現(xiàn)對水利行業(yè)已建和新建物聯(lián)網(wǎng)設(shè)備的統(tǒng)一接入和管理,支持基于規(guī)則的在線預(yù)警及多種水利設(shè)備協(xié)同響應(yīng)。
圖1 水利智能物聯(lián)感知平臺總體架構(gòu)Fig.1 System architecture diagram of water conservancy intelligent IoT perception platform
設(shè)備接入管理可提供前端感知設(shè)備信息接入的一系列基礎(chǔ)能力,包括隔離設(shè)備接入的相關(guān)底層實(shí)現(xiàn)、通過通用型接口直接訪問不同廠商、協(xié)議的各類設(shè)備。
目前市場上存在多種前端感知設(shè)備,均具有不同的通訊協(xié)議或報(bào)文體系。報(bào)文通訊協(xié)議主要可劃分為通用型傳輸協(xié)議及專有協(xié)議兩大類型。其中通用型傳輸協(xié)議主要包括HTTP,MQTT,OPC等主流通訊協(xié)議。水利行業(yè)前端感知的報(bào)文規(guī)約主要包括國家水文規(guī)約、國家水資源規(guī)約、環(huán)保規(guī)約等。協(xié)議解析在底層提供相關(guān)協(xié)議解析能力,通過指定相關(guān)協(xié)議類型,返回解析后的結(jié)構(gòu)化信息內(nèi)容,分別提供通用傳輸協(xié)議解析及專有協(xié)議能力解析兩類主要接口。
協(xié)議管理提供一系列配置內(nèi)容,供用戶進(jìn)行選配,便于完成協(xié)議解析及信息接入。協(xié)議管理需要實(shí)現(xiàn)的內(nèi)容包括協(xié)議字典、通道配置、協(xié)議配置、解析項(xiàng)配置等功能及接口。協(xié)議字典對報(bào)文解析后的內(nèi)容提供協(xié)議字典管理及選項(xiàng),包括字典名稱、字典代碼等,以便于對解析后的報(bào)文進(jìn)行結(jié)構(gòu)化處理;針對RTU等設(shè)備接入,提供通道相關(guān)配置,包括通道變化、通道名稱、通道組設(shè)置等基礎(chǔ)信息設(shè)定,以及完成通道與通道組、設(shè)備與通道等相關(guān)關(guān)聯(lián)配置;協(xié)議配置提供配置協(xié)議名稱、幀代號、報(bào)文類型、方向、協(xié)議版本、功能碼、解析項(xiàng)、編譯項(xiàng)、協(xié)議體系等協(xié)議相關(guān)內(nèi)容;解析項(xiàng)配置提供解析項(xiàng)能力設(shè)置,包括名稱、長度、處理方法等相關(guān)配置。
水利感知設(shè)備在進(jìn)行設(shè)備接入時(shí),需對接入的設(shè)備進(jìn)行協(xié)議、通道、工作模式、指令及心跳等系列配置,設(shè)備接入流程如圖2所示。
圖2 物聯(lián)感知設(shè)備接入流程Fig.2 The accessing process of IoT perception platform equipment
在進(jìn)行協(xié)議配置時(shí),應(yīng)根據(jù)接入的具體設(shè)備進(jìn)行協(xié)議選擇,便于正確對設(shè)備信息進(jìn)行協(xié)議解析及報(bào)文結(jié)構(gòu)化轉(zhuǎn)換;通道關(guān)聯(lián)提供設(shè)備與通道的關(guān)聯(lián)設(shè)定;工作模式管理支持自報(bào)、查詢/應(yīng)答等方式,可以對設(shè)備的工作模式進(jìn)行設(shè)置和調(diào)節(jié);設(shè)備指令設(shè)置對設(shè)備的控制指令進(jìn)行定義及關(guān)聯(lián),以便于完成后續(xù)的終端控制、心跳應(yīng)答等。設(shè)備心跳配置包括鏈路心跳配置及狀態(tài)心跳指令關(guān)聯(lián),鏈路心跳是為了維持長連接,狀態(tài)心跳為設(shè)備注冊成功后按固定周期上報(bào)設(shè)備的運(yùn)行信息,例如連接方式、設(shè)備時(shí)間、上報(bào)周期、采集周期、存儲周期、信號強(qiáng)度、存儲數(shù)據(jù)、未報(bào)數(shù)據(jù)、設(shè)備能量等。同時(shí),服務(wù)器根據(jù)用戶預(yù)設(shè)的指令,可以通過對狀態(tài)心跳的應(yīng)答,來調(diào)整部分設(shè)備運(yùn)行參數(shù),并可以對設(shè)備進(jìn)行清空存儲數(shù)據(jù)、重啟等基本操作。
終端遠(yuǎn)程控制是對設(shè)備的下行控制,指定設(shè)備、通道以及控制命令,用戶通過系統(tǒng)對非工業(yè)控制場景下的設(shè)備進(jìn)行控制。針對已對接聯(lián)網(wǎng)、可實(shí)現(xiàn)控制的設(shè)備終端,物聯(lián)網(wǎng)平臺會實(shí)時(shí)采集設(shè)備運(yùn)行狀態(tài),并將運(yùn)行狀態(tài)數(shù)據(jù)按統(tǒng)一標(biāo)準(zhǔn)格式上傳存儲、處理、顯示,需要相關(guān)數(shù)據(jù)做分析判斷時(shí)可直接調(diào)用。當(dāng)根據(jù)調(diào)用數(shù)據(jù)分析產(chǎn)生對終端設(shè)備的控制或反饋需求時(shí),物聯(lián)網(wǎng)平臺會將控制信息按統(tǒng)一標(biāo)準(zhǔn)格式下發(fā),完成解析處理后,對終端設(shè)備發(fā)出控制指令。
在加強(qiáng)遠(yuǎn)程控制能力的安全管控中,控制安全極為重要,它主要能夠?qū)崿F(xiàn)控制識別、指令認(rèn)證規(guī)則設(shè)定及控制日志等內(nèi)容??刂谱R別通過令牌及非對稱加密進(jìn)行實(shí)現(xiàn),保障控制人的完整鑒別。指令認(rèn)證規(guī)則設(shè)定實(shí)現(xiàn)相關(guān)認(rèn)證規(guī)則的設(shè)置與解析,通過預(yù)先規(guī)則設(shè)定,物聯(lián)網(wǎng)平臺僅能執(zhí)行數(shù)據(jù)平臺下發(fā)的控制命令,不能單獨(dú)對設(shè)備進(jìn)行控制,以防止誤操作和惡意侵入??刂迫罩咎峁┻h(yuǎn)程控制的日志記錄,用于事故追蹤和故障恢復(fù)。
數(shù)據(jù)存儲管理提供基于分布式的NoSQL數(shù)據(jù)存儲、索引、緩存,對設(shè)備信息、監(jiān)控信息等提供相關(guān)通用表及字段編碼規(guī)則,并對非通用場景提供數(shù)據(jù)字段配置能力。為適應(yīng)不同部署環(huán)境,客戶根據(jù)數(shù)據(jù)庫選型的不同,通過分布式結(jié)構(gòu)和多重?cái)?shù)據(jù)保障機(jī)制,實(shí)現(xiàn)數(shù)據(jù)安全的存儲。系統(tǒng)提供通用可配置數(shù)據(jù)入庫模塊,可適應(yīng)數(shù)據(jù)庫結(jié)構(gòu)變更,以增加系統(tǒng)的可移植性。
設(shè)計(jì)并實(shí)現(xiàn)通用字段規(guī)則,對符合標(biāo)準(zhǔn)的數(shù)據(jù),按照分類標(biāo)準(zhǔn)進(jìn)行分類、存儲。對不符合標(biāo)準(zhǔn)的數(shù)據(jù),按照統(tǒng)一存儲的格式進(jìn)行轉(zhuǎn)換,再按照分類標(biāo)準(zhǔn)進(jìn)行分類、存儲。設(shè)備狀態(tài)心跳成功后,RTU將存儲的未報(bào)數(shù)據(jù)上報(bào)至數(shù)據(jù)庫服務(wù)器,數(shù)據(jù)上報(bào)報(bào)文的數(shù)據(jù)段主要包括數(shù)據(jù)采集設(shè)備的地址、采集的時(shí)間以及采集的實(shí)際數(shù)據(jù)。封裝底層數(shù)據(jù)接收與入庫基礎(chǔ)邏輯,對接數(shù)據(jù)庫配置,接收數(shù)據(jù)庫的數(shù)據(jù)信息并進(jìn)行重新組織,去掉接收數(shù)據(jù)庫里的冗余和不合理數(shù)據(jù)、提取接收數(shù)據(jù)庫里的特征數(shù)據(jù)并加以處理,完成數(shù)據(jù)的接收入庫自動(dòng)化,對于有糾錯(cuò)能力的報(bào)文協(xié)議,進(jìn)行數(shù)據(jù)糾錯(cuò),并針對入庫異常、數(shù)據(jù)不合理等情況,統(tǒng)一處理并進(jìn)行推送通知。
針對已存儲的監(jiān)控?cái)?shù)據(jù),進(jìn)行簡單計(jì)算模型配置,并利用數(shù)據(jù)變量表完成數(shù)據(jù)的組織、管理和處理;基于公式、邏輯配置機(jī)制,實(shí)現(xiàn)通用完善的數(shù)據(jù)處理。
(1) 計(jì)算公式配置。具備簡單公式編輯能力,可對簡單計(jì)算進(jìn)行公式設(shè)定,并能夠依據(jù)計(jì)算公式提供計(jì)算接口,輸出正確計(jì)算結(jié)果。
(2) 數(shù)據(jù)變量關(guān)聯(lián)及提取。公式與數(shù)據(jù)存儲表及字段間的關(guān)聯(lián)式實(shí)現(xiàn)公式計(jì)算的基礎(chǔ),能夠進(jìn)行公式與字段的關(guān)聯(lián),并針對關(guān)聯(lián)字段,完成字段值的提取,實(shí)現(xiàn)整個(gè)計(jì)算邏輯。
在物聯(lián)網(wǎng)平臺數(shù)據(jù)解析、組織及存儲的基礎(chǔ)上,進(jìn)行相關(guān)數(shù)據(jù)分發(fā)接口,以便于其他子平臺或模塊的前端數(shù)據(jù)直接調(diào)用。
報(bào)警管理主要針對預(yù)警規(guī)則設(shè)定的報(bào)警情況,物聯(lián)網(wǎng)子平臺用戶可以根據(jù)各類設(shè)備特點(diǎn)及監(jiān)測對象情況以及海量歷史監(jiān)測數(shù)據(jù),設(shè)置高限報(bào)警、低限報(bào)警以及超時(shí)報(bào)警規(guī)則,主要包含高限、低限閾值、超歷史極值以及電壓、電流、功率、溫度、壓力、流量、水位、水質(zhì)等參數(shù)。當(dāng)監(jiān)測數(shù)據(jù)超過設(shè)定參數(shù)后,平臺可自動(dòng)觸發(fā)報(bào)警并通過警情推送模塊進(jìn)行消息推送,并提供數(shù)據(jù)查詢分析等服務(wù)。
報(bào)警管理主要包含實(shí)時(shí)警情及歷史警情兩個(gè)主要內(nèi)容。其中實(shí)時(shí)警情根據(jù)硬件協(xié)議、初始值設(shè)置運(yùn)行高低警戒線,觸發(fā)直接報(bào)警,并可對設(shè)備上報(bào)的最新警情進(jìn)行查看,需對電壓、電流、功率、溫度、壓力、流量、水位、水質(zhì)等參數(shù)進(jìn)行設(shè)置;歷史警情可針對用戶設(shè)置時(shí)間范圍,查詢相應(yīng)時(shí)段的警情信息。
平臺支持在物理模型中加入對預(yù)警和告警的響應(yīng),且支持不同設(shè)備間的聯(lián)動(dòng)響應(yīng)。在供水自動(dòng)化的場景中,當(dāng)水泵的高位水池水位低于設(shè)定的閾值,水泵會啟動(dòng)上水作業(yè)。在水泵啟動(dòng)前,響應(yīng)規(guī)則會首先檢查低位水池的水位,在滿足安全運(yùn)行條件后才允許水泵啟動(dòng)。
對接短信平臺接口、郵件接口及web socket長連接接口信息推送,并與報(bào)警管理相關(guān)接口對接,完成警情信息的實(shí)時(shí)推送。其中,短信平臺接口涉及不同平臺接口定義不一致的情況,僅提供通用性短信結(jié)構(gòu)化信息構(gòu)成接口,不直接對接具體短信平臺。
水利智能物聯(lián)網(wǎng)平臺研發(fā)成功后,先后在“互聯(lián)網(wǎng)+”城鄉(xiāng)供水、智慧灌區(qū)、水環(huán)境監(jiān)測、智慧工地等多個(gè)領(lǐng)域投入應(yīng)用,并取得較好的應(yīng)用效果。其中,在寧夏彭陽“互聯(lián)網(wǎng)+”城鄉(xiāng)供水項(xiàng)目中,共接入泵站監(jiān)控45座、蓄水池監(jiān)控92座、管網(wǎng)監(jiān)測監(jiān)控407處、聯(lián)戶表井監(jiān)控7 466座以及智能水表4.3萬塊。上述設(shè)備上報(bào)頻率在5~30 min/次,全部通過無線通信直聯(lián)至平臺。經(jīng)過3 a的運(yùn)行檢驗(yàn),平臺運(yùn)行穩(wěn)定,上行采集與下行控制準(zhǔn)確通暢,為應(yīng)用系統(tǒng)功能提供了順暢的感知數(shù)據(jù)和預(yù)警支撐,經(jīng)受住了高并發(fā)、海量數(shù)據(jù)等考驗(yàn)。
針對水利行業(yè)物聯(lián)網(wǎng)前端感知設(shè)備品類繁多、協(xié)議多樣、運(yùn)維困難的實(shí)際問題,本文提出了面向多協(xié)議的水利智能物聯(lián)感知平臺的設(shè)計(jì),并在多個(gè)智慧水利項(xiàng)目中成功應(yīng)用。該平臺在物聯(lián)感知設(shè)備接入方面,考慮了常用的通信協(xié)議和水利報(bào)文規(guī)約規(guī)范,克服了現(xiàn)有水利物聯(lián)網(wǎng)平臺在統(tǒng)一接入方面的瓶頸,實(shí)現(xiàn)了多階段、多項(xiàng)目、多對象、多廠商的前端設(shè)備統(tǒng)一管理;應(yīng)用關(guān)系型數(shù)據(jù)庫、時(shí)序數(shù)據(jù)庫、內(nèi)存數(shù)據(jù)庫的特點(diǎn),實(shí)現(xiàn)了海量監(jiān)測數(shù)據(jù)的高效存儲和管理。同時(shí),得益于多樣設(shè)備的統(tǒng)一接入,該平臺能夠?qū)崿F(xiàn)在線實(shí)時(shí)預(yù)警,并根據(jù)規(guī)則實(shí)現(xiàn)關(guān)聯(lián)設(shè)備的協(xié)同響應(yīng)。