一種數據採集方法及系統與流程
2023-04-23 15:07:11

本發明涉及數據採集技術,尤其涉及一種高速數據採集方法及系統。
背景技術:
目前,對於現有的上位機軟體和底層控制系統(如plc設備、數控系統等)之間的通訊,其常用的方式是opc伺服器/客戶端通訊方式。對於這一常用的opc通訊方式,其工作原理為:進行數據採集時,opc伺服器啟動後控制器響應opc伺服器,從而控制底層控制系統反饋單個數據給opc伺服器,opc伺服器獲取到單個數據後便會將其存儲至上位機的資料庫中,這樣重複多次這一單個數據採集過程後才能掃描獲得完整的數據序列。可見,傳統opc通訊方式的數據流採集掃描周期較長,基本在100ms以上,從而導致採集速率低下,而且並不具備數據採集過程的診斷能力,導致數據採集的可靠性低下。
技術實現要素:
為了解決上述技術問題,本發明的目的是提供一種速率高、可靠性高的數據採集方法。
本發明的另一目的是提供一種速率高、可靠性高的數據採集系統。
本發明所採用的技術方案是:一種數據採集方法,該方法包括的步驟有:
控制器向採集得到的數據添加序列號後進行緩存;
opc伺服器將緩存的數據進行獲取後上傳至上位機;
上位機根據獲得的數據中所包含的序列號,對獲得的數據進行依序排列後存儲。
進一步,所述序列號為以固定周期生成的等差遞增序列號。
進一步,所述上位機根據獲得的數據中所包含的序列號,對獲得的數據進行依序排列後存儲這一步驟,其具體包括:
上位機根據獲得的多個數據中所包含的序列號,按照序列號的數值大小從而對獲得的多個數據進行依序排列;
計算相鄰兩個數據之間的序列號差值,然後根據計算得出的多個序列號差值,從而判斷排列後的多個數據是否存有異常,若是,則輸出預警提示信息,反之,則對排列後的多個數據進行存儲。
進一步,所述計算相鄰兩個數據之間的序列號差值,然後根據計算得出的多個序列號差值,從而判斷排列後的多個數據是否存有異常,若是,則輸出預警提示信息,反之,則對排列後的多個數據進行存儲這一步驟,其具體包括:
計算相鄰兩個數據之間的序列號差值,然後根據序列號差值所對應的減數或被減數的數值大小,從而對多個序列號差值進行依序排列;
計算相鄰兩個序列號差值之間的數值差作為二級差值,然後通過判斷二級差值的非零個數以及不為零的二級差值的數值大小,從而判斷排列後的多個數據是否存有異常,若是,則輸出預警提示信息,反之,則對排列後的多個數據進行存儲。
進一步,所述opc伺服器將緩存的數據進行獲取後上傳至上位機這一步驟,其具體包括:
控制器對緩存的數據進行壓縮處理,opc伺服器將壓縮處理後的數據進行獲取後上傳至上位機。
進一步,所述對緩存的數據進行壓縮處理這一步驟,其所採用的壓縮處理方式為:
將前一個數據包的內容與當前數據包的內容進行差異分析,從而得到當前數據包的內容相較於前一個數據包的內容的差異數據,所述差異數據作為對當前數據包進行壓縮處理後所得到的壓縮數據。
本發明所採用的另一技術方案是:一種數據採集系統,該系統包括:
採集模塊,用於令控制器向採集得到的數據添加序列號後進行緩存;
通訊模塊,用於令opc伺服器將在控制器中緩存的數據進行獲取後上傳至上位機;
處理模塊,用於令上位機根據獲得的數據中所包含的序列號,對獲得的數據進行依序排列後存儲。
進一步,所述序列號為以固定周期生成的等差遞增序列號。
進一步,所述處理模塊具體包括:
排序子模塊,用於根據獲得的多個數據中所包含的序列號,按照序列號的數值大小從而對獲得的多個數據進行依序排列;
診斷子模塊,用於計算相鄰兩個數據之間的序列號差值,然後根據計算得出的多個序列號差值,從而判斷排列後的多個數據是否存有異常,若是,則輸出預警提示信息,反之,則對排列後的多個數據進行存儲。
進一步,所述採集模塊具體用於令控制器向採集得到的數據添加序列號後進行緩存,以及對緩存的數據進行壓縮處理。
本發明的有益效果是:本發明的方法通過對採集到的數據進行緩存並且按照採集時刻的先後順序將序列號依次添加至採集到的數據當中後將緩存的數據上傳至上位機,從而實現數據採集,這樣不管掃描周期的大小為多少,都能獲取到與控制器掃描周期相同的序列數據,大大提高數據採集速率。另外,由於序列號為以固定周期生成的等差遞增序列號,因此通過對數據中所提取出的序列號進行差值判斷,便能判斷數據採集過程中是否存有問題,並且發出預警提示信息,便於工作人員能及時進行排查,大大提高數據採集傳輸系統的穩定性和可靠性。
本發明的另一有益效果是:本發明的系統通過對採集到的數據進行緩存並且按照採集時刻的先後順序將序列號依次添加至採集到的數據當中後將緩存的數據上傳至上位機,從而實現數據採集,這樣不管掃描周期的大小為多少,都能獲取到與控制器掃描周期相同的序列數據,從而便可大大減少opc伺服器的掃描周期,實現數據採集速率的提高。另外,由於序列號為以固定周期生成的等差遞增序列號,因此通過對數據中所提取出的序列號進行差值判斷,便能判斷數據採集過程中是否存有問題,並且發出預警提示信息,便於工作人員能及時進行問題排查,大大提高數據採集傳輸系統的穩定性和可靠性。
附圖說明
圖1是一種數據採集系統的一具體實施例結構框圖;
圖2是一種數據採集方法的步驟流程圖;
圖3是一種數據採集方法中步驟s106的具體實現原理示意圖。
具體實施方式
目前,針對工業中的底層控制系統的數據採集方案,其存在採集通訊速率低下的問題。為了解決這一問題,本發明提供了一種高速數據採集方案。
實施例1、一種數據採集系統
如圖1所示,一種高速數據採集系統,該系統包括:
採集模塊,用於令控制器向採集得到的數據添加序列號後進行緩存;
通訊模塊,用於令opc伺服器將在控制器中緩存的數據進行獲取後上傳至上位機;
處理模塊,用於令上位機根據獲得的數據中所包含的序列號,對獲得的數據進行依序排列後存儲。優選地,所述採集模塊應用於控制器中,通訊模塊應用於opc伺服器中,處理模塊應用於上位機。
作為本系統實施例的優選實施方式,所述處理模塊具體包括:
排序子模塊,用於根據獲得的多個數據中所包含的序列號,按照序列號的數值大小從而對獲得的多個數據進行依序排列;
診斷子模塊,用於計算相鄰兩個數據之間的序列號差值,然後根據計算得出的多個序列號差值,從而判斷排列後的多個數據是否存有異常,若是,則輸出預警提示信息,反之,則對排列後的多個數據進行存儲。
作為本系統實施例的優選實施方式,所述採集模塊具體用於令控制器向採集得到的數據添加序列號後進行緩存,以及對緩存的數據進行壓縮處理。
實施例2、一種數據採集方法
如圖2所示,一種高速數據採集方法具體步驟包括有:
控制器向採集得到的數據添加序列號後進行緩存;
opc伺服器將緩存的數據進行獲取後上傳至上位機;
上位機根據獲得的數據中所包含的序列號,對獲得的數據進行依序排列後存儲。
作為本方法實施例的優選實施方式,所述上位機根據獲得的數據中所包含的序列號,對獲得的數據進行依序排列後存儲這一步驟,其具體包括:
上位機根據獲得的多個數據中所包含的序列號,按照序列號的數值大小從而對獲得的多個數據進行依序排列;
計算相鄰兩個數據之間的序列號差值,然後根據計算得出的多個序列號差值,從而判斷排列後的多個數據是否存有異常,若是,則輸出預警提示信息,反之,則對排列後的多個數據進行存儲,從而實現數據診斷功能。
作為本方法實施例的優選實施方式,所述計算相鄰兩個數據之間的序列號差值,然後根據計算得出的多個序列號差值,從而判斷排列後的多個數據是否存有異常,若是,則輸出預警提示信息,反之,則對排列後的多個數據進行存儲這一步驟,其具體包括:
計算相鄰兩個數據之間的序列號差值,然後根據序列號差值所對應的減數或被減數的數值大小,從而對多個序列號差值進行依序排列;
計算相鄰兩個序列號差值之間的數值差作為二級差值,然後通過判斷二級差值的非零個數以及不為零的二級差值的數值大小,從而判斷排列後的多個數據是否存有異常,若是,則輸出預警提示信息,反之,則對排列後的多個數據進行存儲。
作為本方法實施例的優選實施方式,所述opc伺服器將緩存的數據進行獲取後上傳至上位機這一步驟,其具體包括:
控制器對緩存的數據進行壓縮處理,opc伺服器將壓縮處理後的數據進行獲取後上傳至上位機。
作為本方法實施例的優選實施方式,所述對緩存的數據進行壓縮處理這一步驟,其所採用的壓縮處理方式為:
將前一個數據包的內容與當前數據包的內容進行差異分析,從而得到當前數據包的內容相較於前一個數據包的內容的差異數據,所述差異數據作為對當前數據包進行壓縮處理後所得到的壓縮數據。
作為上述系統實施例和方法實施例的優選實施方式,所述序列號為以固定周期生成的等差遞增序列號。
實施例3、一種數據採集方法的具體實施方案
一種高速數據採集方法,其具體步驟包括有:
s101、開始啟動服務;
s102、啟動opc伺服器;
s103、控制器響應opc伺服器,並將opc協議轉換到控制器內部協議;
s104、控制器向採集得到的數據添加序列號後進行緩存,其中,所述序列號為以固定周期生成的等差遞增序列號,也就是說,序列號遞增等差生成,而且相鄰兩個序列號之間的生成時間差固定不變,例如,每隔2ms,生成一個序列號,而後一個生成的序列號的數值大於前一個生成的序列號的數值,並且相鄰兩個序列號之間的數值差相等;
對於所述步驟s104,其具體為:
控制器內部程序向當前採集到的數據中添加當前生成得到的序列號後進行緩存,例如,當前採集到的數據為a,然後則將當前生成的序列號,如7,添加到數據a中,接著,下一個採集到的數據為b,然後則將當前生成的序列號,如8,添加到數據b中,如此類推;
s105、opc伺服器將控制器中緩存的多個數據進行獲取後上傳至上位機;
s106、上位機根據獲得的多個數據中對應包含的序列號,對獲得的多個數據進行依序排列(即排序)後存儲。這樣存儲數據的時間間隔便可與控制器掃描周期相同,一般為約30ms,大大提高數據採集速率。
對於所述步驟s105,其具體包括:
控制器對緩存的多個數據進行壓縮處理,opc伺服器將壓縮處理後的數據進行獲取後上傳至上位機;
其中,所述對緩存的多個數據進行壓縮處理這一步驟,其所採用的壓縮處理方式為:
將前一個數據包的內容與當前數據包的內容進行差異分析,從而得到當前數據包的內容相較於前一個數據包的內容的差異數據,所述差異數據作為對當前數據包進行壓縮處理後所得到的壓縮數據,即相當於將相鄰上傳的兩個數據包進行內容的差異分析,從而得到當前數據包的內容相較於前一個數據包的內容的差異數據,然後將得到的差異數據作為對當前數據包進行壓縮處理後所得到的壓縮數據。相對應地,當上位機接收到壓縮數據時,其是結合前一個接收到的數據包以及當前的差異數據從而解壓縮還原得到當前接收到的數據包。
對於步驟s106,其具體包括:
s1061、上位機根據獲得的多個數據中所包含的序列號,按照序列號的數值大小從而對獲得的多個數據進行依序排列;
s1062、計算相鄰兩個數據之間的序列號差值作為一級差值,然後根據序列號差值所對應的減數或被減數的數值大小,從而對多個序列號差值進行依序排列;例如,如圖3所示,第一序列號差值所對應的被減數為1,第二序列差值所對應的被減數為2,第三序列差值所對應的被減數為3,如此類推,這樣則根據序列號差值自身所對應的被減數的數值大小,從而對多個序列號差值進行排序;
s1063、計算相鄰兩個序列號差值之間的數值差作為二級差值,然後通過判斷二級差值的非零個數以及不為零的二級差值的數值大小,從而判斷排列後的多個數據是否存有異常,即判斷採集到的數據是否存有異常,從而可判斷整個數據採集過程是否存有異常,若是,則輸出預警提示信息,反之,則對排列後的多個數據進行存儲。可知,當數據採集過程為正常時,多個二級差值基本均為零,或者只有少數二級差值的數值小於預設閾值,因此,當發現二級差值的非零個數較多,而且非零的二級差值的數值較大時,則表示數據採集過程中出現了問題,導致採集到的數據存有異常,此時,則發出預警提示信息給工作人員,令其儘快進行問題排查。而且所述發出的預警提示信息中還可包括有不為零的二級差值所對應的序列號以及該序列號所對應的數據,並將其顯示給工作人員看,這樣能夠便於工作人員儘快發現問題並解決,大大提高問題排查的效率,為工作人員帶來極大的便利性。例如,正常來說,對於排列後的數據,其所提取出來的序列號應依次為1、2、3、4、5、6、7(當然相鄰兩個序列號之間的差值也可為其它固定數值,如2,即此時序列號應依次為1、3、5、7、9、11、13),然而當提取出來的序列號依次為1、4、5、7、9、11、13時,則表示第二個數據的採集過程出現異常,應進行排查。
由上述可得,本發明的數據採集方法及系統通過採用以固定周期生成的等差遞增序列號來表示控制器採集每個數據的採集時刻先後順序並進行數據緩存,這樣可大大減少數據採集上傳的掃描周期,提高數據採集速率,而且還具有採集數據過程的診斷功能並發出預警提示信息,能令工作人員儘快發現問題,而且還能提高數據採集的可靠性和穩定性。
以上是對本發明的較佳實施進行了具體說明,但本發明創造並不限於所述實施例,熟悉本領域的技術人員在不違背本發明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請權利要求所限定的範圍內。