目的:在EtherCAT开发板上IO程序基础上增加一个16位的变量mytest,用于传输模拟量发送给主站。
1、EtherCAT增加变量说明
在实际使用中,可现有程序的输入输出变量可能不能直接满足实际需求,因此需要根据需要来增加EtherCAT从站的输入输出变量。
EtherCAT从站增加变量的操作包括两个部分:1)XML文件修改;2)底板STM32程序修改。
xml作为EtherCAT从站设备描述文件,烧写在EEPROM里,ESC芯片上电后,会从EEPROM加载配置参数,完成启动初始化过程。同时主站设备扫描从站时,会读取EEPORM描述信息,完成对从站的初始配置。XML 里定义的对象字典和PDO 设置,需要和对应底板程序里的对象字典相对应。在从站xml文件设计时,使用Altova XML spy软件编写XML程序,该软件是XML文件的专用编辑器,使用该软件编辑XML文件不仅可以像文本编辑器一样查看XML文件源码,还能够以表格的形式显示属性列表、数据类型和元素符号,能够让用户更直观得浏览修改配置信息。另外利用Notepad++查看和编写xml文件也很清晰,不过不能以表格形式显示。
STM32程序对应修改时,主要修改文件el9800.h 里的对象字典,包括修改对象描述,包括更改本地存储变量、表项描述、对象名字以及对象描述。
2、XML配置修改
2.1更改数据类型
增加变量对应于输出映射索引0x1A02的,因此需要更改DT1A02数据类型:增加第九个SubItem,重新修改数据类型的BitSize
索引0x1A02将输出过程数据映射到0X6020中,因此需要更改DT6020数据类型。
2.2更改数据字典对象表
更改0x1A02数据对象--输出映射表AI TxPDO-Map
(1)增加SubIndex009,索引号为60201210,其中“6020”代表映射索引号,“12”代表索引6020的第18位SubIdx,“10”代表数据大小,16位。注意:在xml中写的顺序与实际不同。同时修改相应的BitSize=16+32*9=304.
(2)更改0X6020对象字典,只需修改BitSize
2.3定义PDO传输
2.4修改SM配置
这里面的Outputs 和Inputs 的长度2 和8 要和前面定义的PDO 总的数据字节移植。
3、STM32程序更改
在el9800appl.h中修改对象描述,包括更改本地存储变量、表项描述、对象名字以及对象描述。
3.1更改本地存储变量
更改0x1a02本地存储变量
0x60201210与xml文件对应,其中索引8也要改为9。
更改0x6020本地存储变量
索引改为18:
3.2更改表项描述
更改0x1a02表项描述
更改0x6020表项描述
3.3更改对象名字
更改0x6020名字:
3.4更改对象描述
需要特别注意蓝色圈圈中数据要与子索引最大值相对应。
3.5应用层程序更改
在APPL_InputMapping()中更改:
在APPL_Application()更改
4、测试验证
利用TwinCAT主站在Freerun模式下,观察结果
对应EtherCAT开发学习板:https://shop461235811.taobao.com
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)