專利名稱:綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法
技術(shù)領(lǐng)域:
本發(fā)明面向地鐵/輕軌綜合監(jiān)控系統(tǒng)的數(shù)據(jù)采集和存儲(chǔ)需求,提供適應(yīng)于多專業(yè)系統(tǒng)、大數(shù)據(jù)量處理以及多種不同數(shù)據(jù)篩選需求的歷史數(shù)據(jù)存儲(chǔ)控制機(jī)制;采用可嵌入系統(tǒng)平臺(tái)式設(shè)計(jì)、可嵌入一體化監(jiān)控平臺(tái)的通用運(yùn)行模式。對(duì)于類SCADA領(lǐng)域的應(yīng)用,如電力監(jiān)控、水利監(jiān)控、油氣化工、煤炭礦井等需要實(shí)施 實(shí)時(shí)數(shù)據(jù)采集和環(huán)境設(shè)備監(jiān)視控制業(yè)務(wù)的工控行業(yè),也有應(yīng)用空間。
背景技術(shù):
地鐵/ 輕軌綜合監(jiān)控系統(tǒng)(ISCS Integrated Supervisory Control System )米用一體化軟硬件平臺(tái)和專用通信網(wǎng)絡(luò)采集諸如供電系統(tǒng)、環(huán)境與設(shè)備監(jiān)控系統(tǒng)、火災(zāi)報(bào)警系統(tǒng)、門禁系統(tǒng)、廣播系統(tǒng)、閉路電視系統(tǒng)、行車監(jiān)視系統(tǒng)、售檢票系統(tǒng)等多個(gè)專業(yè)的實(shí)時(shí)數(shù)據(jù)和環(huán)境參數(shù),遠(yuǎn)程監(jiān)視控制各專業(yè)系統(tǒng)及設(shè)備的運(yùn)行,同時(shí)將這些數(shù)據(jù)按各專業(yè)的不同存儲(chǔ)需求保存到以商用關(guān)系數(shù)據(jù)庫(kù)為主要管理平臺(tái)的歷史數(shù)據(jù)庫(kù)中,便于數(shù)據(jù)檢索、運(yùn)行回放、統(tǒng)計(jì)報(bào)表、性能分析以及節(jié)能策略參考等多種應(yīng)用。歷史數(shù)據(jù)存儲(chǔ)類型主要涉及數(shù)字量、模擬量、時(shí)間量,少數(shù)應(yīng)用還可能包括字符數(shù)據(jù)。由于覆蓋的專業(yè)多而雜,總數(shù)據(jù)容量動(dòng)輒幾十萬(wàn)點(diǎn),且數(shù)據(jù)點(diǎn)特別是各類模擬量點(diǎn)變化頻繁,因此累積產(chǎn)生的歷史數(shù)據(jù)量相當(dāng)龐大,這些數(shù)據(jù)不可能也沒必要全部存儲(chǔ)到商用數(shù)據(jù)庫(kù)和大容量存儲(chǔ)介質(zhì)上。同時(shí),對(duì)每個(gè)數(shù)據(jù)點(diǎn)都會(huì)因其子專業(yè)特點(diǎn)和采集過(guò)程而有存儲(chǔ)需求上的差異。因此,有效的、靈活可定制的歷史數(shù)據(jù)存儲(chǔ)過(guò)濾控制機(jī)制是優(yōu)化存儲(chǔ)方案、滿足存儲(chǔ)需求差異、提高外部應(yīng)用程序效率、降低存儲(chǔ)維護(hù)壓力和成本的關(guān)鍵環(huán)節(jié)。歷史數(shù)據(jù)存儲(chǔ)流程參見圖I。歷史數(shù)據(jù)存儲(chǔ)控制主要包括兩個(gè)方面
存儲(chǔ)粒度以數(shù)據(jù)點(diǎn)每次存儲(chǔ)的時(shí)間間隔計(jì)算,間隔越大,粒度越??;如模擬量可設(shè)定保存間隔為分鐘級(jí)或秒級(jí),數(shù)字量可能需要全部存儲(chǔ),則保存間隔即為0 ;存儲(chǔ)粒度可以分為靜態(tài)和動(dòng)態(tài)兩種,即為用戶既定配置方式和系統(tǒng)自決存儲(chǔ)方式。存儲(chǔ)算法數(shù)據(jù)點(diǎn)每次存儲(chǔ)的最終數(shù)值的計(jì)算,可以是存儲(chǔ)間隔內(nèi)的最大值、最小值、平均值、加權(quán)和等等。目前主流的綜合監(jiān)控系統(tǒng)平臺(tái)對(duì)歷史數(shù)據(jù)存儲(chǔ)的處理方式一般如下
I.由存儲(chǔ)服務(wù)模塊負(fù)責(zé)數(shù)據(jù)讀取、篩選、入庫(kù),數(shù)據(jù)源可以是實(shí)時(shí)數(shù)據(jù)庫(kù)或者緩沖文件;數(shù)據(jù)最終保存地一般為主流的商用數(shù)據(jù)庫(kù)解決方案,如Oracle、Sybase、MySQL等。該處理模塊與系統(tǒng)平臺(tái)在數(shù)據(jù)總線、數(shù)據(jù)處理邏輯、內(nèi)部編碼方式、關(guān)系數(shù)據(jù)庫(kù)高度耦合,是系統(tǒng)平臺(tái)中的一部分。2.存儲(chǔ)粒度上,通過(guò)可在線修改或運(yùn)行時(shí)固定的方式給每個(gè)數(shù)據(jù)點(diǎn)賦以確定的存儲(chǔ)間隔,一般精確到分鐘或秒,歷史數(shù)據(jù)存儲(chǔ)服務(wù)按此固定配置執(zhí)行數(shù)據(jù)過(guò)濾和存儲(chǔ)入庫(kù)過(guò)程。3.存儲(chǔ)算法上,在存儲(chǔ)服務(wù)模塊中實(shí)現(xiàn)用戶可能需要的計(jì)算,如有新的算法需求,則需要進(jìn)行二次開發(fā)?,F(xiàn)有技術(shù)的缺點(diǎn)是1.數(shù)據(jù)點(diǎn)的存儲(chǔ)粒度設(shè)置單一,主要為靜態(tài)方式,只能按既定時(shí)間間隔存儲(chǔ),缺乏對(duì)數(shù)值變化劇烈時(shí)的自決存儲(chǔ)實(shí)現(xiàn);有些僅存儲(chǔ)時(shí)間間隔到達(dá)時(shí)刻點(diǎn)的實(shí)時(shí)值,降低了歷史數(shù)據(jù)的利用價(jià)值;2.存儲(chǔ)算法相對(duì)簡(jiǎn)單,算法相對(duì)固定,一般在代碼編寫時(shí)確定,在應(yīng)付某些非常規(guī)應(yīng)用和算法時(shí)需要對(duì)既有模塊或平臺(tái)做更改、重新調(diào)試,不易擴(kuò)展;3.存儲(chǔ)服務(wù)模塊與系統(tǒng)平臺(tái)耦合度高。
發(fā)明內(nèi)容
本方案設(shè)計(jì)從綜合監(jiān)控系統(tǒng)多專業(yè)的現(xiàn)有需求和技術(shù)基礎(chǔ)出發(fā),設(shè)計(jì)實(shí)現(xiàn)新的存儲(chǔ)控制方法,包括靈活可定制的、可在線更改的存儲(chǔ)粒度設(shè)置,支持動(dòng)態(tài)的自決存儲(chǔ)行為;通過(guò)算法池方案提供豐富的數(shù)值計(jì)算功能和方法調(diào)用,且允許按既定接口形式對(duì)算法進(jìn)行 擴(kuò)展;采用可嵌入系統(tǒng)平臺(tái)的運(yùn)行方式,通過(guò)統(tǒng)一的數(shù)據(jù)流接口實(shí)現(xiàn)功能模塊的獨(dú)立運(yùn)行,所有的數(shù)據(jù)篩選存儲(chǔ)功能都能在此模塊中實(shí)現(xiàn)或后續(xù)擴(kuò)充;以此覆蓋和實(shí)現(xiàn)不同子專業(yè)、不同類型數(shù)據(jù)、不同存儲(chǔ)需求的數(shù)據(jù)保存方案。本發(fā)明技術(shù)方案為一種地鐵綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,包括以下幾個(gè)部分
A控制器結(jié)構(gòu)。新的存儲(chǔ)控制器主要包括數(shù)據(jù)點(diǎn)索引、數(shù)據(jù)點(diǎn)矩陣、存儲(chǔ)控制信息體結(jié)構(gòu)、算法池以及元數(shù)據(jù)集五個(gè)部分組成;與外部程序的數(shù)據(jù)接口主要包括作為入口的實(shí)時(shí)生數(shù)據(jù)及用于與外部控制命令交互的數(shù)據(jù)緩沖區(qū)、作為出口的待寫進(jìn)存儲(chǔ)介質(zhì)的熟數(shù)據(jù)緩沖區(qū)。模塊結(jié)構(gòu)及關(guān)系如圖2所示。a數(shù)據(jù)點(diǎn)索引每個(gè)數(shù)據(jù)點(diǎn)都有全局唯一的數(shù)據(jù)標(biāo)識(shí)ID,數(shù)據(jù)點(diǎn)索引采用哈希表完成數(shù)據(jù)點(diǎn)ID到數(shù)據(jù)實(shí)體的映射,實(shí)現(xiàn)緩沖區(qū)數(shù)據(jù)進(jìn)入存儲(chǔ)過(guò)濾處理前在數(shù)據(jù)點(diǎn)矩陣內(nèi)的快速定位。b數(shù)據(jù)點(diǎn)矩陣數(shù)據(jù)點(diǎn)矩陣由多個(gè)數(shù)據(jù)點(diǎn)實(shí)體組成,矩陣中的行表示一個(gè)數(shù)據(jù)點(diǎn)實(shí)體,由標(biāo)識(shí)ID及數(shù)據(jù)點(diǎn)所有需要保存的屬性組成,矩陣中的每個(gè)屬性單元(An)存儲(chǔ)了指向定義約束此屬性數(shù)據(jù)存儲(chǔ)的控制信息體指針,這樣某個(gè)數(shù)據(jù)點(diǎn)的某個(gè)屬性存儲(chǔ)行為完全由其指向的存儲(chǔ)信息體來(lái)控制。c存儲(chǔ)控制信息體結(jié)構(gòu)存儲(chǔ)控制信息體是存儲(chǔ)控制器的關(guān)鍵部分,其內(nèi)部的每個(gè)元素分別控制數(shù)據(jù)存儲(chǔ)的不同行為,每個(gè)信息體都包含如下關(guān)鍵元素
ActiveFlag :激活標(biāo)志,標(biāo)識(shí)該信息體是否生效;
TimeStamp :數(shù)據(jù)精確時(shí)標(biāo);
StorageInterval :兩次存儲(chǔ)的時(shí)間間隔,單位為秒,0值表示所有進(jìn)入控制器數(shù)據(jù)信息全部存儲(chǔ);
ControllWord :存儲(chǔ)控制字,含義如下
0x00000000:控制字無(wú)效
0x00000001:自決存儲(chǔ)標(biāo)志位,由控制器根據(jù)數(shù)據(jù)值的變化強(qiáng)烈程度自動(dòng)決定存儲(chǔ)與否,用戶可設(shè)置后續(xù)的基礎(chǔ)值BaseValue (vb)和增量值DeltaValue ( A v),僅當(dāng)滿足vi-vb I > A V時(shí)vi才需要存儲(chǔ),0x00000002:自動(dòng)插值標(biāo)志位,當(dāng)某個(gè)時(shí)間間隔內(nèi)沒有變化數(shù)據(jù)時(shí),是否需要自行添加一條數(shù)據(jù)記錄以保證數(shù)據(jù)連續(xù)性,
0x00000004:無(wú)效數(shù)據(jù)處理標(biāo)志位,當(dāng)前數(shù)據(jù)片無(wú)效時(shí)是否直接丟棄或繼續(xù)以后的流
程,
0x00000008:暫備用,
BaseValue :自決存儲(chǔ)的基礎(chǔ)比對(duì)值,可根據(jù)需要使用標(biāo)準(zhǔn)控制器接口進(jìn)行在線實(shí)時(shí)修改,新修改值將在下一批數(shù)據(jù)進(jìn)入控制器時(shí)生效,
DeltaValue :自決存儲(chǔ)的增量值,該值振幅內(nèi)的數(shù)據(jù)將被過(guò)濾不作保存,
CalcMethod :計(jì)算方法,和ArgsArray —起作為存儲(chǔ)最終數(shù)據(jù)的計(jì)算控制手段; ArgsArray :參數(shù)個(gè)數(shù)及列表。d算法池提供綜合監(jiān)控系統(tǒng)中常用的歷史數(shù)據(jù)計(jì)算和生成算法,包括常用數(shù)學(xué)計(jì)算及統(tǒng)計(jì)計(jì)算方法等,每種算法函數(shù)均為可重入函數(shù),支持多線程同時(shí)調(diào)用。e元數(shù)據(jù)集元數(shù)據(jù)集是關(guān)于數(shù)據(jù)點(diǎn)類型和屬性類型的基礎(chǔ)數(shù)據(jù),是具體數(shù)據(jù)點(diǎn)實(shí)例的抽象。B.數(shù)據(jù)流描述。數(shù)據(jù)流包括生產(chǎn)數(shù)據(jù)流和交互數(shù)據(jù)流,統(tǒng)一采用格式化的數(shù)據(jù)包實(shí)現(xiàn)與外部程序的數(shù)據(jù)流交互。數(shù)據(jù)入口 實(shí)時(shí)數(shù)據(jù)庫(kù)產(chǎn)生的數(shù)據(jù)以格式化的形式,通過(guò)調(diào)用控制器的統(tǒng)一接口(SendRawData)進(jìn)入控制器預(yù)先準(zhǔn)備的生數(shù)據(jù)加鎖大緩沖區(qū)(共享內(nèi)存實(shí)現(xiàn)),而后進(jìn)入處理流程;同時(shí),所有與控制器交互的控制命令也通過(guò)統(tǒng)一接口(SendMsg)以格式化消息形式進(jìn)入控制器。數(shù)據(jù)出口 待保存數(shù)據(jù)以格式化的形式,進(jìn)入控制器預(yù)先準(zhǔn)備的熟數(shù)據(jù)加鎖緩沖區(qū),通過(guò)調(diào)用控制器的統(tǒng)一接口(GetProcData)可以即時(shí)獲得這些數(shù)據(jù),由于存儲(chǔ)控制器僅負(fù)責(zé)數(shù)據(jù)的過(guò)濾及處理,最終熟數(shù)據(jù)存儲(chǔ)目的地、存儲(chǔ)形式和存儲(chǔ)功能實(shí)現(xiàn)將與本模塊分割開來(lái),以保證對(duì)不同存儲(chǔ)方案、不同數(shù)據(jù)組織形式的充分兼容。C方案實(shí)現(xiàn)說(shuō)明。a開發(fā)平臺(tái)采用Qt跨平臺(tái)開發(fā)包設(shè)計(jì)開發(fā),便于應(yīng)用的移植;
b接口規(guī)范主要涉及數(shù)據(jù)交互接口、命令交互接口、在線參數(shù)修改接口、擴(kuò)充算法接口,需要遵守既定接口形式進(jìn)行開發(fā);所有接口以動(dòng)態(tài)庫(kù)的形式存在供第三方程序加載;c數(shù)據(jù)格式交互數(shù)據(jù)的格式規(guī)定,包括生產(chǎn)的數(shù)據(jù)格式(長(zhǎng)度+功能碼+時(shí)標(biāo)+點(diǎn)標(biāo)識(shí)+屬性標(biāo)識(shí)+值)和控制命令格式(長(zhǎng)度+功能碼+信息內(nèi)容);
d配置信息控制器運(yùn)行所必須的內(nèi)部信息由配置模塊完成,通過(guò)用戶配置工具界面完成元數(shù)據(jù)、信息點(diǎn)、存儲(chǔ)控制信息體的組態(tài);同時(shí)緩沖區(qū)大小、加載擴(kuò)充庫(kù)目錄等系統(tǒng)配置項(xiàng)也在這里完成,最終形成程序啟動(dòng)配置文件。本發(fā)明的優(yōu)選方案為A控制器結(jié)構(gòu)中的a數(shù)據(jù)點(diǎn)索引支持“站地址+專業(yè)地址+類型+點(diǎn)地址”的四維索引定位,或長(zhǎng)整型ID編址的直接定位。本發(fā)明的優(yōu)選方案為A控制器結(jié)構(gòu),c存儲(chǔ)控制信息體結(jié)構(gòu)中的CalcMethod元素,其實(shí)際存儲(chǔ)內(nèi)容為指向算法池的函數(shù)指針,支持多種常用的算法,且每種算法函數(shù)均為可重入函數(shù)。
本發(fā)明的優(yōu)選方案為A控制器結(jié)構(gòu),d算法池提供綜合監(jiān)控系統(tǒng)中常用的歷史數(shù)據(jù)計(jì)算和生成算法,包括常用數(shù)學(xué)計(jì)算及統(tǒng)計(jì)計(jì)算方法等,每種算法函數(shù)均為可重入函數(shù),支持多線程同時(shí)調(diào)用。本發(fā)明的優(yōu)選方案為在A控制器結(jié)構(gòu)中,d算法池除固定算法外,當(dāng)現(xiàn)有算法不滿足要求時(shí),算法池內(nèi)預(yù)留了一部分空閑算法接口空間,在算法池初始化時(shí)可加載擴(kuò)展編寫動(dòng)態(tài)生成庫(kù),并將其函數(shù)實(shí)現(xiàn)按順序逐個(gè)加載進(jìn)入預(yù)留接口供使用。本發(fā)明的優(yōu)選方案為在A控制器結(jié)構(gòu)中e元數(shù)據(jù)集,數(shù)據(jù)點(diǎn)類型包括類型標(biāo)識(shí)ID、類型名稱和對(duì)應(yīng)屬性列表;屬性類型包括所有涉及屬性的標(biāo)識(shí)ID、數(shù)據(jù)類型和屬性名 稱。本發(fā)明的有益效果為
1.靈活可定制的、可在線更改的存儲(chǔ)粒度設(shè)置,支持動(dòng)態(tài)的自決存儲(chǔ)行為;
2.通過(guò)算法池方案提供豐富的數(shù)值計(jì)算功能和方法調(diào)用,且允許按既定接口形式對(duì)算法進(jìn)行擴(kuò)展;
3.采用可嵌入系統(tǒng)平臺(tái)的運(yùn)行方式,通過(guò)統(tǒng)一的數(shù)據(jù)流接口實(shí)現(xiàn)功能模塊的獨(dú)立運(yùn)行。控制器通過(guò)配置方式確定其行為,實(shí)現(xiàn)完全可定制。所有的數(shù)據(jù)篩選存儲(chǔ)功能都能在此模塊中實(shí)現(xiàn)或后續(xù)擴(kuò)充;以此覆蓋和實(shí)現(xiàn)不同子專業(yè)、不同類型數(shù)據(jù)、不同存儲(chǔ)需求的數(shù)據(jù)保存方案。
圖I本發(fā)明的歷史數(shù)據(jù)存儲(chǔ)流程。圖2本發(fā)明的存儲(chǔ)控制器內(nèi)部結(jié)構(gòu)。
具體實(shí)施例方式以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)闡述。I.控制器結(jié)構(gòu)及原理。新的存儲(chǔ)控制器主要包括數(shù)據(jù)點(diǎn)索引、數(shù)據(jù)點(diǎn)矩陣、存儲(chǔ)控制信息體結(jié)構(gòu)、算法池以及元數(shù)據(jù)集五個(gè)部分組成;與外部程序的數(shù)據(jù)接口主要包括作為入口的實(shí)時(shí)生數(shù)據(jù)及用于與外部控制命令交互的數(shù)據(jù)緩沖區(qū)、作為出口的待寫進(jìn)存儲(chǔ)介質(zhì)的熟數(shù)據(jù)緩沖區(qū),模塊結(jié)構(gòu)及關(guān)系如圖2所示。I. I數(shù)據(jù)點(diǎn)索引
每個(gè)數(shù)據(jù)點(diǎn)都有全局唯一的數(shù)據(jù)標(biāo)識(shí)ID。數(shù)據(jù)點(diǎn)索引采用哈希表完成數(shù)據(jù)點(diǎn)ID到數(shù)據(jù)實(shí)體的映射,實(shí)現(xiàn)緩沖區(qū)數(shù)據(jù)進(jìn)入存儲(chǔ)過(guò)濾處理前在數(shù)據(jù)點(diǎn)矩陣內(nèi)的快速定位。數(shù)據(jù)點(diǎn)索引支持“站地址+專業(yè)地址+類型+點(diǎn)地址”的四維索引定位,也支持長(zhǎng)整型ID編址的直接定位。I. 2數(shù)據(jù)點(diǎn)矩陣
數(shù)據(jù)點(diǎn)矩陣由多個(gè)數(shù)據(jù)點(diǎn)實(shí)體組成,矩陣中的行表示一個(gè)數(shù)據(jù)點(diǎn)實(shí)體,由標(biāo)識(shí)ID及數(shù)據(jù)點(diǎn)所有需要保存的屬性組成,例如某個(gè)遙測(cè)數(shù)據(jù)點(diǎn)可能需要保存測(cè)量值、計(jì)算值、手動(dòng)值等三種浮點(diǎn)數(shù)據(jù),則該數(shù)據(jù)點(diǎn)包含三個(gè)屬性的矩陣行表示為(M Aj, A,Ai) 0所有屬性的定義可在元數(shù)據(jù)集的屬性集中找到對(duì)應(yīng)的定義描述。
矩陣中的每個(gè)屬性單元(兒)存儲(chǔ)了指向定義約束此屬性數(shù)據(jù)存儲(chǔ)的控制信息體指針,這樣某個(gè)數(shù)據(jù)點(diǎn)的某個(gè)屬性存儲(chǔ)行為完全由其指向的存儲(chǔ)信息體來(lái)控制。I. 3存儲(chǔ)控制信息體結(jié)構(gòu)
存儲(chǔ)控制信息體是存儲(chǔ)控制器的關(guān)鍵部分,其內(nèi)部的每個(gè)元素分別控制數(shù)據(jù)存儲(chǔ)的不同行為。每個(gè)信息體都包含如下關(guān)鍵元素
ActiveFlag :激活標(biāo)志,標(biāo)識(shí)該信息體是否生效;
TimeStamp :數(shù)據(jù)精確時(shí)標(biāo),如數(shù)據(jù)時(shí)標(biāo)無(wú)效或不明確將自動(dòng)由本地時(shí)標(biāo)代替;StorageInterval :兩次存儲(chǔ)的時(shí)間間隔,單位為秒,0值表示所有進(jìn)入控制器數(shù)據(jù)信 息全部存儲(chǔ);
ControllWord :存儲(chǔ)控制字,含義如下
0x00000000:控制字無(wú)效
0x00000001:自決存儲(chǔ)標(biāo)志位。由控制器根據(jù)數(shù)據(jù)值的變化強(qiáng)烈程度自動(dòng)決定存儲(chǔ)與否,用戶可設(shè)置后續(xù)的基礎(chǔ)值BaseValueh)和增量值DeltaValue ( A 0,僅當(dāng)滿足Vi-Vb I > A K時(shí)Vi才需要存儲(chǔ)。自決存儲(chǔ)功能彌補(bǔ)了固定間隔存儲(chǔ)采樣單一化和重要數(shù)據(jù)保存不全的缺陷,對(duì)數(shù)據(jù)發(fā)生較大振幅時(shí)能更詳細(xì)地記錄歷史數(shù)據(jù)行為,且能根據(jù)用戶實(shí)際需要對(duì)基準(zhǔn)值和幅度區(qū)間進(jìn)行調(diào)整,具有較大的靈活性。此功能對(duì)綜合監(jiān)控系統(tǒng)中電力專業(yè)和環(huán)控專業(yè)的電壓、電流、空氣及水溫等參數(shù)采集、保存、利用具有很好的改進(jìn)作用。0x00000002:自動(dòng)插值標(biāo)志位。當(dāng)某個(gè)時(shí)間間隔內(nèi)沒有變化數(shù)據(jù)時(shí),是否需要自行添加一條數(shù)據(jù)記錄以保證數(shù)據(jù)連續(xù)性,此功能對(duì)提高了歷史數(shù)據(jù)外部應(yīng)用開發(fā)的便利性,程序無(wú)需考慮無(wú)變化值區(qū)間的數(shù)值表示問(wèn)題。插值策略以前次保存的數(shù)據(jù)值為存儲(chǔ)數(shù)據(jù)值。0x00000004:無(wú)效數(shù)據(jù)處理標(biāo)志位。當(dāng)前數(shù)據(jù)片無(wú)效時(shí)是否直接丟棄或繼續(xù)以后的流程。0x00000008:暫備用。BaseValue :自決存儲(chǔ)的基礎(chǔ)比對(duì)值??筛鶕?jù)需要使用標(biāo)準(zhǔn)控制器接口進(jìn)行在線實(shí)時(shí)修改,新修改值將在下一批數(shù)據(jù)進(jìn)入控制器時(shí)生效。DeltaValue :自決存儲(chǔ)的增量值。該值振幅內(nèi)的數(shù)據(jù)將被過(guò)濾不作保存。CalcMethod :計(jì)算方法。和ArgsArray—起作為存儲(chǔ)最終數(shù)據(jù)的計(jì)算控制手段。本元素實(shí)際存儲(chǔ)內(nèi)容為指向算法池的函數(shù)指針,支持多種常用的算法,且每種算法函數(shù)均為可重入函數(shù)。ArgsArray :參數(shù)個(gè)數(shù)及列表。I. 4 算法池
提供綜合監(jiān)控系統(tǒng)中常用的歷史數(shù)據(jù)計(jì)算和生成算法,包括常用數(shù)學(xué)計(jì)算及統(tǒng)計(jì)計(jì)算方法等。每種算法函數(shù)均為可重入函數(shù),支持多線程同時(shí)調(diào)用。除固定算法外,當(dāng)現(xiàn)有算法不滿足要求時(shí),算法池內(nèi)預(yù)留了一部分空閑算法接口空間,在算法池初始化時(shí)可加載擴(kuò)展編寫的形如Alg*的動(dòng)態(tài)生成庫(kù),并將其函數(shù)實(shí)現(xiàn)按順序逐個(gè)加載進(jìn)入預(yù)留接口供使用。擴(kuò)展算法接口形式和編寫規(guī)則需遵循控制器算法池的統(tǒng)
一要求。I. 5元數(shù)據(jù)集元數(shù)據(jù)集是關(guān)于數(shù)據(jù)點(diǎn)類型和屬性類型的基礎(chǔ)數(shù)據(jù),是具體數(shù)據(jù)點(diǎn)實(shí)例的抽象。數(shù)據(jù)點(diǎn)類型包括類型標(biāo)識(shí)ID、類型名稱和對(duì)應(yīng)屬性列表;屬性類型包括所有涉及屬性的標(biāo)識(shí)ID、數(shù)據(jù)類型(主要為整型和浮點(diǎn)型)和屬性名稱。2.數(shù)據(jù)流描述。數(shù)據(jù)流包括生產(chǎn)數(shù)據(jù)流和交互數(shù)據(jù)流,統(tǒng)一采用格式化的數(shù)據(jù)包實(shí)現(xiàn)與外部程序的數(shù)據(jù)流交互。數(shù)據(jù)入口 實(shí)時(shí)數(shù)據(jù)庫(kù)產(chǎn)生的數(shù)據(jù)以格式化的形式,通過(guò)調(diào)用控制器的統(tǒng)一接口(SendRawData)進(jìn)入控制器預(yù)先準(zhǔn)備的生數(shù)據(jù)加鎖大緩沖區(qū)(共享內(nèi)存實(shí)現(xiàn)),而后進(jìn)入處理流程;同時(shí),所有與控制器交互的控制命令也通過(guò)統(tǒng)一接口(SendMsg)以格式化消息形式進(jìn)入控制器,比如監(jiān)控后臺(tái)通信中斷,數(shù)據(jù)暫時(shí)無(wú)法更新,則通過(guò)失效消息通知控制器將所有控制信息體激活狀態(tài)關(guān)閉,不再進(jìn)行數(shù)據(jù)處理;或者當(dāng)需要關(guān)閉或重啟數(shù)據(jù)存儲(chǔ)服務(wù) 時(shí),給出關(guān)閉消息命令則控制器進(jìn)行內(nèi)部線程安全退出、清理占用資源并最終關(guān)閉服務(wù),等
坐寸o數(shù)據(jù)出口 待保存數(shù)據(jù)以格式化的形式,進(jìn)入控制器預(yù)先準(zhǔn)備的熟數(shù)據(jù)加鎖緩沖區(qū)(共享內(nèi)存實(shí)現(xiàn)),通過(guò)調(diào)用控制器的統(tǒng)一接口(GetProcData)可以即時(shí)獲得這些數(shù)據(jù)。由于存儲(chǔ)控制器僅負(fù)責(zé)數(shù)據(jù)的過(guò)濾及處理,最終熟數(shù)據(jù)存儲(chǔ)目的地、存儲(chǔ)形式和存儲(chǔ)功能實(shí)現(xiàn)將與本模塊分割開來(lái),以保證對(duì)不同存儲(chǔ)方案、不同數(shù)據(jù)組織形式的充分兼容。3.方案實(shí)現(xiàn)說(shuō)明。I)開發(fā)平臺(tái)采用Qt跨平臺(tái)開發(fā)包設(shè)計(jì)開發(fā),便于應(yīng)用的移植;
2)接口規(guī)范主要涉及數(shù)據(jù)交互接口、命令交互接口、在線參數(shù)修改接口、擴(kuò)充算法接口,需要遵守既定接口形式進(jìn)行開發(fā);所有接口以動(dòng)態(tài)庫(kù)的形式存在供第三方程序加載;
3)數(shù)據(jù)格式交互數(shù)據(jù)的格式規(guī)定,包括生產(chǎn)的數(shù)據(jù)格式(長(zhǎng)度+功能碼+時(shí)標(biāo)+點(diǎn)標(biāo)識(shí)+屬性標(biāo)識(shí)+值)和控制命令格式(長(zhǎng)度+功能碼+信息內(nèi)容);
4)配置信息控制器運(yùn)行所必須的內(nèi)部信息由配置模塊完成,通過(guò)用戶配置工具界面完成元數(shù)據(jù)、信息點(diǎn)、存儲(chǔ)控制信息體的組態(tài);同時(shí)緩沖區(qū)大小、加載擴(kuò)充庫(kù)目錄等系統(tǒng)配置項(xiàng)也在這里完成,最終形成程序啟動(dòng)配置文件。以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說(shuō)明書中描述的只是說(shuō)明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi),本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書其等效物界定。
權(quán)利要求
1.一種綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,其特征在于 存儲(chǔ)控制器包括數(shù)據(jù)點(diǎn)索引、數(shù)據(jù)點(diǎn)矩陣、存儲(chǔ)控制信息體結(jié)構(gòu)、算法池以及元數(shù)據(jù)集五個(gè)部分組成;與外部程序的數(shù)據(jù)接口包括作為入口的實(shí)時(shí)生數(shù)據(jù)及用于與外部控制命令交互的數(shù)據(jù)緩沖區(qū)、作為出口的待寫進(jìn)存儲(chǔ)介質(zhì)的熟數(shù)據(jù)緩沖區(qū); 數(shù)據(jù)流描述數(shù)據(jù)流包括生產(chǎn)數(shù)據(jù)流和交互數(shù)據(jù)流,統(tǒng)一采用格式化的數(shù)據(jù)包實(shí)現(xiàn)與外部程序的數(shù)據(jù)流交互; 數(shù)據(jù)入口 實(shí)時(shí)數(shù)據(jù)庫(kù)產(chǎn)生的數(shù)據(jù)以格式化的形式,通過(guò)調(diào)用存儲(chǔ)控制器的統(tǒng)一接口進(jìn)入存儲(chǔ)控制器預(yù)先準(zhǔn)備的生數(shù)據(jù)加鎖緩沖區(qū),而后進(jìn)入處理流程;同時(shí),所有與存儲(chǔ)控制器交互的控制命令通過(guò)統(tǒng)一接口以格式化消息形式進(jìn)入存儲(chǔ)控制器; 數(shù)據(jù)出口 待保存數(shù)據(jù)以格式化的形式,進(jìn)入控制器預(yù)先準(zhǔn)備的熟數(shù)據(jù)加鎖緩沖區(qū),通過(guò)調(diào)用存儲(chǔ)控制器的統(tǒng)一接口即時(shí)獲得這些數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,其特征在于, 所述生產(chǎn)數(shù)據(jù)和交互數(shù)據(jù)的數(shù)據(jù)格式長(zhǎng)度+功能碼+時(shí)標(biāo)+點(diǎn)標(biāo)識(shí)+屬性標(biāo)識(shí)+值;所述控制命令格式長(zhǎng)度+功能碼+信息內(nèi)容。
3.根據(jù)權(quán)利要求I所述的綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,其特征在于, 存儲(chǔ)控制器運(yùn)行所必須的內(nèi)部信息由配置模塊完成,通過(guò)用戶配置工具界面完成元數(shù)據(jù)、信息點(diǎn)、存儲(chǔ)控制信息體的組態(tài)。
4.根據(jù)權(quán)利要求1、2或3所述的綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,其特征在于, 所述數(shù)據(jù)點(diǎn)索引每個(gè)數(shù)據(jù)點(diǎn)都有全局唯一的數(shù)據(jù)標(biāo)識(shí)ID,數(shù)據(jù)點(diǎn)索引完成數(shù)據(jù)點(diǎn)ID到數(shù)據(jù)實(shí)體的映射; 所述數(shù)據(jù)點(diǎn)矩陣數(shù)據(jù)點(diǎn)矩陣由多個(gè)數(shù)據(jù)點(diǎn)實(shí)體組成,矩陣中的行表示一個(gè)數(shù)據(jù)點(diǎn)實(shí)體,由標(biāo)識(shí)ID及數(shù)據(jù)點(diǎn)所有需要保存的屬性組成,矩陣中的每個(gè)屬性單元(兒)存儲(chǔ)了指向定義約束此屬性數(shù)據(jù)存儲(chǔ)的控制信息體指針; 所述存儲(chǔ)控制信息體結(jié)構(gòu)存儲(chǔ)控制信息體內(nèi)部的每個(gè)元素分別控制數(shù)據(jù)存儲(chǔ)的不同行為,每個(gè)信息體都包含如下元素 ActiveFlag :激活標(biāo)志,標(biāo)識(shí)該信息體是否生效; TimeStamp :數(shù)據(jù)精確時(shí)標(biāo); StorageInterval :兩次存儲(chǔ)的時(shí)間間隔,單位為秒,0值表示所有進(jìn)入控制器數(shù)據(jù)信息全部存儲(chǔ); Controllfford :存儲(chǔ)控制字,包含自決存儲(chǔ)、插值、錯(cuò)誤處理等多個(gè)存儲(chǔ)控制位;BaseValue :自決存儲(chǔ)的基礎(chǔ)比對(duì)值,可根據(jù)需要使用標(biāo)準(zhǔn)控制器接口進(jìn)行在線實(shí)時(shí)修改,新修改值將在下一批數(shù)據(jù)進(jìn)入控制器時(shí)生效; DeltaValue :自決存儲(chǔ)的增量值,該值振幅內(nèi)的數(shù)據(jù)將被過(guò)濾不作保存; CalcMethod :計(jì)算方法,和ArgsArray —起作為存儲(chǔ)最終數(shù)據(jù)的計(jì)算控制手段; ArgsArray :參數(shù)個(gè)數(shù)及列表; 所述算法池提供綜合監(jiān)控系統(tǒng)中常用的歷史數(shù)據(jù)計(jì)算和生成算法,包括常用數(shù)學(xué)計(jì)算及統(tǒng)計(jì)計(jì)算方法等,每種算法函數(shù)均為可重入函數(shù),支持多線程同時(shí)調(diào)用; 所述元數(shù)據(jù)集是關(guān)于數(shù)據(jù)點(diǎn)類型和屬性類型的基礎(chǔ)數(shù)據(jù),是具體數(shù)據(jù)點(diǎn)實(shí)例的抽象。
5.根據(jù)權(quán)利要求4所述的綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,其特征在于,所述數(shù)據(jù)點(diǎn)索引采用哈希表,支持“站地址+專業(yè)地址+類型+點(diǎn)地址”的四維索引定位,或長(zhǎng)整型ID編址的直接定位。
6.根據(jù)權(quán)利要求4所述的綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,其特征在于,所述存儲(chǔ)控制信息體結(jié)構(gòu)中的CalcMethod元素,其實(shí)際存儲(chǔ)內(nèi)容為指向算法池的函數(shù)指針。
7.根據(jù)權(quán)利要求4所述的綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,其特征在于,所述算法池提供綜合監(jiān)控系統(tǒng)中常用的歷史數(shù)據(jù)計(jì)算和生成算法,包括常用數(shù)學(xué)計(jì)算及統(tǒng)計(jì)計(jì)算方法,每種算法函數(shù)均為可重入函數(shù),支持多線程同時(shí)調(diào)用。
8.根據(jù)權(quán)利要求4所述的綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,其特征在于,所述算法池內(nèi)預(yù)留了一部分空閑算法接口空間,在算法池初始化時(shí)可加載擴(kuò)展編寫動(dòng)態(tài)生成 庫(kù),并將其函數(shù)實(shí)現(xiàn)按順序逐個(gè)加載進(jìn)入預(yù)留接口供使用。
9.根據(jù)權(quán)利要求4所述的綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,其特征在于,所述元數(shù)據(jù)集,數(shù)據(jù)點(diǎn)類型包括類型標(biāo)識(shí)ID、類型名稱和對(duì)應(yīng)屬性列表;屬性類型包括所有涉及屬性的標(biāo)識(shí)ID、數(shù)據(jù)類型和屬性名稱。
全文摘要
本發(fā)明公開了一種綜合監(jiān)控系統(tǒng)中歷史數(shù)據(jù)存儲(chǔ)控制方法,存儲(chǔ)控制器主要包括數(shù)據(jù)點(diǎn)索引、數(shù)據(jù)點(diǎn)矩陣、存儲(chǔ)控制信息體結(jié)構(gòu)、算法池以及元數(shù)據(jù)集五個(gè)部分組成;與外部程序的數(shù)據(jù)接口主要包括作為入口的實(shí)時(shí)生數(shù)據(jù)及用于與外部控制命令交互的數(shù)據(jù)緩沖區(qū)、作為出口的待寫進(jìn)存儲(chǔ)介質(zhì)的熟數(shù)據(jù)緩沖區(qū),數(shù)據(jù)流包括生產(chǎn)數(shù)據(jù)流和交互數(shù)據(jù)流,統(tǒng)一采用格式化的數(shù)據(jù)包實(shí)現(xiàn)與外部程序的數(shù)據(jù)流交互,方案實(shí)現(xiàn)包括以下幾個(gè)方面開發(fā)平臺(tái)、接口規(guī)范、數(shù)據(jù)格式、配置信息。
文檔編號(hào)G06F17/30GK102968438SQ201210372220
公開日2013年3月13日 申請(qǐng)日期2012年9月29日 優(yōu)先權(quán)日2012年9月29日
發(fā)明者朱超, 翁元, 包德梅, 朱恩云 申請(qǐng)人:南京國(guó)電南自軌道交通工程有限公司