【EtherCAT实践篇】七、更改XML示例2,增加16位模拟输入

2023-05-16

目的:在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(使用前将#替换为@)

【EtherCAT实践篇】七、更改XML示例2,增加16位模拟输入 的相关文章

随机推荐