• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      組態(tài)軟件中實時數(shù)據(jù)庫系統(tǒng)的研究與實現(xiàn)

      2014-03-08 05:46:09劉紅霞
      自動化與儀表 2014年5期
      關鍵詞:數(shù)據(jù)庫系統(tǒng)組態(tài)內(nèi)存

      劉紅霞,徐 磊

      (南京工業(yè)大學 電子與信息工程學院,南京 211816)

      組態(tài)軟件是用于數(shù)據(jù)采集與過程控制的專用軟件[1],在工業(yè)控制領域中有著重要的作用。實時數(shù)據(jù)庫系統(tǒng)作為組態(tài)軟件的核心,它保存著系統(tǒng)運行時產(chǎn)生的動態(tài)數(shù)據(jù)和系統(tǒng)正常運行所需的各種信息[2]。這些信息對管理層及時分析設備運行狀況、了解生產(chǎn)現(xiàn)場的實施情況、實現(xiàn)上層信息系統(tǒng)與地層控制系統(tǒng)的集成以及故障診斷都具有重要的意義。

      國外對實時數(shù)據(jù)庫系統(tǒng)的研究起步較早,代表產(chǎn)品有美國ASPEN-tech的Infoplus和OSI公司的PI等。目前國外實時數(shù)據(jù)庫產(chǎn)品占據(jù)了大部分的國內(nèi)市場份額,但對于大部分中小型企業(yè),他們無力承擔高額的費用。雖然國內(nèi)一些實時數(shù)據(jù)庫產(chǎn)品在價格上有一定優(yōu)勢,但在數(shù)據(jù)處理能力及速度、系統(tǒng)穩(wěn)定性存在一些不足。因此研發(fā)具有自主知識產(chǎn)權的實時數(shù)據(jù)庫系統(tǒng)具有重要意義,實時數(shù)據(jù)庫系統(tǒng)的設計與結構的開發(fā)也顯得尤為重要。

      本文結合作者的工程實踐,介紹了組態(tài)軟件實時數(shù)據(jù)庫系統(tǒng)及其特征,闡述了實時數(shù)據(jù)庫設計開發(fā)過程中的關鍵技術,在此基礎上提出了一套切實可行的實時數(shù)據(jù)庫設計方案,并進行了性能的驗證。

      1 組態(tài)軟件實時數(shù)據(jù)庫系統(tǒng)

      實時數(shù)據(jù)庫系統(tǒng)(RTDBMS)是傳統(tǒng)數(shù)據(jù)庫系統(tǒng)(DBMS)與實時處理技術在功能特性上的完善和無縫集成[3]。實時數(shù)據(jù)庫系統(tǒng)是指其事務和數(shù)據(jù)具有定時特性或顯示的定時限制的數(shù)據(jù)庫系統(tǒng)。系統(tǒng)的正確性不僅依賴于邏輯結果,還依賴于邏輯結果產(chǎn)生的時間[4]。與傳統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)一切為了保證結果的絕對性相反,實時數(shù)據(jù)庫系統(tǒng)將實時性看得比結果的準確性還要重要,經(jīng)常會通過折中和權衡數(shù)據(jù)的完全性、準確性、一致性來求得數(shù)據(jù)的及時性。

      實時數(shù)據(jù)庫系統(tǒng)作為組態(tài)軟件的核心,為組態(tài)軟件的上層管理模塊、歷史數(shù)據(jù)庫模塊等提供數(shù)據(jù)的實時管理功能。實時數(shù)據(jù)庫結構設計上的好壞直接影響到組態(tài)軟件開發(fā)的成敗。

      2 實時數(shù)據(jù)庫系統(tǒng)架構設計

      實時數(shù)據(jù)庫系統(tǒng)是整個組態(tài)軟件系統(tǒng)的核心部分,其它子系統(tǒng)圍繞實時數(shù)據(jù)庫系統(tǒng)運行。它在底層設備和上層管理系統(tǒng)之間起到數(shù)據(jù)采集和數(shù)據(jù)處理的作用。

      本文將實時數(shù)據(jù)庫系統(tǒng)分為3個子系統(tǒng),分別是用于實現(xiàn)數(shù)據(jù)庫配置工作的開發(fā)系統(tǒng)、用于運行環(huán)境的運行系統(tǒng)和實現(xiàn)數(shù)據(jù)采集管理的數(shù)據(jù)采集服務器。實時數(shù)據(jù)庫系統(tǒng)結構如圖1所示。

      開發(fā)系統(tǒng)實現(xiàn)實時數(shù)據(jù)庫系統(tǒng)的配置工作,是系統(tǒng)運行的前提。組態(tài)后會生成組態(tài)數(shù)據(jù)庫文件,該數(shù)據(jù)庫文件記錄了數(shù)據(jù)結構的信息,如系統(tǒng)變量點的數(shù)量、變量點的數(shù)據(jù)類型、畫面程序等,供實時數(shù)據(jù)庫運行系統(tǒng)的初始化模塊讀取。

      圖1 實時數(shù)據(jù)庫系統(tǒng)結構圖Fig.1 Real-time database system structure

      運行系統(tǒng)用于現(xiàn)場監(jiān)控,實時反映現(xiàn)場的生產(chǎn)狀況。運行系統(tǒng)作為實時數(shù)據(jù)庫系統(tǒng)的核心,實時地進行數(shù)據(jù)管理,運行系統(tǒng)以內(nèi)存數(shù)據(jù)庫為中心,其它子模塊協(xié)同工作,實現(xiàn)系統(tǒng)的管理。

      數(shù)據(jù)采集服務器是實時數(shù)據(jù)庫系統(tǒng)與底層控制設備進行直接交互的接口,主要由設備驅(qū)動管理、數(shù)據(jù)采集線程管理、本地緩沖區(qū)管理和數(shù)據(jù)同步管理4個子系統(tǒng)組成。數(shù)據(jù)采集服務器將采集的數(shù)據(jù)更新至實時數(shù)據(jù)庫,實時數(shù)據(jù)庫負責將報警、畫面顯示、歷史數(shù)據(jù)存儲等消息及時通知相應的子系統(tǒng)處理。

      各子系統(tǒng)采取一定的方式進行通信,共同協(xié)作完成系統(tǒng)功能。開發(fā)系統(tǒng)和運行系統(tǒng)以組態(tài)數(shù)據(jù)庫文件為基礎進行通信,實現(xiàn)由配置到運行的過程;數(shù)據(jù)采集服務器和運行系統(tǒng)之間通過數(shù)據(jù)同步線程和內(nèi)存數(shù)據(jù)庫的交互實現(xiàn)數(shù)據(jù)的同步更新。

      3 實時數(shù)據(jù)庫系統(tǒng)設計與實現(xiàn)

      3.1 實時數(shù)據(jù)庫開發(fā)系統(tǒng)

      開發(fā)系統(tǒng)由圖形用戶接口模塊、功能管理模塊、內(nèi)存管理模塊、核心功能管理模塊、導入導出模塊以及組態(tài)數(shù)據(jù)庫文件組成。

      數(shù)據(jù)是所有數(shù)據(jù)庫系統(tǒng)的基本組成單位。實時數(shù)據(jù)庫中的數(shù)據(jù)一共存在八種變量類型:IO離散型變量、IO整型變量、IO模擬型變量、IO字符串變量、內(nèi)存離散型變量、內(nèi)存整型變量、內(nèi)存模擬型變量和內(nèi)存字符串變量。本系統(tǒng)采用面向?qū)ο蟮脑O計思想,采用4種數(shù)據(jù)結構來表示上述8種數(shù)據(jù)類型,并且使用類中的一個成員變量來區(qū)分是IO變量還是內(nèi)存變量。

      組態(tài)數(shù)據(jù)庫文件用于保存實時數(shù)據(jù)庫系統(tǒng)的變量信息,本系統(tǒng)采用順序文件結構來存儲數(shù)據(jù)變量,并將數(shù)據(jù)庫文件分為:頭文件、記錄塊和結束標記。同時系統(tǒng)采用位置記錄緩沖區(qū)來避免在刪除變量時產(chǎn)生大量的磁盤讀寫操作。索引結構和基本數(shù)據(jù)緩沖區(qū)能夠快速定位變量,進行賦值等操作。同時采用了變量的刪除保護策略,防止因為變量被錯誤地刪除而使系統(tǒng)產(chǎn)生不可預計的錯誤。技術人員除了可以采用標準的圖形用戶接口來進行變量的配置,還可以使用Excel的方式對系統(tǒng)變量進行組態(tài),方便快捷。

      3.2 實時數(shù)據(jù)庫運行系統(tǒng)

      運行系統(tǒng)以開發(fā)系統(tǒng)為前提,根據(jù)組態(tài)數(shù)據(jù)庫文件進行系統(tǒng)的初始化工作。運行系統(tǒng)作為組態(tài)軟件的核心部分,負責數(shù)據(jù)的實施管理,包括事務的處理、并發(fā)控制、事件管理、歷史數(shù)據(jù)的存儲等,運行系統(tǒng)結構如圖2所示。

      圖2 運行系統(tǒng)結構圖Fig.2 Running system structure

      為了提高數(shù)據(jù)處理效率,運行系統(tǒng)采用內(nèi)存數(shù)據(jù)庫實現(xiàn)事務的實時處理,大大減少了系統(tǒng)對磁盤的操作。內(nèi)存數(shù)據(jù)庫的結構直接決定了實時數(shù)據(jù)庫的效率、穩(wěn)定性和靈活性。為了滿足實時特性,當子系統(tǒng)向?qū)崟r數(shù)據(jù)庫提交事務時,數(shù)據(jù)庫系統(tǒng)必須要能快速定位到相應變量。數(shù)組結構適合實現(xiàn)快速定位,但是數(shù)組結構必須要求連續(xù)的內(nèi)存空間來存儲數(shù)據(jù)。當系統(tǒng)存在大量變量點時,大容量的連續(xù)內(nèi)存很難得到滿足。而且系統(tǒng)中的八種變量類型所需要的內(nèi)存空間不同,如果統(tǒng)一分配,將造成內(nèi)存的浪費。解決以上問題,本文采用索引結構和二級緩存技術實現(xiàn)數(shù)據(jù)的快速定位,索引結構和二級緩存技術原理如圖3所示。

      圖3 索引結構和二級緩存技術原理圖Fig.3 Two caching techniques and index structure

      索引結構采用數(shù)組結構實現(xiàn),根據(jù)唯一的變量名,可以定位出內(nèi)存數(shù)據(jù)庫中相應的數(shù)據(jù)單元。一級緩沖區(qū)中存儲各個數(shù)據(jù)項的基本信息和附加信息指針?;拘畔⑹菑牟煌瑪?shù)據(jù)類型提取的統(tǒng)一信息,包括變量的名字、類型及數(shù)據(jù)值等。附加信息是一個數(shù)據(jù)指針,指向二級緩沖區(qū),存放不同變量除基本信息外的剩余信息。二級緩沖區(qū)中每個記錄單元所需要的內(nèi)存空間較大,可以單獨在堆上進行內(nèi)存空間的分配。索引結構和二級緩存技術能夠充分利用內(nèi)存資源,進行快速定位,以便于對事務的請求進行快速響應。

      一個優(yōu)秀的實時數(shù)據(jù)庫系統(tǒng),需要快速反應各種事務的請求,并及時處理。在實時數(shù)據(jù)庫系統(tǒng)中,事務指對一個數(shù)據(jù)對象進行的一系列的讀和寫的操作。實時事務的調(diào)度一般是基于事務的優(yōu)先級策略,事務的優(yōu)先級策略大致可分為靜態(tài)優(yōu)先級策略和動態(tài)優(yōu)先級策略。靜態(tài)優(yōu)先級策略是指在系統(tǒng)運行之前已經(jīng)確定事務的優(yōu)先級,而動態(tài)優(yōu)先級策略則是在運行時根據(jù)相關參數(shù)來確定事務的優(yōu)先級。本系統(tǒng)采用靜態(tài)優(yōu)先級調(diào)度策略,避免因為動態(tài)優(yōu)先級的調(diào)整所帶來的系統(tǒng)開銷,從而提高運行系統(tǒng)實時特性。系統(tǒng)采用單調(diào)比率算法對事務的優(yōu)先級進行計算。

      組態(tài)軟件中多個子系統(tǒng)都會與實時數(shù)據(jù)庫運行系統(tǒng)進行交互,如果允許子系統(tǒng)間的串行操作,則會極大地降低系統(tǒng)的工作效率,因此系統(tǒng)采用樂觀并發(fā)控制協(xié)議實現(xiàn)實時數(shù)據(jù)庫的事務管理。

      為了滿足運行系統(tǒng)對實時性的要求,采用GetTickCount函數(shù)來進行定時的數(shù)據(jù)采集,該函數(shù)返回系統(tǒng)開機以來所經(jīng)過的毫秒數(shù)。通過該函數(shù)以及多線程的方式可以最大限度地提高數(shù)據(jù)采集的精度。

      3.3 實時數(shù)據(jù)庫數(shù)據(jù)采集服務器

      實時數(shù)據(jù)庫數(shù)據(jù)采集服務器主要通過設備驅(qū)動程序與現(xiàn)場設備進行實時通信,以完成系統(tǒng)對數(shù)據(jù)的采集功能。自動化系統(tǒng)中,現(xiàn)場的設備主要有PLC、DCS、板卡等,這些設備支持不同的通信協(xié)議,這就需要數(shù)據(jù)采集服務器能夠有效地管理設備以及高效地采集數(shù)據(jù)。本系統(tǒng)中的數(shù)據(jù)采集服務器能夠?qū)Σ煌ㄐ艆f(xié)議以及不同接入方式的設備進行統(tǒng)一的管理,其結構如圖4所示。

      圖4 數(shù)據(jù)采集服務器結構圖Fig.4 Data collection server structure

      各個采集線程負責通過調(diào)用硬件的驅(qū)動程序和硬件進行實時交互,將從設備采集到的數(shù)據(jù)統(tǒng)一送入本地緩沖區(qū),本地緩沖區(qū)以鏈表形式維護數(shù)據(jù)。最后通過數(shù)據(jù)更新線程將數(shù)據(jù)和實時數(shù)據(jù)庫進行數(shù)據(jù)同步。

      為了對不同類型的設備統(tǒng)一管理,將設備進行抽象化,建立統(tǒng)一的數(shù)據(jù)模型。數(shù)據(jù)模型CDevice結

      構如下:

      class CDevice

      {

      public:

      WORD devid;//設備的 ID 號

      Char deviceName[32];//設備名稱

      Char logicName[32];//設備的邏輯名稱

      Char address[32];//設備寄存器地址

      Char information[64];//設備描述

      DEVADDR devAddr;//設備地址

      short status;//設備的狀態(tài)

      WORD statusid;//狀態(tài) id 號

      short enable;//使能控制

      bool useModem;//是否使用調(diào)制解調(diào)器

      char szPhoneNum[16];//撥號號碼

      bool statusChange;//狀態(tài)是否改變

      UINT timerCount;//通訊出現(xiàn)故障時,嘗試重建連接的次數(shù)

      UINT retryInterval;//通訊出現(xiàn)故障時,重建連接的時間間隔

      }

      由于硬件設備的種類繁多,在不同場合,需要使用的驅(qū)動程序也各有不同,因此需要對驅(qū)動程序進行統(tǒng)一的管理[5]。本文采用統(tǒng)一驅(qū)動接口模型的方式,遵循COM規(guī)范,用C++進行開發(fā),對驅(qū)動程序接口進行抽象,制訂驅(qū)動程序的接口規(guī)范,并以DLL的形式進行封裝[6]。

      數(shù)據(jù)采集服務器采用多線程的方式,將數(shù)據(jù)采集分散在各個線程中完成,保證數(shù)據(jù)采集的相互獨立性。

      4 性能驗證與分析

      4.1 內(nèi)存數(shù)據(jù)庫效率驗證

      內(nèi)存數(shù)據(jù)庫是實現(xiàn)實時數(shù)據(jù)庫運行系統(tǒng)的核心,它使系統(tǒng)能夠從內(nèi)存中存取相關的數(shù)據(jù),避免大量的硬盤操作,從而提高了效率。本文對內(nèi)存數(shù)據(jù)庫和關系型數(shù)據(jù)庫的存取效率進行了比較。關系數(shù)據(jù)庫采用Access數(shù)據(jù)庫,向關系型數(shù)據(jù)庫插入500及1000條記錄,向內(nèi)存數(shù)據(jù)庫中插入1000及5000條記錄,記錄時間并進行對比,結果如表1所示。

      表1 內(nèi)存數(shù)據(jù)庫和關系數(shù)據(jù)庫測試數(shù)據(jù)Tab.1 Memory and relational databases test data

      對比可以看出,內(nèi)存數(shù)據(jù)庫在存取數(shù)據(jù)的效率上遠高于關系型數(shù)據(jù)庫。采用內(nèi)存數(shù)據(jù)庫為核心的實時數(shù)據(jù)庫系統(tǒng)能夠很好地滿足組態(tài)軟件對實時性的需求。

      4.2 實時數(shù)據(jù)庫內(nèi)存需求對比

      實時數(shù)據(jù)庫系統(tǒng)中采用了二級緩存技術,高效地利用了系統(tǒng)中內(nèi)存碎片,大大減小了內(nèi)存的開銷。為了驗證二級緩存技術在內(nèi)存需求上的改進,系統(tǒng)初始化了2萬個變量點,離散型、整數(shù)型、浮點型和字符串型各5000點,分別使用普通一級緩存結構和二級緩存結構,在內(nèi)存需求方面進行對比,對比如表2所示。

      表2 內(nèi)存開銷對比Tab.2 Comparison of memory usage

      從上述對比可以看出,二級緩存技術大大減少了內(nèi)存的開銷。

      4.3 數(shù)據(jù)處理性能驗證

      數(shù)據(jù)處理在實時數(shù)據(jù)庫系統(tǒng)中是最常見的操作。本文采用高效的索引結構能夠快速定位變量,并通過二級緩存技術對變量進行各種操作。為了驗證其性能,在20000點的實際工程中,對分布在不同位置的20個不同類型的變量點進行5000次的循環(huán)寫入操作,測試結果如表3所示。

      表3 數(shù)據(jù)處理測試Tab.3 Data processing test

      從以上測試數(shù)據(jù)可以看出,10萬次的數(shù)據(jù)寫入僅需要3094 ms,即實時數(shù)據(jù)庫平均每秒可以完成32000多次數(shù)據(jù)的索引以及寫入操作,其性能完全能夠滿足軟實時特性的需求。

      5 案例應用

      以某省農(nóng)村商業(yè)銀行機房環(huán)境監(jiān)控系統(tǒng)為例,展示實時數(shù)據(jù)庫系統(tǒng)的應用情況。該監(jiān)控系統(tǒng)主要完成商業(yè)銀行機房環(huán)境的監(jiān)控,以實時數(shù)據(jù)庫為核心,通過數(shù)據(jù)采集服務器來完成D86、AC86、UPS以及智能空調(diào)等設備的數(shù)據(jù)采集以及控制。系統(tǒng)同時利用ModbusTCP驅(qū)動程序?qū)⑷懈鞯谹TM取款機的通信數(shù)據(jù)實時地展示出來,供機房工作人員分析及查看。監(jiān)控系統(tǒng)會將產(chǎn)生的報警及時地通過短信、電話等方式告知工作人員,方便工作人員及時處理,減少不必要的經(jīng)濟損失。環(huán)境監(jiān)控系統(tǒng)的結構如圖5所示。

      圖5 環(huán)境監(jiān)控系統(tǒng)結構圖Fig.5 Environmental monitoring system structure

      該系統(tǒng)為工作人員提供了準確的現(xiàn)場數(shù)據(jù),精美的圖形界面,并提供多種方式來查詢歷史數(shù)據(jù),這些歷史數(shù)據(jù)為故障的分析和數(shù)據(jù)挖掘提供了依據(jù)。該系統(tǒng)的成功應用,驗證了本文提出的實時數(shù)據(jù)庫系統(tǒng)的設計具有現(xiàn)實的可行性。

      6 結語

      本文通過對中小企業(yè)的需求分析,結合組態(tài)軟件的特點,提出了組態(tài)軟件實時數(shù)據(jù)庫系統(tǒng)設計方案,采用組件化的思想將系統(tǒng)分為開發(fā)系統(tǒng)、運行系統(tǒng)和數(shù)據(jù)采集服務器,并詳細介紹了各個子系統(tǒng)的設計以及實現(xiàn),并對系統(tǒng)性能進行了驗證,最后列舉實際案例證實方案的可行性。

      本文提出的實時數(shù)據(jù)庫系統(tǒng)已經(jīng)廣泛應用于各類中小企業(yè),成功應用于樓宇、化工、生工等多類不同的監(jiān)控系統(tǒng),為企業(yè)創(chuàng)造了一定的經(jīng)濟效益。

      [1] 馮彥.針對高速數(shù)據(jù)采集和設備控制的組態(tài)軟件[D].上海:上海交通大學,2006.

      [2] 宋清昆,孫元娜,王學偉,等.組態(tài)軟件實時數(shù)據(jù)庫系統(tǒng)設計[J].自動化技術與應用,2008,2(1):55-57.

      [3] 張亮.基于MES的生產(chǎn)實績回報系統(tǒng)研究[D].天津:河北工業(yè)大學,2005.

      [4] 葉建位.大型實時數(shù)據(jù)庫關鍵技術及系統(tǒng)構架[D].杭州:浙江大學,2005.

      [5] 張勇旭,李力雄,康盛.通用組態(tài)軟件驅(qū)動程序的設計與開發(fā)[J].南京:工業(yè)控制計算機 2009,22(9):1-3,6.

      [6] 孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2006:435-480,701-731.

      猜你喜歡
      數(shù)據(jù)庫系統(tǒng)組態(tài)內(nèi)存
      基于PLC及組態(tài)技術的恒溫控制系統(tǒng)開發(fā)探討
      “春夏秋冬”的內(nèi)存
      當代陜西(2019年13期)2019-08-20 03:54:22
      數(shù)據(jù)庫系統(tǒng)shell腳本應用
      電子測試(2018年14期)2018-09-26 06:04:24
      基于PLC和組態(tài)的智能電動擰緊系統(tǒng)
      微細銑削工藝數(shù)據(jù)庫系統(tǒng)設計與開發(fā)
      實時數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)安全采集方案
      電信科學(2016年10期)2016-11-23 05:12:00
      PLC組態(tài)控制在水箱控制系統(tǒng)的應用
      核反應堆材料數(shù)據(jù)庫系統(tǒng)及其應用
      鑄造行業(yè)三維組態(tài)軟件的應用
      基于內(nèi)存的地理信息訪問技術
      台前县| 太谷县| 宜昌市| 成都市| 建始县| 咸宁市| 鸡东县| 中江县| 大邑县| 广灵县| 富裕县| 荃湾区| 通州区| 天台县| 安平县| 上蔡县| 罗山县| 靖宇县| 肃宁县| 东乌珠穆沁旗| 广元市| 隆安县| 德江县| 怀安县| 米林县| 天水市| 巴林右旗| 浑源县| 太康县| 小金县| 临武县| 崇明县| 维西| 安岳县| 商水县| 罗定市| 洮南市| 岳西县| 米林县| 贡嘎县| 苍山县|