專利名稱:一種以太網(wǎng)通信主站實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及以太網(wǎng)技術(shù)領(lǐng)域,具體涉及一種以太網(wǎng)通信主站實現(xiàn)方法。
背景技術(shù):
隨著以太網(wǎng)技術(shù)的日益廣泛推廣,應(yīng)用于工業(yè)自動化領(lǐng)域的以太網(wǎng)一實時工業(yè)以太網(wǎng),已成為工業(yè)控制現(xiàn)場總線技術(shù)的一個重要發(fā)展方向。市場上已有的實時工業(yè)以太網(wǎng)根據(jù)不同的實時性和成本要求分別使用了不同的實現(xiàn)原理,比較常見的實時以太網(wǎng)總線有 Ethernet/IP、Modbus/TCP> Ethernet Powerlink、EtherCAT> Profinet 等。相比其他總線。EtherCAT總線采用集總幀的調(diào)度方式,在數(shù)據(jù)鏈路層和物理層 都實現(xiàn)了微秒級的高實時性通信,可以達(dá)到小于IOOus的數(shù)據(jù)刷新周期,各個從站節(jié)點設(shè)備可以達(dá)到納秒級的時鐘同步精度;EtherCAT總線同時具有開放性好和實現(xiàn)成本低等特點,因而在工業(yè)自動化領(lǐng)域得到了廣泛的應(yīng)用。EtherCAT總線采用特定的環(huán)狀拓?fù)浒l(fā)送數(shù)據(jù),從站使用專門的控制器ESC(EtherCAT Slave Controller)實現(xiàn)主要功能,EtherCAT主站使用標(biāo)準(zhǔn)的以太網(wǎng)控制器,通過軟件可以實現(xiàn)主站的所有功能。實時操作系統(tǒng)上的軟主站通常采用輪詢調(diào)用網(wǎng)卡驅(qū)動方式實現(xiàn)總線通信,總顯得同步模式通常是各個從站同步參考時鐘從站,而參考時鐘從站同步于軟主站,由于整個系統(tǒng)都同步于軟主站,所以對主站操作系統(tǒng)的實時性要求比較高。通過該方法實現(xiàn)的軟主站在運行過程中經(jīng)常會出現(xiàn)總線同步失敗、數(shù)據(jù)幀丟包等通信錯誤,特別是當(dāng)操作系統(tǒng)實時性不高時,總線穩(wěn)定性更差。
發(fā)明內(nèi)容
針對目前以太網(wǎng)技術(shù)存在的上述問題,本發(fā)明提供一種以太網(wǎng)通信主站實現(xiàn)方法的技術(shù)方案,具體包括
一種以太網(wǎng)通信主站實現(xiàn)方法,包括以太網(wǎng)、主站和從站,所述主站通過連接裝置與所述以太網(wǎng)連接,并與所述通過所述以太網(wǎng)與所述主站連接的從站形成總線結(jié)構(gòu);
所述主站包括用于掃描并獲取所述從站信息的掃描模塊,,用于配置所述從站并監(jiān)控所述總線結(jié)構(gòu)實時狀態(tài)的操作模塊,以及用于實現(xiàn)定時中斷操作的定時模塊;
其中,具體包括
步驟a,對主站進(jìn)行初始化,并掃描總線;
步驟b,對總線進(jìn)行配置,同時監(jiān)控總線的實時狀態(tài);
步驟C,總線進(jìn)入正常運行階段,完成主站和從站間的數(shù)據(jù)通信工作。優(yōu)選地,以太網(wǎng)通信主站實現(xiàn)方法,其中,所述對主站進(jìn)行初始化的具體步驟包括
步驟al,創(chuàng)建并初始化主站;
步驟a2,通過所述連接裝置使所述主站與所述以太網(wǎng)連接;
步驟a3,通過發(fā)送數(shù)據(jù)幀的方式觸發(fā)所述掃描模塊掃描總線。
優(yōu)選地,以太網(wǎng)通信主站實現(xiàn)方法,其中,所述掃描總線的具體步驟包括
步驟aa,所述主站向總線發(fā)送一數(shù)據(jù)幀,并啟動所述掃描模塊;
步驟ab,所述從站接收并處理所述數(shù)據(jù)幀,將處理結(jié)果返回所述主站的掃描模塊,同時觸發(fā)所述主站的接收中斷; 步驟ac,所述掃描模塊接收所述處理結(jié)果,并根據(jù)所述處理結(jié)果分析所述從站的狀態(tài),同時啟動所述操作模塊;
步驟ad,所述操作模塊根據(jù)所述從站的系統(tǒng)時間確定所述主站的下發(fā)數(shù)據(jù)幀時間,初始化所述定時模塊;
步驟ae,所述定時模塊啟動所述定時中斷操作,根據(jù)預(yù)設(shè)的時間間隔驅(qū)動所述主站向所述從站發(fā)送指令;
步驟af,所述從站響應(yīng)所述主站發(fā)送的指令后,所述數(shù)據(jù)幀返回所述主站并再次觸發(fā)所述主站的接收中斷,返回所述步驟ac。優(yōu)選地,以太網(wǎng)通信主站實現(xiàn)方法,其中,所述配置總線的具體步驟包括
步驟bl,請求主站進(jìn)入操作階段;
步驟b2,創(chuàng)建用于周期性數(shù)據(jù)交換的域;
步驟b3,根據(jù)掃描模塊接收的各從站的基本信息,填充各從站信息;
步驟b4,激活所述主站并啟動所述操作模塊。優(yōu)選地,以太網(wǎng)通信主站實現(xiàn)方法,其中,所述總線正常運行階段的具體步驟包括
步驟Cl,所述操作模塊檢測總線上的各所述從站都進(jìn)入操作階段后,通知所述主站進(jìn)行數(shù)據(jù)傳輸;
步驟c2,所述主站接收到數(shù)據(jù)幀后觸發(fā)接收中斷,并解析所述數(shù)據(jù)幀中的數(shù)據(jù)包;
步驟c3,所述主站根據(jù)系統(tǒng)時間計算下次從站同步信號產(chǎn)生的時間,并以此確定主站下發(fā)指令的時刻,初始化定時器;
步驟c4,所述主站根據(jù)所述定時模塊中確定的時刻向所述從站發(fā)送指令,所述從站響應(yīng)所述指令后所述數(shù)據(jù)幀返回所述主站,并返回所述步驟c2。優(yōu)選地,以太網(wǎng)通信主站實現(xiàn)方法,其中,在所述總線的正常運行階段中,當(dāng)需要處理非周期性數(shù)據(jù)時,主站激活一非周期性數(shù)據(jù)通信線程,所述非周期性數(shù)據(jù)通信線程通過讀寫操作獲取非周期性數(shù)據(jù)。本發(fā)明的有益效果
主站可以根據(jù)系統(tǒng)任務(wù)調(diào)度抖動、應(yīng)用程序執(zhí)行時間都懂來動態(tài)的調(diào)整下發(fā)指令的時間,保證了主站和從站讀寫數(shù)據(jù)節(jié)奏的一致性,這種方法對主站的實時性要求不會很高,隨著上層應(yīng)用程序的執(zhí)行時間的縮短,可以允許系統(tǒng)任務(wù)調(diào)度抖動會越來越大。
圖I是本發(fā)明中的主站搭建結(jié)構(gòu)示意 圖2是本發(fā)明一種以太網(wǎng)通信主站實現(xiàn)方法的流程示意 圖3是本發(fā)明中對主站進(jìn)行初始化的流程示意 圖4本發(fā)明中掃描總線的流程示意圖;圖5本發(fā)明中配置總線的流程示意 圖6本發(fā)明中總線正常運行的流程示意圖。
具體實施例方式下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步說明,但不作為本發(fā)明的限定。如圖I所示一種以太網(wǎng)通信主站實現(xiàn)方法中搭建該以太網(wǎng)通信主站的結(jié)構(gòu)示意圖,包括以太網(wǎng)、主站和從站,主站通過連接裝置與以太網(wǎng)連接,并與通過以太網(wǎng)與主站連接的從站形成總線結(jié)構(gòu);
主站包括用于掃描并獲取從站信息的掃描模塊,,用于配置從站并監(jiān)控總線結(jié)構(gòu)實時狀態(tài)的操作模塊,以及用于實現(xiàn)定時中斷操作的定時模塊;、
本發(fā)明的核心流程為首先主站發(fā)送一個數(shù)據(jù)幀,該數(shù)據(jù)幀被各個從站處理并返回主站,同時觸發(fā)主站的接收中斷;該主站在中斷函數(shù)中完成數(shù)據(jù)接收后,通過對收到的參考時鐘從站的系統(tǒng)時間綜合分析,確定主站的下發(fā)數(shù)據(jù)時間,并初始化定時模塊;然后利用定時中斷操作驅(qū)動主站發(fā)送指令到各個從站,當(dāng)從站響應(yīng)主站指令后將數(shù)據(jù)幀返回主站,并再次觸發(fā)主站的接收中斷,進(jìn)入下一個周期的處理。上述主站實時讀取參考時鐘從站的系統(tǒng)時間,綜合分析主站系統(tǒng)任務(wù)調(diào)度、數(shù)據(jù)傳輸延時等因素并計算下次從站同步信號產(chǎn)生的時刻,這樣可以保證主站和從站讀寫數(shù)據(jù)節(jié)奏的一致性。如圖2所示,該通信主站的實現(xiàn)方法具體包括
步驟a,對主站進(jìn)行初始化,并掃描總線;該步驟主要實現(xiàn)主站的初始化以及總線對各個從站的掃描;
步驟b,對總線進(jìn)行配置,同時監(jiān)控總線的實時狀態(tài);在該步驟中主要完成總線配置信息初始化以及配置各個從站到操作狀態(tài);
步驟C,總線進(jìn)入正常運行階段,完成主站和從站間的數(shù)據(jù)通信工作;該步驟主要完成周期性和非周期性數(shù)據(jù)的傳輸工作。如圖3所示,該實現(xiàn)方法中,對主站進(jìn)行初始化的具體步驟包括
步驟al,創(chuàng)建并初始化主站的各種數(shù)據(jù)結(jié)構(gòu)和總線通信過程中用到的各種數(shù)據(jù)包; 步驟a2,通過連接裝置使主站與以太網(wǎng)連接;具體為主站加載網(wǎng)卡并打開網(wǎng)卡;
步驟a3,通過發(fā)送數(shù)據(jù)幀的方式觸發(fā)掃描模塊掃描總線。如圖4所示,該以太網(wǎng)通信主站實現(xiàn)方法中,掃描總線的具體步驟包括
步驟aa,主站向總線發(fā)送一數(shù)據(jù)幀,并啟動掃描模塊;
步驟ab,從站接收并處理數(shù)據(jù)幀,將處理結(jié)果返回主站的掃描模塊,同時觸發(fā)主站的接收中斷;
步驟ac,掃描模塊接收處理結(jié)果,并根據(jù)處理結(jié)果分析從站的狀態(tài),同時啟動操作模
塊;
步驟ad,操作模塊根據(jù)從站的系統(tǒng)時間確定主站的下發(fā)數(shù)據(jù)幀時間,初始化定時模
塊;
步驟ae,定時模塊啟動定時中斷操作,根據(jù)預(yù)設(shè)的時間間隔驅(qū)動主站向從站發(fā)送指
令;步驟af,從站響應(yīng)主站發(fā)送的指令后,數(shù)據(jù)幀返回主站并再次觸發(fā)主站的接收中斷,返回步驟ac。如圖5所示,該以太網(wǎng)通信主站實現(xiàn)方法中,配置總線的具體步驟包括
步驟bl,請求主站進(jìn)入操作階段;
步驟b2,創(chuàng)建用于周期性數(shù)據(jù)交換的域;
步驟b3,根據(jù)掃描模塊接收的各從站的基本信息, 填充各從站信息;
步驟b4,激活主站并啟動操作模塊,并激活操作模塊中的操作線程;
步驟b5,修改總線狀態(tài),并標(biāo)識為配置狀態(tài)。步驟b4中的操作線程主要負(fù)責(zé)監(jiān)測總線的運行狀態(tài),并根據(jù)非周期性數(shù)據(jù)通信線程的請求人物,提供相應(yīng)的郵箱通信服務(wù);總線通信的建立主要通過操作線程驅(qū)動主站狀態(tài)機和從站狀態(tài)機,并配合網(wǎng)卡的中斷操作和定時模塊中的收發(fā)函數(shù)完成。如圖6所示,該以太網(wǎng)通信主站實現(xiàn)方法中,總線正常運行階段的具體步驟包括 步驟Cl,操作模塊檢測總線上的各從站都進(jìn)入操作狀態(tài)后,通知主站進(jìn)行數(shù)據(jù)傳輸; 步驟c2,主站接收到數(shù)據(jù)幀后觸發(fā)接收中斷,并解析數(shù)據(jù)幀中的數(shù)據(jù)包;
步驟c3,主站通過讀取參考時鐘從站的系統(tǒng)時間,計算下次從站同步信號產(chǎn)生的時間,并以此確定主站下發(fā)指令的時刻,同時初始化定時模塊;
步驟c4,上層應(yīng)用分析和處理數(shù)據(jù);
步驟c5,主站根據(jù)定時模塊中確定的時刻向從站發(fā)送指令,從站響應(yīng)指令后數(shù)據(jù)幀返回主站,并返回步驟c2。在總線的正常運行階段中,當(dāng)需要處理非周期性數(shù)據(jù)時,主站激活一非周期性數(shù)據(jù)通信線程,非周期性數(shù)據(jù)通信線程通過讀寫操作獲取完成對從站郵箱數(shù)據(jù)的通信(即非周期性數(shù)據(jù)的通信);由于讀寫操作的實現(xiàn)方式是阻塞類型,所以不能在實時線程中調(diào)用;當(dāng)總線沒有郵箱數(shù)據(jù)通信任務(wù)時,該線程處于掛起狀態(tài),如果上層應(yīng)用需要郵箱數(shù)據(jù)通信則可以在實時線程中激活該線程,該線程完成通信任務(wù)后又會自動化器,等待下一次服務(wù)請求。以上所述僅為本發(fā)明較佳的實施例,并非因此限制本發(fā)明的申請專利范圍,所以凡運用本發(fā)明說明書及圖示內(nèi)容所作出的等效結(jié)構(gòu)變化,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.ー種以太網(wǎng)通信主站實現(xiàn)方法,包括以太網(wǎng)、主站和從站,所述主站通過連接裝置與所述以太網(wǎng)連接,并與所述通過所述以太網(wǎng)與所述主站連接的從站形成總線結(jié)構(gòu); 所述主站包括用于掃描并獲取所述從站信息的掃描模塊,,用于配置所述從站并監(jiān)控所述總線結(jié)構(gòu)實時狀態(tài)的操作模塊,以及用于實現(xiàn)定時中斷操作的定時模塊; 其特征在于,具體包括 步驟a,對主站進(jìn)行初始化,并掃描總線; 步驟b,對總線進(jìn)行配置,同時監(jiān)控總線的實時狀態(tài); 步驟C,總線進(jìn)入正常運行階段,完成主站和從站間的數(shù)據(jù)通信工作。
2.如權(quán)利要求I所述的以太網(wǎng)通信主站實現(xiàn)方法,其特征在于,所述對主站進(jìn)行初始化的具體步驟包括 步驟al,創(chuàng)建并初始化主站; 步驟a2,通過所述連接裝置使所述主站與所述以太網(wǎng)連接; 步驟a3,通過發(fā)送數(shù)據(jù)幀的方式觸發(fā)所述掃描模塊掃描總線。
3.如權(quán)利要求I所述的以太網(wǎng)通信主站實現(xiàn)方法,其特征在于,所述掃描總線的具體步驟包括 步驟aa,所述主站向總線發(fā)送一數(shù)據(jù)幀,并啟動所述掃描模塊; 步驟ab,所述從站接收并處理所述數(shù)據(jù)幀,將處理結(jié)果返回所述主站的掃描模塊,同時觸發(fā)所述主站的接收中斷; 步驟ac,所述掃描模塊接收所述處理結(jié)果,并根據(jù)所述處理結(jié)果分析所述從站的狀態(tài),同時啟動所述操作模塊; 步驟ad,所述操作模塊根據(jù)所述從站的系統(tǒng)時間確定所述主站的下發(fā)數(shù)據(jù)幀時間,初始化所述定時模塊; 步驟ae,所述定時模塊啟動所述定時中斷操作,根據(jù)預(yù)設(shè)的時間間隔驅(qū)動所述主站向所述從站發(fā)送指令; 步驟af,所述從站響應(yīng)所述主站發(fā)送的指令后,所述數(shù)據(jù)幀返回所述主站并再次觸發(fā)所述主站的接收中斷,返回所述步驟ac。
4.如權(quán)利要求3所述的以太網(wǎng)通信主站實現(xiàn)方法,其特征在于,所述配置總線的具體步驟包括 步驟bl,請求所述主站進(jìn)入操作階段; 步驟b2,創(chuàng)建用于周期性數(shù)據(jù)交換的域; 步驟b3,根據(jù)所述掃描模塊接收的各從站的基本信息,填充各從站信息; 步驟b4,激活所述主站并啟動所述操作模塊。
5.如權(quán)利要求4所述的以太網(wǎng)通信主站實現(xiàn)方法,其特征在干,所述總線正常運行階段的具體步驟包括 步驟Cl,所述操作模塊檢測總線上的各所述從站都進(jìn)入操作階段后,通知所述主站進(jìn)行數(shù)據(jù)傳輸; 步驟c2,所述主站接收到數(shù)據(jù)幀后觸發(fā)接收中斷,并解析所述數(shù)據(jù)幀中的數(shù)據(jù)包; 步驟c3,所述主站根據(jù)系統(tǒng)時間計算下次從站同步信號產(chǎn)生的時間,并以此確定主站下發(fā)指令的時刻,初始化定時器;步驟c4,所述主站根據(jù)所述定時模塊中確定的時刻向所述從站發(fā)送指令,所述從站響應(yīng)所述指令后所述數(shù)據(jù)幀返回所述主站,并返回所述步驟c2。
6.如權(quán)利要求5所述的以太網(wǎng)通信主站實現(xiàn)方法,其特征在于,在所述總線的正常運行階段中,當(dāng)需要處理非周期性數(shù)據(jù)時,主站激活一非周期性數(shù)據(jù)通信線程,所述非周期性數(shù)據(jù)通信線程通過讀寫操作獲取非周期性數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種以太網(wǎng)通信主站實現(xiàn)方法,包括以太網(wǎng)、主站和從站,所述主站通過連接裝置與所述以太網(wǎng)連接,并與所述通過所述以太網(wǎng)與所述主站連接的從站形成總線結(jié)構(gòu);該方法具體包括步驟a,對主站進(jìn)行初始化,并掃描總線;步驟b,對總線進(jìn)行配置,同時監(jiān)控總線的實時狀態(tài);步驟c,總線進(jìn)入正常運行階段,完成主站和從站間的數(shù)據(jù)通信工作。本發(fā)明的有益效果是主站可以根據(jù)系統(tǒng)任務(wù)調(diào)度抖動、應(yīng)用程序執(zhí)行時間都懂來動態(tài)的調(diào)整下發(fā)指令的時間,保證了主站和從站讀寫數(shù)據(jù)節(jié)奏的一致性,這種方法對主站的實時性要求不會很高,隨著上層應(yīng)用程序的執(zhí)行時間的縮短,可以允許系統(tǒng)任務(wù)調(diào)度抖動會越來越大。
文檔編號H04L12/40GK102739491SQ20121024204
公開日2012年10月17日 申請日期2012年7月13日 優(yōu)先權(quán)日2012年7月13日
發(fā)明者張成瑞, 王政, 許微微 申請人:上海三一精機有限公司