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.

[参考译文] AM2434:EtherCAT 应用回调在 SM 同步模式下未同步

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1659510/am2434-ethercat-application-callback-not-synchronized-in-sm-sync-mode

器件型号: AM2434

尊敬的专家:

我们观察到 EtherCAT 应用程序出现了一些意外的回调行为。  
我们正在使用 Ind Comms SDK 11.00.00.13 在 LP-am243x LaunchPad 上进行开发。

应用环境

在我们的应用中、我们设置了一个 FreeRTOS 任务、以使用当前 2ms 的任务延迟定期调用 EtherCAT 主循环。 task 函数如下所示:

for(;;)
{
    EC_API_SLV_mainLoopCyclic();
    vTaskDelay(2);
}

此任务的优先级设置较低、为 PDI/同步任务。

我们实现了主应用程序逻辑,在另一个函数中读取/写入 PDO 数据,我们通过 EC_API_SLV_cbRegisterUserApplicationRun() 注册到堆栈。

该器件连接到运行 TwinCAT 的 Beckhoff PLC。 主 EtherCAT 任务在 1ms 周期时间内运行、并设置为 SM 或 DC 同步模式。

预期的行为

根据您的文档和类似的其他 E2E 帖子 (https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1417335/am6442-ethercat-subdevice-stack-specify-trigger-of-application-function)、在 SM 和 DC SYNC 模式下、我们预计在 1ms 的周期内调用应用程序运行回调。

在 SM SYNC 上、我们期望从 PDI 任务调用它、在 DC SYNC 上、我们期望从 sync0 任务调用它。 无论哪种方式、它都应独立于主循环周期时间。

观察到的行为

使用 DC SYNC(仅启用 sync0)时、我们可以观察到预期的行为:由于任务延迟、主循环以 2ms 的周期运行、并且在 1ms 的周期内调用应用程序运行回调。

但是、切换到 SM-SYNC 模式时该行为会变得很奇怪:
在这里、应用程序回调仅每 2ms 调用一次。

我们曾尝试更改 EtherCAT 周期时间以及更改主循环任务延迟时间、似乎在 SM 同步模式下调用应用回调的速度无法快于主循环运行的速度。
当更改 EtherCAT 周期时间比主环路周期时间慢时、SM 和 DC SYNC 之间没有预期的差异。

下面汇总了结果:

同步模式\设置 主循环延迟:1ms
EtherCAT 周期时间:1ms
主循环延时:2ms
EtherCAT 周期时间:1ms
主循环延时:2ms
EtherCAT 周期时间:4ms
直流同步 回调周期:1ms 回调周期:1ms 回调周期:4ms
SM 同步 回调周期:1ms
回调周期:2ms 回调周期:4ms

在 SM-SYNC 中应用运行回调是否以某种方式依赖于主循环执行、这 是预期的行为吗?

很高兴听到您对此的见解!

此致
Stefan

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

    您好 Stefan、

    我将尝试重现我最后的相同行为并向您提供反馈。

    此致、

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

    尊敬的 Harsha:

    太棒了!
    如果您需要对我的设置进行任何说明、请随时提问。

    Br、Stefan

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

    您好 Stefan、

    我能够在我最后重现这个问题 我将研究它并提供更新。

    此致、