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.

[参考译文] AM2432:Profinet SubstituteValue

Guru**** 2387830 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/1512993/am2432-profinet-substitutevalue

器件型号:AM2432

工具/软件:

您好、

我将 AM2432与工业 SDK 09.02.00.24中的 Profinet 配合使用。

我发现有一个回调类型 PN_API_IOD_outSubmodSubstValReadCbf、当发出索引为0x8029的非循环读取请求时、应该使用这个回调类型。

不过、在演示中、我看到替换模式是硬编码的(因此可选择使用 PN_API_IOD_SUBST_ZERO 还是 PN_API_IOD_SUBST_REPLATION)。

是否有任何方法可以在主器件进行首次 Profinet 连接期间指定选择? 我不明白我应该如何选择一种或另一种模式、如果我必须找到另一种方法让最终用户指定选项。

谢谢您、

善良的 Regads

Andrea

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

    您好、有任何更新吗?

    谢谢您、

    此致、

    Andrea

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

    您好、Andrea、

    我不确定我能清楚地回答你的问题。

    在我们的预编译库 PN_API_IOD_INCLUDE_REC8028_8029中设置为1、这表示0x8028和0x8029记录的处理被委派给堆栈。

    当堆栈处理0x8029记录时、它可以使用 PN_API_IOD_outSubmodSubstValReadCbf ()从应用程序获取替代值。

    该应用程序实现 PN_APP_IOD_cbOutSubmodSubstValRead (), 为栈提供选择的替代值。  可以根据提供的数据类型设置模式:零、接收的最后一个值或用户选择的替换值。

    此致、
    Kamil

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

    尊敬的 Kamil:

    感谢您的答复。

    我现在对它的工作原理有了很好的了解。
    我不明白的是、如何在回调中选择在代码中写入 PN_API_IOD_SUBST_ZERO 模式或 PN_API_IOD_SUBST_REPLATE 模式? 这是我作为开发人员做出的选择、还是最终用户有办法选择模式?

    产生我的怀疑是因为我在 GSDML 的一个旧的 Profinet 项目中看到它支持多种模式(所以 SupportedSubstitutionModes="0 1 2")。 在演示中我可以清楚地看到何时使用 PN_API_IOD_SUBST_LAST_OUT (SO 模式0)、但我不理解是否可以同时支持模式1和2、以及 Profinet 是否提供了在通信期间指定模式的方法。

    我现在采用的解决方案是在 GSDML 中仅声明两种模式(因此 SupportedSubstitutionModes="0 1")、并在代码中写入两种模式 PN_API_IOD_SUBST_LAST_OUT 和 PN_API_IOD_SUBST_ZERO、但我不想错过一些需要理解的内容。

    谢谢您、

    此致、

    Andrea

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

    您好、Andrea、

    我们的 Profinet 协议栈支持多种模式:0 (零)、1 (最后一个值)和2 (替换值)。 选择要使用哪种模式以及提供哪种替代值来响应0x8029记录完全由 IO 器件上运行的应用程序决定。 即 PLC 在连接启动期间不配置此参数,而是应用程序开发人员(或最终用户)可以在 PN_APP_IOD_cbOutSubmodSubstValRead ()函数的实现中决定。

    谢谢。
    此致、
    Kamil