EtherCAT 从站的 ESI 在 Config 模式下工作,但在 运行 模式下不工作

ESI for an EtherCAT slave works in Config mode but not in Run mode

我正在开发一个芯片,该芯片应该通过 EtherCAT 连接充当 PLC(主站)的从站。该芯片包括一个Atmega2560和一个LAN9252,是EtherCAT从控制器。

我写了 xml ESI 文件。通过在 Slave 上刷这个 ESI,我面临以下问题:

从站在 PLC 的配置模式下工作(基于它应该如何工作)。数据从从站发送到主站,也从主站接收到从站。但是通过启动 运行 模式,我收到以下错误和警告:

810 ms | 'TcSysSrv' (10000): Sending ams command >> Init16\IO: Set State TComObj SAFEOP OP: Device Gerät 2 (EtherCAT Slave) (set to OP)AdsWarning: 1803 (0x70b, NoString) << failed!

793 ms | 'TCOM Server' (10): SAFEOP to OP of 'Gerät 2 (EtherCAT Slave)' (0x03010020) failed - 'invalid parameter' 0x9811070B    

        

Here 表示错误是:DeviceInavlidParam : (Invalid parameter value(s).Error code: 1803(0x70b).

我试图找出它是什么意思以及它指向哪个参数,所以我可以修改它。但是我真的看不懂。

我的问题是,首先,为什么 ESI 实现似乎是在 Config 模式下完成的并且它有效。但不是在 运行 模式下。报错的区别是什么?

其次,也许有人看到了这种错误,可以帮助我解决这个问题,或者引导我找到可以继续使用的文档?

提前谢谢你。如果需要一些数据作为答案,请告诉我,我可以通过编辑或评论提供这些数据。

所以在与 EtherCAT 支持人员交谈后,我了解到问题不是来自主站,而是设备树中的 EtherCAT 从站。如果项目中没有使用它,应该将其删除或停用,我就是这种情况。

但是 运行 模式问题仍然存在。 Support 提到,当这种情况发生时,可能意味着,在 运行 模式下,进程数据未更新,因为在 PREOP 状态下,进程数据通道尚未打开。因此 EtherCAT 网络需要在 运行 模式下从软件 real-time 任务中触发。按照this documnet的第3.2部分的说明,问题将得到解决,slave-master通信也在运行模式下。

希望这对以后遇到同样问题的人有所帮助。