一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法
【專利摘要】一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法,首先要定義網(wǎng)絡節(jié)點狀態(tài)、然后以基于西門子工業(yè)以太網(wǎng)的Write報文和Fetch報文為基礎,構(gòu)建包含心跳信號的數(shù)據(jù)報文,嵌入式設備采用主動發(fā)送方式,每發(fā)送一次數(shù)據(jù)報文,心跳信號按照數(shù)據(jù)序列的順序變化一次;PLC在接收到N個心跳信號后,要檢查是否漏接心跳信號,如果有漏接將其通過Fetch報文返回給嵌入式設備,通過該模式在PLC與嵌入式設備間傳遞心跳包,判斷雙方在通信時是否丟包,然后,根據(jù)返回的心跳信號查找丟失的數(shù)據(jù)并重發(fā)。該方法不但可以減少丟包現(xiàn)象,而且PLC由于不需用每次接收到數(shù)據(jù)報文都檢測是否存在丟包,所以大大降低了PLC的網(wǎng)絡負擔。
【專利說明】—種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法
【技術領域】
[0001]本發(fā)明涉及工業(yè)以太網(wǎng)通信領域,尤其是一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法。
【背景技術】
[0002]工業(yè)以太網(wǎng)是基于IEEE802.3 (Ethernet)的強大的區(qū)域和單元網(wǎng)絡。西門子公司的ProfiNet就是以工業(yè)以太網(wǎng)為基礎,將原有的Profibus與互聯(lián)網(wǎng)技術結(jié)合,形成了ProfiNet的網(wǎng)絡方案。目前,已經(jīng)在國內(nèi)經(jīng)過了廣泛的應用。ProfiNet采用標準TCP/IP十以太網(wǎng)作為連接介質(zhì),采用標準TCP/IP協(xié)議加上應用層的RPC/DC0M來完成節(jié)點間的通信和網(wǎng)絡尋址??梢酝瑫r掛接傳統(tǒng)Profibus系統(tǒng)和新型的智能現(xiàn)場設備。這使其既具有具有價格低廉、穩(wěn)定可靠、通信速率高、軟硬件產(chǎn)品豐富、應用廣泛以及支持技術成熟等優(yōu)點,又能兼容西門子公司基于profibus總線的設備。但是西門子公司的ProfiNet網(wǎng)絡對非西門子公司的設備兼容性不好,其它嵌入式設備很難通過標準的TCP/IP協(xié)議與連接在ProfiNet中的PLC通信。為解決這個問題,通過使用西門子公司基于以太網(wǎng)的S5協(xié)議中的Fetch和Write報文,實現(xiàn)對PLC中RAM的直接讀寫。但在實際使用中,發(fā)現(xiàn)數(shù)據(jù)在傳輸中掉包明顯,急需一種算法解決這些問題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術問題是提供一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法,不但可以減少丟包現(xiàn)象,而且PLC由于不需用每次接收到數(shù)據(jù)報文都檢測是否存在丟包,所以大大降低了 PLC的網(wǎng)絡負擔。
[0004]為解決上述技術問題,本發(fā)明的技術方案是:一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法,包括以下步驟:
[0005](I)首先,設計心跳模型,將接入ProfiNet嵌入式設備的通信狀態(tài)設定為:
[0006]“通信中斷”,表示未建立連接鏈路;
[0007]“通信丟包”,表示發(fā)現(xiàn)丟包正在重發(fā);
[0008]“通信正?!?,表示鏈路正常,心跳包收發(fā)正常;
[0009](2)然后,由嵌入式設備向PLC發(fā)送含有心跳信號的數(shù)據(jù)報文,這個數(shù)據(jù)報文中包含用于檢測數(shù)據(jù)報文是否丟包的測試數(shù)據(jù),測試數(shù)據(jù)并不固定,每次發(fā)送心跳包時從一組連續(xù)數(shù)據(jù)序列中循環(huán)地、順序地選取一位同時存儲這次發(fā)送的數(shù)據(jù);存儲的總量不超過N個,N<=數(shù)據(jù)序列個數(shù);
[0010](3)當PLC收到數(shù)據(jù)報文后會將心跳信號取出存儲在一個專門的數(shù)據(jù)區(qū)中,當接收到的N個數(shù)據(jù)報文后,檢測這些心信號是否是這N個數(shù)據(jù)報文對應的心跳信號;
[0011](4)如果有問題就把掉包的數(shù)據(jù)報文發(fā)回給嵌入式設備,要求其重發(fā),否則,不做任何操作。
[0012]基于心跳信號設計數(shù)據(jù)報文,并在系統(tǒng)各個設備中傳遞心跳包,檢測對方數(shù)據(jù)報文是否丟失,以便在丟失數(shù)據(jù)報文時采取相應措施保證PLC不會丟失嵌入式設備上傳的關鍵數(shù)據(jù)。整個基于心跳機制的數(shù)據(jù)幀如下表所示:
[0013]
【權利要求】
1.一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法,其特征在于,包括以下步驟: (1)首先,設計心跳模型,將接入ProfiNet嵌入式設備的通信狀態(tài)設定為: “通信中斷”,表示未建立連接鏈路; “通信丟包”,表示發(fā)現(xiàn)丟包正在重發(fā); “通信正?!保硎炬溌氛?,心跳包收發(fā)正常; (2)然后,由嵌入式設備向PLC發(fā)送含有心跳信號的數(shù)據(jù)報文,這個數(shù)據(jù)報文中包含用于檢測數(shù)據(jù)報文是否丟包的測試數(shù)據(jù),測試數(shù)據(jù)并不固定,每次發(fā)送心跳包時從一組連續(xù)數(shù)據(jù)序列中循環(huán)地、順序地選取一位同時存儲這次發(fā)送的數(shù)據(jù);存儲的總量不超過N個,N<=數(shù)據(jù)序列個數(shù); (3)當PLC收到數(shù)據(jù)報文后會將心跳信號取出存儲在一個專門的數(shù)據(jù)區(qū)中,當接收到的N個數(shù)據(jù)報文后,檢測這些心信號是否是這N個數(shù)據(jù)報文對應的心跳信號; (4)如果有問題就把掉包的數(shù)據(jù)報文發(fā)回給嵌入式設備,要求其重發(fā),否則,不做任何操作。
2.根據(jù)權利要求1所述的一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法,其特征在于:當系統(tǒng)存在掉包現(xiàn)象,并且發(fā)送的數(shù)據(jù)報文個數(shù)達到整個數(shù)據(jù)序列個數(shù)時,要檢測丟包率,當丟包率達到預先設定的限值時,要重新建立連接。
3.根據(jù)權利要求1所述的一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法,其特征在于:PLC與嵌入式控制器之間的數(shù)據(jù)報文是基于西門子公司的Write報文和Fetch報文為基礎的。
4.根據(jù)權利要求3所述的一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法,其特征在于:PLC只需要建立一個Write服務器和Fetch服務器接收Write報文和Fetch報文。
5.根據(jù)權利要求1所述的一種基于心跳信號的工業(yè)以太網(wǎng)丟包檢測方法,其特征在于:所述心跳幀包含:數(shù)據(jù)位、設備編號、心跳測試位。
【文檔編號】H04L12/26GK103490943SQ201310280361
【公開日】2014年1月1日 申請日期:2013年7月4日 優(yōu)先權日:2013年7月4日
【發(fā)明者】文杰, 曾鐵軍 申請人:文杰, 曾鐵軍