欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法和裝置的制作方法

文檔序號:6321325閱讀:244來源:國知局
專利名稱:一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及工業(yè)自動化控制技術(shù)領(lǐng)域,更具體地說,涉及一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法和裝置。
背景技術(shù)
目前,DCS (Distributed Control System,分布式控制系統(tǒng))已經(jīng)廣泛應(yīng)用于核 電、火電、化工等領(lǐng)域。在利用DCS進(jìn)行管理控制的過程中所產(chǎn)生的歷史數(shù)據(jù)在整個操作過程中具有很 重要的作用。對這些歷史數(shù)據(jù)的處理通常通過數(shù)據(jù)庫執(zhí)行?,F(xiàn)有技術(shù)中,目前普遍的做法 是采用專用程序和專業(yè)數(shù)據(jù)庫軟件對歷史數(shù)據(jù)執(zhí)行管理。其實現(xiàn)過程是在進(jìn)行歷史數(shù)據(jù) 存儲數(shù)據(jù)時,由專用程序負(fù)責(zé)數(shù)據(jù)的處理過程,然后把完成處理的且需要存儲的數(shù)據(jù)放入 專業(yè)數(shù)據(jù)庫中;當(dāng)需要進(jìn)行歷史數(shù)據(jù)查詢時,從專業(yè)數(shù)據(jù)庫中,按照關(guān)鍵字檢索數(shù)據(jù),然后 經(jīng)過專用程序處理后,返回給用戶。上述方法在很多商業(yè)數(shù)據(jù)庫和小型DCS控制系統(tǒng)中廣為采用。由于采用了專業(yè)數(shù) 據(jù)庫,數(shù)據(jù)通用性比較好,可以很好的和第三方系統(tǒng)進(jìn)行交互。但是,通過發(fā)明人的研究發(fā)現(xiàn),現(xiàn)有技術(shù)中仍然存在著以下缺點(diǎn)由于專業(yè)數(shù)據(jù)庫需要滿足各個應(yīng)用系統(tǒng)的應(yīng)用需要,因此,使用者通常會發(fā)現(xiàn)以 高昂的價格買了很多不需要的功能,數(shù)據(jù)庫系統(tǒng)比較龐大,容易由于專業(yè)數(shù)據(jù)庫的問題,導(dǎo) 致軟件故障;此外,在這樣的數(shù)據(jù)庫中,很難迅速定位問題,靈活性較差,就算能確認(rèn)是專業(yè) 數(shù)據(jù)的問題,問題被解決的周期也比較長。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法和裝置, 以便提高歷史數(shù)據(jù)處理的可靠性和高效性。本發(fā)明實施例提供一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法,所述方法包括采集分布式控制系統(tǒng)DCS中的實時變量數(shù)據(jù);利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存儲,并對依次存儲的 變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,當(dāng)利用其中一塊內(nèi)存進(jìn)行存儲時,將另一塊內(nèi)存中已 存儲的變量數(shù)據(jù)轉(zhuǎn)移至存儲磁盤。優(yōu)選的,所述將另一塊內(nèi)存中已存儲的變量數(shù)據(jù)轉(zhuǎn)移至存儲磁盤之后,所述方法 還包括將當(dāng)前轉(zhuǎn)移至存儲磁盤中的變量數(shù)據(jù)和已存儲在所述存儲磁盤中的歷史變量數(shù) 據(jù)進(jìn)行比較,如果變量數(shù)據(jù)攜帶的時間戳信息相同,則進(jìn)行數(shù)據(jù)合并、分類處理。優(yōu)選的,當(dāng)需要查詢已存儲的變量數(shù)據(jù)時,所述方法還包括判斷需要查詢的數(shù)據(jù)所屬的標(biāo)識信息;判斷內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù)中是否包括攜帶有該標(biāo)識信息的變量數(shù)據(jù),如果是,則先讀取內(nèi)存中攜帶有該標(biāo)識信息的變量數(shù)據(jù),然后讀取所述存儲磁盤 中攜帶有該標(biāo)識信息的變量數(shù)據(jù);根據(jù)變量數(shù)據(jù)中攜帶的標(biāo)識信息確定是否查詢到所有變量數(shù)據(jù)。優(yōu)選的,所述利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存儲,包 括按照預(yù)置時間間隔或預(yù)置內(nèi)存容量閾值,利用所述兩塊內(nèi)存交替對所述變量數(shù)據(jù) 進(jìn)行存儲。優(yōu)選的,所述方法還包括
當(dāng)所述磁盤的存儲空間達(dá)到預(yù)設(shè)的閾值時,自動刪除磁盤中存儲時間最長的歷史
變量數(shù)據(jù)。一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置,所述裝置包括數(shù)據(jù)采集單元,用于采集分布式控制系統(tǒng)DCS中的實時變量數(shù)據(jù);存儲單元,用于利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存儲, 并對依次存儲的變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,當(dāng)利用其中一塊內(nèi)存進(jìn)行存儲時,將 另一塊內(nèi)存中已存儲的變量數(shù)據(jù)轉(zhuǎn)移至存儲磁盤。優(yōu)選的,所述裝置還包括合并、分類處理單元,用于將當(dāng)前轉(zhuǎn)移至存儲磁盤中的變量數(shù)據(jù)和已存儲在所述 存儲磁盤中的歷史變量數(shù)據(jù)進(jìn)行比較,如果變量數(shù)據(jù)攜帶的標(biāo)識信息相同,則進(jìn)行數(shù)據(jù)合 并、分類處理。優(yōu)選的,所述裝置還包括第一判斷單元,用于判斷需要查詢的數(shù)據(jù)所屬的標(biāo)識信息;第二判斷單元,用于判斷內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù)中是否包括攜 帶有該標(biāo)識信息的變量數(shù)據(jù);讀取單元,用于當(dāng)內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù)中包括攜帶有該標(biāo)識 信息的變量數(shù)據(jù),則先讀取內(nèi)存中攜帶有該標(biāo)識信息的變量數(shù)據(jù),,然后讀取所述存儲磁盤 中攜帶有該標(biāo)識信息的變量數(shù)據(jù);第三判斷單元,用于根據(jù)變量數(shù)據(jù)中攜帶的標(biāo)識信息確定是否查詢到所有變量數(shù) 據(jù)。優(yōu)選的,所述存儲單元還包括存儲條件設(shè)置子單元,用于當(dāng)利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù) 據(jù)進(jìn)行存儲時,按照預(yù)置時間間隔或預(yù)置內(nèi)存容量閾值,利用所述兩塊內(nèi)存交替對所述變 量數(shù)據(jù)進(jìn)行存儲。優(yōu)選的,所述裝置還包括磁盤整理單元,用于當(dāng)所述磁盤的存儲空間達(dá)到預(yù)設(shè)的閾值時,自動刪除磁盤中 存儲時間最長的歷史變量數(shù)據(jù)。同現(xiàn)有技術(shù)相比,本發(fā)明提供的技術(shù)方案通過內(nèi)存和磁盤相接合,并且最終的實 時變量數(shù)據(jù)是以磁盤文件的形式存儲,從而避免把大量的數(shù)據(jù)存放在內(nèi)存,既占用了系統(tǒng) 的大量資源,另外如果發(fā)生斷電等意外故障,數(shù)據(jù)丟失也越多的缺陷,提高了歷史數(shù)據(jù)處理 的可靠性;此外,通過在變量數(shù)據(jù)的存儲過程中為變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,便于在數(shù)據(jù)查詢過程中對變量數(shù)據(jù)的定位,從而方便判斷實時變量數(shù)據(jù)存儲中是否產(chǎn)生數(shù)據(jù)的 丟失。


為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實 施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖 獲得其他的附圖。圖1為本發(fā)明實施例提供的一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法流程示意 圖;圖2為本發(fā)明實施例提供的數(shù)據(jù)的采集和存儲線程示意圖;圖3為本發(fā)明實施例提供的一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置結(jié)構(gòu)示意 圖;圖4為本發(fā)明實施例提供的另一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置結(jié)構(gòu)示 意圖;圖5為本發(fā)明實施例提供的第三種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置結(jié)構(gòu)示 意圖;圖6為本發(fā)明實施例提供的又一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置結(jié)構(gòu)示 意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護(hù)的范圍。首先對本發(fā)明提供的分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法進(jìn)行說明,參照圖1所 示,所述方法包括步驟101、采集分布式控制系統(tǒng)DCS中的實時變量數(shù)據(jù);步驟102、利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存儲,并對依 次存儲的變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,當(dāng)利用其中一塊內(nèi)存進(jìn)行存儲時,將另一塊 內(nèi)存中已存儲的變量數(shù)據(jù)轉(zhuǎn)移至存儲磁盤。本發(fā)明提供的技術(shù)方案通過內(nèi)存和磁盤相接合,并且最終的實時變量數(shù)據(jù)是以磁 盤文件的形式存儲,從而避免把大量的數(shù)據(jù)存放在內(nèi)存,既占用了系統(tǒng)的大量資源,另外如 果發(fā)生斷電等意外故障,數(shù)據(jù)丟失也越多的缺陷,提高了歷史數(shù)據(jù)處理的可靠性;此外,通 過在變量數(shù)據(jù)的存儲過程中為變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,便于在數(shù)據(jù)查詢過程中 對變量數(shù)據(jù)的定位,從而方便判斷實時變量數(shù)據(jù)存儲中是否產(chǎn)生數(shù)據(jù)的丟失。為了便于對存入硬盤的數(shù)據(jù)進(jìn)行管理,本發(fā)明實施例中,將當(dāng)前轉(zhuǎn)移至存儲磁盤 中的變量數(shù)據(jù)和已存儲在所述存儲磁盤中的歷史變量數(shù)據(jù)進(jìn)行按預(yù)置的合并條件進(jìn)行合 并、分類處理。預(yù)置的合并條件可設(shè)置為數(shù)據(jù)庫的版本級別以及變量數(shù)據(jù)中攜帶的時間戳信息ο如果硬盤中已存儲有攜帶有某種標(biāo)識信息,例如時間戳信息的變量數(shù)據(jù),則將當(dāng) 前變量數(shù)據(jù)轉(zhuǎn)存入硬盤時,通過判斷是否滿足合并條件,決定是否應(yīng)該將當(dāng)前剛剛轉(zhuǎn)存的 變量數(shù)據(jù)和硬盤中已存儲的變量數(shù)據(jù)進(jìn)行合并、分類處理。當(dāng)然,數(shù)據(jù)合并的前提條件是硬 盤中已存儲的變量數(shù)據(jù)和當(dāng)前需要轉(zhuǎn)存的變量數(shù)據(jù)屬于同一數(shù)據(jù)庫版本。當(dāng)滿足合并條件 時,則進(jìn)行兩部分?jǐn)?shù)據(jù)的合并及分類,例如將屬于同一數(shù)據(jù)庫版本且具有相同時間戳信息 的數(shù)據(jù)進(jìn)行合并,存入同一個文件中。如果硬盤中已存儲的數(shù)據(jù)以文件的形式進(jìn)行保存,通 過合并、分類處理,可以將相關(guān)的數(shù)據(jù)保存在同一個文件中,便于后續(xù)對硬盤中數(shù)據(jù)的查詢 讀取。否則,如果當(dāng)前轉(zhuǎn)存的變量數(shù)據(jù)不滿足合并條件時,則對已存儲的文件進(jìn)行重命名, 并進(jìn)行備份,新存入的數(shù)據(jù)將占用原來數(shù)據(jù)的文件名。本發(fā)明實施例中,當(dāng)需要讀取數(shù)據(jù)時,需要首先判斷需要查詢的數(shù)據(jù)所屬的標(biāo)識 信息;然后,判斷內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù)中是否包括攜帶有該標(biāo)識信息 的變量數(shù)據(jù),如果是,則先讀取內(nèi)存中攜帶有該標(biāo)識信息的變量數(shù)據(jù),然后讀取所述存儲磁 盤中攜帶有該標(biāo)識信息的變量數(shù)據(jù);并且,根據(jù)變量數(shù)據(jù)中攜帶的標(biāo)識信息確定是否查詢 到所有變量數(shù)據(jù)。仍以標(biāo)識信息中的時間戳信息為例,由于內(nèi)存中很可能仍存儲有未轉(zhuǎn)存至硬盤的 數(shù)據(jù),需先判斷查詢時間段,即查詢數(shù)據(jù)所屬的時間段,并根據(jù)變量數(shù)據(jù)攜帶的時間戳信息 判斷當(dāng)前內(nèi)存中是否留有屬于該時間段的變量數(shù)據(jù),如果內(nèi)存時包括了該時間段的變量數(shù) 據(jù),則需要先讀取內(nèi)存中屬于該時間段的且未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù),然后讀取 所述存儲磁盤中屬于該時間段的變量數(shù)據(jù);根據(jù)變量數(shù)據(jù)中攜帶的時間戳信息確定是否查 詢到所有屬于該時間段內(nèi)變量數(shù)據(jù)。由于每次變量數(shù)據(jù)在內(nèi)存中存儲時,都被分配有以示區(qū)分的標(biāo)識信息,因此,在數(shù) 據(jù)讀取過程中,通過統(tǒng)計計算所讀取的數(shù)據(jù)中攜帶的標(biāo)識信息,可以確定是否查詢到所有
變量數(shù)據(jù)。此外,本發(fā)明實施例中的預(yù)置存儲規(guī)則根據(jù)實際應(yīng)用場景,可以規(guī)定為按照預(yù)置 時間間隔或預(yù)置內(nèi)存容量閾值,利用所述兩塊內(nèi)存交替對所述變量數(shù)據(jù)進(jìn)行存儲。例如當(dāng) 存儲規(guī)則規(guī)定時間間隔時,則利用第一塊內(nèi)存進(jìn)行規(guī)定時間內(nèi)的數(shù)據(jù)存儲,到存儲時間到 達(dá)規(guī)定時間時,啟用另一塊內(nèi)存,接著由另一塊內(nèi)存進(jìn)行數(shù)據(jù)存儲,此時,第一塊內(nèi)存將其 存儲的數(shù)據(jù)轉(zhuǎn)存入硬盤;當(dāng)?shù)诙K內(nèi)存的存儲時間到達(dá)規(guī)定時間時,再由第一塊內(nèi)存進(jìn)行 數(shù)據(jù)存儲,同時,由第二塊內(nèi)存將其存儲的數(shù)據(jù)轉(zhuǎn)存入硬盤;依次類推。同理,預(yù)置內(nèi)存容量 閾值時,則當(dāng)其中一塊內(nèi)存的存儲量到達(dá)預(yù)置內(nèi)存容量閾值時,啟用另一塊內(nèi)存進(jìn)行數(shù)據(jù) 存儲,同時,將存儲量到達(dá)預(yù)置內(nèi)存容量閾值的內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存入硬盤中。當(dāng)然,具體的 時間間隔和容量閾值可以根據(jù)實際應(yīng)用進(jìn)行合理設(shè)置,本發(fā)明對此不做具體限定。由于最后的變量數(shù)據(jù)都是存儲在硬盤中,為了避免硬盤因為存儲量已滿使得新的 數(shù)據(jù)存儲失敗從而導(dǎo)致數(shù)據(jù)丟失,可以為硬盤設(shè)置存儲空間預(yù)置,當(dāng)硬盤的存儲空間達(dá)到 預(yù)設(shè)的閾值時,自動刪除磁盤中存儲時間最長的歷史變量數(shù)據(jù)。從而,保證硬盤中始終存在 有足夠的存儲空間。為了便于對本發(fā)明進(jìn)一步的理解,下面仍以分布式控制系統(tǒng)中的歷史數(shù)據(jù)庫為 例,結(jié)合該歷史數(shù)據(jù)庫的具體實施方式
對本發(fā)明進(jìn)行詳細(xì)描述。
在分布式控制系統(tǒng)中,產(chǎn)生的實時變量數(shù)據(jù)通常包括實時模擬量數(shù)據(jù)和實時開關(guān) 量數(shù)據(jù)。此外,分布式控制系統(tǒng)中的歷史數(shù)據(jù)庫是多線程處理系統(tǒng)。所謂線程是一組指令 的集合,或者是程序的特殊段,它可以在程序里獨(dú)立執(zhí)行,也可以把它理解為代碼運(yùn)行的上 下文。所以線程基本上是輕量級的進(jìn)程,它負(fù)責(zé)在單個程序里執(zhí)行多任務(wù)。通常由操作系 統(tǒng)負(fù)責(zé)多個線程的調(diào)度和執(zhí)行。多線程是這樣一種機(jī)制,它允許在程序中并發(fā)執(zhí)行多個指令流,每個指令流都稱 為一個線程,彼此間互相獨(dú)立。多線程和進(jìn)程一樣擁有獨(dú)立的執(zhí)行控制,由操作系統(tǒng)負(fù)責(zé)調(diào) 度。多線程是多任務(wù)的特殊形式。通常,有兩種類型的多任務(wù)基于進(jìn)程和基于線程的多任 務(wù)。進(jìn)程本質(zhì)上是正在執(zhí)行的程序。因此,基于進(jìn)程的多任務(wù)就是允許計算機(jī)同時運(yùn)行兩個或者更多程序的特性。例 如,基于進(jìn)程的多任務(wù)允許使用電子制表軟件或者瀏覽Internet的同時運(yùn)行文字處理程 序。在基于進(jìn)程的多任務(wù)中,程序是調(diào)度程序可以分派的最小代碼單元。多線程是為了使 得多個線程并行的工作以完成多項任務(wù),以提高系統(tǒng)的效率。線程是在同一時間需要完成 多項任務(wù)的時候被實現(xiàn)的。歷史數(shù)據(jù)庫從功能上進(jìn)行劃分,可以分為實時變量數(shù)據(jù)的采集存儲和歷史變量數(shù) 據(jù)查詢兩大部分。從版本上,歷史庫數(shù)據(jù)庫提供了離線歷史庫版本和在線歷史庫兩大版本。 離線版本與在線版本的區(qū)別是離線版本沒有變量數(shù)據(jù)收集功能,只有數(shù)據(jù)查詢功能。所以 它占的操作系統(tǒng)的資源比較少,對環(huán)境的依賴性也小。當(dāng)在現(xiàn)場環(huán)境受限制的情況下,用戶 可以通過拷貝存儲的歷史數(shù)據(jù),在離線版本下分析數(shù)據(jù)。此外特別適用于當(dāng)研發(fā)人員不在 現(xiàn)場時,也可通過工程人員提供的現(xiàn)場歷史數(shù)據(jù),真實還原現(xiàn)場的問題的情況,分析數(shù)據(jù), 排除故障。歷史數(shù)據(jù)庫是多線程結(jié)構(gòu),為數(shù)據(jù)庫中的每個主要功能各分配一個線程進(jìn)行相應(yīng) 的數(shù)據(jù)處理,多線程之間協(xié)同工作,在保證數(shù)據(jù)處理高效率的同時,也易于數(shù)據(jù)庫的維護(hù)。本發(fā)明實施例中,歷史數(shù)據(jù)庫的主要線程包括(1)變量數(shù)據(jù)采集相關(guān)的線程,主要包括模擬量數(shù)據(jù)收集線程,開關(guān)量數(shù)據(jù)收集 線程,模擬量數(shù)據(jù)存盤線程,開關(guān)量數(shù)據(jù)存盤線程;(2)對外服務(wù)線程,主要包括通過對外的API (Application Programminglnterface,應(yīng)用程序編程接口)提供數(shù)據(jù)查詢等其它服務(wù),可以根據(jù)實際項目 需求,配置服務(wù)線程的個數(shù)和各個線程的數(shù)據(jù)空間,還包括FTP (File TransferProtocol, 文件傳輸協(xié)議)服務(wù)線程,同樣,F(xiàn)TP服務(wù)線程也是可以配置的。歷史數(shù)據(jù)庫對外提供豐富接口,大多數(shù)API接口已被封裝成COM接口,支持VB腳 本語言,對歷史數(shù)據(jù)庫的訪問。VB簡單的語言和語法結(jié)構(gòu),方便工程人員學(xué)習(xí)和擴(kuò)展應(yīng)用功 能。同時提供FTP服務(wù),可以上傳和下載文件。DCS系統(tǒng)的其他模塊,可以把需要存儲的文 件,發(fā)送給歷史數(shù)據(jù)庫存儲??梢?,本發(fā)明實施例中開放的服務(wù)API設(shè)計,擴(kuò)展系統(tǒng)API非常容易,可以很容易 配置服務(wù)的并發(fā)數(shù)量和訪問數(shù)據(jù)大小。(3)其他輔助線程,例如主從數(shù)據(jù)對齊線程,磁盤空間維護(hù)線程。通常,在線歷史數(shù)據(jù)庫是冗余的設(shè)計,分為一個主歷史數(shù)據(jù)庫和一個從歷史數(shù)據(jù) 庫。系統(tǒng)服務(wù)是基于FLRPC(輕量級遠(yuǎn)程過程調(diào)用)的設(shè)計,F(xiàn)LRPC是按照RPC(遠(yuǎn)程過程調(diào)用)協(xié)議的思想,自行設(shè)計的,滿足工控需要的協(xié)議)。由于通訊協(xié)議是自行設(shè)計,可以靈 活設(shè)置服務(wù)并發(fā)訪問的數(shù)據(jù),并且可以配置各個訪問線程的數(shù)據(jù)空間大小。另外基于該協(xié) 議,可以比較容易設(shè)計一主一從的歷史數(shù)據(jù)庫服務(wù)器。主從的切換也是協(xié)議自動根據(jù)網(wǎng)絡(luò) 狀態(tài)進(jìn)行切換。在正常的情況下,主歷史數(shù)據(jù)庫處于工作狀態(tài),從歷史數(shù)據(jù)庫處于準(zhǔn)備工作 狀態(tài),雖然處于準(zhǔn)備工作狀態(tài),但設(shè)計上保證主從歷史數(shù)據(jù)庫的數(shù)據(jù)是一致的。如果主歷史 數(shù)據(jù)庫發(fā)生故障,從歷史數(shù)據(jù)庫可馬上改變?yōu)楣ぷ鳡顟B(tài),兩臺歷史數(shù)據(jù)庫的切換所需時間 可以控制在3s以內(nèi)。當(dāng)主歷史數(shù)據(jù)庫收集到新的變量數(shù)據(jù),主從數(shù)據(jù)文件對齊維護(hù)線程都 會啟用,對主從歷史數(shù)據(jù)庫中已經(jīng)存盤的數(shù)據(jù)進(jìn)行比較,將主歷史數(shù)據(jù)庫收集到的新的變 量數(shù)據(jù)同時發(fā)送給從歷史數(shù)據(jù)庫,保持兩者數(shù)據(jù)的一致性。下面結(jié)合圖2,分別說明數(shù)據(jù)采集相關(guān)線程中的模擬量數(shù)據(jù)的采集和存儲線程以及開關(guān)量數(shù)據(jù)的采集和存儲線程。對于模擬量數(shù)據(jù)的采集和存儲來說,首先,工程師站下裝模擬量點(diǎn)名項名表到歷 史數(shù)據(jù)庫;工程師站主要是工程人員對數(shù)據(jù)庫點(diǎn)的添加修改,以及組態(tài)各種工業(yè)控制流程圖 等。工程師站組態(tài)完編譯后,會下裝給歷史數(shù)據(jù)庫啟動所需要的文件,這些文件包括了歷史 數(shù)據(jù)庫需要進(jìn)行數(shù)據(jù)采集的點(diǎn)項名信息,點(diǎn)項名就是數(shù)據(jù)庫中點(diǎn)的名字。一個數(shù)據(jù)庫點(diǎn)可 以有很多項,例如AV代表當(dāng)前值,MU代表量程上限,MD代表量程下限;歷史數(shù)據(jù)庫從模擬量點(diǎn)項名文件讀取各個點(diǎn)項的采集周期。歷史數(shù)據(jù)庫依照采集 周期,把點(diǎn)項名分為各個注冊組,向?qū)崟r庫進(jìn)行注冊,所謂采集周期即指多長時間采集一次 實時數(shù)據(jù)的值。實時庫給每個注冊組分配一個組號。需要說明的是,歷史數(shù)據(jù)庫與實時數(shù)據(jù)庫是密切相關(guān)的。歷史數(shù)據(jù)庫的數(shù)據(jù)都是 來自實時數(shù)據(jù)庫的,數(shù)據(jù)包括實時數(shù)據(jù)庫主動發(fā)送給歷史數(shù)據(jù)庫的開關(guān)量數(shù)據(jù);歷史數(shù) 據(jù)庫定時主動向?qū)崟r數(shù)據(jù)庫請求的模擬量數(shù)據(jù)。本發(fā)明實施例中,采用按照預(yù)置時間間隔,利用所述兩塊內(nèi)存交替對模擬量數(shù)據(jù) 進(jìn)行存儲為例進(jìn)行說明。當(dāng)歷史數(shù)據(jù)庫初始啟動時,創(chuàng)建例如10分鐘存儲時間間隔的兩塊 內(nèi)存。10分鐘內(nèi)采集的模擬量數(shù)據(jù)存到其中一塊內(nèi)存中,當(dāng)?shù)竭_(dá)10分鐘的存儲時間時,進(jìn) 行內(nèi)存切換。另一塊內(nèi)存開始接收模擬量數(shù)據(jù)。原來那一塊內(nèi)存中的模擬量數(shù)據(jù)將轉(zhuǎn)存到 本地磁盤,并為轉(zhuǎn)存入硬盤的數(shù)據(jù)分配標(biāo)識信息,例如表示存儲順序的編號信息。開關(guān)量數(shù)據(jù)的采集與模擬量不同,模擬量是歷史數(shù)據(jù)庫按照組態(tài)的點(diǎn)項的采集周 期,主動請求實時數(shù)據(jù)庫的,數(shù)據(jù)量的大小是可以根據(jù)點(diǎn)項的個數(shù)和采集周期,進(jìn)行計算 的。但是開關(guān)量的數(shù)據(jù)是歷史數(shù)據(jù)庫被動接受的,有變位時由實時數(shù)據(jù)庫主動向歷史數(shù)據(jù) 庫發(fā)送。歷史數(shù)據(jù)庫根據(jù)下裝的開關(guān)量的點(diǎn)項名信息,對實時數(shù)據(jù)庫發(fā)送的變位信息進(jìn)行 過濾,由于開關(guān)量是歷史數(shù)據(jù)庫被動收集的,是有變位才收集的,不需要收集的變位或已經(jīng) 收集的重復(fù)變位信息進(jìn)行丟棄。當(dāng)然,對于哪些點(diǎn)項變位信息需要在歷史庫收集,已在實時 數(shù)據(jù)庫中進(jìn)行相關(guān)設(shè)置。仍采用按照預(yù)置時間間隔,利用所述兩塊內(nèi)存交替對模擬量數(shù)據(jù)進(jìn)行存儲為例進(jìn) 行說明。當(dāng)歷史數(shù)據(jù)庫初始啟動時,創(chuàng)建例如10分鐘存儲時間間隔的兩塊內(nèi)存。10分鐘內(nèi) 采集的開關(guān)量數(shù)據(jù)存到其中一塊內(nèi)存中,當(dāng)?shù)竭_(dá)10分鐘的存儲時間時,進(jìn)行內(nèi)存切換。另一塊內(nèi)存開始接收開關(guān)量數(shù)據(jù)。原來那一塊內(nèi)存中的開關(guān)量數(shù)據(jù)將轉(zhuǎn)存到本地磁盤,同樣為轉(zhuǎn)存入硬盤的數(shù)據(jù)分配標(biāo)識信息,例如表示存儲順序的編號信息。通常,存儲在磁盤中的數(shù)據(jù)以文件形式進(jìn)行存儲。對于開關(guān)量數(shù)據(jù)來說,其在文件 中是隊列模式,因此,先存入的數(shù)據(jù)存放于磁盤中偏移量小的地方;對于模擬量數(shù)據(jù),對應(yīng)每個點(diǎn)項的變量數(shù)據(jù)在邏輯上存放于硬盤中的同一個 區(qū)域。根據(jù)偏移量,硬盤中依次出現(xiàn)對應(yīng)第一個點(diǎn)項的數(shù)據(jù)區(qū)域,第二個點(diǎn)的數(shù)據(jù)區(qū)
域......需要說明的是,在對應(yīng)于第一個點(diǎn)項的數(shù)據(jù)區(qū)域,包括采集時間段內(nèi)對應(yīng)第
一個點(diǎn)項的所有N個采集值,分別是時間1的采集值,時間2的采集值,時間3的采集
值......時間N的采集值。因此,每個文件代表所有下裝模擬量點(diǎn)項在固定時間段的所有
變量數(shù)據(jù),如果模擬量下裝了 N個點(diǎn)項。則從文件開始到結(jié)束,分別是第一個點(diǎn)項數(shù)據(jù)區(qū), 第二個點(diǎn)項數(shù)據(jù)區(qū)......第N個點(diǎn)項數(shù)據(jù)區(qū)。因此,可以根據(jù)依次為文件分配的標(biāo)識信息,為每天的文件數(shù)據(jù)建立一個文件夾。 通過查找具體的文件夾和文件,迅速找到某一段時間所存儲的數(shù)據(jù)。除此之外,當(dāng)查詢服務(wù)線程啟動后,歷史數(shù)據(jù)庫響應(yīng)外部的查詢請求,開始對磁盤 中存儲的變量數(shù)據(jù)進(jìn)行查詢。對于模擬量數(shù)據(jù),首先將磁盤中的數(shù)據(jù)文件加載到內(nèi)存;通常,模擬量數(shù)據(jù)文件的 設(shè)計是規(guī)則的,現(xiàn)行設(shè)計中,只要是同一個版本的模擬量點(diǎn)項名下裝文件,那么對應(yīng)每個點(diǎn) 項名的數(shù)據(jù)在每個文件中的位置都是相同的,并且每個數(shù)據(jù)文件的大小也是相同的。因此, 找到相應(yīng)文件后,可以根據(jù)偏移量找到相應(yīng)的數(shù)據(jù)。對于開關(guān)量數(shù)據(jù),同樣先將數(shù)據(jù)文件加載到內(nèi)存,開關(guān)量數(shù)據(jù)存儲是按照隊列的 模擬,并且這些開關(guān)量點(diǎn)都是以鏈表的方式關(guān)聯(lián)的。本發(fā)明實施例通過對普通鏈表數(shù)據(jù)結(jié) 構(gòu)的變換使用,優(yōu)化查詢。鏈表是一種常見的重要的數(shù)據(jù)結(jié)構(gòu)。它是動態(tài)地進(jìn)行存儲分配 的一種結(jié)構(gòu)。它可以根據(jù)需要開辟內(nèi)存單元。鏈表是指將若干個數(shù)據(jù)項按一定的規(guī)則連 接起來的表,其中的數(shù)據(jù)項成為結(jié)點(diǎn)。鏈表有一個“頭指針”變量,以head表示,它存放一 個地址。該地址指向一個元素。鏈表中每一個元素稱為“結(jié)點(diǎn)”,每個結(jié)點(diǎn)都應(yīng)包括兩個部 分一為用戶需要用的實際數(shù)據(jù),二為下一個結(jié)點(diǎn)的地址。因此,head指向第一個元素第
一個元素又指向第二個元素;......,直到最后一個元素,該元素不再指向其它元素,它稱
為“表尾”,它的地址部分放一個“NULL”(表示“空地址”),鏈表到此結(jié)束。本發(fā)明實施例 中的鏈接從物理的存儲上看是一個鏈接,但如果從數(shù)據(jù)解析上看是多個鏈接組合成的一個 大鏈接。例如有A、B、C、D四個點(diǎn),文件中存儲的開關(guān)量值隊列是:A1, Bi, B2, B3, A2,Cl, A3,Dl...這些變位在文件中的位置是連續(xù)的,每個變位所占的空間大小也是相同的。以點(diǎn) A為例,其中Al表示點(diǎn)A的第一次變位,A2表示點(diǎn)A的第二次變位,其他可依次類推。那么 在點(diǎn)A的某一次變位項中,均存儲它前一次變位時的數(shù)據(jù)偏移量,例如在A3的該次變位項 中,存儲它前一次變位A2的數(shù)據(jù)偏移量。由此可見,在一個數(shù)據(jù)文件中只要知道點(diǎn)A的最 后一次變位的偏移量,就可以在整個文件中,將點(diǎn)A的所有變位都找出來,從而達(dá)到快速檢 索所有開關(guān)量數(shù)據(jù)的功能??梢?,本發(fā)明實施例中通過合理的數(shù)據(jù)結(jié)構(gòu)設(shè)計,使得對于數(shù)據(jù)的查詢效率進(jìn)一 步提尚。當(dāng)變量數(shù)據(jù)的存儲和查詢是同時進(jìn)行時,由于存儲和查詢操作都是對同一數(shù)據(jù)源進(jìn)行操作,因此應(yīng)保證在這兩種操作下數(shù)據(jù)的無損和一致性,同時應(yīng)滿足存儲和查詢的高效性。為了實現(xiàn)這一目的,本領(lǐng)域技術(shù)人員可以使用臨界區(qū)(Critical Section)、事件 (Event)來進(jìn)行各線程之間的協(xié)調(diào)工作。除此之外,本發(fā)明實施例中,利用多個先進(jìn)先出的循環(huán)隊列應(yīng)用結(jié)合多線程,形成 流水線處理機(jī)制。為每個需處理的數(shù)據(jù)類型建立一個合適大小的數(shù)據(jù)隊列,然后為每個數(shù) 據(jù)隊列建立一個相應(yīng)的線程。同時,保證一個線程只處理一個數(shù)據(jù)類型。另外,主線程負(fù)責(zé) 調(diào)度控制,子線程相互協(xié)作,形成流水線處理。當(dāng)DCS系統(tǒng)長年累月的穩(wěn)定運(yùn)行后,再大的磁盤空間,也會被填滿,這時如果不定 時清理磁盤空間,那么系統(tǒng)將會無法正常運(yùn)行。因此,本發(fā)明實施例中的歷史數(shù)據(jù)庫設(shè)置有 定時維護(hù)磁盤空間的線程。當(dāng)磁盤空間大小小于某個設(shè)定的值時,維護(hù)磁盤空間的線程會 自動刪除時間最長的數(shù)據(jù)。另外,實際應(yīng)用中的DCS系統(tǒng)中,還可以設(shè)置自動存檔任務(wù),自 動對歷史數(shù)據(jù)進(jìn)行存檔,例如刻錄成光盤保存數(shù)據(jù)。相應(yīng)上述分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法實施例,本發(fā)明還提供了一種分布 式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置,如圖3所示,所述裝置包括數(shù)據(jù)采集單元301,用于采集分布式控制系統(tǒng)DCS中的實時變量數(shù)據(jù);存儲單元302,用于利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存 儲,并對依次存儲的變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,當(dāng)利用其中一塊內(nèi)存進(jìn)行存儲時, 將另一塊內(nèi)存中已存儲的變量數(shù)據(jù)轉(zhuǎn)移至存儲磁盤??梢?,本發(fā)明實施例通過內(nèi)存和磁盤相接合,并且最終的實時變量數(shù)據(jù)是以磁盤 文件的形式存儲,從而避免把大量的數(shù)據(jù)存放在內(nèi)存,既占用了系統(tǒng)的大量資源,另外如果 發(fā)生斷電等意外故障,數(shù)據(jù)丟失也越多的缺陷,提高了歷史數(shù)據(jù)處理的可靠性;此外,通過 在變量數(shù)據(jù)的存儲過程中為變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,便于在數(shù)據(jù)查詢過程中對 變量數(shù)據(jù)的定位,從而方便判斷實時變量數(shù)據(jù)存儲中是否產(chǎn)生數(shù)據(jù)的丟失。所述存儲單元還可以包括存儲條件設(shè)置子單元,用于當(dāng)利用兩塊內(nèi)存交替按照 預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存儲時,按照預(yù)置時間間隔或預(yù)置內(nèi)存容量閾值,利用 所述兩塊內(nèi)存交替對所述變量數(shù)據(jù)進(jìn)行存儲。本發(fā)明實施例中的預(yù)置存儲規(guī)則根據(jù)實際應(yīng)用場景,可以規(guī)定為按照預(yù)置時間間 隔或預(yù)置內(nèi)存容量閾值,利用所述兩塊內(nèi)存交替對所述變量數(shù)據(jù)進(jìn)行存儲。例如當(dāng)存儲規(guī) 則規(guī)定時間間隔時,則利用第一塊內(nèi)存進(jìn)行規(guī)定時間內(nèi)的數(shù)據(jù)存儲,到存儲時間到達(dá)規(guī)定 時間時,啟用另一塊內(nèi)存,接著由另一塊內(nèi)存進(jìn)行數(shù)據(jù)存儲,此時,第一塊內(nèi)存將其存儲的 數(shù)據(jù)轉(zhuǎn)存入硬盤;當(dāng)?shù)诙K內(nèi)存的存儲時間到達(dá)規(guī)定時間時,再由第一塊內(nèi)存進(jìn)行數(shù)據(jù)存 儲,同時,由第二塊內(nèi)存將其存儲的數(shù)據(jù)轉(zhuǎn)存入硬盤;依次類推。同理,預(yù)置內(nèi)存容量閾值 時,則當(dāng)其中一塊內(nèi)存的存儲量到達(dá)預(yù)置內(nèi)存容量閾值時,啟用另一塊內(nèi)存進(jìn)行數(shù)據(jù)存儲, 同時,將存儲量到達(dá)預(yù)置內(nèi)存容量閾值的內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存入硬盤中。當(dāng)然,具體的時間間 隔和容量閾值可以根據(jù)實際應(yīng)用進(jìn)行合理設(shè)置,本發(fā)明對此不做具體限定。在本發(fā)明的另一個優(yōu)選實施例中,如圖4所示,所述裝置還包括合并、分類處理單元303,用于將當(dāng)前轉(zhuǎn)移至存儲磁盤中的變量數(shù)據(jù)和已存儲在所 述存儲磁盤中的歷史變量數(shù)據(jù)進(jìn)行比較,如果變量數(shù)據(jù)攜帶的標(biāo)識信息相同,則進(jìn)行數(shù)據(jù) 合并、分類處理。
為了便于對存入硬盤的數(shù)據(jù)進(jìn)行管理,本發(fā)明實施例中,將當(dāng)前轉(zhuǎn)移至存儲磁盤 中的變量數(shù)據(jù)和已存儲在所述存儲磁盤中的歷史變量數(shù)據(jù)進(jìn)行按預(yù)置的合并條件進(jìn)行合 并、分類處理。預(yù)置的合并條件可設(shè)置為數(shù)據(jù)庫的版本級別以及變量數(shù)據(jù)中攜帶的時間戳 fn息ο如果硬盤中已存儲有攜帶有某種標(biāo)識信息,例如時間戳信息的變量數(shù)據(jù),則將當(dāng) 前變量數(shù)據(jù)轉(zhuǎn)存入硬盤時,通過判斷是否滿足合并條件,決定是否應(yīng)該將當(dāng)前剛剛轉(zhuǎn)存的 變量數(shù)據(jù)和硬盤中已存儲的變量數(shù)據(jù)進(jìn)行合并、分類處理。當(dāng)然,數(shù)據(jù)合并的前提條件是硬 盤中已存儲的變量數(shù)據(jù)和當(dāng)前需要轉(zhuǎn)存的變量數(shù)據(jù)屬于同一數(shù)據(jù)庫版本。當(dāng)滿足合并條件 時,則進(jìn)行兩部分?jǐn)?shù)據(jù)的合并及分類,例如將屬于同一數(shù)據(jù)庫版本且具有相同時間戳信息 的數(shù)據(jù)進(jìn)行合并,存入同一個文件中。如果硬盤中已存儲的數(shù)據(jù)以文件的形式進(jìn)行保存,通 過合并、分類處理,可以將相關(guān)的數(shù)據(jù)保存在同一個文件中,便于后續(xù)對硬盤中數(shù)據(jù)的查詢 讀取。否則,如果當(dāng)前轉(zhuǎn)存的變量數(shù)據(jù)不滿足合并條件時,則對已存儲的文件進(jìn)行重命名, 并進(jìn)行備份,新存入的數(shù)據(jù)將占用原來數(shù)據(jù)的文件名。需要注意的是,數(shù)據(jù)查詢時,時間戳 和文件名必須是一一對應(yīng),才能實現(xiàn)查詢定位。此外,如圖5所示的另一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置中,所述裝置還 包括第一判斷單元304,用于判斷需要查詢的數(shù)據(jù)所屬的標(biāo)識信息;第二判斷單元305,用于判斷內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù)中是否包 括攜帶有該標(biāo)識信息的變量數(shù)據(jù);讀取單元306,用于當(dāng)內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù)中包括攜帶有該 標(biāo)識信息的變量數(shù)據(jù),則先讀取內(nèi)存中攜帶有該標(biāo)識信息的變量數(shù)據(jù),,然后讀取所述存儲 磁盤中攜帶有該標(biāo)識信息的變量數(shù)據(jù);第三判斷單元307,用于根據(jù)變量數(shù)據(jù)中攜帶的標(biāo)識信息確定是否查詢到所有變 量數(shù)據(jù)。本發(fā)明實施例中,當(dāng)需要讀取數(shù)據(jù)時,由于內(nèi)存中很可能仍存儲有未轉(zhuǎn)存至硬盤 的數(shù)據(jù),因此,需要先讀取內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù),然后讀取所述存儲磁 盤中的變量數(shù)據(jù);根據(jù)變量數(shù)據(jù)中攜帶的標(biāo)識信息確定是否查詢到所有變量數(shù)據(jù)。此外,圖6所示的又一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置中,所述裝置還包 括磁盤整理單元308,用于當(dāng)所述磁盤的存儲空間達(dá)到預(yù)設(shè)的閾值時,自動刪除磁盤 中存儲時間最長的歷史變量數(shù)據(jù)。由于最后的變量數(shù)據(jù)都是存儲在硬盤中,為了避免硬盤因為存儲量已滿使得新的 數(shù)據(jù)存儲失敗從而導(dǎo)致數(shù)據(jù)丟失,可以為硬盤設(shè)置存儲空間預(yù)置,當(dāng)硬盤的存儲空間達(dá)到 預(yù)設(shè)的閾值時,自動刪除磁盤中存儲時間最長的歷史變量數(shù)據(jù)。從而,保證硬盤中始終存在 有足夠的存儲空間。對于裝置實施例而言,由于其基本相應(yīng)于方法實施例,所以描述得比較簡單,相關(guān) 之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所 述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可 以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以 通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于計算機(jī)可讀取存儲介質(zhì) 中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為 磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機(jī)存儲記憶體(Random Access Memory, RAM)等。對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的 一般原理可以在不脫離本發(fā)明實施例的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此, 本發(fā)明實施例將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和 新穎特點(diǎn)相一致的最寬的范圍。
權(quán)利要求
一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法,其特征在于,所述方法包括采集分布式控制系統(tǒng)DCS中的實時變量數(shù)據(jù);利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存儲,并對依次存儲的變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,當(dāng)利用其中一塊內(nèi)存進(jìn)行存儲時,將另一塊內(nèi)存中已存儲的變量數(shù)據(jù)轉(zhuǎn)移至存儲磁盤。
2.根據(jù)權(quán)利要求1所述的分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法,其特征在于,所述將 另一塊內(nèi)存中已存儲的變量數(shù)據(jù)轉(zhuǎn)移至存儲磁盤之后,所述方法還包括將當(dāng)前轉(zhuǎn)移至存儲磁盤中的變量數(shù)據(jù)和已存儲在所述存儲磁盤中的歷史變量數(shù)據(jù)進(jìn) 行比較,如果變量數(shù)據(jù)攜帶的標(biāo)識信息相同,則進(jìn)行數(shù)據(jù)合并、分類處理。
3.根據(jù)權(quán)利要求1所述的分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法,其特征在于,當(dāng)需要 查詢已存儲的變量數(shù)據(jù)時,所述方法還包括判斷需要查詢的數(shù)據(jù)所屬的標(biāo)識信息;判斷內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù)中是否包括攜帶有該標(biāo)識信息的變量 數(shù)據(jù),如果是,則先讀取內(nèi)存中攜帶有該標(biāo)識信息的變量數(shù)據(jù),然后讀取所述存儲磁盤中攜 帶有該標(biāo)識信息的變量數(shù)據(jù);根據(jù)變量數(shù)據(jù)中攜帶的標(biāo)識信息確定是否查詢到所有變量數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法,其特征在于,所述利 用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存儲,包括按照預(yù)置時間間隔或預(yù)置內(nèi)存容量閾值,利用所述兩塊內(nèi)存交替對所述變量數(shù)據(jù)進(jìn)行 存儲。
5.根據(jù)權(quán)利要求1-4中任一項所述的分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法,其特征在 于,所述方法還包括當(dāng)所述磁盤的存儲空間達(dá)到預(yù)設(shè)的閾值時,自動刪除磁盤中存儲時間最長的歷史變量 數(shù)據(jù)。
6.一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置,其特征在于,所述裝置包括數(shù)據(jù)采集單元,用于采集分布式控制系統(tǒng)DCS中的實時變量數(shù)據(jù);存儲單元,用于利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存儲,并對 依次存儲的變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,當(dāng)利用其中一塊內(nèi)存進(jìn)行存儲時,將另一 塊內(nèi)存中已存儲的變量數(shù)據(jù)轉(zhuǎn)移至存儲磁盤。
7.根據(jù)權(quán)利要求6所述的分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置,其特征在于,所述裝 置還包括合并、分類處理單元,用于將當(dāng)前轉(zhuǎn)移至存儲磁盤中的變量數(shù)據(jù)和已存儲在所述存儲 磁盤中的歷史變量數(shù)據(jù)進(jìn)行比較,如果變量數(shù)據(jù)攜帶的標(biāo)識信息相同,則進(jìn)行數(shù)據(jù)合并、分 類處理。
8.根據(jù)權(quán)利要求6所述的分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置,其特征在于,所述裝 置還包括第一判斷單元,用于判斷需要查詢的數(shù)據(jù)所屬的標(biāo)識信息;第二判斷單元,用于判斷內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù)中是否包括攜帶有 該標(biāo)識信息的變量數(shù)據(jù);讀取單元,用于當(dāng)內(nèi)存中未轉(zhuǎn)移至所述存儲磁盤的變量數(shù)據(jù)中包括攜帶有該標(biāo)識信息 的變量數(shù)據(jù),則先讀取內(nèi)存中攜帶有該標(biāo)識信息的變量數(shù)據(jù),然后讀取所述存儲磁盤中攜 帶有該標(biāo)識信息的變量數(shù)據(jù);第三判斷單元,用于根據(jù)變量數(shù)據(jù)中攜帶的標(biāo)識信息確定是否查詢到所有變量數(shù)據(jù)。
9.根據(jù)權(quán)利要求6所述的分布式控制系統(tǒng)的歷史數(shù)據(jù)處理裝置,其特征在于,所述存 儲單元還包括存儲條件設(shè)置子單元,用于當(dāng)利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn) 行存儲時,按照預(yù)置時間間隔或預(yù)置內(nèi)存容量閾值,利用所述兩塊內(nèi)存交替對所述變量數(shù) 據(jù)進(jìn)行存儲。
10.根據(jù)權(quán)利要求6-9中任一項所述的分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法,其特征 在于,所述裝置還包括磁盤整理單元,用于當(dāng)所述磁盤的存儲空間達(dá)到預(yù)設(shè)的閾值時,自動刪除磁盤中存儲 時間最長的歷史變量數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種分布式控制系統(tǒng)的歷史數(shù)據(jù)處理方法和裝置,其中所述方法包括采集分布式控制系統(tǒng)DCS中的實時變量數(shù)據(jù);利用兩塊內(nèi)存交替按照預(yù)置存儲規(guī)則對所述變量數(shù)據(jù)進(jìn)行存儲,并對依次存儲的變量數(shù)據(jù)分配以示區(qū)分的標(biāo)識信息,當(dāng)利用其中一塊內(nèi)存進(jìn)行存儲時,將另一塊內(nèi)存中已存儲的變量數(shù)據(jù)轉(zhuǎn)移至存儲磁盤。通過本發(fā)明,能夠提高歷史數(shù)據(jù)處理的可靠性和高效性。
文檔編號G05B19/418GK101807073SQ20101015308
公開日2010年8月18日 申請日期2010年4月20日 優(yōu)先權(quán)日2010年4月20日
發(fā)明者施波, 王常力, 羅斌, 袁雪峰, 馬建新 申請人:杭州和利時自動化有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
泸定县| 沁源县| 东方市| 民丰县| 南郑县| 玉田县| 上饶县| 白沙| 冕宁县| 绩溪县| 南宫市| 嘉定区| 黄山市| 张家港市| 略阳县| 蓬溪县| 丰原市| 图片| 红桥区| 斗六市| 长葛市| 台州市| 蒲城县| 商丘市| 水城县| 宜州市| 汾阳市| 湘潭县| 明星| 防城港市| 铜川市| 四子王旗| 睢宁县| 穆棱市| 西乌珠穆沁旗| 柏乡县| 涪陵区| 东港市| 灌阳县| 外汇| 黄陵县|