熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 電網監控系統中實時數據庫的快速檢索

電網監控系統中實時數據庫的快速檢索

時間:2007-06-18 14:03:00來源:lijing

導語:?近年來,實時數據庫的研究已經成為現代數據庫的重要研究方向之一,在數據庫的研究領域受到了極大的關注。
1 引言 近年來,實時數據庫的研究已經成為現代數據庫的重要研究方向之一,在數據庫的研究領域受到了極大的關注。作為工控軟件的關鍵技術之一,實時數據庫在一些實時性要求較強的系統中發揮著十分重要的作用。實時數據庫適用于處理不斷更新且快速變化的數據,以及具有時間限制的事務。例如在電網監控系統中,常常需要在幾秒內刷新幾千甚至上萬種實時量和狀態量,同時,為保持監控畫面與現場狀態的一致性,還需要刷新相應的監控畫面。這就對實時數據庫的檢索效率提出了更高的要求。 2 影響檢索效率的因素 在實時數據庫系統中,數據的存取速度是影響檢索效率的主要瓶頸之一。在對計算機硬件的性能進行分析后可以確定,硬盤的存取速度大致為100Mb/s,如果頻繁的進行外存的存取操作,將會嚴重影響系統效率。其次是查找表的平均查找長度的影響,在大數據量的情況下,如果平均查找長度較大也會成為系統的瓶頸。同時由于數據處理的不可預知性,當某個數據的處理過程不能在規定的時間內完成時,還可能使實時數據庫中的數據失效或者遺漏一些重要的數據及事件,即會引起數據處理的滯后甚至沖突。 當然,隨著微電子技術的發展,大容量內存已經不是設想而成為事實。通過擴展內存可以把所有需要實時存取的數據放在內存中,而把實時數據庫中用于決策支持的歷史記錄,以及其他的一些派生數據(報警記錄、事故記錄等)存放在外存上的關系數據庫中,這在一定程度上可以緩解對速度的要求。但內存不可能無限制擴大,為此必須研究軟件上的方法。 3 基于向量的檢索 3.1 數據結構 在電網監控系統中實時數據庫需要保存從各個測控裝置采集上來的數據,用于實時監視和現場控制,并對監控點的情況進行報警和事故的判斷和分析。這些數據的存儲結構對查找表的平均查找長度有重要的影響。 根據向量(vector)檢索效率比較高的特點,本文采用了向量來組織這些數據,所形成的實時數據庫的存儲結構如圖1所示。其中,現場的每個監控點是由廠站名稱、監控點類型、和監控點名稱唯一確定的,每個監控點的狀態則通過多個參數來描述,這些參數通常是由現場值、報警標志、報警上下限、報警死區、工作狀態和一些統計量等組成。
3.2算法的實現 為了減小平均查找長度,該實時數據庫的排序和檢索可以按照如下算法實現: 1.廠站名稱的排序和檢索。根據廠站的數量一般都相對較少的特點,構造如下集合間的映射:map:{廠站名稱} {向量下標}其中,廠站名稱為鍵,向量下標為值,于是就可由廠站名稱直接得到該向量元素的下標,從而查找到該廠站。 2.監控點類型和監控點名稱的排序和檢索。針對監控點類型和監控點的名稱的數量相對都比較大的特點,采用hash表對它們進行排序。為了提高地址計算的效率,用直接定址法來構造哈希函數,采用鏈地址法來處理沖突。首先根據初始的數據確定哈希表的長度,一般情況下為了減少沖突,可以生成一個空向量使該向量的長度大于初始數據的長度,然后由給定的哈希函數和沖突處理函數把相應的監控點類型或監控點的名稱映射到向量的各個元素中。如果該向量表已經裝滿,只需要在該向量尾部中添加一個元素把新增的數據填充到該元素中,然后把該元素的下標放到鏈地址表中。 3.監控點參數的排序和檢索。電網監控系統中每個監控點對應現場中的一個裝置,所以監控點需要一些參數來反映該裝置的狀態,一般情況下,監控點的參數個數都不會太多。根據順序存儲和順序檢索在數據量比較少時,效率比較高的特點,采取順序存儲和順序檢索的方法來實現。并且根據檢索頻率來動態調整參數的位置,使檢索頻率高的參數位于向量的前部,檢索頻率低的參數位于向量的后部。 4.多線程技術的引入 在電網監控系統中,實時數據庫系統要實現現場的數據實時的更新,能夠根據現場的數據進行安全監視、現場模擬,對現場的數據根據用戶的設置的時間間隔進行保存,發生事故的監控點進行事故追憶等。如果這些功能全部由一個線程來完成,會因資源沖突等問題而影響處理效率。為此,我們采用了圖2所示的多線程結構。整個系統有通信線程、報警處理線程、寫歷史庫線程、寫磁盤線程、顯示監控線程和主界面線程組成。 通信線程主要負責實時數據庫和現場的通信。現場的各個測控裝置把采集來的數據送到各個端口,通信線程實時的掃描各個端口,通過各種規約轉換把現場采集來的生數據轉換為系統或用戶能夠理解的熟數據送到實時數據庫中,必要時把生數據也一同送到實時數據庫中,同時接受顯示監控線程傳來的各種控制和調節命令,并通過相應的通信規約轉換為測控裝置能夠識別的數據,送到底層裝置中去執行。通信線程還負責把需要保存的現場生數據、通信模塊的系統信息和故障信息寫入一緩沖區隊列中,交由另一線程來處理。 報警處理線程主要負責數據庫的實時掃描、報警和事故的判斷和處理。該線程由通信線程觸發,處理過程由圖3報警處理流程圖所示,當有數據寫入實時數據庫時就觸發該線程。為了防止報警和事故事件的遺漏,用全局變量 NoProccessCount來記錄在一個實時數據庫的掃描周期中現場值已經改變但未被處理的點數,用來bNew標志該點的現場值在該掃描周期中是否被改變。當通信線程寫實時數據庫時,置相應點的bNew標志為改變狀態,并把 NoProccessCount增1。當報警處理線程觸發后,首先在實時庫中查找到該點,
使NoProccessCount減1,置bNew為未改變狀態,進行報警和事故判斷。如果發生報警或事故則進行相應的處理,并把報警信息或事故追憶值寫入相應的緩沖區隊列中,由另一線程來處理。然后判斷NoProccessCount是否為0。如果為0表示實時數據庫中沒有要處理的點,該線程等待直到下一次被觸發。否則掃描下一個監控點,判斷該點的bNew是否處于改變狀態。若是,使bNew設為未改變狀態,NoProccessCount減1,進行報警和事故判斷。如果發生報警和事故進行相應的處理,然后判斷NoProccessCount的值。循環執行以上步驟,直到被結束事件觸發,該線程結束。 寫歷史庫線程主要負責把實時數據庫中的數據定時地保存到外存數據庫中。在電網監控系統中,允許用戶自定義歷史庫數據,即用戶可以定義要保存的狀態變化量和測量值以及保存的時間間隔。在實現時為提高效率,我們將所有需要保存歷史數據的監控點信息構成一個鏈表,在該鏈表中歷史庫接點的結構為: struct HistoryNode{ string stationName; string typeName; string pointName; time_t startTime; double intervalTime; struct HistoryNode *next; } ; 其中:stationName為該點的廠站名稱,typeName 為該點的類型,pointName為該點的名稱,startTime為上一次存入歷史庫的時間,intervalTime為寫入歷史庫的時間間隔。寫歷史庫線程實時對鏈表進行掃描,方法是:對鏈表中的每一個點,首先取系統時間與startTime比較,如果系統時間和startTime之差大于intervalTime,說明該點的寫歷史庫周期已到,這時由stationName、typeName、pointName構成索引在檢索實時數據庫,得到該點的值,并將其寫入相應緩沖區隊列中,然后由寫磁盤線程寫入外存數據庫,否則掃描下一個節點。 顯示監控線程主要負責現場實時模擬和現場控制。現場中的每個點在模擬畫面中都有相應的映像,該線程定時掃描畫面中每個映像點,根據映像點的廠站名稱、監控點類型、監控點名稱查找實時數據庫,得到該模擬點的值,并根據該值來改變畫面上模擬點的狀態或顯示該值。 主界面線程主要負責用戶的在線設置工作。該線程把用戶自定義的一些信息如歷史庫數據定義、報警允許定義、報警上下限定義等寫入實時數據庫中。同時還負責各種線程的管理工作。
寫磁盤線程主要負責把緩沖區隊列中的數據寫入外存,對于緩沖區隊列的讀寫引入了生產者—消費者模型,參見圖4。在該模型中分別有一個生產者(RP)和一個消費者(WP)兩個緩存池,其中通信進程、報警處理線程、寫歷史庫線程為生產者,寫磁盤線程為消費者,同一時刻對同一個緩存池的生產者和消費者要互斥地訪問。開始時,由生產者即通信進程、報警處理線程、寫歷史庫線程其中之一,負責先將兩個緩存池都充滿,當兩個緩存池都寫滿后,如果系統中還有新產生的數據,則擴大第二個緩沖池。然后把第一個緩沖池交給寫磁盤線程,并通知它可以讀取數據了,這是寫磁盤線程開始把第一個緩沖池的數據寫入外存中。當寫磁盤線程讀完一個緩存池后,把該緩沖池交給生產者線程,并通知生產者線程,該緩存池已空可以繼續接收數據了,然后,等待第二個緩沖池可讀時把該緩沖池中的數據寫入外存。這樣輪流的進行讀寫,使得通信進程、報警處理線程、寫歷史庫線程對數據的操作都是在內存中進行,可以大大提高處理的效率。
整個系統通過各個線程之間的相互協調來工作,各線程之間利用事件來觸發,可以避免因循環檢測而浪費系統效率。 4.結束語 與現存的實時數據庫的檢索方法相比,本文提出的兩種方法在減小表的平均查找長度和提高數據處理的速度方面取得了較好的效果。例如在文獻【15】和【16】中實時數據庫的存儲形式采用的是B-樹結構和順序結構。假定實時數據庫中數據項的個數為n,平均查找長度ASL。采用順序查找的方ASL=(n+1)/2;B-樹結構的平均查找長度 ,其中m為B-樹的階數。 而利用采用本文介紹的檢索方法時,在廠站名稱的檢索中,ASL=1;監控點類型和監控點的名稱的檢索中, ASL=1+α/2<=1.5(α<=1)。 在筆者開發的電網監控系統中,我們綜合運用了上述方法。經測試該實時數據庫在IBM APTIVA (Pentium III 550,128M內存,Windows 2000 Server)服務器上運行,當現場超過五千個監控點現場,數據通過串口以9600比特率與實時數據庫進行通信可達到的性能指標:與文獻【17】中三維力控的實時數據庫性能指標相比較如表1所示。
參考文獻 1 王荃,金海東,李福中。工控組態軟件實時數據庫系統的設計與實現 計算機應用 2000,1,6 2 劉云生, 易嵐,余利平。 一個實時數據模型。小型微型計算機系統 2000,5 3 湯子瀛,哲鳳屏,湯小丹。計算機操作系統。西安電子科技大學出版社 2001,8,1 4 嚴蔚敏,吳偉民。數據結構。清華大學出版社1999,7 5 Stanley Lippman等著, 潘愛民譯。 C++ Primer 。中國電力出版社 2002,5 6 DLG107-92, 500kv變電站微機監控系統設計技術規定,中國電力出版社,1992 7 DLG 5002-91,地區電網調度自動化設計技術規程,中國電力出版社,1991 8 DLG5002-92,電力系統調度自動化設計技術規程,中國電力出版社,1992 9 DL476-92 電力系統實時數據通信應用層協議,中國電力出版社,1992 10 楊玲.。實時數據庫概述,冶金自動化, 1996 ,3 11 談竹奎。一種遠動系統實時數據庫的構成,電力自動化設備,2002,1 12 周步祥,余小文。實時數據庫管理軟件的集成策略,計算機工程,1995,3 13 J. R. Haritsa, and K. Ramamritham. Real-Time Databases in the New Millenium Real-Time Systems, 2000 14 A. Datta, S. Mukherjee, P. Konana, I. Viguier, A. Bajaj. “Multiclass Transaction Scheduling and Overload Management in Firm Real-Time Database Systems”, Information Systems, vol.21, no. 1, 1996, pp. 29-54. 15 Haritsa J. and S. Seshadri . “Real-Time Index Concurrency Control”, IEEE Transactions on Knowledge and Data Engineering, 2000. 16 陶志祥,黃衛。實時數據庫技術在高速公路事件管理中的應用, 土木工程學報 2001,3 17 賀鵬輝。 FIX軟件在電力系統中的應用, 世界儀表與自動化 2002 18 馬國華。 監控組態軟件及其應用, 清華大學出版社 2001,8 作者簡介: 殷保坤(1975- )男 山東金鄉縣人,碩士,主要研究方向:實時監控,多媒體傳輸。 牛連強(1965- )男 遼寧蓋縣人,教授,主要研究方向:科學計算可視華,計算機仿真。 張勝男(1968- )女 副教授,主要研究方向:數據庫理論。 王曉東(1979- )男 河南南陽人 碩士,主要研究方向:電力監控系統,數字水印。

標簽:

點贊

分享到:

上一篇:基于泓格I-8811嵌入式控制器...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 嘉黎县| 枞阳县| 南部县| 大埔区| 关岭| 湘西| 宜川县| 佛冈县| 阜城县| 清河县| 安福县| 中江县| 玉门市| 诸暨市| 江陵县| 芦山县| 峨边| 博乐市| 嘉峪关市| 图木舒克市| 南汇区| 凉山| 枣庄市| 文安县| 福贡县| 东安县| 广宗县| 平湖市| 定日县| 霞浦县| 得荣县| 河北省| 绍兴市| 图们市| 晋中市| 阿克苏市| 宁化县| 彰武县| 武川县| 洪雅县| 娱乐|