This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM6421:EtherCAT 子器件:对于具有填充条目的 PDO、不触发映射更改的回调

Guru**** 1774980 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1415908/am6421-ethercat-subdevice-callback-for-mapping-changed-is-not-triggered-for-pdos-with-padding-entries

器件型号:AM6421

工具与软件:

尊敬的 TI 团队:

对于 EtherCAT 器件、PDO 大于30字节。

我使用额外的填充字节 EC_API_SLV_PDO_addPadding ()在堆栈中注册它们。

我能够进入运行状态并交换过程数据。

在我们的产品中、我们还使用回调来映射更改 EC_API_SLV_PDO_CBMapChanges_t 来重新配置过程数据大小。

当主器件更改 PDO 的映射时、会发生此问题、例如:

从0x1A00开始:索引0x7000、子索引:0大小:128位

到   0x1A00:索引0x7000、子索引0大小:256位

这是 TwinCAT 发送的内容:  

对象字典中的值也按预期显示:

错误是在这种情况下、不触发回调函数。