本站小編為你精心準(zhǔn)備了配電房監(jiān)控系統(tǒng)數(shù)據(jù)接口設(shè)計(jì)實(shí)現(xiàn)參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
摘要:某配電房環(huán)境監(jiān)控系統(tǒng)需要集成不同廠家多種采集終端,需要提供統(tǒng)一的平臺(tái)數(shù)據(jù)接口。介紹了該系統(tǒng)平臺(tái)一種數(shù)據(jù)接口的設(shè)計(jì)與實(shí)現(xiàn)。
關(guān)鍵詞:平臺(tái)數(shù)據(jù)接口;配電房環(huán)境監(jiān)控系統(tǒng)
1概述
配電房的正常運(yùn)行,對(duì)于保障供電非常重要。而配電房數(shù)量眾多,分布比較分散,給運(yùn)行維護(hù)工作帶來(lái)很大工作量。配電房環(huán)境監(jiān)控平臺(tái),就是為了輔助保證配電房設(shè)備正常運(yùn)行研制的一套系統(tǒng)。該平臺(tái)可以監(jiān)測(cè)配電房?jī)?nèi)溫濕度、開關(guān)柜母排接頭溫度、移動(dòng)探測(cè)、煙感、氣體等傳感器數(shù)據(jù),并對(duì)風(fēng)機(jī)、燈光、水泵可以進(jìn)行遠(yuǎn)程控制。和平臺(tái)配套的現(xiàn)場(chǎng)數(shù)據(jù)采集終端,需要從不同廠家采購(gòu),各種規(guī)格型號(hào)也不盡相同。要把不同廠家采集終端的數(shù)據(jù)接入統(tǒng)一的監(jiān)控平臺(tái),就需要平臺(tái)對(duì)外提供統(tǒng)一的接口來(lái)實(shí)現(xiàn)。
2接口設(shè)計(jì)思路
采集終端數(shù)據(jù)上傳過(guò)程大致是這樣的。安裝在配電房?jī)?nèi)的數(shù)據(jù)采集終端,接收現(xiàn)場(chǎng)各種傳感器信號(hào),轉(zhuǎn)為數(shù)據(jù)發(fā)送給服務(wù)器上的采集服務(wù)軟件。在主站服務(wù)器上,采集服務(wù)收到終端傳來(lái)的數(shù)據(jù),解析后,將有效數(shù)據(jù)存入數(shù)據(jù)庫(kù)。在實(shí)際工作中,了解到各廠家的采集終端使用的通信協(xié)議不一樣,規(guī)格也不一樣。如何集成不同廠家數(shù)據(jù),是一個(gè)很實(shí)際很重要的問(wèn)題。一種思路是提供統(tǒng)一的通信協(xié)議,讓各廠家按此來(lái)修改各自采集終端的協(xié)議,按統(tǒng)一協(xié)議接入我方系統(tǒng)。這個(gè)需要廠家配合修改終端的軟件代碼,重新刷采集終端程序,工作量比較大,后期設(shè)備維護(hù)更換也比較麻煩。還有一種思路是使用存儲(chǔ)過(guò)程和視圖來(lái)做數(shù)據(jù)接口,各采集終端設(shè)備廠家修改各自的采集服務(wù)軟件,調(diào)用平臺(tái)統(tǒng)一接口來(lái)實(shí)現(xiàn)查詢數(shù)據(jù)或?qū)懭霐?shù)據(jù)到數(shù)據(jù)庫(kù)。這種方案,對(duì)各廠家的硬件產(chǎn)品和協(xié)議改動(dòng)量最少,只需要廠家修改各自的采集服務(wù)就可以實(shí)現(xiàn)。數(shù)據(jù)采集終端只需要使用廠家的通用版本型號(hào),就可以接入系統(tǒng),方便了采集終端設(shè)備更換等維護(hù)工作的進(jìn)行。在圖1中,A廠家、B廠家,代表多個(gè)廠家。每個(gè)廠家采集服務(wù)下,支持多個(gè)采集終端的數(shù)據(jù)收發(fā)。各廠家通過(guò)平臺(tái)數(shù)據(jù)接口,和平臺(tái)的數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。平臺(tái)的Web部分,從數(shù)據(jù)庫(kù)中讀取上報(bào)的數(shù)據(jù),展示在平臺(tái)頁(yè)面上。下發(fā)控制過(guò)程,也是在平臺(tái)頁(yè)面上,將指令寫入數(shù)據(jù)庫(kù)。對(duì)應(yīng)廠家的采集服務(wù),通過(guò)接口檢測(cè)到自己設(shè)備的控制指令記錄,就下發(fā)相應(yīng)控制指令給指定采集終端,控制現(xiàn)場(chǎng)燈光風(fēng)機(jī)等設(shè)備的啟?;蜷_關(guān)。
3接口設(shè)計(jì)
配電房環(huán)境監(jiān)控系統(tǒng)平臺(tái)數(shù)據(jù)庫(kù)采用了SQLServ-er2008,接口基于該數(shù)據(jù)庫(kù)設(shè)計(jì)。接口采用存儲(chǔ)過(guò)程和視圖來(lái)實(shí)現(xiàn)。
3.1訪問(wèn)權(quán)限控制
因?yàn)椴煌瑥S家設(shè)備接入平臺(tái),需要區(qū)分廠家的用戶權(quán)限,各廠家只能寫入或查詢自己設(shè)備的數(shù)據(jù),避免數(shù)據(jù)混亂和篡改??紤]到在SQLServer數(shù)據(jù)庫(kù)中,可以對(duì)指定用戶,單獨(dú)授予某些表、視圖和存儲(chǔ)過(guò)程的查看或執(zhí)行等權(quán)限。對(duì)接入廠家的數(shù)據(jù)庫(kù)用戶名,屏蔽了所有表的訪問(wèn)權(quán)限。只需要對(duì)接口相關(guān)的存儲(chǔ)過(guò)程和視圖,授予不同廠家用戶的執(zhí)行和查看等權(quán)限,就可以限制數(shù)據(jù)內(nèi)這些對(duì)象的訪問(wèn)。然后,在存儲(chǔ)過(guò)程代碼中,可以對(duì)當(dāng)前登錄的用戶名進(jìn)行判斷,只允許寫入各廠家自己的數(shù)據(jù)。在視圖代碼中,加入條件判斷,只允許廠家用戶檢索廠家自己的設(shè)備。這樣就可以實(shí)現(xiàn)控制數(shù)據(jù)的查詢和寫入。限制存儲(chǔ)過(guò)程權(quán)限的命令:上面兩條命令中,lygd是假定的某個(gè)廠家采集服務(wù)使用的數(shù)據(jù)庫(kù)用戶名。第一條命令,限制該用戶只能執(zhí)行存儲(chǔ)過(guò)程。第二條命令,限制該用戶只能執(zhí)行視圖查詢。別的存儲(chǔ)過(guò)程和視圖權(quán)限,參照以上兩條命令來(lái)授權(quán)控制。
3.2調(diào)用接口流程
廠家采集服務(wù)調(diào)用數(shù)據(jù)庫(kù)接口,可參考大致流程如下:(1)實(shí)時(shí)數(shù)據(jù)上報(bào):調(diào)用存儲(chǔ)過(guò)程Proc_EnvData_Insert,將實(shí)時(shí)數(shù)據(jù)插入到數(shù)據(jù)庫(kù)相應(yīng)表中。(2)遠(yuǎn)程控制:調(diào)用存儲(chǔ)過(guò)程Proc_CmdQue_GeTop1,獲取最新控制命令信息。(3)信息查詢:調(diào)用相應(yīng)視圖獲取。在圖2中,線程1是負(fù)責(zé)接收現(xiàn)場(chǎng)各數(shù)據(jù)采集終端(RTU)的實(shí)時(shí)數(shù)據(jù)的。線程1接收到數(shù)據(jù)后,解析數(shù)據(jù),按協(xié)議指定的格式,組裝出通道標(biāo)識(shí)和數(shù)據(jù),然后調(diào)用平臺(tái)接口存儲(chǔ)過(guò)程Proc_EnvData_Insert,將組裝好的信息,寫入指定數(shù)據(jù)表中。線程2是負(fù)責(zé)從平臺(tái)獲取遠(yuǎn)程控制命令記錄,下發(fā)給指定的現(xiàn)場(chǎng)數(shù)據(jù)采集終端(RTU)。線程2通過(guò)不斷輪詢平臺(tái)接口存儲(chǔ)過(guò)程Proc_CmdQue_GetTop1,輪詢間隔可設(shè)定,以保障及時(shí)性。得到最新執(zhí)行指令記錄后,線程2解析指令,然后組裝出符合廠家通信協(xié)議的指令,下發(fā)給指定的現(xiàn)場(chǎng)數(shù)據(jù)采集終端。完成指令下發(fā),并得到現(xiàn)場(chǎng)執(zhí)行成功的反饋后,線程2還需要調(diào)用平臺(tái)接口存儲(chǔ)過(guò)程Proc_CmdQue_SetStateByID,把相應(yīng)指令的執(zhí)行狀態(tài)設(shè)置為已執(zhí)行狀態(tài),這樣避免下次獲取到重復(fù)的遠(yuǎn)程控制指令記錄。廠家根據(jù)各自情況,參考流程來(lái)實(shí)現(xiàn)采集服務(wù)的編寫。
3.3接口設(shè)計(jì)和實(shí)現(xiàn)
主要存儲(chǔ)過(guò)程設(shè)計(jì)如下:(1)Proc_EnvData_Insert上報(bào)實(shí)時(shí)采集數(shù)據(jù)參數(shù):@NodeIDnvarchar(50)傳感器/通道編碼參數(shù):@Datafloat測(cè)量值上報(bào)實(shí)時(shí)采集數(shù)據(jù)存儲(chǔ)過(guò)程關(guān)鍵代碼:其中,@currlogin=SUSER_SNAME()獲取當(dāng)前用戶,獲取當(dāng)前要寫入數(shù)據(jù)對(duì)應(yīng)設(shè)備通道的廠家代碼,然后進(jìn)行比較,兩者一致,說(shuō)明是該廠家的設(shè)備,允許寫入數(shù)據(jù)。(2)Proc_CmdQue_GetTop1:獲取最新遠(yuǎn)程控制指令的存儲(chǔ)過(guò)程(3)Proc_CmdQue_SetStateByID:設(shè)置指定ID的指令記錄為已執(zhí)行(4)Viewx_EnvData:實(shí)時(shí)數(shù)據(jù)查詢視圖實(shí)時(shí)數(shù)據(jù)查詢視圖的關(guān)鍵代碼如下:在該段代碼中,“WHERE(dbo.RTU.Vendor=SUS-ER_SNAME())”限制了視圖只能檢索當(dāng)前用戶對(duì)應(yīng)廠家的相關(guān)信息,從而某廠家用戶只能查詢到自己設(shè)備的實(shí)時(shí)數(shù)據(jù)。實(shí)際接口由4個(gè)存儲(chǔ)過(guò)程,5個(gè)視圖組成。其余存儲(chǔ)過(guò)程和視圖,關(guān)于權(quán)限控制的關(guān)鍵代碼部分基本一致,限于篇幅,不再列舉。
4結(jié)語(yǔ)
介紹了某配電房環(huán)境監(jiān)控系統(tǒng)平臺(tái)的數(shù)據(jù)統(tǒng)一接口方案,實(shí)現(xiàn)了不同廠家多種采集終端的數(shù)據(jù)對(duì)接。已實(shí)際部署,使用中經(jīng)受了實(shí)踐檢驗(yàn),運(yùn)行良好,方便了平臺(tái)系統(tǒng)的管理和采集終端設(shè)備維護(hù)工作。
參考文獻(xiàn)
[1]宋光華.智能配電房監(jiān)控系統(tǒng)的技術(shù)研究[J].通信電源技術(shù),2018,35(2).
[2]霍曉宇.配電房環(huán)境監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].
作者:趙陽(yáng) 張建民 宋岸峰 路成鋼 單位:鄭州祥和集團(tuán)有限公司電力科技分公司