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 分立式 IO 为输出创建两个与不同类别的连接

Guru**** 2457760 points
Other Parts Discussed in Thread: AM6421

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1477843/am6421-ethernet-ip-discrete-io-creating-two-connections-with-different-class-for-output

器件型号:AM6421

工具与软件:

您好!

使用 AM6421 SOC 和 SDK ind_comms_sdk_am64x_09_02_00_15。

协议- EtherNet/IP

在 AM6421板上、创建了具有以下设置的第一个连接

1)类 ID
#define EI_APP_DIO_DEVICE_DIP_CLASS_ID 0x08 /*!< DIP 对象的类编号*/
#define EI_APP_DIO_DEVICE_DOP_CLASS_ID 0x09 /*!< DOP 对象的类号*/
#define EI_APP_DIO_DEVICE_DOG_CLASS_ID 0x1e /*!<狗对象的类号*/


2)连接组
#define EI_APP_DIO_DEVICE_Assembly_producting 0x64/*!<生成汇编实例*/
#define EI_APP_DIO_DEVICE_Assembly_consuming 0x65 /*!<使用汇编实例*/
#define EI_APP_DIO_DEVICE_Assembly_configuration 0x67 /*!<配置汇编实例*/

3)实例数
#define EI_APP_DIO_DEVICE_DOP_NUM_OF_INST 1U //2/*!<离散输出点对象的实例数*/
#define EI_APP_DIO_DEVICE_DIP_NUM_OF_INST 3U//2 /*!<离散输入点对象的实例数*/
#define EI_APP_DIO_DEVICE_DOG_NUM_OF_INST 1U /*!<离散输出组对象的实例数*/

在 AM6421板上使用 DOP 状态机、如分立式 IO 示例所示。
此连接适用于输入组和输出组。

以便与以下设置建立另一个连接
1)类 ID

#define EI_APP_DIO_DEVICE_AIP_CLASS_ID 0x0A /*!< AIP 对象的类编号*/
#define EI_APP_DIO_DEVICE_AOP_CLASS_ID 0x0B /*!< AOP 对象的类编号*/


2)连接组
#define EI_APP_DIO_DEVICE_Assembly_producting_analog 0x74 /*!<生成汇编实例*/
#define EI_APP_DIO_DEVICE_Assembly_consuming_analog 0x75 /*!<使用汇编实例*/
#define EI_APP_DIO_DEVICE_Assembly_configuration_analog 0x77 /*!<配置汇编实例*/


3)实例数
#define EI_APP_DIO_DEVICE_AOP_NUM_OF_INST 12U /*!<模拟输出点对象的实例数*/
#define EI_APP_DIO_DEVICE_AIP_NUM_OF_INST 6U /*!<模拟输入点对象的实例数*/


输入组工作正常。

但当我们尝试发送输出组中的某些值(使用汇编实例)时、系统会挂起并且不响应。
在电路板上、尝试对 OUT 状态使用不同的状态机。
同时也用于上述连接中使用的相同状态机。


请指导我们如何针对输出状态使用2种不同的连接。

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

    尊敬的 Narasimha:

    我已就您的问题通知了我们的 EIP 堆栈专家。 他很快就会回到你身边。

    感谢您的耐心。

    此致
    归档开发

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

    尊敬的 Narasimha:

    我是否正确理解、您已经实现了模拟输入点(AIP)和模拟输出点(AOP)对象、并且想要与 DIP/DOP 并行使用?
    对于已尝试创建单独的程序集(0x74 ->正在生成、0x75 ->正在使用、0x77 ->配置)的情况、对吗?
    我还需要有关您的实现的更多详细信息、如果您能提供 UART 和 Wireshark 日志、会很有帮助。

    此致、
    Pourya

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

    尊敬的 Pourya:

    我是否正确理解、您已经实现了模拟输入点(AIP)和模拟输出点(AOP)对象、并且想要与 DIP/DOP 并行使用?

    是的、已将 模拟输入点(AIP)和模拟输出点(AOP)实现为一个单独的类、并且希望与 DIP/DOP 并行使用。

    对于已尝试创建单独的程序集(0x74 ->正在生成、0x75 ->正在使用、0x77 ->配置)的情况、对吗?
    我还需要有关您的实现的更多详细信息、如果您能提供 UART 和 Wireshark 日志、会很有帮助。

    是的、已经 为模拟(AIP/AOP)和数字(DIP/DOP)创建了单独的组合件、它们具有单独的类和装配组。

     当未进行连接时、将不会有任何 Wireshark 日志可用。

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

    嗨、Archit Dev、

           请求问题的任何更新。

           感谢您早期的回复。

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

    尊敬的 Narasimha:

    Wireshark 至少会包含发送了哪种类型的转发开放请求以及拒绝该请求的原因、这是分析问题所必需的信息。
    您能否共享代码部分、在其中为您的 AIP/AOP 创建程序集?

    此致、
    Pourya

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

    尊敬的 Pourya:

     下面是 createe2e.ti.com/.../app_5F00_discrete_5F00_io_5F00_device_5F00_aip.ce2e.ti.com/.../app_5F00_discrete_5F00_io_5F00_device_5F00_aip.he2e.ti.com/.../app_5F00_discrete_5F00_io_5F00_device_5F00_aop.ce2e.ti.com/.../app_5F00_discrete_5F00_io_5F00_device_5F00_aop.h 代码中 用于 AIP/AOP 程序集的部分

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

    尊敬的 Narasimha:

    在 您提供的代码中、我可以看到您正在创建类、实例和属性、但您在哪里创建装配体? 您还能分享一下吗?
    另外请注意、您应该先创建对象、然后将目标属性绑定到程序集(在尝试将其链接到程序集之前、该属性必须存在)。
    创建程序集的意思是 EI_API_CIP_createAssembly 和 EI_API_CIP_addAssemblyMember。
    如前所述、请同时发送 Wireshark 日志、我知道连接没有固定、但我想查看正在 交换的请求和答案。

    此致、
    Pourya  

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

    尊敬的 Narasimha:

    配置似乎正确。 我还在等 您的 Wireshark 日志、但如果没有日志、就很难判断哪里出错了。
    但是、我可以假设您看到的问题的根本原因是什么、如果 O->T 连接都使用同一个 IP 地址、则第二个 I/O 连接不会启动(因为它是专有所有者连接、因为栈还应该如何知道 O->T 数据包属于哪个连接?)。
    您可以使其工作的唯一方法是使用 PLC 端的两个不同 IP 地址。 即、一个用于 DOP/DIP 连接、另一个用于 AIP/AOP 连接。
    更多信息、请参阅规范第1卷第3-6.5.3节。

    此致、
    Pourya