SylixOS上EtherCAT實現(xiàn)-創(chuàng)新互聯(lián)

1 EtherCAT開源協(xié)議棧介紹

  目前常見開源的主站代碼為RT-LAB開發(fā)的SOEM(Simple OpenSource EtherCAT Master)和EtherLab的the IgH EtherCAT® Master,SylixOS對兩者都支持。其中IgH作為常用的EtherCAT開源協(xié)議棧,SylixOS已移植支持。

創(chuàng)新互聯(lián):從2013年成立為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為1000+公司企業(yè)提供了專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 按需策劃由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

2 SylixOS-IgH使用框架

  SylixOS-IgH的使用盡可能保留了Linux下IgH的使用方式,其中延續(xù)了命令行工具的功能,而在應(yīng)用程序開發(fā)方面,借助SylixOS集成開發(fā)套件的優(yōu)勢,用戶可以更方便編輯、調(diào)試基于SylixOS-IgH的應(yīng)用程序。

  SylixOS-IgH主要分為IgH主站協(xié)議棧、網(wǎng)絡(luò)設(shè)備驅(qū)動、IgH用戶層接口庫以及用戶應(yīng)用程序。具體介紹如下所述:

2.1 IgH主站協(xié)議棧

  IgH主站協(xié)議棧源代碼經(jīng)編譯后是一具體的ec_master.ko內(nèi)核模塊,EtherCAT功能集中實現(xiàn)在該模塊中,另外該模塊注冊之后會在/dev路徑下創(chuàng)建一個EtherCAT字符設(shè)備,如圖 21所示。

SylixOS上EtherCAT實現(xiàn)

圖21 /dev路徑下的EtherCAT0主站

  用戶程序操作EtherCAT主站,會通過用戶層接口函數(shù)最終調(diào)用I/O系統(tǒng)的open,ioctl函數(shù)完成EtherCAT協(xié)議棧的執(zhí)行。

2.2 網(wǎng)絡(luò)設(shè)備驅(qū)動

  針對SylixOS-IgH的網(wǎng)絡(luò)設(shè)備驅(qū)動源代碼經(jīng)編譯后是一具體的內(nèi)核模塊,其中通用網(wǎng)卡驅(qū)動模塊命名為generic.ko,實時網(wǎng)卡驅(qū)動會根據(jù)使用網(wǎng)卡型號針對命名,如e1000e型號的網(wǎng)卡驅(qū)動模塊為ec_e1000e.ko。網(wǎng)絡(luò)設(shè)備驅(qū)動模塊應(yīng)該在主站模塊注冊之后再進行注冊,因為主站模塊注冊后為孤立狀態(tài),會等待網(wǎng)路設(shè)備連入,網(wǎng)絡(luò)設(shè)備驅(qū)動模塊注冊后,就有一個真正的物理網(wǎng)絡(luò)接口負(fù)責(zé)收發(fā)EtherCAT數(shù)據(jù)包。其中所有內(nèi)核模塊均部署在/lib/modules路徑下,如圖 22所示。

SylixOS上EtherCAT實現(xiàn)

圖22 EtherCAT相關(guān)內(nèi)核模塊

2.2.2 通用網(wǎng)卡驅(qū)動

通用網(wǎng)卡驅(qū)動的實現(xiàn)是基于SylixOS已有LwIP協(xié)議完成EtherCAT數(shù)據(jù)包的收發(fā)工作,其實現(xiàn)原理如圖 23所示。

SylixOS上EtherCAT實現(xiàn)

圖23 通用網(wǎng)卡驅(qū)動實現(xiàn)基本原理

2.2.2 實時網(wǎng)卡驅(qū)動

在真實應(yīng)用場景中,EtherCAT軟件主站都會搭配實時操作系統(tǒng)和實時網(wǎng)卡驅(qū)動,原因在于影響實時性的關(guān)鍵因素是操作系統(tǒng)和網(wǎng)卡驅(qū)動,如圖 24所示。

SylixOS上EtherCAT實現(xiàn)

圖24 影響實時性關(guān)鍵因素

  實時操作系統(tǒng)需要將過程數(shù)據(jù)準(zhǔn)時送出,其實時性主要體現(xiàn)在周期性準(zhǔn)時調(diào)用EtherCAT主站協(xié)議棧的發(fā)送函數(shù),而網(wǎng)卡驅(qū)動也需要進行實時性優(yōu)化,使其繞過LwIP協(xié)議棧中安全性檢查、路由、出入隊列、分片和重組等相對EtherCAT來說非必要的網(wǎng)絡(luò)傳輸功能,以此來保證EtherCAT數(shù)據(jù)包“準(zhǔn)時出發(fā),路上不能耽誤”。

2.3 IgH用戶層接口

  IgH用戶層接口源代碼編譯后是一具體的動態(tài)庫,IgH源代碼把對EtherCAT主站字符設(shè)備的“ioctl”操作全部封裝成用戶層接口函數(shù),這樣用戶不需要面對IgH協(xié)議棧底層實現(xiàn),只需要了解IgH用戶層接口函數(shù)的意義和使用方式即可。

2.4 IgH用戶應(yīng)用程序

  這里要提到,SylixOS-IgH主站三種狀態(tài),如圖 25所示。

SylixOS上EtherCAT實現(xiàn)

圖25 IgH主站狀態(tài)和轉(zhuǎn)化

  主站模塊注冊之后,主站處于孤立狀態(tài);網(wǎng)絡(luò)設(shè)備驅(qū)動模塊注冊之后,主站處于空閑狀態(tài);用戶應(yīng)用程序執(zhí)行時,會先進行主站請求操作,接著配置從站并建立用戶層過程數(shù)據(jù)和協(xié)議棧數(shù)據(jù)緩沖區(qū)的映射關(guān)系,最后進行激活主站的操作,主站處于運行狀態(tài)。主站進入運行態(tài)之后,就可以進行周期性過程數(shù)據(jù)收發(fā)的行為了。

  參考IgH源代碼/examples/user/main.c中的程序執(zhí)行流程,可以了解到使用IgH的主要接口,如圖 26所示。

SylixOS上EtherCAT實現(xiàn)

圖26 用戶應(yīng)用程序流程

3 SylixOS使用步驟

  SylixOS暫時不支持內(nèi)核模塊注冊傳入?yún)?shù)機制,因此用戶如需使用SylixOS-IgH,可提前選擇作為EtherCAT數(shù)據(jù)收發(fā)接口的網(wǎng)絡(luò)設(shè)備,翼輝信息會根據(jù)用戶硬件平臺和網(wǎng)絡(luò)設(shè)備對應(yīng)MAC地址提供適配的主站內(nèi)核模塊。

1. 用戶收到SylixOS-IgH_USER工程壓縮包,如圖 31所示。

SylixOS上EtherCAT實現(xiàn)

圖31 SylixOS-IgH_USER工程壓縮包

2. 用戶將SylixOS-IgH_USER工程壓縮包解壓后導(dǎo)入RealEvo-IDE集成開發(fā)環(huán)境,在工程屬性中選擇依賴的BASE工程,如圖 32所示。

SylixOS上EtherCAT實現(xiàn)

圖32 工程屬性配置

3. 選擇工程文件上傳的目標(biāo)設(shè)備,如圖 33所示。

SylixOS上EtherCAT實現(xiàn)

圖33 選擇目標(biāo)設(shè)備IP地址

4. 工程屬性配置完成后,編譯工程并部署到目標(biāo)設(shè)備,如圖 34所示。

SylixOS上EtherCAT實現(xiàn)

圖34 部署工程到目標(biāo)設(shè)備

5. 主從站硬件設(shè)備自行連接上電。遠(yuǎn)程登錄目標(biāo)設(shè)備,注冊IgH主站內(nèi)核模塊ec_master.ko,然后使用命令行工具查看主站狀態(tài),如圖 35所示。

SylixOS上EtherCAT實現(xiàn)

圖35 注冊主站模塊并查看主站狀態(tài)

6. 接著再注冊網(wǎng)絡(luò)設(shè)備驅(qū)動內(nèi)核模塊generic.ko,然后使用命令行工具查看主站狀態(tài),如圖 36所示。

SylixOS上EtherCAT實現(xiàn)

圖36 注冊網(wǎng)絡(luò)設(shè)備驅(qū)動模塊并查看主站狀態(tài)

還可以通過“ethercatslaves”命令查看識別到的從站類型,如圖 37所示。

SylixOS上EtherCAT實現(xiàn)

圖37 查看識別從站狀態(tài)

7. 執(zhí)行IgH測試?yán)蹋摾虝せ钪髡静l(fā)送過程數(shù)據(jù)將數(shù)字量I/O模塊的8位輸出LED指示燈1s閃爍一次,如圖 38所示。

SylixOS上EtherCAT實現(xiàn)

圖38 激活主站并發(fā)送過程數(shù)據(jù)

至此,SylixOS上使用EtherCAT開源協(xié)議棧IgH的基本流程已描述完畢,另外還有一些點需要注意:

  •  IgH協(xié)議棧使用時需要提前預(yù)知從站設(shè)備的拓?fù)浣Y(jié)構(gòu),應(yīng)用程序需要根據(jù)從站的拓?fù)浣Y(jié)構(gòu)提前配置好各個從站的位置信息,SDO/PDO信息,在主站激活后,會將提前預(yù)知的配置信息和實際讀取從站寄存器獲取的信息進行對比,只有匹配后從站才能進入OP狀態(tài);

  • SylixOS支持內(nèi)核模塊注冊傳入?yún)?shù)機制之后,用戶可自行根據(jù)選定的EtherCAT報文網(wǎng)口修改網(wǎng)路配置文件;

  • EtherCAT開源協(xié)議棧IgH原生只支持Linux操作系統(tǒng),SylixOS移植支持會盡可能保留用戶層相同使用習(xí)慣,而IgH開源社區(qū)提供的資料并沒有完全介紹用戶層接口的使用和命令行工具的使用,暫時SylixOS-IgH也僅僅提供基礎(chǔ)使用說明,其余功能的使用說明會在后續(xù)完善。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站名稱:SylixOS上EtherCAT實現(xiàn)-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://bm7419.com/article32/ijspc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、網(wǎng)站建設(shè)動態(tài)網(wǎng)站、軟件開發(fā)網(wǎng)站設(shè)計公司、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名