目的:在EtherCAT開發板上IO程序(基於SSC的IO通訊)基礎上進行修改,實現16路撥碼開關輸入,以及16路LED輸出。
EtherCAT從站增加變量的操作包括兩個部分:1)XML文件修改;2)底板STM32程序修改。
1、XML配置修改
xml作爲EtherCAT從站設備描述文件,燒寫在EEPROM裏,ESC芯片上電後,會從EEPROM加載配置參數,完成啓動初始化過程。同時主站設備掃描從站時,會讀取EEPORM描述信息,完成對從站的初始配置。XML 裏定義的對象字典和PDO 設置,需要和對應底板程序裏的對象字典相對應。
XML的基本介紹 參考【EtherCAT分析】三、EtherCAT從站設備描述文件設計,下面介紹根據實驗目的進行xml文件修改的過程。
1.1 更改數據類型
原xml文件中,LED輸出映射索引0x1601和0x7010,Switch輸出映射索引0x1a00和0x6000,這裏在這個基礎上修改。
(1)更改DT1601數據類型,重新修改數據類型的BitSize。
(2)索引0x1601將輸出過程數據映射到0X7010中,因此需要更改DT7010數據類型。
(3)發現數據類型無DT1A00,從後面對象字典可以知0x1A00用得也是DT1601數據,考慮到修改爲16路LED輸出和16路Switch輸入時,兩個數據格式相同,因此無需添加。
索引0x1a00將輸出過程數據映射到0X6000中,因此需要更改DT6000數據類型。
1.2更改數據字典對象表
(1)更改0x1601數據對象字典--輸出映射表AI TxPDO-Map
(2) 更改0X7010對象字典
(3)更改0X1a00對象字典
(4) 更改0X6000對象字典
1.3定義PDO傳輸
1.4修改SM配置
2、STM32程序更改
在el9800appl.h中修改對象描述,包括更改本地存儲變量、表項描述、對象名字以及對象描述。
2.1更改本地存儲變量
(1)更改0x1601本地存儲變量
0x70100x01與xml文件對應,其中索引也要改爲16。
(2)更改0x7010本地存儲變量
索引改爲16:
(3)更改0x1a00本地存儲變量
(4)更改0x6000本地存儲變量
2.2更改表項描述
(1)更改0x1601表項描述
(2)更改0x7010表項描述
(3)更改0x1a00表項描述
(4)更改0x6000表項描述
2.3更改對象名字
(1)0x1601對象名字無需更改
(2)更改0x7010對象名字
(3)0x1a00對象名字無需更改
(4)更改0x6000對象名字
2.4更改對象描述
需要特別注意藍色圈圈中數據要與子索引最大值相對應。
2.5應用層程序更改
在APPL_Application()更改
3、測試驗證
通過下載STM32修改後的程序,並更新xml文件,在Freerun模式下進行測試,可以發現16路撥碼開關和16路LED都可以正常響應。
EtherCAT開發學習板:https://shop461235811.taobao.com