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