亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫(kù)的研究與設(shè)計(jì)*

        2015-11-02 00:34:16盧玉奎胡衛(wèi)喜
        關(guān)鍵詞:組態(tài)車載服務(wù)器

        盧玉奎,胡衛(wèi)喜

        (1.河北石家莊以嶺藥業(yè),河北石家莊050035;2.重慶郵電大學(xué)軟件工程學(xué)院,重慶400065)

        應(yīng)急通信車控制系統(tǒng)組態(tài)軟件[1,2]是實(shí)現(xiàn)應(yīng)急通信車車載設(shè)備集中監(jiān)控、管理的核心。其中,應(yīng)急通信車控制系統(tǒng)組態(tài)軟件中數(shù)據(jù)處理和管理的核心是實(shí)時(shí)數(shù)據(jù)庫(kù)[3,4]。作為組態(tài)軟件的關(guān)鍵技術(shù),應(yīng)急通信車[5,6]控制系統(tǒng)組態(tài)軟件,對(duì)于各組態(tài)軟件商業(yè)公司來(lái)說(shuō),都是需要嚴(yán)格保密的。對(duì)應(yīng)急通信車控制系統(tǒng)組態(tài)軟件的實(shí)時(shí)數(shù)據(jù)庫(kù)的研究與設(shè)計(jì),十分關(guān)鍵。實(shí)時(shí)數(shù)據(jù)庫(kù)是應(yīng)急通信車控制系統(tǒng)組態(tài)軟件的數(shù)據(jù)處理中心,是傳統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)與實(shí)時(shí)系統(tǒng)的無(wú)縫集成。本文提出了一種基于OPC標(biāo)準(zhǔn)和SQLite嵌入式數(shù)據(jù)庫(kù)的實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)思想,并將其應(yīng)用到應(yīng)急通信車控制系統(tǒng)組態(tài)軟件中。目前許多硬件設(shè)備廠商都提供了標(biāo)準(zhǔn)OPC接口,利用OPC標(biāo)準(zhǔn)接口可以解決設(shè)備驅(qū)動(dòng)程序開發(fā)中的異構(gòu)問(wèn)題;而SQLite嵌入式數(shù)據(jù)庫(kù)具有占用空間小、處理速度開、開源等優(yōu)點(diǎn)。

        1 相關(guān)理論基礎(chǔ)

        1.1 OPC 簡(jiǎn)介

        OPC(OLE for Process Control,OLE是Object Linking and Embedding縮寫)屬于工業(yè)標(biāo)準(zhǔn),OPC定義了基于微軟平臺(tái)的PC客戶端應(yīng)用程序交換實(shí)時(shí)數(shù)據(jù)的一種方法[7]。為了改善過(guò)程控制工業(yè)中自動(dòng)化和控制系統(tǒng)、設(shè)備/現(xiàn)場(chǎng)系統(tǒng)、以及辦公/商業(yè)應(yīng)用系統(tǒng)之間互操作性,建立的一套標(biāo)準(zhǔn)的OLE/COM/DCOM接口協(xié)議。協(xié)議OPC定義了用于服務(wù)器間交換實(shí)時(shí)信息的標(biāo)準(zhǔn)的對(duì)象、方法和屬性。

        1.2 SQLite 數(shù)據(jù)庫(kù)

        SQLite是一款開源的、輕量級(jí)的、嵌入式、關(guān)系型數(shù)據(jù)庫(kù)。它在2000年由D.Richard Hipp發(fā)布,可以支持 Java、PHP、Ruby、Python、C、C#等幾乎所有的現(xiàn)代編程語(yǔ)言,支持 Windows、Linux、Unix、Mac OS、Android 等幾乎所有的主流操作系統(tǒng)。SQLite設(shè)計(jì)目標(biāo)是嵌入式產(chǎn)品,因此SQLite占用非常低的內(nèi)存資源,一般只需要幾百KB就夠了。相對(duì)于其他開源數(shù)據(jù)庫(kù),Mysql和PostgreSQL,SQLite的處理速度更快[8]。

        2 實(shí)時(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)方法

        實(shí)時(shí)數(shù)據(jù)庫(kù)是應(yīng)急通信車控制系統(tǒng)組態(tài)軟件的數(shù)據(jù)處理中心,為用戶提供應(yīng)急通信車車載設(shè)備運(yùn)行過(guò)程中的數(shù)據(jù)信息,同時(shí)將過(guò)期的數(shù)據(jù)存儲(chǔ)歸檔。實(shí)時(shí)數(shù)據(jù)庫(kù)包括實(shí)時(shí)數(shù)據(jù)采集模塊、數(shù)據(jù)信息解析模塊、設(shè)備信息描述模塊、數(shù)據(jù)處理模塊、緩存模塊和歷史數(shù)據(jù)庫(kù)模塊。實(shí)時(shí)數(shù)據(jù)庫(kù)各個(gè)模塊之間相互協(xié)調(diào)工作,實(shí)時(shí)高效地完成車載設(shè)備監(jiān)控流程。其中,實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu),如圖1所示。

        (1)實(shí)時(shí)數(shù)據(jù)采集模塊。該模塊負(fù)責(zé)采集車載設(shè)備運(yùn)行過(guò)程中產(chǎn)生的實(shí)時(shí)數(shù)據(jù),由于車載設(shè)備由不同設(shè)備廠商提供,因此,應(yīng)急通信車控制系統(tǒng)在采集車載設(shè)備實(shí)時(shí)數(shù)據(jù)時(shí),針對(duì)不同廠商的設(shè)備,需要開發(fā)相應(yīng)的I/O驅(qū)動(dòng)程序,導(dǎo)致實(shí)時(shí)數(shù)據(jù)庫(kù)與車載設(shè)備之間的互操作性較差,同時(shí)增加了系統(tǒng)開發(fā)成本。本文中采用OPC標(biāo)準(zhǔn),把車載設(shè)備看成是一個(gè)個(gè)OPC服務(wù)器,只需要開發(fā)OPC客戶端程序,就可以完成車載設(shè)備實(shí)時(shí)數(shù)據(jù)的采集。實(shí)時(shí)數(shù)據(jù)采集模塊從車載設(shè)備采集數(shù)據(jù)后,交由數(shù)據(jù)信息解析模塊。

        (2)數(shù)據(jù)信息解析模塊。理論上,從車載設(shè)備采集來(lái)的數(shù)據(jù)信息都有其具體的含義,這里的具體含義是在監(jiān)控界面組態(tài)過(guò)程中定義的,如UPS設(shè)備的電壓、電流、功率等等。但是采集來(lái)的數(shù)據(jù)信息實(shí)際上并非如此,對(duì)于實(shí)時(shí)數(shù)據(jù)采集模塊來(lái)說(shuō),它們僅僅是一系列的數(shù)字,并沒有任何意義。因此,需要將采集的數(shù)據(jù)信息進(jìn)行解析,解析成設(shè)備信息描述模塊中設(shè)備對(duì)象的屬性,真正意思上把數(shù)據(jù)信息的具體含義描述出來(lái)。

        (3)設(shè)備信息描述模塊。該模塊是其它模塊的基礎(chǔ),實(shí)時(shí)數(shù)據(jù)庫(kù)中其它子模塊基本上都會(huì)使用到該模塊。例如,緩存模塊用它來(lái)構(gòu)建緩存的數(shù)據(jù)結(jié)構(gòu),而數(shù)據(jù)信息解析模塊通過(guò)使用它,把從車載設(shè)備采集的數(shù)據(jù)封裝成一個(gè)一個(gè)設(shè)備信息對(duì)象,數(shù)據(jù)處理模塊則根據(jù)它提供的信息,選擇不同的數(shù)據(jù)壓縮算法對(duì)數(shù)據(jù)進(jìn)行壓縮處理。

        圖1 實(shí)時(shí)數(shù)據(jù)庫(kù)結(jié)構(gòu)圖

        (4)緩存模塊。在監(jiān)控過(guò)程中,由于數(shù)據(jù)采集頻率往往比監(jiān)控界面要求的頻率要高,這就導(dǎo)致了兩個(gè)過(guò)程頻率不一致問(wèn)題,采用緩存機(jī)制,將會(huì)較好的解決這一問(wèn)題。當(dāng)通信接口以相對(duì)較高頻率采集來(lái)自車載設(shè)備的數(shù)據(jù)信息,然后將數(shù)據(jù)信息存入緩存模塊中,然后監(jiān)控界面以相對(duì)較低的頻率從緩存模塊中讀取數(shù)據(jù)并顯示。當(dāng)緩存模塊中存儲(chǔ)的數(shù)據(jù)信息超出了緩存的容量時(shí),把過(guò)時(shí)的數(shù)據(jù)傳送給數(shù)據(jù)處理模塊。

        (5)數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊是緩存模塊和歷史數(shù)據(jù)庫(kù)SQLite的橋梁,它負(fù)責(zé)壓縮來(lái)至緩存模塊的數(shù)據(jù),然后把數(shù)據(jù)存入歷史數(shù)據(jù)庫(kù)SQLite中。

        (6)歷史數(shù)據(jù)庫(kù)模塊。存儲(chǔ)過(guò)時(shí)的車載設(shè)備數(shù)據(jù)信息。

        3 實(shí)時(shí)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

        3.1 實(shí)時(shí)數(shù)據(jù)采集模塊設(shè)計(jì)

        (1)連接OPC服務(wù)器。連接OPC服務(wù)器,需要兩個(gè)參數(shù),一個(gè)是OPC服務(wù)器名稱,另一個(gè)是OPC服務(wù)器所在計(jì)算機(jī)的名稱,然后調(diào)用服務(wù)器連接函數(shù)即可,連接函數(shù)代碼如下:

        MyServer.Connect(localServerName,localServerIP);

        當(dāng)需要連接不同的OPC服務(wù)器時(shí),只需要改變OPC服務(wù)器名稱和OPC服務(wù)器所在計(jì)算機(jī)名稱即可。

        (2)創(chuàng)建組(Group):在創(chuàng)建組(Group)時(shí),不但要設(shè)置組(Group)相關(guān)的屬性(激活屬性、更新頻率等),還需要添加數(shù)據(jù)變化(DataChange)事件,其具體代碼如下:

        //添加一個(gè)名為“GROUP”的組

        MyGroups=MyServer.OPCGroups;

        MyGroup=MyGroups.Add("GROUP");

        //設(shè)置組的屬性

        SetGroupProperty();

        //添加數(shù)據(jù)變化事件,在服務(wù)器端有數(shù)據(jù)變化時(shí)發(fā)生

        MyGroup.DataChange+=new DIOPCGroupEvent_DataChangeEventHandler(MyGroup_DataChange);

        //添加DataChange的回調(diào)事件

        MyGroup.AsyncReadComplete+=new DIOPCGroupEvent_AsyncReadCompleteEventHandler(MyGroup_AsyncReadComplete);

        (3)添加項(xiàng)(Item)。在添加項(xiàng)時(shí),需要啟動(dòng)組的數(shù)據(jù)訂閱功能,否則DataChange事件將不會(huì)被觸發(fā),其具體代碼如下:

        MyItems=MyGroup.OPCItems;

        MyGroup.IsSubscribed=true;

        (4)數(shù)據(jù)的讀寫。數(shù)據(jù)的讀是通過(guò)組的數(shù)據(jù)變化事件觸發(fā)來(lái)實(shí)現(xiàn)的,在本文中,數(shù)據(jù)的讀取采用的是異步讀取方式。利用C#事件處理機(jī)制,把DataChange注冊(cè)到事件,一旦服務(wù)器端有數(shù)據(jù)變化,就觸發(fā)該事件,其具體代碼如下:

        void MyGroup_DataChange(int TransactionID,int NumItems,ref Array ClientHandles,ref Array ItemValues,ref Array Qualities,ref Array TimeStamps)

        (5)斷開OPC服務(wù)器。當(dāng)系統(tǒng)不需要使用OPC讀寫數(shù)據(jù)時(shí),這時(shí)需要釋放OPC客戶端連接后占用的服務(wù)器資源,其具體代碼如下:

        //刪除所有組資源

        MyGroup.RemoveAll();

        //斷開服務(wù)器連接

        MyServer.Disconnect();

        3.2 設(shè)備信息解析模塊設(shè)計(jì)

        數(shù)據(jù)信息解析模塊主要負(fù)責(zé)把從車載設(shè)備采集來(lái)的數(shù)據(jù)信息,按設(shè)備信息模塊描述的車載設(shè)備屬性進(jìn)行解析。本系統(tǒng)中設(shè)計(jì)了EquipmentInfoParsing類,用于對(duì)采集的車載設(shè)備數(shù)據(jù)信息進(jìn)行解析。

        3.3 設(shè)備信息描述模塊設(shè)計(jì)

        在設(shè)備信息描述模塊中,設(shè)計(jì)了3個(gè)類:EquipmentInfo類、EquipmentPropertyInfo類、EquipmentManage類。其中類EquipmentInfo用于描述車載設(shè)備資源;類EquipmentPropertyInfo用于描述車載設(shè)備的屬性特性;類EquipmentManage用于向其它模塊提供服務(wù),如獲取車載設(shè)備的各種信息,初始化系統(tǒng)的各種設(shè)備信息等。設(shè)備信息描述模塊的UML圖如圖2所示。

        圖2 設(shè)備信息描述模塊UML圖

        3.4 緩存模塊設(shè)計(jì)

        緩存模塊負(fù)責(zé)存儲(chǔ)實(shí)時(shí)數(shù)據(jù)。在設(shè)計(jì)緩存模塊的存儲(chǔ)結(jié)構(gòu)時(shí),借鑒了計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)幀的思想,把數(shù)據(jù)信息解析模塊傳送過(guò)來(lái)的數(shù)據(jù)信息封裝成一幀,存入緩存中,在緩存模塊中,建了一個(gè)雙向鏈表來(lái)管理這些幀,每一幀就相當(dāng)于雙向鏈表中的一個(gè)節(jié)點(diǎn)。在緩存模塊中,主要包含3個(gè)類:Cache類、CacheFactory類、CacheFrame類。其中Cache類是核心,主要實(shí)現(xiàn)兩大功能,一是負(fù)責(zé)向監(jiān)控系統(tǒng)提供實(shí)時(shí)數(shù)據(jù),二是向數(shù)據(jù)處理模塊提供過(guò)時(shí)數(shù)據(jù);CacheFactory類則用來(lái)初始化緩存模塊的基本信息和提供Cache實(shí)例;CacheFrame類是雙向鏈表的節(jié)點(diǎn)類,它每一個(gè)實(shí)例代表一幀。這3個(gè)類的類關(guān)系如圖3所示。

        3.5 數(shù)據(jù)處理模塊設(shè)計(jì)

        通過(guò)對(duì)應(yīng)急通信車控制系統(tǒng)組態(tài)軟件歷史數(shù)據(jù)的分析,可以將歷史數(shù)據(jù)大致分為兩大類:開關(guān)量和模擬量。其中開關(guān)量的壓縮采用行程長(zhǎng)度壓縮算法[9],模擬量采用一種改進(jìn)的旋轉(zhuǎn)門壓縮算法,改進(jìn)后的旋轉(zhuǎn)門壓縮算法具有自動(dòng)調(diào)整壓縮偏移量E和檢測(cè)噪聲數(shù)據(jù)點(diǎn)并消除。

        3.6 歷史數(shù)據(jù)庫(kù)模塊設(shè)計(jì)

        由于內(nèi)存的限制,實(shí)時(shí)數(shù)據(jù)庫(kù)不能永久地保存數(shù)據(jù)信心。本系統(tǒng)采用SQL技術(shù),將實(shí)時(shí)數(shù)據(jù)庫(kù)中過(guò)時(shí)的數(shù)據(jù),經(jīng)過(guò)數(shù)據(jù)處理模塊處理后,存入SQLite數(shù)據(jù)庫(kù)中。

        圖3 緩存模塊UML圖

        4 結(jié)論

        實(shí)時(shí)數(shù)據(jù)庫(kù)是應(yīng)急通信車系統(tǒng)組態(tài)軟件實(shí)時(shí)監(jiān)控的關(guān)鍵部分。采用數(shù)據(jù)庫(kù)構(gòu)建的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)能滿足組態(tài)軟件對(duì)實(shí)時(shí)性的要求,快速訪問(wèn)內(nèi)存的特性使數(shù)據(jù)可以在規(guī)定時(shí)間內(nèi)完成與底層監(jiān)控設(shè)備的通訊,及時(shí)將數(shù)據(jù)送往用戶界面。采用實(shí)時(shí)數(shù)據(jù)庫(kù),也可以降低系統(tǒng)組態(tài)軟件成本。另外,經(jīng)過(guò)壓縮后再存儲(chǔ)的數(shù)據(jù),降低了數(shù)據(jù)存儲(chǔ)的空間要求。

        [1]周文軍.基于單片機(jī)和組態(tài)軟件的多路搶答器研究[J].廣西民族大學(xué)學(xué)報(bào):自然科學(xué)版,2015,21(1):77-82

        [2]呂易光,錢冠華,李長(zhǎng)武.基于組態(tài)軟件的地下水?dāng)?shù)據(jù)采集系統(tǒng)研究[J].自動(dòng)化技術(shù)與應(yīng)用,2015,34(1):76-79

        [3]王克亮.監(jiān)控組態(tài)軟件的相關(guān)技術(shù)發(fā)展趨勢(shì)[J].電子技術(shù),2015(2):185-185

        [4]劉紅霞,徐磊.組態(tài)軟件中實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2014(5):40-44

        [5]文鐸.應(yīng)急通信車TD-LTE改造關(guān)鍵技術(shù)研究[J].信息通信,2014(10):184-185

        [6]王佳紅.應(yīng)急通信車整體方案設(shè)計(jì)原則淺析[J].技術(shù)論壇,2011(6):58-60

        [7]CHISHOLM A.A Technical Overview of the OPC Data Access Interfaces[J].ISA TECH EXPO TECHNOLOGY UPDATE,1998(2):63-72

        [8]茍列紅,李學(xué)春.RLE壓縮算法的分析及應(yīng)用[J].現(xiàn)代計(jì)算機(jī),1997,57(4):22-24

        [9]BRISTOL E H.Swinging Door Trending:Adaptive Trend Recording[C].ISA Naiontal Conference Proceeding,1990,45:749-753

        猜你喜歡
        組態(tài)車載服務(wù)器
        基于PLC及組態(tài)技術(shù)的恒溫控制系統(tǒng)開發(fā)探討
        高速磁浮車載運(yùn)行控制系統(tǒng)綜述
        通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
        基于PLC和組態(tài)的智能電動(dòng)擰緊系統(tǒng)
        智能互聯(lián)勢(shì)不可擋 車載存儲(chǔ)需求爆發(fā)
        得形忘意的服務(wù)器標(biāo)準(zhǔn)
        計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
        PLC組態(tài)控制在水箱控制系統(tǒng)的應(yīng)用
        鑄造行業(yè)三維組態(tài)軟件的應(yīng)用
        基于ZVS-PWM的車載隔離DC-DC的研究
        国产精品女同一区二区免| 国产美女在线精品免费观看网址| 丰满多毛的大隂户毛茸茸 | 欧美日韩亚洲国产千人斩| 亚洲精品高清av在线播放| 夜夜高潮夜夜爽免费观看| 日本一区二区高清视频在线播放| 男女后入式在线观看视频| 日韩女同精品av在线观看| 日本亚洲欧美色视频在线播放| 成人做受视频试看60秒| 国产精品久久国产精麻豆99网站| 亚洲国产精品500在线观看| av手机天堂在线观看| 亚洲一区二区三区高清在线| 国产精品51麻豆cm传媒| 欧美亚洲国产日韩一区二区三区| 久久精品视频按摩| 一本色道久久亚洲精品| 亚洲午夜久久久久久久久久| 国产麻无矿码直接观看| 极品粉嫩小仙女高潮喷水视频| 亚洲av一二三四五区在线| 亚洲av中文无码乱人伦在线视色| 欧美牲交a欧美牲交aⅴ| 在线亚洲人成电影网站色www| 国产午夜福利精品| 国产一级黄片久久免费看| 亚洲乱码中文在线观看| 18禁裸男晨勃露j毛免费观看| 无码国产精品一区二区免费97| 欧美xxxxx精品| 亚洲美女毛多水多免费视频| 中文字幕在线日亚州9| 97久久精品人人做人人爽| 亚洲高清精品50路| 亚洲一区二区三区精品视频| 性无码免费一区二区三区在线| 久久精品国产一区二区电影| 国产人妖一区二区在线| 日本一二三区在线观看视频|