• 
    

    
    

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

      ?

      基于OPC UA的歷史數(shù)據(jù)存取

      2010-07-25 08:43:52陳騫劍強(qiáng)汪鐳胡飛凰吳啟迪
      微型電腦應(yīng)用 2010年2期
      關(guān)鍵詞:歷史數(shù)據(jù)數(shù)據(jù)文件偏差

      陳騫,劍強(qiáng),汪鐳,胡飛凰,吳啟迪

      0 引言

      OPC(OLE for Process Control)技術(shù)在當(dāng)今過(guò)程控制領(lǐng)域,是一種非常流行的數(shù)據(jù)交換技術(shù)。但是隨著技術(shù)的發(fā)展和設(shè)備的革新,企業(yè)在應(yīng)用OPC技術(shù)的過(guò)程中又遭受到重重難關(guān),OPC技術(shù)自身的缺陷成了企業(yè)進(jìn)一步發(fā)展壯大的瓶頸。首先是它的COM基礎(chǔ),使開(kāi)發(fā)過(guò)程受到限制;其次是OPC規(guī)范的局限性,沒(méi)有提供必要的網(wǎng)絡(luò)安全性、協(xié)同互操作性及可靠性;再次是現(xiàn)行OPC平臺(tái)不獨(dú)立,它受限于Microsoft 公司的操作系統(tǒng),對(duì)Linux、OS等系統(tǒng)缺乏支持?;谶@種情況,OPC基金會(huì)推出了新一代OPC UA(OPC Unified Architecture)規(guī)范。

      1 OPC UA簡(jiǎn)介

      OPC UA 是一個(gè)新的工業(yè)軟件應(yīng)用接口規(guī)范,其目的在于提出一個(gè)企業(yè)制造模型的統(tǒng)一對(duì)象和架構(gòu)定義,具有跨平臺(tái)、增強(qiáng)命名空間、支持復(fù)雜數(shù)據(jù)內(nèi)置、大量通用服務(wù)等新特點(diǎn)。

      OPC UA規(guī)范由十三部分構(gòu)成,其中主要的核心規(guī)范為Data Access,Alarm & Conditions,Historical Access三部分。每種規(guī)范對(duì)應(yīng)著一種類(lèi)型的服務(wù)器和客戶(hù)程序的開(kāi)發(fā),它們的區(qū)別是實(shí)現(xiàn)功能的側(cè)重點(diǎn)不同。

      其中,歷史存取(Historical Access)服務(wù)器包括歷史數(shù)據(jù)存取和歷史事件存取兩部分,歷史數(shù)據(jù)存取是指將不同應(yīng)用層次的實(shí)時(shí)數(shù)據(jù)用統(tǒng)一的標(biāo)準(zhǔn)集成起來(lái),保存在數(shù)據(jù)存儲(chǔ)器中,然后根據(jù)客戶(hù)程序需求訪問(wèn)指定的歷史數(shù)據(jù);歷史事件存取是指將警報(bào)和條件規(guī)范中得到的事件保存起來(lái),以供客戶(hù)程序訪問(wèn)。

      2 OPC UA歷史數(shù)據(jù)存取

      OPC UA規(guī)范作為新一代的OPC技術(shù),勢(shì)必將廣泛應(yīng)用在實(shí)際工業(yè)生產(chǎn)流程中。如今的工業(yè)信息量在膨脹式增長(zhǎng),在整個(gè)流程工業(yè)中所集成的數(shù)據(jù)采集點(diǎn)數(shù)通常有幾千到十幾萬(wàn),數(shù)據(jù)采集間隔要達(dá)到毫秒級(jí),數(shù)據(jù)量很大,為了使工業(yè)生產(chǎn)系統(tǒng)快速、有效地管理數(shù)據(jù),提高磁盤(pán)存儲(chǔ)效率以及查詢(xún)性能,必須要有一套高效的數(shù)據(jù)存儲(chǔ)機(jī)制來(lái)保存歷史數(shù)據(jù)。

      歷史數(shù)據(jù)的存取需要數(shù)據(jù)存儲(chǔ)器來(lái)管理數(shù)據(jù),數(shù)據(jù)存儲(chǔ)器可以使用文件系統(tǒng),也可以使用關(guān)系數(shù)據(jù)庫(kù),比如SQL Server。 OPC UA規(guī)范描述了歷史訪問(wèn)服務(wù)器要實(shí)現(xiàn)的功能,不涉及服務(wù)器的內(nèi)部實(shí)現(xiàn)。歷史數(shù)據(jù)是基于時(shí)間的一些連續(xù)模擬量或數(shù)字量(比如溫度、壓力、流量、閥門(mén)開(kāi)關(guān)等) ,完全不同于普通關(guān)系數(shù)據(jù)庫(kù)處理的那些離散的、非連續(xù)的、不基于時(shí)間的二維關(guān)系表數(shù)據(jù)(比如訂單信息、財(cái)務(wù)信息、人事管理信息等)。

      因此,本文采用文件系統(tǒng)作為數(shù)據(jù)存儲(chǔ)器,在符合規(guī)范定義的條件下,通過(guò)存儲(chǔ)過(guò)程、存儲(chǔ)方式和查詢(xún)過(guò)程三部分給出一種歷史數(shù)據(jù)的存取機(jī)制,并設(shè)計(jì)了一種文件結(jié)構(gòu),以便客戶(hù)程序準(zhǔn)確高效地處理歷史數(shù)據(jù)。

      3 數(shù)據(jù)存儲(chǔ)過(guò)程

      數(shù)據(jù)存儲(chǔ)過(guò)程分為四個(gè)部分完成,首先是將從現(xiàn)場(chǎng)設(shè)備采集的歷史數(shù)據(jù)進(jìn)行過(guò)濾操作,接著是歷史數(shù)據(jù)的壓縮處理,然后是內(nèi)存數(shù)據(jù)操作,包括隊(duì)列和緩沖區(qū)的設(shè)計(jì),最后是將緩沖區(qū)的內(nèi)存數(shù)據(jù)歸檔到磁盤(pán)文件,如圖 1所示給出數(shù)據(jù)存儲(chǔ)過(guò)程的流程圖:

      1) 來(lái)自不同設(shè)備的數(shù)據(jù)首先要進(jìn)行過(guò)濾,使?jié)M足要求的數(shù)據(jù)被傳送;過(guò)濾操作設(shè)置三個(gè)參數(shù):過(guò)濾最小偏差、過(guò)濾最大偏差、最小時(shí)間偏差:

      過(guò)濾最小偏差:當(dāng)前數(shù)據(jù)和上一個(gè)數(shù)據(jù)之間的絕對(duì)差值的最小規(guī)定,此參數(shù)限定可以過(guò)濾一些變化率較小的數(shù)據(jù)。

      過(guò)濾最大偏差:當(dāng)前數(shù)據(jù)和上一個(gè)數(shù)據(jù)之間的絕對(duì)差值的最大規(guī)定,此參數(shù)限定可以過(guò)濾一些異常的數(shù)據(jù)。

      最小時(shí)間偏差:當(dāng)前數(shù)據(jù)和上一個(gè)數(shù)據(jù)過(guò)濾的時(shí)間偏差的最小規(guī)定,此參數(shù)限定可以避免部分現(xiàn)場(chǎng)噪音的干擾。

      2) 當(dāng)新數(shù)據(jù)與前一數(shù)據(jù)的絕對(duì)差值在設(shè)定的過(guò)濾最小偏差和過(guò)濾最大偏差之間并且兩個(gè)數(shù)據(jù)的時(shí)間差大于或等于給定的最小時(shí)間偏差,新數(shù)據(jù)將通過(guò)過(guò)濾而送往歷史數(shù)據(jù)源隊(duì)列過(guò)濾完的數(shù)據(jù)送到歷史數(shù)據(jù)源隊(duì)列中成為需要?dú)w檔的歷史數(shù)據(jù)源, 為了確保高效的數(shù)據(jù)存儲(chǔ),需要對(duì)歷史數(shù)據(jù)進(jìn)一步壓縮處理;

      3)通過(guò)壓縮的數(shù)據(jù)被送到位于內(nèi)存中的歸檔數(shù)據(jù)隊(duì)列中,歸檔數(shù)據(jù)隊(duì)列對(duì)送往歸檔文件的數(shù)據(jù)進(jìn)行緩沖:歸檔過(guò)程使用定時(shí)器定時(shí)將數(shù)據(jù)傳送;如果歸檔數(shù)據(jù)隊(duì)列已滿(mǎn)并且歸檔過(guò)程不可用時(shí),歸檔數(shù)據(jù)隊(duì)列將會(huì)把數(shù)據(jù)寫(xiě)入臨時(shí)磁盤(pán)文件,等歸檔可用時(shí)再轉(zhuǎn)存入歸檔文件中;

      為了降低與磁盤(pán)的操作頻率,從歸檔數(shù)據(jù)隊(duì)列出來(lái)的數(shù)據(jù)將被送往歸檔緩沖區(qū)。系統(tǒng)為每個(gè)屬性ID設(shè)定一個(gè)緩沖區(qū),當(dāng)歸檔緩沖區(qū)中數(shù)據(jù)達(dá)到一定值,則將這些數(shù)據(jù)以數(shù)據(jù)塊形式一起寫(xiě)入磁盤(pán)歸檔文件存儲(chǔ)。

      圖1 實(shí)時(shí)數(shù)據(jù)的存儲(chǔ)過(guò)程

      4 數(shù)據(jù)存儲(chǔ)方式

      由于歷史數(shù)據(jù)的采集、處理、存儲(chǔ)和查詢(xún)都有較高的時(shí)間要求,數(shù)據(jù)的存儲(chǔ)方式按照OPC UA標(biāo)準(zhǔn)采用網(wǎng)絡(luò)數(shù)據(jù)模型,將數(shù)據(jù)的索引和結(jié)構(gòu)分為設(shè)備、數(shù)據(jù)ID和數(shù)據(jù)其他信息三級(jí),其中設(shè)備和數(shù)據(jù)ID作為索引結(jié)構(gòu)存儲(chǔ),數(shù)據(jù)其他信息以數(shù)據(jù)塊的形式存儲(chǔ)。

      存儲(chǔ)設(shè)備數(shù)據(jù)的每一條歷史數(shù)據(jù)記錄需要包含四個(gè)字段:ID,Status Code,Value,Time。ID表示每個(gè)標(biāo)簽點(diǎn)(測(cè)量點(diǎn))的標(biāo)識(shí)符,在同一系統(tǒng)中每個(gè)標(biāo)簽點(diǎn)的ID是唯一的;Status Code表示實(shí)時(shí)歷史數(shù)據(jù)的質(zhì)量碼,OPC UA規(guī)范書(shū)定義質(zhì)量碼為32位的無(wú)符整型;Value表示實(shí)時(shí)歷史數(shù)據(jù)的數(shù)值,根據(jù)設(shè)備數(shù)據(jù)的數(shù)據(jù)類(lèi)型用不同的結(jié)構(gòu)來(lái)存儲(chǔ);Time表示實(shí)時(shí)歷史數(shù)據(jù)的時(shí)間戳,在存儲(chǔ)過(guò)程中,Time采用差分法表示,索引字段中存儲(chǔ)時(shí)間基準(zhǔn)值,數(shù)據(jù)字段中存儲(chǔ)時(shí)間偏移量(以毫秒為單位的整型變量)。

      5 文件結(jié)構(gòu)

      本文設(shè)計(jì)的文件結(jié)構(gòu)有如下特點(diǎn):

      歷史數(shù)據(jù)按時(shí)間段分為多個(gè)文件保存,每個(gè)文件保存一段時(shí)間內(nèi)的歷史數(shù)據(jù),文件大小可根據(jù)需要設(shè)置,文件路徑根據(jù)時(shí)間范圍保存在索引文件中

      索引結(jié)構(gòu)采用分級(jí)索引,包括外部索引和內(nèi)部索引兩部分,其中內(nèi)部索引和同一段時(shí)間內(nèi)的數(shù)據(jù)保存在相同文件中,外部索引保存在索引文件中

      實(shí)時(shí)歷史數(shù)據(jù)的ID與其它數(shù)據(jù)在文件內(nèi)分開(kāi)保存,便于在查詢(xún)過(guò)程中快速定位所需標(biāo)簽點(diǎn)數(shù)據(jù)的位置

      存儲(chǔ)系統(tǒng)包括兩種類(lèi)型的文件:“索引文件”和“數(shù)據(jù)文件”。索引文件記錄所有數(shù)據(jù)文件的基本信息,在系統(tǒng)中是唯一的;

      數(shù)據(jù)文件記錄實(shí)際的歷史數(shù)據(jù)。

      5.1 索引文件

      索引文件由外部索引項(xiàng)構(gòu)成,每一項(xiàng)對(duì)應(yīng)一個(gè)數(shù)據(jù)文件。索引項(xiàng)中的內(nèi)容包括與其相對(duì)應(yīng)的數(shù)據(jù)文件的開(kāi)始時(shí)間、結(jié)束時(shí)間和文件路徑。

      在查詢(xún)過(guò)程中,使用索引文件可以快速定位查詢(xún)條件中時(shí)間范圍內(nèi)數(shù)據(jù)所在文件的路徑,結(jié)構(gòu)如下圖所示:

      圖2 文件結(jié)構(gòu)圖

      5.2 數(shù)據(jù)文件

      數(shù)據(jù)文件由文件頭、設(shè)備組索引區(qū)、標(biāo)簽點(diǎn)索引區(qū)、時(shí)間索引區(qū)和數(shù)據(jù)區(qū)五部分構(gòu)成

      5.2.1 文件頭

      文件頭包含此文件的基本信息,其大小固定以便于數(shù)據(jù)讀寫(xiě)操作,如下圖結(jié)構(gòu)所示:

      圖3 文件頭結(jié)構(gòu)

      設(shè)備組索引區(qū)的每一項(xiàng)包括設(shè)備名稱(chēng)號(hào)和對(duì)應(yīng)設(shè)備的標(biāo)簽點(diǎn)索引區(qū)的初始位置,大小由文件頭的最大設(shè)備組數(shù)決定;標(biāo)簽點(diǎn)索引區(qū)的所有項(xiàng)按設(shè)備種類(lèi)分塊順序存儲(chǔ),每一項(xiàng)都包括歷史數(shù)據(jù)的ID和對(duì)應(yīng)的時(shí)間索引區(qū)初始位置及當(dāng)前使用位置,為了提高查詢(xún)效率,同一個(gè)設(shè)備的ID按升序排列。結(jié)構(gòu)圖如下所示:

      圖4 設(shè)備組、標(biāo)簽點(diǎn)索引區(qū)結(jié)構(gòu)圖

      5.2.3 時(shí)間索引區(qū)&數(shù)據(jù)區(qū)

      時(shí)間索引區(qū)的每一項(xiàng)包括對(duì)應(yīng)數(shù)據(jù)塊的開(kāi)始時(shí)間和結(jié)束時(shí)間,數(shù)據(jù)塊在文件中的位置,以及同一個(gè)標(biāo)簽點(diǎn)使用的下一個(gè)時(shí)間索引項(xiàng)的位置。這樣,每個(gè)標(biāo)簽點(diǎn)使用的時(shí)間索引形成一個(gè)鏈表。

      數(shù)據(jù)區(qū)是由數(shù)據(jù)塊構(gòu)成的,每個(gè)數(shù)據(jù)塊存儲(chǔ)標(biāo)簽點(diǎn)的時(shí)間偏移量(相對(duì)于時(shí)間索引區(qū)的開(kāi)始時(shí)間)、質(zhì)量碼和數(shù)據(jù)值;數(shù)據(jù)塊的大小由歸檔緩沖區(qū)的大小決定,并且以數(shù)據(jù)塊為基本單位進(jìn)行數(shù)據(jù)讀取,結(jié)構(gòu)如圖5所示:

      圖5 時(shí)間索引區(qū)&數(shù)據(jù)區(qū)結(jié)構(gòu)圖

      6 數(shù)據(jù)查詢(xún)過(guò)程

      數(shù)據(jù)查詢(xún)有很多種類(lèi)型,一般查詢(xún)部分標(biāo)簽點(diǎn)的一段時(shí)間的歷史數(shù)據(jù),查詢(xún)條件為標(biāo)簽點(diǎn)的ID和時(shí)間范圍。根據(jù)前面數(shù)據(jù)存儲(chǔ)過(guò)程和文件結(jié)構(gòu)的描述,數(shù)據(jù)查詢(xún)過(guò)程可以分為以下幾步:

      第一步:根據(jù)查詢(xún)條件的時(shí)間范圍,在索引文件中得到數(shù)據(jù)所在的文件路徑;

      第二步:讀取上一步得到的文件,根據(jù)查詢(xún)條件的標(biāo)簽點(diǎn) ID,利用內(nèi)部索引結(jié)構(gòu)的設(shè)備組索引和標(biāo)簽點(diǎn)索引,得到指定標(biāo)簽點(diǎn)數(shù)據(jù)的時(shí)間索引位置;

      第三步:讀取上一步得到的時(shí)間索引區(qū),根據(jù)查詢(xún)條件的時(shí)間范圍得到查詢(xún)所需的數(shù)據(jù)塊位置;

      第四步:讀取上一步得到的數(shù)據(jù)塊,將所需數(shù)據(jù)信息寫(xiě)入查詢(xún)結(jié)果數(shù)組。

      7 性能測(cè)試

      根據(jù)前面的存儲(chǔ)機(jī)制和文件結(jié)構(gòu)描述,測(cè)試在P43.0G,512M 內(nèi)存的電腦上實(shí)驗(yàn),采用 VS2005為程序平臺(tái),用VC++的控制臺(tái)應(yīng)用程序?qū)崿F(xiàn)數(shù)據(jù)存取功能的模擬,并且通過(guò)線程和定時(shí)器實(shí)現(xiàn)存儲(chǔ)過(guò)程,文件的存儲(chǔ)和查詢(xún)用二進(jìn)制數(shù)據(jù)流形式。為了便于控制和測(cè)試,數(shù)據(jù)源用定時(shí)采集到的周期為30s的模擬數(shù)據(jù)表示,結(jié)構(gòu)符合第四部分的存儲(chǔ)方式要求。下面分別用表格的形式給出存取指定數(shù)據(jù)個(gè)數(shù)所花費(fèi)的時(shí)間及單位時(shí)間的存取效率。

      7.1 存儲(chǔ)性能測(cè)試

      表1 數(shù)據(jù)存儲(chǔ)的性能測(cè)試表

      7.2 查詢(xún)性能測(cè)試

      表2 數(shù)據(jù)查詢(xún)的性能測(cè)試表

      7.3 性能分析

      從表1和表2的存取數(shù)據(jù)性能測(cè)試結(jié)果分析,歷史數(shù)據(jù)的存儲(chǔ)和查詢(xún)完全能夠滿(mǎn)足海量數(shù)據(jù)的實(shí)時(shí)性要求,并且能夠準(zhǔn)確地存儲(chǔ)到本文設(shè)計(jì)的文件結(jié)構(gòu),以及高效地查詢(xún)所需的歷史數(shù)據(jù),實(shí)現(xiàn)OPC UA歷史存取服務(wù)的功能。

      8 總結(jié)

      OPC UA技術(shù)是未來(lái)工業(yè)控制接口的發(fā)展方向,由于其對(duì)應(yīng)用廣泛的OPC進(jìn)行補(bǔ)充和改進(jìn),各生產(chǎn)廠商可以實(shí)現(xiàn)企業(yè)上層網(wǎng)絡(luò)與現(xiàn)場(chǎng)設(shè)備層的無(wú)縫集成。但是基于OPC UA的各類(lèi)數(shù)據(jù)采集設(shè)備會(huì)產(chǎn)生數(shù)量龐大的實(shí)時(shí)數(shù)據(jù),對(duì)歷史數(shù)據(jù)存取的性能和效率提出了巨大的挑戰(zhàn)。

      本文的創(chuàng)新點(diǎn):設(shè)計(jì)了一種新的文件結(jié)構(gòu),并且給出了一套歷史數(shù)據(jù)存取機(jī)制,該機(jī)制從存儲(chǔ)查詢(xún)過(guò)程、存儲(chǔ)方式和文件結(jié)構(gòu)等方面綜合考慮數(shù)據(jù)讀寫(xiě)性能,通過(guò)多級(jí)緩存和多級(jí)索引的優(yōu)化方案,為OPC UA的歷史數(shù)據(jù)存取服務(wù)器提出了一種高效的文件系統(tǒng)存儲(chǔ)設(shè)計(jì)方案。

      [1] OPC Foundation. OPC Unified Architecture Specification[Z] . Historical Access Version 1.01 2008.7.

      [2] 訾樹(shù)波,于德敏,許增樸,王永強(qiáng).工業(yè)生產(chǎn)實(shí)時(shí)數(shù)據(jù)采集及管理數(shù)據(jù)庫(kù)模型設(shè)計(jì)[J] 微計(jì)算機(jī)信息,2005 7- 3:104-106.

      [3] 張志凜.實(shí)時(shí)數(shù)據(jù)庫(kù)原理及應(yīng)用[M] 北京: 中石化出版社,2001.

      [4] 劉云生.現(xiàn)代數(shù)據(jù)庫(kù)技術(shù)[M] .北京:國(guó)防工業(yè)出版社, 2001.

      [5] 王成光.流程工業(yè)大型實(shí)時(shí)數(shù)據(jù)庫(kù)理論、技術(shù)與應(yīng)用 [D] .杭州:浙江大學(xué),2003.

      猜你喜歡
      歷史數(shù)據(jù)數(shù)據(jù)文件偏差
      基于充電策略估算動(dòng)力電池容量的方法
      基于設(shè)備PF性能曲線和設(shè)備歷史數(shù)據(jù)實(shí)現(xiàn)CBM的一個(gè)應(yīng)用模型探討
      智能制造(2021年4期)2021-11-04 08:54:36
      基于故障歷史數(shù)據(jù)和BP神經(jīng)網(wǎng)絡(luò)的接地選線方案研究
      如何走出文章立意偏差的誤區(qū)
      兩矩形上的全偏差
      數(shù)據(jù)文件恢復(fù)專(zhuān)題問(wèn)答
      數(shù)據(jù)文件安全管控技術(shù)的研究與實(shí)現(xiàn)
      SQL數(shù)據(jù)文件恢復(fù)工具
      基于Hadoop技術(shù)實(shí)現(xiàn)銀行歷史數(shù)據(jù)線上化研究
      關(guān)于均數(shù)與偏差
      安西县| 惠水县| 镇平县| 库车县| 广昌县| 同心县| 鄂伦春自治旗| 安多县| 赫章县| 介休市| 日照市| 礼泉县| 兴城市| 锡林浩特市| 山西省| 临武县| 苏州市| 淄博市| 铜鼓县| 建阳市| 浦东新区| 灌云县| 东兰县| 河北区| 揭阳市| 新邵县| 从江县| 靖宇县| 屏边| 唐海县| 鄯善县| 隆安县| 贵南县| 吴江市| 靖宇县| 新昌县| 札达县| 宣城市| 万源市| 离岛区| 鄱阳县|