【EtherCAT實踐篇】六、更改XML,增加輸入輸出變量

目的:在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章