亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SylixOS上EtherCAT實現

發布時間:2020-07-20 14:18:22 來源:網絡 閱讀:1817 作者:Jackstraw瑞 欄目:系統運維

1 EtherCAT開源協議棧介紹

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

2 SylixOS-IgH使用框架

    SylixOS-IgH的使用盡可能保留了Linux下IgH的使用方式,其中延續了命令行工具的功能,而在應用程序開發方面,借助SylixOS集成開發套件的優勢,用戶可以更方便編輯、調試基于SylixOS-IgH的應用程序。

    SylixOS-IgH主要分為IgH主站協議棧、網絡設備驅動、IgH用戶層接口庫以及用戶應用程序。具體介紹如下所述:

2.1 IgH主站協議棧

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

SylixOS上EtherCAT實現

圖21  /dev路徑下的EtherCAT0主站

   用戶程序操作EtherCAT主站,會通過用戶層接口函數最終調用I/O系統的open,ioctl函數完成EtherCAT協議棧的執行。

2.2 網絡設備驅動

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

SylixOS上EtherCAT實現

圖22  EtherCAT相關內核模塊

2.2.2 通用網卡驅動

通用網卡驅動的實現是基于SylixOS已有LwIP協議完成EtherCAT數據包的收發工作,其實現原理如圖 23所示。

SylixOS上EtherCAT實現

圖23  通用網卡驅動實現基本原理

2.2.2 實時網卡驅動

在真實應用場景中,EtherCAT軟件主站都會搭配實時操作系統和實時網卡驅動,原因在于影響實時性的關鍵因素是操作系統和網卡驅動,如圖 24所示。

SylixOS上EtherCAT實現

圖24  影響實時性關鍵因素

    實時操作系統需要將過程數據準時送出,其實時性主要體現在周期性準時調用EtherCAT主站協議棧的發送函數,而網卡驅動也需要進行實時性優化,使其繞過LwIP協議棧中安全性檢查、路由、出入隊列、分片和重組等相對EtherCAT來說非必要的網絡傳輸功能,以此來保證EtherCAT數據包“準時出發,路上不能耽誤”。

2.3 IgH用戶層接口

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

2.4 IgH用戶應用程序

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

SylixOS上EtherCAT實現

圖25  IgH主站狀態和轉化

    主站模塊注冊之后,主站處于孤立狀態;網絡設備驅動模塊注冊之后,主站處于空閑狀態;用戶應用程序執行時,會先進行主站請求操作,接著配置從站并建立用戶層過程數據和協議棧數據緩沖區的映射關系,最后進行激活主站的操作,主站處于運行狀態。主站進入運行態之后,就可以進行周期性過程數據收發的行為了。

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

SylixOS上EtherCAT實現

圖26  用戶應用程序流程

3 SylixOS使用步驟

    SylixOS暫時不支持內核模塊注冊傳入參數機制,因此用戶如需使用SylixOS-IgH,可提前選擇作為EtherCAT數據收發接口的網絡設備,翼輝信息會根據用戶硬件平臺和網絡設備對應MAC地址提供適配的主站內核模塊。

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

SylixOS上EtherCAT實現

圖31  SylixOS-IgH_USER工程壓縮包

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

SylixOS上EtherCAT實現

圖32  工程屬性配置

3. 選擇工程文件上傳的目標設備,如圖 33所示。

SylixOS上EtherCAT實現

圖33  選擇目標設備IP地址

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

SylixOS上EtherCAT實現

圖34  部署工程到目標設備

5. 主從站硬件設備自行連接上電。遠程登錄目標設備,注冊IgH主站內核模塊ec_master.ko,然后使用命令行工具查看主站狀態,如圖 35所示。

SylixOS上EtherCAT實現

圖35  注冊主站模塊并查看主站狀態

6. 接著再注冊網絡設備驅動內核模塊generic.ko,然后使用命令行工具查看主站狀態,如圖 36所示。

SylixOS上EtherCAT實現


圖36  注冊網絡設備驅動模塊并查看主站狀態

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

SylixOS上EtherCAT實現

圖37  查看識別從站狀態

7. 執行IgH測試例程,該例程會激活主站并發送過程數據將數字量I/O模塊的8位輸出LED指示燈1s閃爍一次,如圖 38所示。

SylixOS上EtherCAT實現

圖38  激活主站并發送過程數據

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


  •  IgH協議棧使用時需要提前預知從站設備的拓撲結構,應用程序需要根據從站的拓撲結構提前配置好各個從站的位置信息,SDO/PDO信息,在主站激活后,會將提前預知的配置信息和實際讀取從站寄存器獲取的信息進行對比,只有匹配后從站才能進入OP狀態;

  • SylixOS支持內核模塊注冊傳入參數機制之后,用戶可自行根據選定的EtherCAT報文網口修改網路配置文件;

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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贡嘎县| 眉山市| 郧西县| 宾阳县| 乌苏市| 东阿县| 台中县| 汉阴县| 郧西县| 双鸭山市| 土默特左旗| 阳曲县| 鄯善县| 连平县| 拜泉县| 贵港市| 湾仔区| 淮安市| 云安县| 洛川县| 北辰区| 安平县| 福清市| 巢湖市| 永川市| 天柱县| 灌阳县| 利辛县| 林甸县| 台北县| 施甸县| 连城县| 海宁市| 玉龙| 上蔡县| 绥芬河市| 玉屏| 新野县| 沁源县| 台山市| 黄浦区|