版權(quán)聲明:本文為本文為博主原創(chuàng)文章,未經(jīng)本人同意,禁止轉(zhuǎn)載。如有問題,歡迎指正。博客地址:https://www.cnblogs.com/wsg1100/
-
一、EoE
- ethercat工作圖示
-
二、EoE服務(wù)規(guī)范
- EtherCAT主站如何提供EoE服務(wù)?
-
三、EoE網(wǎng)絡(luò)
- EOE網(wǎng)絡(luò)
這篇文章的標(biāo)題雖然是關(guān)于EtherCAT EOE,但其實主要內(nèi)容是關(guān)于整個EOE網(wǎng)絡(luò)結(jié)構(gòu),屬于計算機網(wǎng)絡(luò)原理。而EtherCAT EoE只是簡單介紹,并不是文章的重點。需要注意的是,我們的描述主要基于Linux操作系統(tǒng),但在Windows或其他RTOS上的原理也是類似的,大家可以自行類比遷移。
為了避免混淆,文中將會使用"EtherNet"或"以太網(wǎng)"來指代TCP/IP網(wǎng)絡(luò),以區(qū)分EtherCAT網(wǎng)絡(luò)和普通的以太網(wǎng)。
一、EoE
EtherCAT是一種實時以太網(wǎng)總線協(xié)議,是以以太網(wǎng)為基礎(chǔ)的現(xiàn)場總線系統(tǒng),EtherCAT已成為工業(yè)自動化領(lǐng)域中最受歡迎的總線協(xié)議之一,被廣泛應(yīng)用于機器人、自動化生產(chǎn)線、運動控制等場景。
EtherCAT使用標(biāo)準(zhǔn)的IEEE802.3以太網(wǎng)幀,單從以太網(wǎng)角度看,ETherCAT是二層網(wǎng)絡(luò),常說的MAC層,以太網(wǎng)幀頭使用以太網(wǎng)類型0x88A4
來和其他以太網(wǎng)幀相區(qū)別。
一個完整EtherCAT幀如下所示。
EtherCAT采用主從結(jié)構(gòu)進(jìn)行訪問控制,通信關(guān)系始終由主站發(fā)起。主站使用標(biāo)準(zhǔn)的以太網(wǎng)接口,從站使用專門的ETherCAT從站控制器ESC(Ethercat Slave Controller)芯片來處理子報文。
整個EtherCAT網(wǎng)絡(luò)形成一個環(huán)狀,主站向各個從站發(fā)送EtherCAT以太網(wǎng)幀,該幀的數(shù)據(jù)區(qū)包含了多個ETherCAT子報文。這些子報文包含地址信息,用于定位每個從站,主站通過這些子報文與每個從站進(jìn)行交互。每個從站ESC可以從數(shù)據(jù)幀中提取或插入數(shù)據(jù)。
ethercat工作圖示
工業(yè)通信必須滿足不同要求的數(shù)據(jù)傳輸特性,這些數(shù)據(jù)大致可分為兩類,一類是對通信時間要求嚴(yán)格的過程數(shù)據(jù)(實時數(shù)據(jù)),另一類是對時間要求相對不重要的非過程數(shù)據(jù)(非實時數(shù)據(jù)),如參數(shù)數(shù)據(jù)、診斷數(shù)據(jù)、批量數(shù)據(jù)等,EtherCAT支持多種服務(wù)和協(xié)議來滿足這些不同的要求。支撐這兩類數(shù)據(jù)的底層硬件主要是ESC的郵箱(SM)和FMMU。
因為ETherCAT修改了原來的二層以太網(wǎng)網(wǎng)絡(luò),為了實現(xiàn)從站接入普通以太網(wǎng),有了EoE。EOE是EtherNet Over EtherCAT(EtherCAT上的以太網(wǎng))的縮寫,它是一種將標(biāo)準(zhǔn)以太網(wǎng)幀通過EtherCAT傳輸?shù)慕鉀Q方案。使用EOE技術(shù),可以將EtherCAT從站接入互聯(lián)網(wǎng),并使其能夠與其他設(shè)備通過互聯(lián)網(wǎng)進(jìn)行交互,具體能用通過從站EtherNet來做什么,就看各位的想象力了(如通過EoE訪問從站設(shè)備的參數(shù),以便配置和診斷從站設(shè)備;tftp、web 服務(wù)等)。
圖片來源:https://techdocs.wago.com/Software/EtherCAT/en-US/1486077323.html
這里說到郵箱,簡答介紹一下郵箱報文的結(jié)構(gòu),詳細(xì)的請查閱ETG相關(guān)文檔
EOE使用郵箱協(xié)議傳輸,ETherCAT中不僅有EOE,還有CoE(CANopen Over EtherCAT)、FoE(File Over EtherCAT)、SoE(SERCOR Over EtherCAT)、VoE等非實時數(shù)據(jù)通信,其底層都是是通過EtherCAT郵箱交互數(shù)據(jù)。主站通過一個個ETherCAT子報文讀寫郵箱,不同的協(xié)議數(shù)據(jù)類型通過郵箱(mailbox)協(xié)議來區(qū)別,郵箱協(xié)議數(shù)據(jù)在子報文數(shù)據(jù)區(qū)中,結(jié)構(gòu)如下。
郵箱協(xié)議數(shù)據(jù)包含郵箱頭和郵箱數(shù)據(jù),郵箱頭主要表示郵箱數(shù)據(jù)區(qū)的數(shù)據(jù)類型,結(jié)構(gòu)如下:
在郵箱數(shù)據(jù)區(qū)中,進(jìn)一步包含有COE、EOE、FOE等協(xié)議規(guī)范的數(shù)據(jù)。以EOE為例,通常情況下,EtherNet幀的大小為1514/1518字節(jié)(不包括前導(dǎo)碼和FCS校驗)。但從站的郵箱大小有限,每次傳輸只能傳輸幾百字節(jié)的數(shù)據(jù)。因此,在通過郵箱協(xié)議傳輸EtherNet幀之前,需要將其分成多個段傳輸,這就需要一定的協(xié)議和規(guī)范。此外,從站EtherNet網(wǎng)絡(luò)還設(shè)計MAC、IP、網(wǎng)關(guān)地址等參數(shù)配置,也需要通過郵箱進(jìn)行配置,統(tǒng)一需要一定的協(xié)議和規(guī)范。因此,ETG定義了EoE服務(wù)規(guī)范來應(yīng)對這些需求,它被放置在郵箱數(shù)據(jù)區(qū)中。整個ETherCAT數(shù)據(jù)幀就和TCP/IP網(wǎng)絡(luò)幀一樣分層,像套娃一樣,一層協(xié)議套一層協(xié)議。其他的COE、FOE、VOE等服務(wù)規(guī)范也類似。
二、EoE服務(wù)規(guī)范
按照ETG官方文檔中對EoE應(yīng)用服務(wù)的定義,EoE服務(wù)請求規(guī)范如下:
- 初始化EoE請求(Initiate EoE),部分從站需要主站發(fā)送Initiate EoE來觸發(fā)從站初始化從站EOE,如網(wǎng)絡(luò)協(xié)議棧初始化等等,請求-響應(yīng)模式(主站發(fā)起請求,然后查詢從站響應(yīng),根據(jù)響應(yīng)確定從站是否執(zhí)行成功)。
request:EOE frameType 0x02
response: EOE frameType 0x03
- EoE幀傳輸請求(EoE Fragment),用于傳輸主站與從站的標(biāo)準(zhǔn)以太網(wǎng)數(shù)據(jù),只有請求,沒有響應(yīng)。
request:EOE frameType 0x00
- 設(shè)置IP參數(shù)請求(Set IP Parameter),設(shè)置從站的IP地址、網(wǎng)關(guān)等配置信息,請求-響應(yīng)模式。
request:EOE frameType 0x02
response: EOE frameType 0x03
- 設(shè)置MAC過濾器請求(Set MAC Filter),請求-響應(yīng)模式。暫未見到應(yīng)用場景。
request:EOE frameType 0x04
response: EOE frameType 0x05
以上均是通過郵箱協(xié)議來與從站交互,關(guān)于EOE服務(wù)的數(shù)據(jù)結(jié)構(gòu)規(guī)范大家可參考ETG官方文檔《ETG1000.6.應(yīng)用層協(xié)議規(guī)范》5.7小節(jié),這里不再詳細(xì)貼出。
EtherCAT主站如何提供EoE服務(wù)?
通過上面對EoE的描述,EtherCAT主站提供EOE功能有:
- 為每個從站配置IP、MAC、網(wǎng)關(guān)等IP參數(shù)。
- 外部發(fā)送給從站的EtherNet 幀,需要主站通過EoE Fragment發(fā)送給從站;同時主站要接收從站發(fā)送的EtherNet 幀,然后向外發(fā)送。
- 可選的MAC過濾器請求、初始化EoE請求。
Set IP Parameter request
、Set MAC Filter request
與 SDO upload/download
請求機制類似,EtherCAT主站內(nèi)部通過一系列狀態(tài)機來為應(yīng)用層提供這些服務(wù)。不是本文的重點,具體大家可參考開源EtherCAT協(xié)議棧(igh、soem...雖然有些bug)源碼和文檔,在此不再說明。
最重要的是,EtherCAT主站需要提供一個基于ETherCAT郵箱協(xié)議的EtherNet“物理層”通道,用于從站與PLC外部網(wǎng)絡(luò)之間的通信。本文關(guān)注的是網(wǎng)絡(luò)層面部分,即如何處理EtherNet幀并傳遞給從站,以及從站如何處理并向外界發(fā)送數(shù)據(jù)。對于EtherCAT主站如何進(jìn)行郵箱通信并不是本文的重點,自行查閱相關(guān)資料。
三、EoE網(wǎng)絡(luò)
EOE網(wǎng)絡(luò)
一個典型的EOE網(wǎng)絡(luò)通常如下圖所示:PLC(或其他運行EtherCAT主站的主機)至少配備兩個網(wǎng)卡。其中,一個網(wǎng)卡完全由EtherCAT主站管理,連接著EtherCAT從站(假設(shè)有64個從站,且全部支持EOE)。另一個網(wǎng)卡則是PLC的普通以太網(wǎng)網(wǎng)卡,用于連接到外部網(wǎng)絡(luò)。
基于這個結(jié)構(gòu),我們考慮如下問題(本文暫且關(guān)注基本問題):
- 如何將各個從站的網(wǎng)絡(luò)和外部網(wǎng)絡(luò)連接起來?
- 外部網(wǎng)絡(luò)作為服務(wù)端如何才能連接?
- 從站作為服務(wù)端時,客戶端在外部網(wǎng)絡(luò),如何才能連接?
- 如何實現(xiàn)EtherCAT網(wǎng)絡(luò)中,從站與從站之間通過EtherNet相互通信?
- ETherCAT網(wǎng)絡(luò)中的從站會經(jīng)常拔插(創(chuàng)建、刪除)如何靈活管理?
- 從站作為服務(wù)端接入外部網(wǎng)絡(luò),如何保障基本安全?
在解決這些問題之前,我們再次看看這個網(wǎng)絡(luò)。首先,從站EOE就像一個完整的EtherNet設(shè)備。ESC EOE郵箱相當(dāng)于網(wǎng)卡,每個EOE從站則相當(dāng)于網(wǎng)卡+TCP/IP協(xié)議棧。在TCP/IP協(xié)議棧的上層,是具體的Ethernet應(yīng)用程序(如TFTP、HTTP等)。
從PLC的角度看,PLC與這64個EOE從站直接'連接',只不過這64個網(wǎng)口共用一條EtherCAT網(wǎng)線作為總線,說到這大家有沒有聯(lián)想到什么?
這種網(wǎng)絡(luò)結(jié)構(gòu)讓人想起了在電腦上創(chuàng)建虛擬機時使用的網(wǎng)絡(luò)結(jié)構(gòu),就和我們在電腦上創(chuàng)建幾個虛擬機的網(wǎng)絡(luò)結(jié)構(gòu)是一樣的!看下面這個圖你就明白了。
網(wǎng)絡(luò)結(jié)構(gòu)上,PLC中的EtherCAT EOE網(wǎng)絡(luò)與我們在電腦上創(chuàng)建多個虛擬機的網(wǎng)絡(luò)結(jié)構(gòu)非常相似!PLC相當(dāng)于我們的物理機,而EOE從站則相當(dāng)于物理機里創(chuàng)建的虛擬機。每個虛擬機都有自己的網(wǎng)卡,并且安裝有操作系統(tǒng),每個虛擬機對外要互聯(lián)互通。
在自己電腦上創(chuàng)建虛擬機只是多種虛擬化技術(shù)和應(yīng)用場景之一。
因此,EtherCAT主站EOE網(wǎng)絡(luò)的工作機制與虛擬化場景下的網(wǎng)絡(luò)工作機制類似,EtherCAT主站EOE網(wǎng)絡(luò)問題可以使用類似虛擬化場景下的網(wǎng)絡(luò)解決方式去解決。不同之處在于數(shù)量上存在差異,由于ETherCAT網(wǎng)絡(luò)有多個ETherCAT從站,需要靈活管理(如創(chuàng)建、刪除),在EtherCAT上會根據(jù)應(yīng)用場景簡化處理。文章來源:http://www.zghlxwxcb.cn/news/detail-461914.html
虛擬化網(wǎng)絡(luò)底層原理是計算機網(wǎng)絡(luò)技術(shù)和操作系統(tǒng)技術(shù),這方面的知識這部分內(nèi)容留到下篇文章(淺談EtherCAT主站EOE(下)-虛擬化網(wǎng)絡(luò)與EOE網(wǎng)絡(luò))介紹。文章來源地址http://www.zghlxwxcb.cn/news/detail-461914.html
到了這里,關(guān)于【】淺談EtherCAT主站EOE(上)-EOE網(wǎng)絡(luò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!