Ether CAT 主站與(yǔ)主站通信(xìn)協議的研究與實現
2019-8-14 來源: 桂林電(diàn)子科技大學 電(diàn)子工(gōng)程與自動化學院 作者:黨選舉,李帥(shuài)帥,伍(wǔ)錫如,薑 輝
摘(zhāi)要: Ether CAT 是目前最高速的工(gōng)業現場總(zǒng)線網絡。由於其高帶寬利用率,低堆(duī)棧延遲、低交換機(jī)延遲等優點,近些年(nián)被廣泛(fàn)應用於數控機床係統。為滿足 Ether CAT 主站間的通信,進一步擴展 Ether CAT 組網功能,為構(gòu)建 Ether CAT 工業複雜網絡提供技術支(zhī)持,在不(bú)影響原有主站與從站通信(xìn)功能(néng)情況下,設計了支持主站與主(zhǔ)站之間通信的新協議(yì),擴充 IGH 開源驅動功能,在 AM3358 處理器硬件平台上實(shí)現了Ether CAT 主(zhǔ)站與主(zhǔ)站的通信。
分別在實時 RT-Patch linux 係統和原生(shēng) linux 係統(tǒng)中對設計方案進行測試,結果表明該方案運行穩定且可(kě)以滿足主(zhǔ)從、主主之間相互通信,滿足了工業組網需求。為實現 Eth-er CAT 數控係統複雜網絡(luò)的建立和大數據的快速采集,解(jiě)決了主站與(yǔ)主站之(zhī)間通信的關鍵問題。
關鍵詞: Ether CAT; 主站; 現(xiàn)場總線; 大數據采(cǎi)集
0 引言
實時以太網是常規以(yǐ)太網技術的(de)延伸,為滿足控製領(lǐng)域的實時通信要求,德國倍福自動(dòng)化公司提出了(le) Ether CAT 實時工業以太(tài)網技術(shù)。在數控係(xì)統領域(yù),沈陽機床 i5 智能數控機床使(shǐ)用 Ether CAT 總線係統顯著提高(gāo)了工業效益。
現有的大(dà)量研究都集中在主從的構建或者主從間通信中,如在 ARM 構架上構建支持主從 通 信 的 Ether CAT 主 站,高 性(xìng) 能 從 站 的 設計,從站同步(bù)時鍾的優化及其 Ether CAT 時(shí)序特性分析等。其所研究的 Ether CAT 總線(xiàn)結構主要是單(dān)個主站獨立控製多個從站,主站各(gè)有屬於自身的從(cóng)站(zhàn)單元,主站與主站間無法交換共享數據。
為構建工業數控係統(tǒng)複雜(zá)網絡,實現數控係統多軸(zhóu)信息的快速傳(chuán)輸(shū),進行工業大數據的采集,獨立的主站(zhàn)與從站通信並不(bú)能完全滿需求,難(nán)以真正的實現分布式架構,不利於對於數控係統中大數據的傳輸。因(yīn)此該文深入研究Ether CAT 總線通信(xìn)協議,采用 Ether CAT 協議中(zhōng)的保留數據類型,進行主站與主站之間的通信。
如今(jīn)為(wéi)解決大數(shù)據難以傳輸處理問題一般係統采用(yòng)分布式(shì)架構。主站(zhàn)與從站通信,是分布式架構一個局部基本單元,隻有局部基本單元之間相互通(tōng)信,才可以為構建Ether CAT 工業數控係統複雜網絡提供基礎保障(zhàng)。主站與主站通信正是為搭建複雜(zá)網絡提供了可行方案。
為了提高普(pǔ)適性,選用 linux 係統作為開發平台。德國 IGH 公司提供的 Ether CAT Master for Linux 主站驅動,其遵循 GPLv2 開源協議(yì),但此代碼僅支持主站與從站之間的通信,因此該文在 IGH 發布的主站開源代(dài)碼的基礎(chǔ)上,通過協議(yì)補充,擴充驅(qū)動功能,構建了支持主站(zhàn)與主站之間(jiān)通信的係統。
1 、程(chéng)序運行(háng)環境的實現
1. 1 實(shí)現 Ether CAT 主站的軟件結構
IGH 公司提供的主站驅動支持原生非實(shí)時 linux 操作係統和實時擴展如 RTAI、XENOMAI、RT-Patch 等實(shí)時linux 係。如圖 1 所示主站(zhàn)基(jī)本通信結(jié)構圖,其主要由包含各種連接硬件接口的硬件層,負責 linux 調度、算法處理的內核層,供應戶調(diào)用(yòng)的應用層三部分組成(chéng)。
圖(tú) 1 主站基本通信結構(gòu)圖
1. 2 實現主站的(de)硬件平(píng)台
AM3358 是基於 ARM Cortex-A8 內核(hé)帶有 NEON協處理器高性能處理(lǐ)器。其最(zuì)高主頻可達 1GHz; 集成2 個可編程實時單元 pRU,PRU 可配置成為 Ether CAT從站功能模塊; 具有單錯檢測( 奇偶校(xiào)驗) 的 32KB /32KB L1 指令 / 數據高速緩存(cún); 集(jí)成 2 個工業用千兆以太網 MAC( 10 /100 /1000MHZ)。文(wén)中把其中一個網口作為從站(zhàn)連接(jiē)口,另外一個作為主站與主站之間通信連接口,主站連接示意圖如圖 2 所示。
圖 2 主站連接(jiē)示意圖
2 、主站驅動擴展與實現方法
2. 1 Ether CAT 數據幀分析
Ether CAT 數據基於以太網(wǎng)數據幀進行傳(chuán)輸,數據幀類型為 0x88A4,其部分幀結構示意圖如圖 3 所示。
圖 3 Ether CAT 部分幀結構示意圖
圖 3 中,對於 Ether CAT 頭部分,其中的 Ether CAT數據長度為整個(gè) Ether CAT 報文部分的數據長度,對於類型,其值為 1 表示主站與(yǔ)從站通信(xìn)的數據幀,其(qí)餘值保留。但為了主站之間進行通信,文中(zhōng)規定在 Ether-CAT 頭(tóu)中的類型為 2 表示該(gāi)數據幀為主站與主站通信(xìn)數據幀,因此隻需補充並(bìng)完善驅動代碼,使之在(zài)接收數據時識別(bié)該以太網幀(zhēn)的類型(xíng)位就可以識別是發往從站的數據幀還(hái)是主站間(jiān)通信(xìn)的數據(jù)幀。
2. 2 主站運行階段
Ether CAT Master for Linux 主站驅動按照功能不(bú)同的劃分,可劃分(fèn)為孤(gū)兒階段、空閑階段和可操作階段三個階段,其(qí)示意圖如圖 4所示。
圖(tú) 4 主站驅(qū)動運行階段(duàn)
圖 4 中,在孤兒階(jiē)段,主站等待以太網設備連接;在空閑狀態,主(zhǔ)站已經連接了以太網設備,但是應用空間並沒(méi)有對主站請求。此時主站會自動掃描從站總線並等待應用空(kōng)間的操作。同時,命令行工具可以訪問(wèn)總線,但是由於缺(quē)少總線(xiàn)配置,不能進行過程數據的交換。
文中修改驅動代碼後,在此階段,主站除掃描總線上的(de)從站外,主站另一端口還需要掃描對應(yīng)總線上的其它主站設備; 在(zài)操作狀態,主站被應用層請求,此時可對總線上從站進(jìn)行配置也可進行過程(chéng)數據的交換。
2. 3 主(zhǔ)站對數據幀的訪問
在空閑階段,每個主(zhǔ)站將通過不同(tóng)的(de)端口自動(dòng)掃描識(shí)別總線(xiàn)上從站和其它主站,根據 Ether CAT 協議,當主站對從站的掃描時,由於(yú) Ether CAT 幀在從站之間(jiān)傳輸是順序的,因(yīn)此一個子報文可以完成對多個從站的訪問,在數據幀的長度允許範圍內,一個數據幀可完成多個從(cóng)站的掃描。但是在(zài)主站識別其它主站時,主站之間並行,所以每個數據幀隻能完成對一個主(zhǔ)站的訪問。
3 、主站的實現技術
3. 1 主站對總線的掃描流程
在主站代碼中,主站對總線的掃描是在空閑線程中進行的,在沒有應(yīng)用請求的狀態下,主站驅動隻會運行在空閑線程,在該階段執行的具體函(hán)數由狀態(tài)機根據不同的(de)判斷條件執行不同的回調函數,進而有序的循環執行。其運行基本流程如圖(tú) 5 所示。
圖 5 空(kōng)閑線程運行流程圖
3. 2 主站數據結構的擴充
原生的(de)驅動代碼中,描述主(zhǔ)站的結構體中沒有針對其它主站的描(miáo)述,文中對於描述主站結構體 structec_master 進行擴充,需在該結(jié)構體內添加如下代碼:
文中對 struct ec_master 額外增加了兩數據報(bào),其中數(shù)據(jù)報 to_master_datagram 為主站與(yǔ)主站間通信的數據報。exchange_master_datagra 為主站接收到通信數據報後處(chù)理信息(xī)的緩存數據報。
3. 3 主站發送數據幀
IGH 發布原生的代(dài)碼中,有冗餘支持,但(dàn)是(shì)冗餘通信端口也是主站與從站通信端口,為使代碼支持主站與主站(zhàn)間(jiān)通信,文中(zhōng)將冗(rǒng)餘端口的(de)功能修改為主站與主站通信端口(kǒu),因此在主站空(kōng)閑階段中,文中主站間通信(xìn)數(shù)據報 to_master_datagram 的發送(sòng)設備應指定為冗餘端口,具體發送函數可為(wéi):
3. 4 主站接收數據幀(zhēn)發(fā)送數據幀
接收數據幀的底層(céng)驅動(dòng)函數無需任(rèn)何的改變,處理函數進行修改,修改後的接收處理函數流程圖如圖6 所示。
圖 6 接收處理函數流程圖
對於(yú)接收到的主站間通信數據,隻需要把接收到的數據幀的數據存儲(chǔ)在指定內存(cún)中,然後加入到鏈表,使用時遍曆該(gāi)鏈表即(jí)可。文中定義函數 ec_master_queue_master ( ) 用(yòng)來將其它主站信息放入鏈(liàn)表,主要(yào)代碼如(rú)下:
4 、主站驅動安裝配置
由於在主站之間通信與主從之間通信分(fèn)別使用不同的網卡端口,因此文中使用了冗餘端口的功能,因此在安裝驅動時要設定使能冗餘端口。安裝(zhuāng)配置時執行如下命令:
其中,參數 - - enable - generic = yes 指明使用通用網卡,參數 - - with - devices = 2 指明(míng)本驅動安裝(zhuāng) 2 個以太網設備。參數為 - - enable - wildcards 表明目的地址為 0xffffffff 將會匹配所有的廠商 ID 或者產品碼。
5 、主站驅(qū)動通信實(shí)驗驗證
5. 1 測試硬件平(píng)台(tái)
中分別選用(yòng)三個主站模塊,一個(gè)從站測試模塊進試驗。其(qí)中主站模塊 IAC-335X-Kit 評估板集成 2 個工(gōng)業用(yòng)千兆以太網 MAC。另外兩個為開源可擴展(zhǎn)硬件(jiàn)平台 Beagle Bone Black,因其僅有一個以太網 MAC,僅配置為主(zhǔ)站(zhàn)通信,不再連接其它的從站設備。實驗平台實物圖如(rú)圖 7 所示。
圖 7 實驗平(píng)台實物圖
5. 2 Ether CAT 多主站間通信測試
文中分別將主(zhǔ)站(zhàn)驅動配置到不(bú)同(tóng)的 linux 版本進行(háng)測試(shì)。文中測試過程(chéng)中,主(zhǔ)站模塊在 IAC-335X-Kit評(píng)估板安裝的嵌入式係統為 linux-3. 2. 21 並修補了(le)實時補丁 RT-Preempt,為(wéi)主站驅動提供一個硬實時運(yùn)行環境。Beagle Bone Black 平台安(ān)裝的(de)嵌入式係統為linux-3. 14,為非實時(shí)操作(zuò)係統。對於驅動(dòng)的測試,在 linux 應用(yòng)層(céng),編寫代碼以(yǐ) 1秒為周期向從發送數據。
文中是使用修(xiū)改過(guò)的 IGHEther CAT 提供的命令行工具,執行後會顯示相應端口(kǒu)掃描到的總線上的其它主站或者從站的信息,以雙網口的主站(zhàn)為例,則主站統計信息如圖 8
所示。
圖 8 主站統計(jì)信息
上麵信(xìn)息(xī)顯(xiǎn)示,Phase: Operation 表明主站(zhàn)運行在(zài)可操 作 階 段; Active: yes 表 明 驅 動 有 應 用 層 調 用;Slaves: 1 表明總線上有 1 個從站模塊; 後續信息表明,除本主(zhǔ)站外總(zǒng)線仍有(yǒu) 2 個主站模塊,對應主站的(de) MAC分別為(wéi) 54: 4a: 16: b9: b3: 63 和 54: 4a: 16: be: db: 4f; 圖中的統計信息,Main 指定的網卡接口連接(jiē)的是從站,Tx frames 的(de) Rx frames 差值為 1 表明無數(shù)據這丟失,在從站通信中(zhōng),發送的幀(zhēn)率平均為 100 幀/s,發送速率為5. 9Kbyte / s; 由於主站之間是平行的,每個主站都可以(yǐ)獨立的廣播發送報文,因此在上圖標注的 Backup 主(zhǔ)站通信端口,實(shí)際接收到的數據要比實際(jì)發送的幀數要多,以(yǐ)致統計工具(jù)中接收數據出現負值,實(shí)際(jì)則滿足主站通信要(yào)求。
投稿箱:
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯係本網編輯部(bù), 郵箱:skjcsc@vip.sina.com
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯係本網編輯部(bù), 郵箱:skjcsc@vip.sina.com
更多相關信息
業界視點
| 更多
行業數據
| 更多
- 2024年11月 金屬切削機床產量數據
- 2024年11月 分地區金屬切削機床產量數據
- 2024年11月 軸承出口情況
- 2024年11月 基本型乘用車(轎(jiào)車)產量數據
- 2024年11月(yuè) 新能源汽車產量(liàng)數據(jù)
- 2024年11月 新能源汽車銷(xiāo)量情況(kuàng)
- 2024年10月(yuè) 新能源汽車產量數(shù)據
- 2024年10月 軸(zhóu)承出口(kǒu)情況
- 2024年10月 分地區金屬切削機床產量數據
- 2024年10月 金屬切削機床產量數據
- 2024年9月 新能源汽車銷量情況
- 2024年(nián)8月 新能源(yuán)汽車產(chǎn)量數據
- 2028年8月 基本型(xíng)乘(chéng)用(yòng)車(轎車)產量數據
博文選萃
| 更多
- 機械加工過程圖示
- 判斷一台加(jiā)工中心(xīn)精度的幾(jǐ)種辦法
- 中走絲線切割機床的發展趨勢
- 國產數控係統和數控(kòng)機床(chuáng)何去何(hé)從?
- 中(zhōng)國的技術(shù)工人都去哪裏了(le)?
- 機械老(lǎo)板做(zuò)了十多年(nián),為何還是小作坊?
- 機械(xiè)行業最新自殺性營銷,害人害己!不倒閉才(cái)
- 製造(zào)業大逃亡
- 智能時代,少談點智造,多談點製造(zào)
- 現(xiàn)實(shí)麵(miàn)前,國人沉默。製造業的騰飛,要從機床
- 一文搞懂數控車床加工刀具補償功能
- 車床鑽孔(kǒng)攻螺紋加(jiā)工(gōng)方法及工裝設計
- 傳統鑽削與螺旋銑孔(kǒng)加工工藝的區別