本發明涉及上下位機數據交互技術領域,特別是涉及一種數據處理方法及對應裝置、一種數據交互方法以及對應裝置。
背景技術:
上位機與下位機數據交互機制在安防設備中普遍應用。上位機是指可以直接發出操控命令的計算機,一般是PC/host computer/master computer/upper computer,屏幕上顯示各種信號變化(液壓,水位,溫度等)。下位機是直接控制設備獲取設備狀況的計算機,一般是PLC/單片機single chip microcomputer/slave computer/lower computer之類的。上位機發出的命令首先給下位機,下位機再根據此命令解釋成相應時序信號直接控制相應設備。下位機不時讀取設備狀態數據(一般為模擬量),轉換成數字信號反饋給上位機。在概念上,控制者和提供服務者是上位機,被控制者和被服務者是下位機,也可以理解為主機和從機的關系,但上位機和下位機是可以轉換的。
下位機可以脫機工作也可以在線工作,脫機工作時數據按文件形式保存在本地,一般上位機接收下位機上傳的脫機記錄會存在數據重復處理的問題,原因有上傳數據受通訊線路、設備故障中斷傳輸等,這對產品的功能產生嚴重的影響。傳統方法是上位機每次接收記錄都會去查數據庫,但是頻繁的操作數據庫會影響系統的整體性能。
技術實現要素:
本發明的目的是提供一種數據處理方法及對應裝置、一種數據交互方法以及對應裝置,以解決現有技術頻繁操作數據庫而影響系統的整體性能的問題。
為解決上述技術問題,本發明提供一種數據處理方法,應用于上位機,處理方法包括:
接收由下位機上傳的當前待記錄數據;
將所述當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;
當從所述緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從所述緩存隊列中未查找到相同的記錄數據時,將所述當前待記錄數據存儲至數據庫,返回記錄成功的信息。
可選地,在所述接收由下位機上傳的當前待記錄數據之前還包括:
從所述數據庫中讀取最近K條已存記錄數據,K=X*Y,其中X大于所述下位機每個塊存儲的記錄數,Y為所述上位機托管的設備數;
將獲取的所述已存記錄數據加載至所述緩存隊列中;
啟動接收記錄數據的線程。
可選地,在所述將所述當前待記錄數據存儲至數據庫之后還包括:
將保存到所述數據庫的數據插入所述緩存隊列中。
本發明還提供了一種數據處理裝置,包括:
數據接收模塊,用于接收由下位機上傳的當前待記錄數據;
比較模塊,用于將所述當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;
處理模塊,用于當從所述緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從所述緩存隊列中未查找到相同的記錄數據時,將所述當前待記錄數據存儲至數據庫,返回記錄成功的信息。
本發明還提供了一種數據處理方法,應用于下位機,包括:
獲取需上傳至上位機的當前待記錄數據;
將所述當前待記錄數據解析為多條記錄數據流;
依次將所述記錄數據流上傳至上位機,以使所述上位機對未存儲于數據緩存庫的數據進行存儲,并接收所述上位機返回的記錄成功的信息;
當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據。
可選地,所述獲取需上傳至上位機的當前待記錄數據包括:
按塊讀取所述下位機本地存儲的脫機記錄。
可選地,在當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據之后還包括:
判斷所述下位機是否還存在未上傳的脫機數據塊,如果是,則返回按塊讀取所述下位機本地存儲的脫機記錄的步驟。
本發明還提供了一種數據處理裝置,包括:
獲取模塊,用于獲取需上傳至上位機的當前待記錄數據;
解析模塊,用于將所述當前待記錄數據解析為多條記錄數據流;
信息接收模塊,用于依次將所述記錄數據流上傳至上位機,以使所述上位機對未存儲于數據緩存庫的數據進行存儲,并接收所述上位機返回的記錄成功的信息;
刪除模塊,用于當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據。
本發明還提供了一種數據交互方法,包括:
下位機獲取需上傳至上位機的當前待記錄數據,將所述當前待記錄數據解析為多條記錄數據流,依次上傳所述記錄數據流;
上位機接收由下位機上傳的當前待記錄數據;將所述當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;當從所述緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從所述緩存隊列中未查找到相同的記錄數據時,將所述當前待記錄數據存儲至數據庫,返回記錄成功的信息;
所述下位機接收所述上位機返回的記錄成功的信息;當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據。
本發明還提供了一種數據交互系統,包括下位機以及上位機;
其中,所述下位機用于獲取需上傳至上位機的當前待記錄數據,將所述當前待記錄數據解析為多條記錄數據流,依次上傳所述記錄數據流;
所述上位機用于接收由下位機上傳的當前待記錄數據;將所述當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;當從所述緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從所述緩存隊列中未查找到相同的記錄數據時,將所述當前待記錄數據存儲至數據庫,返回記錄成功的信息;
所述下位機用于接收所述上位機返回的記錄成功的信息;當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據。
本發明所提供的數據處理方法,上位機通過接收由下位機上傳的當前待記錄數據;將當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;當從緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從緩存隊列中未查找到相同的記錄數據時,將當前待記錄數據存儲至數據庫,返回記錄成功的信息。下位機獲取需上傳至上位機的當前待記錄數據;將當前待記錄數據解析為多條記錄數據流;依次將記錄數據流上傳至上位機,以使上位機對未存儲于數據緩存庫的數據進行存儲,并接收上位機返回的記錄成功的信息;在當前待記錄數據全部上傳完成時,刪除存儲于下位機中的當前待記錄數據。本發明在上位機建立數據緩存庫,每次接收下位機記錄后檢查數據緩存庫是否重復即可,不需要每次去數據庫中查詢驗證,減少了上位機數據庫性能的消耗,并且解決了上位機記錄數據重復的問題。此外,本發明還提供了一種具有上述技術優點的數據處理裝置、數據交互方法以及對應裝置。
附圖說明
為了更清楚的說明本發明實施例或現有技術的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明所提供的數據處理方法的一種具體實施方式的流程圖;
圖2為本發明所提供的數據處理方法的一種具體實施方式中上位機接收記錄線程初始化過程的流程圖;
圖3為本發明實施例提供的數據處理裝置的一種具體實施方式的結構框圖;
圖4為本發明所提供的數據處理方法的另一種具體實施方式的流程圖;
圖5為本發明實施例提供的數據處理裝置的另一種具體實施方式的結構框圖;
圖6為本發明所提供的數據交互方法的具體工作流程圖。
具體實施方式
為了使本技術領域的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明所提供的數據處理方法的一種具體實施方式的流程圖如圖1所示,該方法應用于上位機,具體可以包括:
步驟S101:接收由下位機上傳的當前待記錄數據;
步驟S102:將所述當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;
步驟S103:當從所述緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從所述緩存隊列中未查找到相同的記錄數據時,將所述當前待記錄數據存儲至數據庫,返回記錄成功的信息。
一般上位機接收下位機上傳的脫機記錄會存在數據重復處理的問題,這對產品的功能產生嚴重的影響,傳統方法是上位機每次接收記錄都會去查數據庫,頻繁的操作數據庫會影響系統的整體性能。本發明實施例在上位機建立一個數據緩存庫,每次接收下位機記錄數據請求后需檢查緩存庫中是否有重復,不需要去數據庫中查詢驗證,減少了對上位機系統性能的影響,并解決了上位機記錄數據重復的問題。
本發明所提供的數據處理方法,上位機通過接收由下位機上傳的當前待記錄數據;將當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;當從緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從緩存隊列中未查找到相同的記錄數據時,將當前待記錄數據存儲至數據庫,返回記錄成功的信息。本發明實施例在上位機建立數據緩存庫,每次接收下位機記錄后檢查數據緩存庫是否重復即可,不需要每次去數據庫中查詢驗證,減少了上位機數據庫性能的消耗,并且解決了上位機記錄數據重復的問題。
在上述實施例的基礎上,本發明所提供的數據處理方法在上位機啟動接收下位機數據的工作線程前,從數據庫中查詢本工作站所托管設備的最近K條數據,K=X*Y,X大于下位機每個塊存儲的記錄數,Y為上位機托管的設備數,把K條數據保存在一個緩存庫中。如圖2本發明所提供的數據處理方法的一種具體實施方式中上位機接收記錄線程初始化過程的流程圖所示,該方法包括:
步驟S201:從所述數據庫中讀取最近K條已存記錄數據,K=X*Y,其中X大于所述下位機每個塊存儲的記錄數,Y為所述上位機托管的設備數;
步驟S202:將獲取的所述已存記錄數據加載至所述緩存隊列中;
步驟S203:啟動接收記錄數據的線程。
每次接收下位機記錄需檢查緩存庫中是否有重復,如果存在重復則丟棄處理,并給下位機返回相應結果,下位機不再上傳該記錄。如果不存在重復就正常處理和保存數據庫。
作為一種具體實施方式,在將所述當前待記錄數據存儲至數據庫之后還可以進一步包括:
將保存到所述數據庫的數據插入所述緩存隊列中。
下面對本發明實施例提供的數據處理裝置進行介紹,下文描述的數據處理裝置與上文描述的數據處理方法可相互對應參照。
圖3為本發明實施例提供的數據處理裝置的一種具體實施方式的結構框圖,參照圖3數據處理裝置可以包括:
數據接收模塊100,用于接收由下位機上傳的當前待記錄數據;
比較模塊200,用于將所述當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;
處理模塊300,用于當從所述緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從所述緩存隊列中未查找到相同的記錄數據時,將所述當前待記錄數據存儲至數據庫,返回記錄成功的信息。
本實施例的數據處理裝置用于實現前述的數據處理方法,因此數據處理裝置中的具體實施方式可見前文中的數據處理方法的實施例部分,例如,數據接收模塊100,比較模塊200,處理模塊300,分別用于實現上述數據處理方法中步驟S101,S102,S103,所以,其具體實施方式可以參照相應的各個部分實施例的描述,在此不再贅述。
本發明所提供的數據處理方法的另一種具體實施方式的流程圖如圖4所示,該方法可應用于下位機,其具體包括:
步驟S301:獲取需上傳至上位機的當前待記錄數據;
具體地,讀取的方式可以為按塊讀取所述下位機本地存儲的脫機記錄。
步驟S302:將所述當前待記錄數據解析為多條記錄數據流;
步驟S303:依次將所述記錄數據流上傳至上位機,以使所述上位機對未存儲于數據緩存庫的數據進行存儲,并接收所述上位機返回的記錄成功的信息;
步驟S304:當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據。
本發明實施例在當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據之后還可以進一步包括:判斷所述下位機是否還存在未上傳的脫機數據塊,如果是,則返回按塊讀取所述下位機本地存儲的脫機記錄的步驟。
本發明實施例中下位機通過獲取需上傳至上位機的當前待記錄數據;將當前待記錄數據解析為多條記錄數據流;依次將記錄數據流上傳至上位機,以使上位機對未存儲于數據緩存庫的數據進行存儲,并接收上位機返回的記錄成功的信息;在當前待記錄數據全部上傳完成時,刪除存儲于下位機中的當前待記錄數據。本發明在上位機建立數據緩存庫,每次接收下位機記錄后檢查數據緩存庫是否重復即可,不需要每次去數據庫中查詢驗證,減少了上位機數據庫性能的消耗,并且解決了上位機記錄數據重復的問題。
下面對本發明實施例提供的數據處理裝置進行介紹,下文描述的數據處理裝置與上文描述的數據處理方法可相互對應參照。圖5為本發明實施例提供的數據處理裝置的另一種具體實施方式的結構框圖,參照圖5數據處理裝置可以包括:
獲取模塊400,用于獲取需上傳至上位機的當前待記錄數據;
解析模塊500,用于將所述當前待記錄數據解析為多條記錄數據流;
信息接收模塊600,用于依次將所述記錄數據流上傳至上位機,以使所述上位機對未存儲于數據緩存庫的數據進行存儲,并接收所述上位機返回的記錄成功的信息;
刪除模塊700,用于當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據
本實施例的數據處理裝置用于實現前述的數據處理方法,因此數據處理裝置中的具體實施方式可見前文中的數據處理方法的實施例部分,例如,獲取模塊400,解析模塊500,信息接收模塊600,刪除模塊700,分別用于實現上述數據處理方法中步驟S301,S302,S303,S304,所以,其具體實施方式可以參照相應的各個部分實施例的描述,在此不再贅述。
此外,本發明還提供了一種數據交互方法,該方法具體包括:
下位機獲取需上傳至上位機的當前待記錄數據,將所述當前待記錄數據解析為多條記錄數據流,依次上傳所述記錄數據流;
上位機接收由下位機上傳的當前待記錄數據;將所述當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;當從所述緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從所述緩存隊列中未查找到相同的記錄數據時,將所述當前待記錄數據存儲至數據庫,返回記錄成功的信息;
所述下位機接收所述上位機返回的記錄成功的信息;當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據。
參照圖6,下面對本發明所提供的數據交互方法的具體工作流程進行進一步詳細闡述。下位機按塊讀取本地存儲的脫機記錄,將塊內記錄數據解析為N條(N小于X),X大于下位機每個塊存儲的記錄數,然后依次向上位機上傳記錄數據。上位機接收記錄數據,并從緩存隊列中查找是否存在相同的記錄數據,如果是,則直接返回記錄成功的標記信息;如果否,則將當前數據保存至數據庫中,并插入緩存隊列后,返回記錄成功的標記信息。下位機接收處理結果,并判斷塊內的數據是否上傳完畢,直到上傳完畢后刪除當前數據塊。并且進一步檢測是否還有未上傳的脫機數據塊,如果是,則返回按塊讀取本地存儲的脫機記錄;如果否,則結束。
下面對本發明實施例提供的數據交互系統進行介紹,下文描述的數據交互系統與上文描述的數據交互方法可相互對應參照。該數據交互系統可以具體包括:下位機以及上位機;
其中,所述下位機用于獲取需上傳至上位機的當前待記錄數據,將所述當前待記錄數據解析為多條記錄數據流,依次上傳所述記錄數據流;
所述上位機用于接收由下位機上傳的當前待記錄數據;將所述當前待記錄數據與預先加載到數據緩存庫的緩存隊列中的已存記錄數據進行比較;當從所述緩存隊列中查找到相同的記錄數據時,返回記錄成功的信息;當從所述緩存隊列中未查找到相同的記錄數據時,將所述當前待記錄數據存儲至數據庫,返回記錄成功的信息;
所述下位機用于接收所述上位機返回的記錄成功的信息;當所述當前待記錄數據全部上傳完成時,刪除存儲于下位機中的所述當前待記錄數據。
綜上,本發明在上位機建立數據緩存庫,每次接收下位機記錄后檢查數據緩存庫是否重復即可,不需要每次去數據庫中查詢驗證,減少了上位機數據庫性能的消耗,并且解決了上位機記錄數據重復的問題。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。
以上對本發明所提供的數據處理方法及對應裝置、數據交互方法以及對應裝置進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護范圍內。