專利名稱:鍋爐控制中的基于opc服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置及數(shù)據(jù)實(shí)時(shí)更新方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)控制方法。
背景技術(shù):
實(shí)時(shí)數(shù)據(jù)庫是解決工業(yè)生產(chǎn)過程中的數(shù)據(jù)存儲(chǔ)和上位機(jī)軟件之間的數(shù)據(jù)共享的。它的主要特性是存儲(chǔ)速度快,強(qiáng)調(diào)數(shù)據(jù)的時(shí)間一致性。由于實(shí)時(shí)數(shù)據(jù)庫是將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,存儲(chǔ)速度大約是傳統(tǒng)數(shù)據(jù)庫的100倍,甚至更高。這樣在工業(yè)生產(chǎn)中就可以迅速的存儲(chǔ)下位機(jī)傳上來的數(shù)據(jù),不致造成數(shù)據(jù)的丟失。實(shí)時(shí)數(shù)據(jù)庫每個(gè)數(shù)據(jù)都有嚴(yán)格的時(shí)間特性,這可以精確到ms級(jí),傳統(tǒng)數(shù)據(jù)庫做不到。 數(shù)據(jù)的一致性是值每個(gè)操作都有嚴(yán)格的時(shí)間限制,數(shù)據(jù)庫中有完善的進(jìn)程調(diào)用,保證數(shù)據(jù)存儲(chǔ)和訪問的時(shí)間特性。而傳統(tǒng)的數(shù)據(jù)庫各種操作是在一定意義上在什么時(shí)間完成是無法預(yù)知的,訪問一個(gè)數(shù)據(jù)時(shí)可能由于系統(tǒng)的負(fù)荷較大需要很長的時(shí)間才能返回。實(shí)時(shí)數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)時(shí)伴隨著數(shù)據(jù)的壓縮,在相同的存儲(chǔ)空間中可以存儲(chǔ)更多的數(shù)據(jù)。在鍋爐控制中,下位機(jī)較多,傳感器返回?cái)?shù)據(jù)量大,實(shí)時(shí)性有要求,故不能使用傳統(tǒng)的數(shù)據(jù)庫。過程控制中涉及到下位機(jī)和上位機(jī)協(xié)調(diào)、數(shù)據(jù)共享、指令執(zhí)行等操作,含有中間數(shù)據(jù)層,即實(shí)時(shí)數(shù)據(jù)庫是十分必要的。實(shí)時(shí)數(shù)據(jù)庫在工業(yè)程控制中處于數(shù)據(jù)核心的地位?,F(xiàn)在大規(guī)模的實(shí)時(shí)數(shù)據(jù)庫產(chǎn)品較多,價(jià)格昂貴(以十萬甚至百萬記),主要是配合快速大容量數(shù)據(jù)記錄、轉(zhuǎn)存。而對(duì)于一般的工業(yè)控制,比如鍋爐控制,功能實(shí)用、價(jià)格低廉的實(shí)時(shí)數(shù)據(jù)庫卻很少,但其有廣闊的市場(chǎng)。OPC是一種數(shù)據(jù)交互協(xié)議,基于COM技術(shù)。OPC技術(shù)中包含OPC服務(wù)器和OPC客戶端。OPC客戶端可以訪問OPC服務(wù)器的數(shù)據(jù),或者修改其中的數(shù)據(jù)。這種數(shù)據(jù)訪問有很好的實(shí)時(shí)性,支持多個(gè)客戶端同時(shí)訪問。在工業(yè)控制中廣泛使用,是一種各種設(shè)備廠商同時(shí)遵守的協(xié)議。OPC技術(shù)中把OPC分為OPC服務(wù)器和OPC客戶端,一個(gè)OPC服務(wù)器可以連接多個(gè)OPC客戶端,OPC客戶端之間是并行的,數(shù)據(jù)寫入和數(shù)據(jù)讀取也是并行的?,F(xiàn)在市場(chǎng)上通用的做法是,單獨(dú)開發(fā)一個(gè)OPC服務(wù)器,將實(shí)時(shí)數(shù)據(jù)庫作為一個(gè)OPC客戶端,其他上位機(jī)軟件都是一種客戶端,上位機(jī)到實(shí)時(shí)數(shù)據(jù)庫中取數(shù)據(jù)要經(jīng)過兩重OPC接口協(xié)議。系統(tǒng)的冗余較多,時(shí)序統(tǒng)一的難度也較大。OPC服務(wù)器開發(fā)有三種方法,I)使用OPC服務(wù)器速成庫,缺點(diǎn)是功能單一,缺乏靈活性,很難升級(jí),修改相關(guān)程序功能。2)使用相關(guān)的軟件開發(fā)包,缺點(diǎn)是要依賴開發(fā)包,功能擴(kuò)展性不強(qiáng)。3)使用COM開發(fā),直接使用底層的API函數(shù),該方法最靈活,能夠深入的掌握COM內(nèi)部技術(shù)細(xì)節(jié)等特點(diǎn),可以使用OPC協(xié)議所提供的所有的功能,不需要依賴其他動(dòng)態(tài)鏈接庫。COM是Component Object Model的縮寫,是所有OLE機(jī)制的基礎(chǔ)。本發(fā)明就是使用COM開發(fā)的OPC服務(wù)器。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決一種鍋爐控制中的OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫數(shù)據(jù)快速存儲(chǔ)的問題,提供一種鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置及方法。鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,它包括上位機(jī)、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫和多個(gè)下位機(jī);上位機(jī)與內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫通過OPC接口連接,內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫通過通信總線與多個(gè)下位機(jī)連接。每個(gè)下位機(jī)向內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫傳輸?shù)臄?shù)據(jù)包含讀寫標(biāo)志位、CRC校驗(yàn)位、下位機(jī)的地址位和下位機(jī)的數(shù)據(jù)值信息。所述的數(shù)據(jù)總線為串行RS8通信總線。所述的下位機(jī)是傳感器或執(zhí)行機(jī)構(gòu)。所述的上位機(jī)為監(jiān)控軟件系統(tǒng)。鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置的實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新方法,它是按照如下步驟實(shí)現(xiàn)的步驟一、首先內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫為每一個(gè)下位機(jī)根據(jù)其通信地址建立一個(gè)臨時(shí)表Tmp表,該臨時(shí)表Tmp表的表名為TmpXXX,其中XXX對(duì)應(yīng)下位機(jī)的通信地址;臨時(shí)表Tmp表內(nèi)包括有兩個(gè)數(shù)據(jù)項(xiàng)[GetDataTime]和[FieldVal], [FieldVal]表示下位機(jī)上傳的數(shù)據(jù),[GetDataTime]表示獲取[FieldVal]的時(shí)間;步驟二、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫使用map表存儲(chǔ)上一時(shí)刻的數(shù)據(jù),該數(shù)據(jù)包括下位機(jī)返回的位地址項(xiàng)和數(shù)據(jù)值兩項(xiàng)數(shù)據(jù);步驟三、當(dāng)下位機(jī)發(fā)送數(shù)據(jù)給內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫的時(shí)候,進(jìn)行實(shí)時(shí)數(shù)據(jù)庫的快速數(shù)據(jù)插入和OPC服務(wù)器數(shù)據(jù)更新,其方法是步驟三一、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫接收到下位機(jī)所采集的數(shù)據(jù),并對(duì)該傳輸?shù)臄?shù)據(jù)進(jìn)行判斷,判斷該傳輸?shù)臄?shù)據(jù)是否滿足CRC校驗(yàn)和通信總線協(xié)議,若滿足,則執(zhí)行步驟三二 ;若不滿足,則執(zhí)行步驟三三;步驟三二、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫中實(shí)時(shí)數(shù)據(jù)庫按照協(xié)議解析該數(shù)據(jù)的數(shù)據(jù)值和地址,同時(shí)與map表中上一時(shí)刻數(shù)據(jù)的數(shù)據(jù)值進(jìn)行比較,該比較分為兩種情況一、若該數(shù)據(jù)是數(shù)字量數(shù)據(jù),比較該數(shù)據(jù)值與上一時(shí)刻map表中所存儲(chǔ)的數(shù)據(jù)值是否相同,若是,則,內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫對(duì)該數(shù)據(jù)不作存儲(chǔ),若否,則,存入該下位機(jī)的臨時(shí)表Tmp表中;二、若該數(shù)據(jù)是模擬量數(shù)據(jù),比較該數(shù)據(jù)所設(shè)置初始閾值是否相同,若是,則,實(shí)時(shí)數(shù)據(jù)庫對(duì)該數(shù)據(jù)不作存儲(chǔ),若否,則,存入該下位機(jī)的臨時(shí)表Tmp表中;
然后內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫更新map表并返回到步驟三一;步驟三三、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫通知下位機(jī)重新發(fā)送數(shù)據(jù),判斷是否小于設(shè)定溢出時(shí)間和最大發(fā)送次數(shù)。鍋爐控制中的基于OPC服務(wù)器的數(shù)據(jù)實(shí)時(shí)更新方法,步驟三中所述的實(shí)時(shí)數(shù)據(jù)庫中包含七個(gè)表數(shù)字量數(shù)據(jù)表、模擬量數(shù)據(jù)表、名稱-地址表、臨時(shí)表、報(bào)警記錄表、系統(tǒng)運(yùn)行記錄表和轉(zhuǎn)存信息記錄表;數(shù)字量數(shù)據(jù)表中包含的數(shù)據(jù)項(xiàng)有采集數(shù)字量數(shù)據(jù)的下位機(jī)的名稱、下位機(jī)所采集數(shù)字量數(shù)據(jù)的首地址、下位機(jī)的所采集數(shù)字量數(shù)據(jù)的偏移地址、下位機(jī)的所采集數(shù)字量數(shù)據(jù)的全局地址、是否保存該數(shù)據(jù)的狀態(tài)位、標(biāo)志位和系統(tǒng)復(fù)位的初始值;模擬量數(shù)據(jù)表中包含的數(shù)據(jù)項(xiàng)有采集模擬量數(shù)據(jù)的下位機(jī)的名稱、下位機(jī)所采集模擬量數(shù)據(jù)的首地址、下位機(jī)所采集模擬量數(shù)據(jù)的偏移地址、下位機(jī)所采集模擬量數(shù)據(jù)的全局地址、是否保存該數(shù)據(jù)初始值的狀態(tài)位、下位機(jī)所采集模擬量數(shù)據(jù)的量程和下位機(jī)所采集模擬量數(shù)據(jù)的AD位數(shù);名稱-地址表包含的數(shù)據(jù)項(xiàng)有下位機(jī)的名稱、下位機(jī)所采集數(shù)據(jù)的首地址、下位機(jī)所采集數(shù)據(jù)的全局地址、下位機(jī)所采集數(shù)據(jù)的變量類型和下位機(jī)所采集數(shù)據(jù)的標(biāo)簽號(hào);
臨時(shí)表Tmp表包含的數(shù)據(jù)項(xiàng)有[GetDataTime]和[FieldVal],二者分別代表獲取數(shù)據(jù)的時(shí)間和數(shù)組值,數(shù)據(jù)值是指經(jīng)過解碼得到的模擬量和數(shù)字量值;報(bào)警記錄表包含的數(shù)據(jù)項(xiàng)有報(bào)警的時(shí)間、報(bào)警時(shí)長、報(bào)警的下位機(jī)名稱和是否解決問題標(biāo)志位;系統(tǒng)運(yùn)行記錄表系統(tǒng)開始運(yùn)行時(shí)間和系統(tǒng)累計(jì)運(yùn)行時(shí)間;轉(zhuǎn)存信息記錄表系統(tǒng)轉(zhuǎn)存開始時(shí)間、轉(zhuǎn)存結(jié)束時(shí)間、轉(zhuǎn)存歷史數(shù)據(jù)庫名稱和轉(zhuǎn)存數(shù)據(jù)庫表名。所述的實(shí)時(shí)數(shù)據(jù)庫中的名稱-地址表是由模擬量數(shù)據(jù)表和數(shù)字量數(shù)據(jù)表自動(dòng)生成,生成該表后,先對(duì)該表的變量首地址由低到高排序,然后在此基礎(chǔ)上對(duì)該表的變量類型進(jìn)行由低到高排序,形成數(shù)據(jù)按照名稱、首地址分類的表。本發(fā)明中的實(shí)時(shí)數(shù)據(jù)庫是采用統(tǒng)一的時(shí)間線程,按照時(shí)序改變標(biāo)志變量的值。本發(fā)明的優(yōu)點(diǎn)是I、我們將OPC服務(wù)器做在實(shí)時(shí)數(shù)據(jù)庫中,省去了將兩者分開還需要一重OPC協(xié)議的接口,使系統(tǒng)更加簡潔即減少了系統(tǒng)的硬件資源,同時(shí)OPC服務(wù)器與數(shù)據(jù)庫、下位機(jī)聯(lián)系更為緊密,使得數(shù)據(jù)傳遞更為靈活。如果將實(shí)時(shí)數(shù)據(jù)庫作為一個(gè)OPC客戶端,其他上位機(jī)軟件都是一種客戶端,上位機(jī)到實(shí)時(shí)數(shù)據(jù)庫中取數(shù)據(jù)要經(jīng)過兩重OPC接口協(xié)議。系統(tǒng)的冗余較多,時(shí)序統(tǒng)一的難度也較大。2、本發(fā)明采用的實(shí)時(shí)數(shù)據(jù)庫的快速數(shù)據(jù)插入和OPC服務(wù)器數(shù)據(jù)更新算法減小了程序的冗余,縮小了程序存儲(chǔ)空間,節(jié)約了硬件資源,可巧妙、簡潔的實(shí)現(xiàn)對(duì)數(shù)據(jù)快速存儲(chǔ)和實(shí)時(shí)性的保證Map表只存儲(chǔ)上一次更新的數(shù)據(jù),數(shù)據(jù)量小,查找速度快,用于在當(dāng)前數(shù)據(jù)插入時(shí)做數(shù)據(jù)比較,對(duì)數(shù)據(jù)的初期壓縮起重要作用。TMP表存儲(chǔ)經(jīng)過初期壓縮過的數(shù)據(jù)(比如數(shù)字量10 O O 01會(huì)被壓縮成101等),TMP表的結(jié)構(gòu)十分簡單只有數(shù)據(jù)項(xiàng)時(shí)間和數(shù)據(jù)值,方便快速數(shù)據(jù)插入操作,減小系統(tǒng)延時(shí)。并且通過全局唯一地址(uniqueadd)命名表名,查找方便。對(duì)TMP表的操作是在系統(tǒng)空閑時(shí)間操作,這時(shí)可以將TMP里的數(shù)據(jù)轉(zhuǎn)存到數(shù)據(jù)庫的其他表中,或者進(jìn)一步壓縮存入歷史數(shù)據(jù)庫(傳統(tǒng)硬盤數(shù)據(jù)庫)中。3、數(shù)據(jù)庫表的設(shè)計(jì)使得數(shù)據(jù)的插入和查找更加簡潔,配合上面的對(duì)數(shù)據(jù)的操作流程,可以提高數(shù)據(jù)庫數(shù)據(jù)操作效率。4、OPC標(biāo)簽的設(shè)計(jì)方便組態(tài)人員操作。使得操作人員可以迅速定位傳感器,配置組態(tài)軟件。5、軟件整體獨(dú)立,不需要其他運(yùn)行庫,使用COM技術(shù)開發(fā),可以使用OPC協(xié)議所提供的所有的功能。6、合理的軟件體系結(jié)構(gòu)設(shè)計(jì),程序系統(tǒng)資源占用小,可維護(hù)性好,功能可升級(jí)。
圖I為本發(fā)明裝置的結(jié)構(gòu)示意圖;圖2為實(shí)時(shí)數(shù)據(jù)庫的快速數(shù)據(jù)插入示意圖;圖3為實(shí)時(shí)數(shù)據(jù)庫的快速數(shù)據(jù)插入和OPC服務(wù)器數(shù)據(jù)更新的方法流程圖;圖4為原始的實(shí)時(shí)數(shù)據(jù)庫的快速數(shù)據(jù)插入和OPC服務(wù)器數(shù)據(jù)更新采用的算法流程圖; 圖5為本發(fā)明實(shí)時(shí)數(shù)據(jù)庫中的名稱-地址表的結(jié)構(gòu)圖。
具體實(shí)施例方式具體實(shí)施方式
一下面結(jié)合圖I說明本實(shí)施方式,。鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,它包括上位機(jī)I、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2和多個(gè)下位機(jī)3 ;上位機(jī)I與內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2通過OPC接口連接,內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2通過通信總線與多個(gè)下位機(jī)3連接。
具體實(shí)施方式
二 下面結(jié)合圖I說明本實(shí)施方式,本實(shí)施方式為對(duì)實(shí)施方式一的進(jìn)一步說明,鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,每個(gè)下位機(jī)3向內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2傳輸?shù)臄?shù)據(jù)包含讀寫標(biāo)志位、CRC校驗(yàn)位、下位機(jī)3的地址位和下位機(jī)3的數(shù)據(jù)值信息。
具體實(shí)施方式
三下面結(jié)合圖I說明本實(shí)施方式,本實(shí)施方式為對(duì)實(shí)施方式一的進(jìn)一步說明,鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,所述的數(shù)據(jù)總線4為串行RS485通信總線。
具體實(shí)施方式
四下面結(jié)合圖I說明本實(shí)施方式,本實(shí)施方式為對(duì)實(shí)施方式一的進(jìn)一步說明,鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,所述的下位機(jī)3是傳感器或執(zhí)行機(jī)構(gòu)。
具體實(shí)施方式
五下面結(jié)合圖I說明本實(shí)施方式,本實(shí)施方式為應(yīng)用實(shí)施方式一裝置的方法,所述的上位機(jī)(I)為監(jiān)控軟件系統(tǒng)。
具體實(shí)施方式
六下面結(jié)合圖2、圖3、和圖5說明本實(shí)施方式,本實(shí)施方式為應(yīng)用實(shí)施方式一裝置的方法,鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置的實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新方法,其特征在于,它是按照如下步驟實(shí)現(xiàn)的
步驟一、首先內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2為每一個(gè)下位機(jī)3根據(jù)其通信地址建立一個(gè)臨時(shí)表Tmp表,該臨時(shí)表Tmp表的表名為TmpXXX,其中XXX對(duì)應(yīng)下位機(jī)3的通信地址;臨時(shí)表Tmp表內(nèi)包括有兩個(gè)數(shù)據(jù)項(xiàng)[GetDataTime]和[FieldVal],[FieldVal]表示下位機(jī)上傳的數(shù)據(jù),[GetDataTime]表示獲取[FieldVal]的時(shí)間;步驟二、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2使用map表存儲(chǔ)上一時(shí)刻的數(shù)據(jù),該數(shù)據(jù)包括下位機(jī)3返回的32位地址項(xiàng)和數(shù)據(jù)值兩項(xiàng)數(shù)據(jù);步驟三、當(dāng)下位機(jī)3發(fā)送數(shù)據(jù)給內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2的時(shí)候,進(jìn)行實(shí)時(shí)數(shù)據(jù)庫的快速數(shù)據(jù)插入和OPC服務(wù)器數(shù)據(jù)更新,其方法是步驟三一、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2接收到下位機(jī)3所采集的數(shù)據(jù),并對(duì)該傳輸?shù)臄?shù)據(jù)進(jìn)行判斷,判斷該傳輸?shù)臄?shù)據(jù)是否滿足CRC校驗(yàn)和通信總線協(xié)議,若滿足,則執(zhí)行步驟三二 ;若不滿足,則執(zhí)行步驟三三; 步驟三二、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2中實(shí)時(shí)數(shù)據(jù)庫按照協(xié)議解析該數(shù)據(jù)的數(shù)據(jù)值和地址,同時(shí)與map表中上一時(shí)刻數(shù)據(jù)的數(shù)據(jù)值進(jìn)行比較,該比較分為兩種情況一、若該數(shù)據(jù)是數(shù)字量數(shù)據(jù),比較該數(shù)據(jù)值與上一時(shí)刻map表中所存儲(chǔ)的數(shù)據(jù)值是否相同,若是,則,內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2對(duì)該數(shù)據(jù)不作存儲(chǔ),若否,則,存入該下位機(jī)3的臨時(shí)表Tmp表中;二、若該數(shù)據(jù)是模擬量數(shù)據(jù),比較該數(shù)據(jù)所設(shè)置初始閾值是否相同,若是,則,實(shí)時(shí)數(shù)據(jù)庫2對(duì)該數(shù)據(jù)不作存儲(chǔ),若否,則,存入該下位機(jī)3的臨時(shí)表Tmp表中;然后內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2更新map表并返回到步驟三一;步驟三三、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫2通知下位機(jī)重新發(fā)送數(shù)據(jù),判斷是否小于設(shè)定溢出時(shí)間和最大發(fā)送次數(shù)。
具體實(shí)施方式
七本實(shí)施方式為對(duì)實(shí)施方式六的進(jìn)一步說明,鍋爐控制中的基于OPC服務(wù)器的數(shù)據(jù)實(shí)時(shí)更新方法,其特征在于,步驟三中所述的實(shí)時(shí)數(shù)據(jù)庫中包含七個(gè)表數(shù)字量數(shù)據(jù)表、模擬量數(shù)據(jù)表、名稱-地址表、臨時(shí)表、報(bào)警記錄表、系統(tǒng)運(yùn)行記錄表和轉(zhuǎn)存信息記錄表;數(shù)字量數(shù)據(jù)表中包含的數(shù)據(jù)項(xiàng)有采集數(shù)字量數(shù)據(jù)的下位機(jī)3的名稱、下位機(jī)3所采集數(shù)字量數(shù)據(jù)的首地址、下位機(jī)3的所采集數(shù)字量數(shù)據(jù)的偏移地址、下位機(jī)3的所采集數(shù)字量數(shù)據(jù)的全局地址、是否保存該數(shù)據(jù)的狀態(tài)位、標(biāo)志位和系統(tǒng)復(fù)位的初始值;模擬量數(shù)據(jù)表中包含的數(shù)據(jù)項(xiàng)有采集模擬量數(shù)據(jù)的下位機(jī)3的名稱、下位機(jī)3所采集模擬量數(shù)據(jù)的首地址、下位機(jī)3所采集模擬量數(shù)據(jù)的偏移地址、下位機(jī)3所采集模擬量數(shù)據(jù)的全局地址、是否保存該數(shù)據(jù)初始值的狀態(tài)位、下位機(jī)3所采集模擬量數(shù)據(jù)的量程和下位機(jī)3所采集模擬量數(shù)據(jù)的AD位數(shù);名稱-地址表包含的數(shù)據(jù)項(xiàng)有下位機(jī)3的名稱、下位機(jī)3所采集數(shù)據(jù)的首地址、下位機(jī)3所采集數(shù)據(jù)的全局地址、下位機(jī)3所采集數(shù)據(jù)的變量類型和下位機(jī)3所采集數(shù)據(jù)的標(biāo)簽號(hào);臨時(shí)表Tmp表包含的數(shù)據(jù)項(xiàng)有[GetDataTime]和[FieldVal],二者分別代表獲取數(shù)據(jù)的時(shí)間和數(shù)組值,數(shù)據(jù)值是指經(jīng)過解碼得到的模擬量和數(shù)字量值;報(bào)警記錄表包含的數(shù)據(jù)項(xiàng)有報(bào)警的時(shí)間、報(bào)警時(shí)長、報(bào)警的下位機(jī)3名稱和是否解決問題標(biāo)志位;
系統(tǒng)運(yùn)行記錄表系統(tǒng)開始運(yùn)行時(shí)間和系統(tǒng)累計(jì)運(yùn)行時(shí)間;轉(zhuǎn)存信息記錄表系統(tǒng)轉(zhuǎn)存開始時(shí)間、轉(zhuǎn)存結(jié)束時(shí)間、轉(zhuǎn)存歷史數(shù)據(jù)庫名稱和轉(zhuǎn)存數(shù)據(jù)庫表名。
具體實(shí)施方式
八本實(shí)施方式為對(duì)實(shí)施方式六的進(jìn)一步說明,鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新方法,所述的實(shí)時(shí)數(shù)據(jù)庫中的名稱-地址表是由模擬量數(shù)據(jù)表和數(shù)字量數(shù)據(jù)表自動(dòng)生成,生成該表后,先對(duì)該表的變量首地址由低到高排序,然后在此基礎(chǔ)上對(duì)該表的變量類型進(jìn)行由低到高排序,形成數(shù)據(jù)按照名稱、首地址分類的表。
具體實(shí)施方式
九本實(shí)施方式為對(duì)實(shí)施方式六的進(jìn)一步說明, 鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新方法,實(shí)時(shí)數(shù)據(jù)庫采用統(tǒng)一的時(shí)間線程,按照時(shí)序改變標(biāo)志變量的值。本發(fā)明不局限于上述實(shí)施方式,還可以是上述各實(shí)施方式中所述技術(shù)特征的合理組合。
權(quán)利要求
1.鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,其特征在于它包括上位機(jī)(I)、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)和多個(gè)下位機(jī)(3); 上位機(jī)⑴與內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫⑵通過OPC接口連接,內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)通過通信總線與多個(gè)下位機(jī)(3)連接。
2.根據(jù)權(quán)利要求I所述的鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,其特征在于每個(gè)下位機(jī)⑶向內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫⑵傳輸?shù)臄?shù)據(jù)包含讀寫標(biāo)志位、CRC校驗(yàn)位、下位機(jī)(3)的地址位和下位機(jī)(3)的數(shù)據(jù)值信息。
3.根據(jù)權(quán)利要求I所述的鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,其特征在于所述的數(shù)據(jù)總線(4)為串行RS485通信總線。
4.根據(jù)權(quán)利要求I所述的鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,其特征在于所述的下位機(jī)(3)是傳感器或執(zhí)行機(jī)構(gòu)。
5.根據(jù)權(quán)利要求I所述的鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置,其特征在于所述的上位機(jī)(I)為監(jiān)控軟件系統(tǒng)。
6.應(yīng)用權(quán)利要求I所述的鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置的實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新方法,其特征在于,它是按照如下步驟實(shí)現(xiàn)的 步驟一、首先內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)為每一個(gè)下位機(jī)(3)根據(jù)其通信地址建立一個(gè)臨時(shí)表Tmp表,該臨時(shí)表Tmp表的表名為TmpXXX,其中XXX對(duì)應(yīng)下位機(jī)(3)的通信地址;臨時(shí)表Tmp表內(nèi)包括有兩個(gè)數(shù)據(jù)項(xiàng)[GetDataTime]和[FieldVal],[FieldVal]表示下位機(jī)上傳的數(shù)據(jù),[GetDataTime]表示獲取[FieldVal]的時(shí)間; 步驟二、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)使用map表存儲(chǔ)上一時(shí)刻的數(shù)據(jù),該數(shù)據(jù)包括下位機(jī)(3)返回的32位地址項(xiàng)和數(shù)據(jù)值兩項(xiàng)數(shù)據(jù); 步驟三、當(dāng)下位機(jī)(3)發(fā)送數(shù)據(jù)給內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)的時(shí)候,進(jìn)行實(shí)時(shí)數(shù)據(jù)庫的快速數(shù)據(jù)插入和OPC服務(wù)器數(shù)據(jù)更新,其方法是 步驟三一、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)接收到下位機(jī)(3)所采集的數(shù)據(jù),并對(duì)該傳輸?shù)臄?shù)據(jù)進(jìn)行判斷,判斷該傳輸?shù)臄?shù)據(jù)是否滿足CRC校驗(yàn)和通信總線協(xié)議,若滿足,則執(zhí)行步驟三二 ;若不滿足,則執(zhí)行步驟三三; 步驟三二、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)中實(shí)時(shí)數(shù)據(jù)庫按照協(xié)議解析該數(shù)據(jù)的數(shù)據(jù)值和地址,同時(shí)與map表中上一時(shí)刻數(shù)據(jù)的數(shù)據(jù)值進(jìn)行比較,該比較分為兩種情況 一、若該數(shù)據(jù)是數(shù)字量數(shù)據(jù),比較該數(shù)據(jù)值與上一時(shí)刻map表中所存儲(chǔ)的數(shù)據(jù)值是否相同,若是,則,內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)對(duì)該數(shù)據(jù)不作存儲(chǔ),若否,則,存入該下位機(jī)(3)的臨時(shí)表Tmp表中; 二、若該數(shù)據(jù)是模擬量數(shù)據(jù),比較該數(shù)據(jù)所設(shè)置初始閾值是否相同,若是,則,實(shí)時(shí)數(shù)據(jù)庫(2)對(duì)該數(shù)據(jù)不作存儲(chǔ),若否,則,存入該下位機(jī)(3)的臨時(shí)表Tmp表中; 然后內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)更新map表并返回到步驟三一; 步驟三三、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫(2)通知下位機(jī)重新發(fā)送數(shù)據(jù),判斷是否小于設(shè)定溢出時(shí)間和最大發(fā)送次數(shù)。
7.根據(jù)權(quán)利要求6所述的鍋爐控制中的基于OPC服務(wù)器的數(shù)據(jù)實(shí)時(shí)更新方法,其特征在于,步驟三中所述的實(shí)時(shí)數(shù)據(jù)庫中包含七個(gè)表數(shù)字量數(shù)據(jù)表、模擬量數(shù)據(jù)表、名稱-地址表、臨時(shí)表、報(bào)警記錄表、系統(tǒng)運(yùn)行記錄表和轉(zhuǎn)存信息記錄表;數(shù)字量數(shù)據(jù)表中包含的數(shù)據(jù)項(xiàng)有采集數(shù)字量數(shù)據(jù)的下位機(jī)(3)的名稱、下位機(jī)(3)所采集數(shù)字量數(shù)據(jù)的首地址、下位機(jī)(3)的所采集數(shù)字量數(shù)據(jù)的偏移地址、下位機(jī)(3)的所采集數(shù)字量數(shù)據(jù)的全局地址、是否保存該數(shù)據(jù)的狀態(tài)位、標(biāo)志位和系統(tǒng)復(fù)位的初始值; 模擬量數(shù)據(jù)表中包含的數(shù)據(jù)項(xiàng)有采集模擬量數(shù)據(jù)的下位機(jī)(3)的名稱、下位機(jī)(3)所采集模擬量數(shù)據(jù)的首地址、下位機(jī)(3)所采集模擬量數(shù)據(jù)的偏移地址、下位機(jī)(3)所采集模擬量數(shù)據(jù)的全局地址、是否保存該數(shù)據(jù)初始值的狀態(tài)位、下位機(jī)(3)所采集模擬量數(shù)據(jù)的量程和下位機(jī)(3)所采集模擬量數(shù)據(jù)的AD位數(shù); 名稱-地址表包含的數(shù)據(jù)項(xiàng)有下位機(jī)(3)的名稱、下位機(jī)(3)所采集數(shù)據(jù)的首地址、下位機(jī)(3)所采集數(shù)據(jù)的全局地址、下位機(jī)(3)所采集數(shù)據(jù)的變量類型和下位機(jī)(3)所采集數(shù)據(jù)的標(biāo)簽號(hào); 臨時(shí)表Tmp表包含的數(shù)據(jù)項(xiàng)有[GetDataTime]和[FieldVal],二者分別代表獲取數(shù)據(jù)的時(shí)間和數(shù)組值,數(shù)據(jù)值是指經(jīng)過解碼得到的模擬量和數(shù)字量值; 報(bào)警記錄表包含的數(shù)據(jù)項(xiàng)有報(bào)警的時(shí)間、報(bào)警時(shí)長、報(bào)警的下位機(jī)(3)名稱和是否解決問題標(biāo)志位; 系統(tǒng)運(yùn)行記錄表系統(tǒng)開始運(yùn)行時(shí)間和系統(tǒng)累計(jì)運(yùn)行時(shí)間; 轉(zhuǎn)存信息記錄表系統(tǒng)轉(zhuǎn)存開始時(shí)間、轉(zhuǎn)存結(jié)束時(shí)間、轉(zhuǎn)存歷史數(shù)據(jù)庫名稱和轉(zhuǎn)存數(shù)據(jù)庫表名。
8.根據(jù)權(quán)利要求7所述的鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新方法,其特征在于,所述的實(shí)時(shí)數(shù)據(jù)庫中的名稱-地址表是由模擬量數(shù)據(jù)表和數(shù)字量數(shù)據(jù)表自動(dòng)生成,生成該表后,先對(duì)該表的變量首地址由低到高排序,然后在此基礎(chǔ)上對(duì)該表的變量類型進(jìn)行由低到高排序,形成數(shù)據(jù)按照名稱、首地址分類的表。
9.根據(jù)權(quán)利要求6所述的鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新方法,其特征在于,實(shí)時(shí)數(shù)據(jù)庫采用統(tǒng)一的時(shí)間線程,按照時(shí)序改變標(biāo)志變量的值。
全文摘要
鍋爐控制中的基于OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新的裝置及數(shù)據(jù)實(shí)時(shí)更新方法,涉及一種數(shù)據(jù)控制方法。為了解決鍋爐控制中的OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫數(shù)據(jù)快速存儲(chǔ)的問題。本發(fā)明的裝置包括上位機(jī)、內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫和多個(gè)下位機(jī);上位機(jī)與內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫通過OPC接口連接,內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫通過通信總線與多個(gè)下位機(jī)連接。本發(fā)明實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新方法為一、首先內(nèi)置OPC服務(wù)器的實(shí)時(shí)數(shù)據(jù)庫為每一個(gè)下位機(jī)根據(jù)其通信地址建立一個(gè)臨時(shí)表Tmp表;二、實(shí)時(shí)數(shù)據(jù)庫使用map表存儲(chǔ)上一時(shí)刻的數(shù)據(jù);三、進(jìn)行實(shí)時(shí)數(shù)據(jù)庫的快速數(shù)據(jù)插入和OPC服務(wù)器數(shù)據(jù)更新。用于鍋爐控制中的實(shí)時(shí)數(shù)據(jù)控制。
文檔編號(hào)H04L29/06GK102663068SQ20121009312
公開日2012年9月12日 申請(qǐng)日期2012年3月31日 優(yōu)先權(quán)日2012年3月31日
發(fā)明者孫一勇, 王光, 王慶領(lǐng), 鐘賢德, 高會(huì)軍 申請(qǐng)人:哈爾濱工業(yè)大學(xué)