目前常見開源的主站代碼為RT-LAB開發(fā)的SOEM(Simple OpenSource EtherCAT Master)和EtherLab的the IgH EtherCAT® Master,SylixOS對兩者都支持。其中IgH作為常用的EtherCAT開源協議棧,SylixOS已移植支持。
SylixOS-IgH的使用盡可能保留了Linux下IgH的使用方式,其中延續(xù)了命令行工具的功能,而在應用程序開發(fā)方面,借助SylixOS集成開發(fā)套件的優(yōu)勢,用戶可以更方便編輯、調試基于SylixOS-IgH的應用程序。
SylixOS-IgH主要分為IgH主站協議棧、網絡設備驅動、IgH用戶層接口庫以及用戶應用程序。具體介紹如下所述:
IgH主站協議棧源代碼經編譯后是一具體的ec_master.ko內核模塊,EtherCAT功能集中實現在該模塊中,另外該模塊注冊之后會在/dev路徑下創(chuàng)建一個EtherCAT字符設備,如圖 21所示。
圖21 /dev路徑下的EtherCAT0主站
用戶程序操作EtherCAT主站,會通過用戶層接口函數最終調用I/O系統的open,ioctl函數完成EtherCAT協議棧的執(zhí)行。
針對SylixOS-IgH的網絡設備驅動源代碼經編譯后是一具體的內核模塊,其中通用網卡驅動模塊命名為generic.ko,實時網卡驅動會根據使用網卡型號針對命名,如e1000e型號的網卡驅動模塊為ec_e1000e.ko。網絡設備驅動模塊應該在主站模塊注冊之后再進行注冊,因為主站模塊注冊后為孤立狀態(tài),會等待網路設備連入,網絡設備驅動模塊注冊后,就有一個真正的物理網絡接口負責收發(fā)EtherCAT數據包。其中所有內核模塊均部署在/lib/modules路徑下,如圖 22所示。
圖22 EtherCAT相關內核模塊
通用網卡驅動的實現是基于SylixOS已有LwIP協議完成EtherCAT數據包的收發(fā)工作,其實現原理如圖 23所示。
圖23 通用網卡驅動實現基本原理
在真實應用場景中,EtherCAT軟件主站都會搭配實時操作系統和實時網卡驅動,原因在于影響實時性的關鍵因素是操作系統和網卡驅動,如圖 24所示。
圖24 影響實時性關鍵因素
實時操作系統需要將過程數據準時送出,其實時性主要體現在周期性準時調用EtherCAT主站協議棧的發(fā)送函數,而網卡驅動也需要進行實時性優(yōu)化,使其繞過LwIP協議棧中安全性檢查、路由、出入隊列、分片和重組等相對EtherCAT來說非必要的網絡傳輸功能,以此來保證EtherCAT數據包“準時出發(fā),路上不能耽誤”。
IgH用戶層接口源代碼編譯后是一具體的動態(tài)庫,IgH源代碼把對EtherCAT主站字符設備的“ioctl”操作全部封裝成用戶層接口函數,這樣用戶不需要面對IgH協議棧底層實現,只需要了解IgH用戶層接口函數的意義和使用方式即可。
這里要提到,SylixOS-IgH主站三種狀態(tài),如圖 25所示。
圖25 IgH主站狀態(tài)和轉化
主站模塊注冊之后,主站處于孤立狀態(tài);網絡設備驅動模塊注冊之后,主站處于空閑狀態(tài);用戶應用程序執(zhí)行時,會先進行主站請求操作,接著配置從站并建立用戶層過程數據和協議棧數據緩沖區(qū)的映射關系,最后進行激活主站的操作,主站處于運行狀態(tài)。主站進入運行態(tài)之后,就可以進行周期性過程數據收發(fā)的行為了。
參考IgH源代碼/examples/user/main.c中的程序執(zhí)行流程,可以了解到使用IgH的主要接口,如圖 26所示。
圖26 用戶應用程序流程
SylixOS暫時不支持內核模塊注冊傳入參數機制,因此用戶如需使用SylixOS-IgH,可提前選擇作為EtherCAT數據收發(fā)接口的網絡設備,翼輝信息會根據用戶硬件平臺和網絡設備對應MAC地址提供適配的主站內核模塊。
1. 用戶收到SylixOS-IgH_USER工程壓縮包,如圖 31所示。
圖31 SylixOS-IgH_USER工程壓縮包
2. 用戶將SylixOS-IgH_USER工程壓縮包解壓后導入RealEvo-IDE集成開發(fā)環(huán)境,在工程屬性中選擇依賴的BASE工程,如圖 32所示。
圖32 工程屬性配置
3. 選擇工程文件上傳的目標設備,如圖 33所示。
圖33 選擇目標設備IP地址
4. 工程屬性配置完成后,編譯工程并部署到目標設備,如圖 34所示。
圖34 部署工程到目標設備
5. 主從站硬件設備自行連接上電。遠程登錄目標設備,注冊IgH主站內核模塊ec_master.ko,然后使用命令行工具查看主站狀態(tài),如圖 35所示。
圖35 注冊主站模塊并查看主站狀態(tài)
6. 接著再注冊網絡設備驅動內核模塊generic.ko,然后使用命令行工具查看主站狀態(tài),如圖 36所示。
圖36 注冊網絡設備驅動模塊并查看主站狀態(tài)
還可以通過“ethercatslaves”命令查看識別到的從站類型,如圖 37所示。
圖37 查看識別從站狀態(tài)
7. 執(zhí)行IgH測試例程,該例程會激活主站并發(fā)送過程數據將數字量I/O模塊的8位輸出LED指示燈1s閃爍一次,如圖 38所示。
圖38 激活主站并發(fā)送過程數據
至此,SylixOS上使用EtherCAT開源協議棧IgH的基本流程已描述完畢,另外還有一些點需要注意:
IgH協議棧使用時需要提前預知從站設備的拓撲結構,應用程序需要根據從站的拓撲結構提前配置好各個從站的位置信息,SDO/PDO信息,在主站激活后,會將提前預知的配置信息和實際讀取從站寄存器獲取的信息進行對比,只有匹配后從站才能進入OP狀態(tài);
SylixOS支持內核模塊注冊傳入參數機制之后,用戶可自行根據選定的EtherCAT報文網口修改網路配置文件;
EtherCAT開源協議棧IgH原生只支持Linux操作系統,SylixOS移植支持會盡可能保留用戶層相同使用習慣,而IgH開源社區(qū)提供的資料并沒有完全介紹用戶層接口的使用和命令行工具的使用,暫時SylixOS-IgH也僅僅提供基礎使用說明,其余功能的使用說明會在后續(xù)完善。
另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站名稱:SylixOS上EtherCAT實現-創(chuàng)新互聯
網頁地址:http://www.chinadenli.net/article32/ijspc.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站設計、網站建設、動態(tài)網站、軟件開發(fā)、網站設計公司、品牌網站制作
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯