打印
[其他ST产品]

基于STM32的EtherCAT从站IO讲解

[复制链接]
楼主: grfqq325
手机看帖
扫描二维码
随时随地手机跟帖
21
grfqq325|  楼主 | 2021-12-28 23:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
6、申明好PDO数据报文后,接下来我们需要修改SM同步数据通道,将数据映射到父级,协议芯片将从这里开始逐级索引数据报文:Descriptions-->Devices-->Device-->sm、Rxpdo、Txpdo(协议芯片从这里开始加载数据到内核,并从报文中读取数据到内核)

使用特权

评论回复
22
grfqq325|  楼主 | 2021-12-28 23:16 | 只看该作者

使用特权

评论回复
23
grfqq325|  楼主 | 2021-12-28 23:17 | 只看该作者

使用特权

评论回复
24
grfqq325|  楼主 | 2021-12-28 23:20 | 只看该作者

使用特权

评论回复
25
grfqq325|  楼主 | 2021-12-28 23:22 | 只看该作者
7、修改SM内容后,你会发现,父级PDO x1601(Rxpdo)和x1a00 PDO节点的映射内容也发生了改变;所以这些父级节点对应的数据类型与PDO申明也需要修改:(父节点PDO的每个成员是子PDO节点的寄存器地址,32位数据)
//

使用特权

评论回复
26
grfqq325|  楼主 | 2021-12-28 23:26 | 只看该作者
第四步:将修改好的XML文件通过twcat软件烧写到协议芯片的EEPROM中。

使用特权

评论回复
27
grfqq325|  楼主 | 2021-12-28 23:27 | 只看该作者
三、STM32应用层代码的修改
实际上,单纯修改XML文件只是可以让协议芯片在于主站交互数据报文时,有一个依据而已,实际需要交互的数据需要有从站的CPU和外设提供,通过SPI与协议芯片交互。所以,我们还需要再STM32程序内驱动对应的硬件设备,并实现spi数据读写交互。

使用特权

评论回复
28
grfqq325|  楼主 | 2021-12-28 23:29 | 只看该作者
这里只讲解需要修改的部分:
第一步:在源代码的el9800app.h中,添加数据节点结构体系列描述:(有四个东西需要创建或修改)

使用特权

评论回复
29
grfqq325|  楼主 | 2021-12-28 23:30 | 只看该作者

使用特权

评论回复
30
grfqq325|  楼主 | 2021-12-28 23:31 | 只看该作者

使用特权

评论回复
31
grfqq325|  楼主 | 2021-12-29 18:59 | 只看该作者
第二步:将新创建的PDO节点,加入应用PDO节点管理数据(在源代码的el9800app.h中)

使用特权

评论回复
32
grfqq325|  楼主 | 2021-12-29 19:02 | 只看该作者

使用特权

评论回复
33
grfqq325|  楼主 | 2021-12-29 19:18 | 只看该作者
第三步:在源代码的el9800app.h中,对应修改1601映射数据管理对象的四个东西

使用特权

评论回复
34
grfqq325|  楼主 | 2021-12-29 19:23 | 只看该作者

使用特权

评论回复
35
grfqq325|  楼主 | 2021-12-29 19:24 | 只看该作者

使用特权

评论回复
36
grfqq325|  楼主 | 2021-12-29 19:25 | 只看该作者

使用特权

评论回复
37
grfqq325|  楼主 | 2021-12-29 19:26 | 只看该作者
第四步:在源代码的el9800app.h中,修改1c12PDO对象,因为1600~1602是映射到1c12上,最终完成主从数据交换的

使用特权

评论回复
38
grfqq325|  楼主 | 2021-12-29 19:27 | 只看该作者

使用特权

评论回复
39
grfqq325|  楼主 | 2021-12-29 19:28 | 只看该作者

使用特权

评论回复
40
grfqq325|  楼主 | 2021-12-29 19:30 | 只看该作者
第五步:在el9800appl.c文件中,按照需求为数据节点PDO分配内存空间,用于交互数据

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则