許萬晨
大慶油田信息技術(shù)公司物聯(lián)網(wǎng)分公司,黑龍江大慶 163000
在當(dāng)前數(shù)據(jù)環(huán)境之下,網(wǎng)絡(luò)和計(jì)算機(jī)數(shù)據(jù)技術(shù)的深入發(fā)展與應(yīng)用,成為了推動工業(yè)環(huán)境安全以及控制體系朝向縱深延展的重要力量。進(jìn)一步體現(xiàn)在過程控制中,就是以組態(tài)軟件作為突出代表的監(jiān)督與控制體系的建立,而在這樣的體系中,實(shí)時數(shù)據(jù)庫的應(yīng)用發(fā)揮著至關(guān)重要的價值。
實(shí)時數(shù)據(jù)庫在組態(tài)軟件環(huán)境中,與歷史數(shù)據(jù)庫以及其他告警、趨勢曲線分析等一同作用,形成最為核心的數(shù)據(jù)庫體系。進(jìn)一步對相應(yīng)的應(yīng)用需求展開分析,可以發(fā)現(xiàn)實(shí)時數(shù)據(jù)庫所面臨的核心問題,在于如何通過自身工作效率的提升,實(shí)現(xiàn)數(shù)據(jù)呈現(xiàn)的實(shí)時特征,并且同時確保數(shù)據(jù)在多個上位機(jī)端呈現(xiàn)的一致性和準(zhǔn)確性。從功能的角度看,實(shí)時數(shù)據(jù)庫作為工業(yè)控制系統(tǒng)中關(guān)鍵的數(shù)據(jù)管理與共享體系,除了必須要求能夠有效地面向各種下位機(jī)現(xiàn)場數(shù)據(jù)的采集,為應(yīng)用程序提供統(tǒng)一穩(wěn)定的數(shù)據(jù)平臺以外,還應(yīng)當(dāng)不斷深入數(shù)據(jù)的存儲和管理工作細(xì)節(jié),關(guān)注數(shù)據(jù)的處理效率和一致性鎖定等環(huán)節(jié)。除此以外,必要的開放性也是組態(tài)體系的必然要求,標(biāo)準(zhǔn)化的接口和更好的兼容特征,同樣成為實(shí)時數(shù)據(jù)庫未來發(fā)展的必然要求。
在這樣的需求環(huán)境之下,一個典型的實(shí)時數(shù)據(jù)庫結(jié)構(gòu)參見圖1。
圖1 典型的實(shí)時數(shù)據(jù)庫結(jié)構(gòu)圖
在整個系統(tǒng)中,虛線框內(nèi)為數(shù)據(jù)庫核心,其兩端分別與數(shù)據(jù)采集和服務(wù)接口相連。其中數(shù)據(jù)采集接口進(jìn)一步與數(shù)據(jù)前端,諸如分布式控制系統(tǒng)(DCS,Distributed Control System)以及可編程邏輯控制器(PLC,Programmable Logic Controller)和相關(guān)工作現(xiàn)場的儀表設(shè)備等。而服務(wù)接口則進(jìn)一步與應(yīng)用系統(tǒng)保持聯(lián)系,主要是工業(yè)控制用的各類程序,諸如工控組態(tài)、實(shí)時優(yōu)化以及各種數(shù)據(jù)統(tǒng)計(jì)和顯示軟件等。同時應(yīng)用程序通過服務(wù)接口模塊間接調(diào)用包括告警、顯示以及現(xiàn)場控制等相關(guān)組態(tài)功能部分,實(shí)現(xiàn)具體的職能。
對于實(shí)時數(shù)據(jù)庫的實(shí)現(xiàn)技術(shù)體系而言,實(shí)時性、容錯性以及穩(wěn)定性都是其必須要做到的重要特征,為了保證這些特征的實(shí)現(xiàn),在實(shí)時數(shù)據(jù)庫體系中涉及到多個方面的核心技術(shù),包括組件化的模塊設(shè)計(jì)、被動式內(nèi)核結(jié)構(gòu)等,但是對于實(shí)時數(shù)據(jù)庫而言,最為核心和關(guān)鍵的技術(shù),仍然是高效的數(shù)據(jù)存取技術(shù)。
高效數(shù)據(jù)存取技術(shù),在實(shí)時數(shù)據(jù)庫系統(tǒng)中表現(xiàn)為一個技術(shù)簇,其中包括多個方面,快速位號檢索、訪問同步及數(shù)據(jù)共享、高速數(shù)據(jù)讀寫等技術(shù),是其中的突出表現(xiàn)。多項(xiàng)技術(shù)共同保證整個實(shí)時數(shù)據(jù)庫體系的高效特征。
快速位號檢索主要用于實(shí)現(xiàn)在海量位號中快速定位指定目標(biāo)。在實(shí)際對于數(shù)據(jù)進(jìn)行讀取的時候,大量外圍業(yè)務(wù)和應(yīng)用會對存取位號提出頻繁要求,并且CPU的工作能力會因此而被占用。在工控領(lǐng)域中,通常采用字符串作為位號,但是這進(jìn)一步加劇了處理速度的問題。因此實(shí)時數(shù)據(jù)庫為每個組態(tài)位號分配一個ID,用以實(shí)現(xiàn)高速檢索。同時實(shí)時數(shù)據(jù)庫系統(tǒng)采用了雙索引結(jié)構(gòu),主索引數(shù)據(jù)結(jié)構(gòu)為平衡二叉樹,以ID作為標(biāo)志,并且葉節(jié)點(diǎn)為指向位號實(shí)例的指針;副主索引的數(shù)據(jù)結(jié)構(gòu)為可擴(kuò)展線性數(shù)組,以位號的索引號作為數(shù)組下標(biāo),數(shù)組單元內(nèi)容為指向位號實(shí)例的指針。通過這樣的機(jī)制,結(jié)合ID的回收利用機(jī)制,實(shí)現(xiàn)對于位號的快速檢索。
在工控環(huán)境中,實(shí)時數(shù)據(jù)庫必然會面臨大量的并發(fā)訪問,如何有效處理這些并發(fā)訪問,確保及時反映,也是實(shí)時數(shù)據(jù)庫面臨的重要問題之一。與此同時,大量的數(shù)據(jù)更新,同樣也是對于實(shí)時數(shù)據(jù)庫的一種并發(fā)訪問需求體現(xiàn),同樣需要有所響應(yīng),并且還需要進(jìn)一步將更新的數(shù)據(jù)結(jié)果反饋給應(yīng)用領(lǐng)域。對此,實(shí)時數(shù)據(jù)庫負(fù)責(zé)數(shù)據(jù)服務(wù)的內(nèi)核模塊采用了COM的MTA模式,對于多客戶端的并發(fā)訪問能夠?qū)崿F(xiàn)有效支持。并且實(shí)時數(shù)據(jù)庫還會依據(jù)數(shù)據(jù)源對位號展開分組,并且組內(nèi)持有共享鎖,可以實(shí)現(xiàn)數(shù)據(jù)的同步與鎖定,避免因?yàn)榇罅吭L問和讀寫而造成的數(shù)據(jù)混亂。
高速數(shù)據(jù)讀寫同樣是支持實(shí)時數(shù)據(jù)庫高速運(yùn)行的核心技術(shù)之一。在讀寫的過程中,必然存在有必要的數(shù)據(jù)量需要留駐在內(nèi)存環(huán)境中,但是內(nèi)存本身的物理容量又限制了其留駐數(shù)據(jù)的總量。針對此種情況,實(shí)時數(shù)據(jù)庫系統(tǒng)會考察不同數(shù)據(jù)的訪問頻率,以數(shù)據(jù)挖掘的總體思路來實(shí)現(xiàn)頻繁訪問數(shù)據(jù)的內(nèi)存策略,并且進(jìn)一步為了提升歷史數(shù)據(jù)的存取效率,采用對應(yīng)的組態(tài)緩沖技術(shù),不斷實(shí)現(xiàn)存取速度的優(yōu)化。
實(shí)時數(shù)據(jù)庫對于工控工作環(huán)境而言意義重大,其工作效率更是成為眾多技術(shù)中的核心問題。實(shí)際工作中唯有時時關(guān)注技術(shù)發(fā)展,切實(shí)分析實(shí)際環(huán)境需求,才能選擇良好的策略,推動整個組態(tài)軟件體系的發(fā)展。
[1]王荃,壘壹,李福中.工控組態(tài)軟件實(shí)時數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2000,27(3).
[2]周東球.先進(jìn)控制軟件系統(tǒng)實(shí)時數(shù)據(jù)庫的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2003,19(10).