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