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:EtherNet/IP 连接失败

Guru**** 2410090 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1487554/am6421-ethernet-ip-connection-failure

器件型号:AM6421

工具与软件:

您好、TI:  

我们对以太网 IP 设备使用 ind_comms_sdk 9.2。

我们收到一份错误报告、指出 PLC 下载 PLC 程序后无法建立循环连接。 重启器件后、可以再次建立连接。

在 Wireshark 中、我们看到扩展的状态为0x129 (无效的配置应用程序路径)

我们尚无法在测试设置中重现此问题、但我们并未在 FwdOpenCloseCb 函数中将 ESC 设置为0x129。

您能告诉我们在哪些情况下堆栈会设置此状态代码吗?

BR

Kai

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

    尊敬的 Kai:

    您的 Forward-Open 包含配置是否包含配置、如果是、您是否正在使用 EI_API_CIP_setCfgAssemblyCb 注册回调? 是否调用回调?

    此致、
    Pourya

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

    你好、Pourya、

    是的、我们使用 cfg 汇编代码的回调函数、但我不能说是否调用该函数、因为我们无法重现该问题。

    此回调的返回值是否用于设置堆栈中的扩展状态代码0x129?

    BR

    Kai

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

    尊敬的 Kai:

    是的、可能导致此错误的可能性之一是、当回调的返回值不为零时。 其他的可能性是,当路径实际上是没有找到(这不应该是你的情况).  

    如果你能够以某种方式重现它、并发现在这个错误状态下、你的回调未被调用或调用、但是返回值是正确的、请告诉我、这也许意味着其他东西是根本原因。

    此致、
    Pourya

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

    您好、Poury、感谢您的回答。 由于我们只能在客户现场重现问题、但 Nur 在内部、我们目前正在进行代码读取级别的操作。  
    在这种情况下、我们有一个问题:是否可能从与 ForwardCloseCB 不同的线程环境调用 ForwardOpenCB?
    我问这个问题,因为 close 和 open 在我们代码中的"connectionlist"上运行,如果回调由不同线程调用,则可能不是线程安全的。

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

    Matthias、您好!

    ForwardOpen/ForwardClose 回调都是从同一个线程调用的。 但我提到的回调不是关于您注册的 ForwardOpen/ForwardClose 回调,而是关于配置回调当您的 ForwardOpen 包含配置参数。

    此致、
    Pourya

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

    尊敬的 Pourya:
    感谢您的回答。 对于配置回调、您指的是哪个回调?

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

    Matthias、您好!

    我的意思是 您已经通过  EI_API_CIP_setCfgAssemblyCb 注册的回调。

    此致、
    Pourya

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

    你好、Pourya、

    最后、我们现在能够重现该问题。 我们的客户发送的配置大小没有差异、但我们器件的设置不同。
    这似乎有时会触发此问题(大约18到50次配置迭代)。 现在我们也有一个显示错误的 Wireshark 日志。
    似乎对"正向开放"的回答通常需要大约200毫秒。 在错误情况下、需要更长的时间、即2 - 3秒。 因此、我们现在的猜测可能是在将数据传输到应用核心时会出现一些超时。

    我们现在将向 R5二进制文件添加跟踪、以验证是否仍在错误情况下调用这些回调、例如 EI_API_CIP_setCfgAssemblyCb。 如果是这样、识别问题在我们的代码中的位置。

    感谢您的帮助、

    Sascha.

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

    尊敬的 Sascha:

    好的、请告诉我您的发现。

    此致、
    Pourya