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:可以在 EtherNet/IP 堆栈中添加多少个实例

Guru**** 2412110 points
Other Parts Discussed in Thread: AM2432

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1334321/am2434-how-many-instance-can-be-added-in-ethernet-ip-stack

器件型号:AM2434
主题中讨论的其他器件:AM2432

您好、

我们将 AM2432 EtherNet/IP 解决方案与 ind_comms_sdk_am243x_09_01_00_03 SDK 配合使用。

我们需要在 EtherNet/IP 适配器上添加500个实例。

我们使用 EI_API_CIP_createInstance 来添加实例、但我们获得了错误代码0x38020104 (词典已满)。

可以在 EtherNet/IP 堆栈中添加多少个实例?

我们可以扩展最大值的数量吗?

谢谢。

约书亚

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

    你好、Joshua、

    感谢您的提问

    您能否提供以下信息:

    1. UART 日志  

    2.如果您能提供您用于复制问题的示例代码,它将为我们节省问题复制的时间?

    同时、我将尝试获取有关最大实例数的详细信息。

    有一个意见认为,这需要加以限制,因为增加新的案件需要记忆,因此需要根据某种可接受的范围加以调整。

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

    尊敬的 Nilabh:

    您是否有任何更新?

    如您所说、此问题的原因是内存空间或 EtherNet/IP 堆栈的限制。

    您能否提供规格?

    谢谢。

    约书亚

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

    从今天起、我们最多可以添加255个实例。

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

    如您所说、此问题的原因是内存空间或 EtherNet/IP 堆栈的限制。

    您能否提供规格?

    [/报价]

    您正在查看哪种规格。 此外、您能否说明一下我们可以在 CCB 中使用此功能的理由? 我们没有经常看到这一请求。 一旦我们收到您的一些信息、我们还需要评估此功能的使用情况。

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

    尊敬的 Nilabh:

    最多255个实例 对我们来说是不够的。

    我们有500个参数、需要以 EtherNet/IP 适配器为例进行添加。

    ----------------

    我们 需要关于类/实例/  属性的 Kunbus 堆栈规范。

    -最大类数/最小类 ID /最大类 ID

    -最大实例数/最小实例   ID /最大实例 ID

    -最大 属性数/最小 属性 ID /最大 属性 ID

    ----------------

    EtherNet/IP 设备的大多数参数都可通过 EtherNet/IP 适配器访问。

    对于 EtherNet/IP 设备、500参数不是一个大数字。

    请帮助我们解决该问题。  

    谢谢。

    约书亚

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

    尊敬的 Nilabh:

    您是否有任何更新?

    谢谢。

    约书亚

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

    你好、Joshua、

    我们将在内部讨论这一点。 一周结束后还会再来的  

    此致、
    普拉吉特

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

    你好、Joshua、

    下面是我从专家那里得到的答案。

    最大实例数可以从255增加到更高的16位数。
    需要更改 EI_API_CIP_OBD_MAX 宏并增加值(EI_API_def.h 文件)

    执行此操作时、需要考虑以下事项

    1. EtherNet/IP 适配器已使用由堆栈内部创建的多个实例和类(大约20个)。
    2.应用程序也在创建一些类和实例(基于应用程序)。
    3.每个创建类调用都已经有1个实例(索引为0)。

    这意味着:

    EI_API_CIP_OBD_MAX =内部栈类/实例(20)+应用现有类/实例(基于应用)+您所需的新类/实例数量(500)

    最大类别数: EI_API_CIP_OBD_MAX -所有实例的数量
    最大实例编号: EI_API_CIP_OBD_MAX -所有 类别的数量
    最大属性数:无限制的16位数

    您需要注意内存限制、因为类/实例和属性是由在内部内存中运行的栈分配的。

    此致、
    普拉吉特

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

    您好, Prajith,

    我只需将 EI_API_CIP_OBD_MAX 更 改为512、然后重新编译示例工程。

    但是、此配置不起作用。

    如何应用此配置?

    谢谢。

    约书亚

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

    你好、Joshua、

    您在这里遇到了什么错误? 是否无法创建超过255个实例?

    此致、
    普拉吉特

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

    您好, Prajith,

    我从 EI_API_CIP_createClass 函数获得了0x38020104 (EI_API_CIP_eERR_DIONAL_FULL)。

    是否有任何可以获取我现在添加的实例数的变量?

    我还尝试注释 EI_API_CIP_OBD_MAX 的定义、但工程仍然可以成功构建。

    似乎 在项目中没有使用 EI_API_CIP_OBD_MAX。

    谢谢。

    约书亚

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

    您好,Prajith,

    您是否有任何更新?

    谢谢。

    约书亚

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

    你好、Joshua、

    看起来需要重新构建堆栈才能使更改生效。 我们将在内部讨论如何实现这一点。 一周结束后还会再来的

    此致、
    普拉吉特

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

    您好,Prajith,

    您是否有任何更新?

    谢谢。

    约书亚

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

    你好、Joshua、

    我们今天将与专家开会讨论这一问题。  
    我们将在周四结束时回复您。

    感谢您的耐心。

    此致
    归档开发  

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

    你好、Joshua、

    如前所述、现在需要重新构建堆栈、更改才能生效。
    但是、该小组进行了一些更新、以消除重建堆栈的需要。

    这些更新和更改将是 SDK 下一版本的一部分:工业通信 SDK v9.2。

    此致
    归档开发

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

    您好、 Archit、

    感谢您的答复。

    TI 是否有关于工业通信 SDK v 9.2的发布计划?

    谢谢

    约书亚

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

    你好、Joshua、

    工业通信 SDK v9.2计划在下周发布。

    此致
    归档开发

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

    您好、 Archit、

    您需要注意内存限制,因为类/实例和属性是由运行在内部内存中的堆栈分配的。

    我们有没有任何方法来监控内部存储器的存储器使用情况?

    如果内存使用达到限制、我们有没有办法为堆栈扩展内存空间?

    谢谢。

    约书亚

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

    你好、Joshua、

    我将在内部查看此内容、并将在星期三之前与您联系。

    此致
    归档开发

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

    您好、 Archit、

    您是否有任何更新?

    您还能提供 EtherNet/IP 堆栈的存储器要求吗?

    谢谢。

    约书亚

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

    你好、Joshua、

    AM243x 上的内部存储器限制为2MB。 如果存储器使用量达到此限制、则可能需要使用 DDR 存储器。

    可以在以太网 IP 数据表的"General Stack Parameters"部分下找到堆栈内存使用情况。
    对于工业通信 SDK v 9.1,您可以参考以下数据表链接并检查堆栈内存使用情况: https://software-dl.ti.com/processor-industrial-sw/esd/ind_comms_sdk/am243x/09_01_00_03/docs/am243x/ethernetip_adapter/eip_datasheet.html 

    此致
    归档开发

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

    您好、 Archit、

    感谢您的答复。

    我们是否有任何方法可以监控内部内存的内存使用情况?

    谢谢。

    约书亚

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

    你好、Joshua、

    对于静态分配的存储器、您可以参阅链接器命令文件。

    为了监视堆存储器并获取其他运行时详细信息、您可以使用 CCS IDE 中的实时对象视图(ROV)工具。 您可以参考 MCU+ SDK 中的此页面,以获得有关 ROV 的更多详细信息: https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/ROV_INTRO_PAGE.html 

    此致
    归档开发

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

    您好、 Archit、

    您是否有任何更新?

    工业通信 SDK v9.2计划在下周发布。

    谢谢。

    约书亚

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

    你好、Joshua、

    发生了一些意外延迟。 工业通信 SDK v9.2计划在本周早些时候发布。

    感谢您的耐心。

    此致
    归档开发

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

    你好、Joshua、

    TI.com 上提供的工业通信 SDK v9.2链接为: https://www.ti.com/tool/download/INDUSTRIAL-COMMUNICATIONS-SDK - AM243X 

    此致
    归档开发

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

    我有同样的问题,根据对象字典的限制。 我看到9.2已经发布了、但是您能解释一下在没有 define `EI_API_CIP_OBD_MAX`的情况下、使用哪个函数来设定代码中对象字典的限制吗? 我预计会有一个或类似的函数、但在 API 说明 https://software-dl.ti.com/processor-industrial-sw/esd/ind_comms_sdk/am243x/09_02_00_08/docs/am243x/ethernetip_adapter/modules.html 中找不到。

    这不是必需的、因为所有内容都已分配堆?

    感谢您的澄清。

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

    你好,多米尼克

    现在可以从 app.c 文件配置最大实例数。
    请查看主函数并搜索"maxInstanceNum"配置参数。 代码应如下所示:

    /* CIP configuration */
    pCfg->cip.maxInstanceNum = 256; // Maximum number of instances defined as CIP object. Set not lower as 70.

    上述配置参数由 appTask.c 文件中的"EI_API_CIP_node_new"函数调用使用。 相应的代码应如下所示:

    // Create a CIP node.
    cipNode_s = EI_API_CIP_NODE_new(&pParam->cip);

    此致
    归档开发

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

    好的、感谢您的澄清、这一点很有意义、

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

    您好!

    我现在将关闭此主题帖。 如果您有其他问题、请随时在此处回复或创建新主题。

    感谢您的耐心。

    此致
    归档开发