EtherCAT(以太網(wǎng)控制自動化技術(shù))是一個開放架構(gòu),以以太網(wǎng)為基礎(chǔ)的現(xiàn)場總線系統(tǒng),其名稱的CAT為控制自動化技術(shù)(Control Automation Technology)字首的縮寫。
EtherCAT是確定性的工業(yè)以太網(wǎng),最早是由德國的Beckhoff公司研發(fā)。
自動化對通訊一般會要求較短的資料更新時間(或稱為周期時間)、資料同步時的通訊抖動量低,而且硬件的成本要低,EtherCAT開發(fā)的目的就是讓以太網(wǎng)可以運(yùn)用在自動化應(yīng)用中。
一般工業(yè)通訊的網(wǎng)絡(luò)各節(jié)點(diǎn)傳送的資料長度不長,多半都比以太網(wǎng)幀的最小長度要小。而每個節(jié)點(diǎn)每次更新資料都要送出一個幀,造成帶寬的低利用率,網(wǎng)絡(luò)的整體性能也隨之下降。EtherCAT利用一種稱為“飛速傳輸”(processing on the fly)的技術(shù)改善以上的問題。
在EtherCAT網(wǎng)絡(luò)中,當(dāng)資料幀通過EtherCAT節(jié)點(diǎn)時,節(jié)點(diǎn)會復(fù)制資料,再傳送到下一個節(jié)點(diǎn),同時識別對應(yīng)此節(jié)點(diǎn)的資料,則會進(jìn)行對應(yīng)的處理,若節(jié)點(diǎn)需要送出資料,也會在傳送到下一個節(jié)點(diǎn)的資料中插入要送出的資料。每個節(jié)點(diǎn)接收及傳送資料的時間少于1微秒,一般而言只用一個幀的資料就可以供所有的網(wǎng)絡(luò)上的節(jié)點(diǎn)傳送及接收資料。
通訊協(xié)定
EtherCAT通訊協(xié)定是針對程序資料而進(jìn)行優(yōu)化,利用標(biāo)準(zhǔn)的IEEE 802.3以太網(wǎng)幀傳遞,Ethertype為0x88a4。其資料順序和網(wǎng)站上設(shè)備的實(shí)體順序無關(guān),定址順序也沒有限制。主站可以和從站進(jìn)行廣播及多播等通訊。若需要IP路由,EtherCAT通訊協(xié)定可以放入UDP/IP資料包中。
性能
EtherCAT的周期時間短,是因從站的微處理器不需處理以太網(wǎng)的封包。所有程序資料都是由從站控制器的硬件來處理。此特性再配合EtherCAT的機(jī)能原理,使得EtherCAT可以成為高性能的分散式I/O系統(tǒng):包含一千個分散式數(shù)位輸入/輸出的程序資料交換只需30us,相當(dāng)于在100Mbit/s的以太網(wǎng)傳輸125個字節(jié)的資料。讀寫一百個伺服軸的系統(tǒng)可以以10kHz的速率更新,一般的更新速率約為1–30kHz,但也可以使用較低的更新速率,以避免太頻繁的直接內(nèi)存存取影響主站個人電腦的運(yùn)作。
EtherCAT使用全雙工的以太網(wǎng)實(shí)體層,從站可能有二個或二個以上的埠。若設(shè)備沒偵測到其下游有其他設(shè)備,從站的控制器會自動關(guān)閉對應(yīng)的埠并回傳以太網(wǎng)幀。由于上述的特性,EtherCAT幾乎支援所有的網(wǎng)絡(luò)拓?fù)?,包括總線式、樹狀或是星狀,現(xiàn)場總線常用的總線式拓?fù)湟部梢杂迷谝蕴W(wǎng)中。
EtherCAT的拓?fù)淇梢杂镁W(wǎng)絡(luò)線、分枝或是短線(stub)作任意的組合。有三個或三個以上以太網(wǎng)接口的設(shè)備就可以當(dāng)作分接器,不一定一定要用網(wǎng)絡(luò)交換器。 由于使用100BASE-TX的以太網(wǎng)物理層,二個設(shè)備之間的距離可以到100米,一個EtherCAT區(qū)段的網(wǎng)絡(luò)最多可以有65535個設(shè)備。若EtherCAT網(wǎng)絡(luò)是使用環(huán)狀拓?fù)洌ㄖ髡驹O(shè)備需要有二個通訊埠),則此網(wǎng)絡(luò)還有纜線冗余的機(jī)能。
同步
為了系統(tǒng)的同步,EtherCAT協(xié)定中有提供分散式時鐘機(jī)制,即使通訊循環(huán)周期有抖動,時鐘的抖動遠(yuǎn)小于1μs,大約接近IEEE 1588精密時間協(xié)議的標(biāo)準(zhǔn)。因此EtherCAT的主站設(shè)備不需針對時鐘使用特殊的硬件,可以用軟件實(shí)現(xiàn)在任何標(biāo)準(zhǔn)的的以太網(wǎng)MAC,即使沒有特殊的通訊協(xié)處理器也沒有關(guān)系。
標(biāo)準(zhǔn)建立分散式時鐘的程序是由主站送出一特定位址的廣播訊息給所有從站來啟動。若使用環(huán)狀拓?fù)?,所有從站會在收到訊息時閂鎖內(nèi)部時鐘,當(dāng)訊息回來時會再閂鎖內(nèi)部時鐘一次。主站會讀所有從站閂鎖的值,計算各個從站的延遲。為了消除抖動的影響及求得平均值,主站會盡可能的多次進(jìn)行上述的程序。所有的從站延遲會依各從站在從站環(huán)狀拓?fù)涞奈恢脕碛嬎悖⒂涗浽谝粋€偏移寄存器中。最后主站送出一個讀寫系統(tǒng)時鐘的廣播訊息,會使第一個從站的時鐘為參考時鐘,其他從站的內(nèi)部時鐘會調(diào)整到和第一個從站相同。
為了在初始化后保持時鐘的同步,主站或從站需定期的再送出廣播訊號,以計算各個從站內(nèi)部時鐘的速度差異,若有需要時,從站需要可以調(diào)整自身時鐘的速度,或是有其他調(diào)整時鐘的機(jī)制。
系統(tǒng)時鐘是一個64位元的計時器,計數(shù)內(nèi)容是從2000年1月1日0點(diǎn)0分開始所經(jīng)過的時間,單位是納秒(ns)。
設(shè)備行規(guī)
設(shè)備行規(guī)(device profile)描述應(yīng)用需要的參數(shù)及設(shè)備的機(jī)能特性,包括可能依設(shè)備種類而不同的狀態(tài)機(jī)??偩€技術(shù)中已有許多可靠的設(shè)備行規(guī),例如I/O設(shè)備、驅(qū)動器或閥等設(shè)備。EtherCAT同時支援CANopen設(shè)備行規(guī)及Sercos驅(qū)動器行規(guī)。從CANopen或Sercos移植到EtherCAT時,在應(yīng)用觀點(diǎn)看到的內(nèi)容是一様?shù)模部煞奖闶褂谜呋蛟O(shè)備制造商的轉(zhuǎn)換。
機(jī)能安全
EtherCAT有一個加強(qiáng)的協(xié)定版本,稱為Safety over EtherCAT,可以在同一個網(wǎng)絡(luò)上進(jìn)行機(jī)能安全相關(guān)的通訊和一般的控制通訊。此安全通訊是以EtherCAT的應(yīng)用層為基礎(chǔ),不會影響底層的通訊協(xié)定。Safety over EtherCAT有通過IEC 61508的認(rèn)證,符合安全完整性等級(SIL)3的要求。自2005年起已有使用Safety over EtherCAT的產(chǎn)品上市。
EtherCAT主站可以用軟件,在標(biāo)準(zhǔn)的以太網(wǎng)媒體接入控制器中實(shí)現(xiàn)。許多供應(yīng)商有提供在不同操作系統(tǒng)下的程式碼,也有許多開源軟件或共享軟件。EtherCAT從站需要特殊的EtherCAT從站控制器,才能實(shí)現(xiàn)飛速傳輸(processing on the fly)的技術(shù)。EtherCAT從站控制器可以用FPGA來實(shí)現(xiàn),且已有現(xiàn)成的代碼,此控制器也可以用ASIC來實(shí)現(xiàn)。