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