【EtherCAT实践篇】八、更改XML示例3,增加16位模拟DAC输出

2023-05-16

目的:在EtherCAT开发板上IO程序(基本IO通讯-基于SSC)基础上进行修改,增加一路模拟量输出,并输出给DAC管脚。由于STM32F405底板具有DAC输出功能,这个实验在STM32F405底板进行。

更改思路:在原DO output输出基础上再增加一个16路的模拟量输出,并将值传给STM32的DAC输出。

1、XML配置修改

1.1 更改数据类型

增加变量对应于输出映射索引0x1601的,因此需要更改DT1601数据类型:

增加第10个SubItem,并重新修改数据类型的BitSize;

备注:原xml文件中第9个subitem用于数据对齐,原本传输8个IO变量,需要补个8位数据,以保证16位对齐,这里将原本的第9个subitem用于输出8位模拟量。

索引0x1601将输出过程数据映射到0X7010中,因此需要更改DT7010数据类型。

1.2更改数据字典对象表

更改0x1601数据对象--输出映射表Ao TxPDO-Map

(1)增加SubIndex010,索引号为70101010,其中“7010”代表映射索引号,“10”代表索引6020的第“10”位SubIdx,“10”代表数据大小,16位。注意:在xml中写的顺序与实际不同。同时修改相应的BitSize=16+32*10=336.

(2)更改0X7010对象字典:

1.3定义PDO传输

1.4修改SM配置

增加16位模拟量输出,相当于增加2个字节。

2、STM32对应程序修改

2.1更改本地存储变量

更改0x1601本地存储变量,0x70101010与xml文件对应,其中索引9也要改为10。

更改0x7010本地存储变量,索引改为10:

2.2更改表项描述

更改0x1601表项描述

2.2更改对象名字

更改0x7010名字:

2.3更改对象描述

2.4更改配置和应用程序

增加DAC配置和DAC输出函数:

增加应用层修改程序:

3、 测试验证

利用TwinCAT主站在Freerun模式下进行测试,可以发现增加的8位的AO_8和16位的AO_16变量。

在TwinCAT中给定AO_16变量输出2000(对应2000mV),用万用表实测板子上DAC两端输出位1996mV,结果基本与设定基本相符。

对应EtherCAT开发学习板:https://shop461235811.taobao.com

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【EtherCAT实践篇】八、更改XML示例3,增加16位模拟DAC输出 的相关文章

随机推荐