硬汉嵌入式论坛

 找回密码
 立即注册
查看: 837|回复: 10
收起左侧

[其它] EtherCAT从站中 pdo数量以及大小存在限制么

[复制链接]

2

主题

4

回帖

10

积分

新手上路

积分
10
发表于 2025-2-13 14:46:53 | 显示全部楼层 |阅读模式
EtherCAT从站SSC架构 代码开发中,pdo的大小有限制么?

开发环境:STM32F427,LAN9253,SSC Tool,TwinCAT3
我在从站中总共定义了4个pdo,2个TxPdo,2个RxPdo,TxPdo总大小是512字节,RxPdo总大小是512字节,这个时候通过TwinCAT3主站去online操作DO输出,发现在`void APPL_OutputMapping(UINT16 *pData)`函数中的打印存在乱序以及丢帧的情况;
但是 在把pdo的entry条目减少后,TxPdo和RxPdo的大小分别缩小到256字节后,所有的数据传输全部正常,TwinCAT3主站中online修改DO输出,在`void APPL_OutputMapping(UINT16 *pData)`函数中,也能收到相应的数据变化;
想问下论坛里是否有人遇到过相似的问题,是否有解决方案?
EtherCAT中对pdo的条目以及总大小是否存在限制呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-2-14 09:03:54 | 显示全部楼层
帮顶,还没测试过EtherCAT从
回复

使用道具 举报

5

主题

39

回帖

54

积分

初级会员

积分
54
发表于 2025-2-14 20:26:16 | 显示全部楼层
有的,需要修改连个配置文件中的参数,就是那个啥TxPdo和RxPdo的最大字节数,可以查一下,我忘了变量名称了
回复

使用道具 举报

5

主题

241

回帖

256

积分

高级会员

积分
256
发表于 2025-2-17 12:01:58 | 显示全部楼层
本帖最后由 DX3906 于 2025-2-17 13:47 编辑

有限制,一般主要是看主站支不支持数据包分包,总线上所有从站pdo大于1500字节就需要分包了,不过twincat肯定是支持分包的
感觉你这个现象可能是xml文件里sm2和sm3的空间分配比pdo小导致的,可以试试调整sm2和sm3的DefaultSize和StartAddress

QQ20250217-134717.png
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2025-2-18 11:01:56 | 显示全部楼层
DX3906 发表于 2025-2-17 12:01
有限制,一般主要是看主站支不支持数据包分包,总线上所有从站pdo大于1500字节就需要分包了,不过twincat肯 ...

我的SM2和SM3配置如下,是SSC Tool自动生成的,然后TxPdo和RxPdo的大小分别是512字节;"StartAddress"这里这么配置有冲突么?

xml

xml


回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2025-2-18 11:02:17 | 显示全部楼层
咿呀 发表于 2025-2-14 20:26
有的,需要修改连个配置文件中的参数,就是那个啥TxPdo和RxPdo的最大字节数,可以查一下,我忘了变量名称了

好的,我去了解下
回复

使用道具 举报

6

主题

94

回帖

112

积分

初级会员

积分
112
发表于 2025-3-24 12:56:56 | 显示全部楼层
数据总大小和芯片内存有直接关系
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 3 天前 | 显示全部楼层
我一个rpdo配置60个字节可以正常传输,配置80个字节协议栈提示报错,需要修改哪里的配置吗,直接用ssc生成的xml
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 昨天 15:51 | 显示全部楼层
我rpdo配置20个字节,接收超过32位之后就会出现0值,然后才是我输入的值,请问这个问题有遇到过吗?比如我UNIT8 的 value1-6输入的值时1,2,3,4,5,6,结果却是1,2,3,4,0,5。中间多出来一个0
回复

使用道具 举报

5

主题

39

回帖

54

积分

初级会员

积分
54
发表于 昨天 16:43 | 显示全部楼层
WPC123 发表于 2025-4-22 09:47
我一个rpdo配置60个字节可以正常传输,配置80个字节协议栈提示报错,需要修改哪里的配置吗,直接用ssc生成 ...

在 eact_def.h 文件中 的 MAX_PD_INPUT_SIZE 和 MAX_PD_OUTPUT_SIZE 配置改大一些
回复

使用道具 举报

5

主题

39

回帖

54

积分

初级会员

积分
54
发表于 昨天 16:45 | 显示全部楼层
qingzhou 发表于 2025-4-24 15:51
我rpdo配置20个字节,接收超过32位之后就会出现0值,然后才是我输入的值,请问这个问题有遇到过吗?比如我U ...

建议检查一下,协议栈里面的变量配置和配置文件中的是不是一致,以及 程序中 APPL_InputMapping 函数和 APPL_OutputMapping 写的对不对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-25 19:03 , Processed in 0.385063 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表