SylixOS-IgH系統平臺搭建
下面7個文件存放在本地服務器“\\10.9.1.11\3.研發部\9.ExchangeFolder\鄭磊”路徑下
《RealEvo-IDE使用手冊》
《SylixOS應用開發手冊》
《SylixOSshell用戶手冊》
《SylixOS-IgH使用說明》
《SylixOS上IgH移植技術筆記》
《CiA-402-2-version-3.0.0》 —— CANOPEN運動控制協議
《M0011098G-ch》 —— 三洋電機的使用說明
下面7個文件存放在git服務器“路徑下”
《TN0003_SylixOS實時以太網淺析》
《TN0113_SylixOS周期定時抖動分析》
《TN0129_SylixOS高精度時鐘分析》
《TN0130_SylixOSRMS調度詳解》
《TN0139_SylixOS上EtherCAT實現》
《TP0020010003_SylixOS運動控制項目技術方案》
《TR0011_IgH收發時間和任務周期測試報告_SylixOS測試報告》
2.項目文件
下面3個工程文件存放在服務器“\\10.9.1.11\3.研發部\9.ExchangeFolder\鄭磊”路徑下
SylixOS_X86_BASE_164_EtherCAT、SylixOS-IgH、SylixOS-IgH_USER。
3.EtherCAT在SylixOS下的使用步驟
目前新版IgH已經支持內核模塊註冊傳入參數機制,在/etc/目錄下新增ethercat_cfg.ini配置文件。用戶在SylixOS上搭建IgH使用平臺,可修改配置文件中的設備名稱和MAC地址為對應的網絡接口參數,詳細配置見3.4節。下面介紹SylixOS-IgH在RealEvo-IDE下的詳細使用步驟,並驅動三洋電機的運轉。RealEvo-IDE的使用請參考《RealEvo-IDE使用手冊》,電機的使用參考三洋電機的使用手冊《M0011098G-ch》,SylixOS-IgH的介紹可參考《SylixOS-IgH使用說明》、《SylixOS上IgH移植技術筆記》。
3.1 導入SylixOS-IgH 在x86平臺下的BASE工程
1.導入提供的SylixOS_X86_BASE_164_EtherCAT工程,如圖3. 1所示。
圖3.1 SylixOS_X86_BASE_164_EtherCAT工程
2.選擇目標設備並配置部署路徑,如圖3. 2所示。
圖3.2 目標設備和部署路徑配置窗口
3. 編譯工程,輸出結果如圖3. 3所示。
圖3.3
4. 部署文件到目標設備上如圖3. 4所示。
圖3.4 部署文件進程
3.2 導入SylixOS-IgH工程
1.導入提供的SylixOS-IgH工程,如圖3. 5所示
圖3.5 SylixOS-IgH工程
2.選擇目標設備並配置部署路徑,如圖3. 6所示
圖3.6 目標設備和部署路徑配置窗口
3.編譯工程,輸出結果如圖3.7所示
圖3.7 工程編譯輸出結果
4.部署文件到目標設備上,如圖3. 8 部署文件進程所示
圖3.8 部署文件進程
3.3 導入SylixOS-IgH_USER工程
1.導入提供的SylixOS-IgH_USER工程,如圖3. 9所示
圖3.9 SylixOS-IgH_USER工程
2.選擇目標設備並配置部署路徑,如圖3. 10所示
圖3.10 目標設備和部署路徑配置窗口
3.編譯工程輸出結果,如圖3. 11所示
圖3.11 工程編譯輸出結果
4.部署文件到目標設備上,如圖3. 12所示
圖3.12 部署文件進程
3.4 修改ethercat_cfg.ini文件
1.打開設備終端,輸入“ifconfig”指令,找到相應網口的描述信息,本例程使用的是en1,相關shell指令可參考《SylixOS shell用戶手冊》,如圖3. 13所示
圖3.13 en1網口描述信息
2.進入“/etc/”目錄,使用“vi”命令修改文件中的設備名稱和MAC地址,如圖3. 14所示
圖3. 14 ethercat_cfg.ini文件內容
3.5 註冊驅動模塊
模塊驅動文件部署在“/lib/modules/”下。
1.註冊“ec_master.ko”模塊,如圖3. 15所示
圖3. 15 註冊主站模塊並查看主站狀態
2.註冊“rt_netcard.ko”模塊,如圖3. 16所示
圖3. 16 註冊網絡設備驅動模塊並查看主站狀態
還可以通過“ethercat slaves”命令查看識別到的從站類型,如圖3. 17所示
圖3. 17 查看識別從站狀態
3.6 運行應用程序
在“/apps/IgHExamples/”下執行“./IgHtest”程序,如圖3. 18所示。
圖3. 18 用戶程序運行狀態
程序運行過程中,電機先低速運行,再高速運行,最後低速運行到停止狀態直到程序運行結束。
至此,SylixOS上使用EtherCAT開源協議棧IgH的基本流程已描述完畢,另外還有一些點需要註意:
1.IgH協議棧使用時需要提前預知從站設備的拓撲結構,應用程序需要根據從站的拓撲結構提前配置好各個從站的位置信息, SDO/PDO信息,主站激活後,會將提前預知的配置信息和實際讀取從站寄存器獲取的信息進行對比,只有匹配後從站才能 進入OP狀態;
2.EtherCAT開源協議棧IgH原生只支持Linux操作系統,SylixOS移植支持會盡可能保留用戶層相同使用習慣,而IgH開源社區 提供的資料並沒有完全介紹用戶層接口的使用和命令行工具的使用,暫時SylixOS-IgH也僅僅提供基礎使用說明,其余功能 的使用說明會在後續完善。
4 應用程序代碼流程詳解
1.電機數量配置,如圖4. 1所示
圖4. 1 電機數量配置
2.PDO映射變量定義,如圖4. 2所示
圖4. 2 PDO映射變量定義
3.配置數據域寄存器,如圖4. 3所示
圖4. 3 數據域寄存器配置
4.在終端中輸入“ethercat cstruct”命令,得到如下結構體定義,如圖4. 4所示
圖4. 4 電機配置結構體定義
5.申請一個消息隊列,如圖4. 5所示
圖4. 5 申請一個消息隊列
6.申請一個EtherCAT主機,如圖4. 6所示
圖4. 6 申請一個EtherCAT主機
7.為每個電機申請數據域,如圖4. 7所示
圖4. 7 申請數據域
8.為電機配置PDO,如圖4. 8所示
圖4. 8 配置PDO
9.數據域和PDO映射建立關系,如圖4. 9所示
圖4. 9 數據域和PDO映射建立關系
10.若使用時鐘同步功能需調用以下函數,如圖4. 10所示
圖4. 10 配置時鐘同步功能
11.激活主機,如圖4. 11所示
圖4. 11 激活主機
12.創建打印線程,用於調試,如圖4. 12所示
圖4. 12 創建打印線程
13.創建電機驅動線程,用於控制電機運行狀態,如圖4. 13所示
圖4. 13 創建電機驅動線程
14.打印線程函數,等待接收消息隊列中的數據,收到數據後將數據打印到控制臺上,如圖4. 14所示
圖4. 14 打印線程函數
15.啟用RMS調度器功能,RMS調度器相關使用說明參考《TN0130_SylixOS RMS調度詳解》、《TN0113_SylixOS周期定時抖動分析》,如圖4. 15所示
圖4. 15 啟用RMS調度器
16.獲取系統啟動時間,用於計算電機驅動任務執行周期,可參考《TN0129_SylixOS高精度時鐘分析》,如圖4. 16所示
圖4. 16 獲取系統啟動時間
17.主節點向從節點發送數據(站在從機的角度),如圖4. 17所示
圖4. 17 發送數據函數
18.獲取從節點數據(站在從機的角度),如圖4. 18所示
圖4.18 接收數據函數
SylixOS-IgH系統平臺搭建