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.

[参考译文] RTOS/AM5728:Profinet 从站调试

Guru**** 2559190 points
Other Parts Discussed in Thread: AM5728, PROFIBUS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/585226/rtos-am5728-profinet-slave-debug

器件型号:AM5728
Thread 中讨论的其他器件: Profibus

工具/软件:TI-RTOS

您好!

我正在使用 PRU-ICSS-PROFINET_Slave_01.00.00.00在 AM5728上调试 PROFINET_SLAVE_IRT。

我已经在电路板上完成了 EtherCAT_SLAVE_DEMO。 因此、我认为我的板的硬件应该可以。 我在项目中更改 的是 GPIO 引脚编号和 SPI。 我使用的是 SPI1、而不是 SPI3。 当我运行输出文件时 、红色 LED 闪烁、我得到:

  [CortexA15_0]网络已添加:IF-1:192.168.0.21

  EDMA 驱动程序初始化通过。
  已删除网络:if-1:192.168.0.21

我逐步跟踪了输出、任务'taskPruss'中的函数'main_pn'中似乎出现了错误。 我有一些问题:

IP 地址192.168.0.21来自何处? 我认为从设备的 IP 地址由主设备设置。

2.为什么根据 printf 删除网络?

3.我电路板上的 QSPI 闪存是否为空?

谢谢。

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

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

    尊敬的 Carolyn:

    请参阅以下答案-

    [引用用户="Carolyn Zhang ]1. IP 地址192.168.0.21来自何处? 我认为从设备的 IP 地址由主设备设置。

    默认 IP 地址在*。cfg 文件中配置。 请参阅 examples\Profinet slave\am572x_app_arm.cfg 或 examples\Profinet slave\am572x_app_dsp.cfg (搜索'ip.address')

    [引用用户="Carolyn Zhang ]2. 根据 printf、为何要移除网络?[/quot]

    应用程序将在启动期间删除 IP 地址、以便可以通过 PROFINET 主站(例如 PLC 或 PROFINET IO 测试仪)分配从站 IP 地址

    [引用用户="Carolyn Zhang ]3. 我板上的 QSPI 闪存是否为空?

    我认为应该可以。 通常、如果详细信息是在永久模式下使用设置请求写入的、应用程序将在指定的偏移量下存储器件配置详细信息(器件名称、IP 地址)。 在永久模式下设置的详细信息即使在电路板重新启动后也将被保留。


    此致、
    新进 P

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

    您好、Nijin、

    请告诉我在哪里可以获取文件"GSDML-DEVICEPROFILE-v2.31.XSD"吗? 我只有'GSDML-DEVICEPROFILE-V2.25. xsd'。

    谢谢。

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

    尊敬的 Carolyn:

    您是否正在寻找与 AM57xx PROFINET 从站相对应的 GSDML 文件? 如果是、可以在中找到这些文件 \examples\Profinet slave\GSD

    如果适用于 IRT 器件、则文件"GSDML-v2.31-MOLEX TI-AM57xxProfinet SDK-20160113.xml";文件"GSDML-v2.31-MOLEX TI-AM57xx-MRP-20140611.xml"适用于 RT-MRP 器件。

    此外、我认为文件"GSDML-DEVICEPROFILE-v2.31.xsd"应随 PROFINET 主软件的安装一起提供(例如用于配置 PLC 的工程工具)。 请告诉我们您确切需要此文件的位置。

    此致、
    新进 P

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

    您好、Nijin、


      看起来 PROFINET 主站需要该文件。 但是、在"GSDML-V2.31-MOLEX_TI-AM57xx-MRP-20140611.xml "的第2行中提到了该文件、如下所示:

    "="">www.profibus.com/.../DeviceProfile"xmlns:xsi="www.w3.org/.../XMLSchema-instance"xsi:schemaLocation="www.profibus.com/.../DeviceProfile ..\xsd\GSDML-DeviceProfile-v2.31.xsd">

    因此、我认为 Profinet 从设备可能需要该文件。

    请告诉我哪一端 需要此文件? 谢谢。

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


    看起来 PROFINET 主站需要该文件。 但是、在"GSDML-V2.31-MOLEX_TI-AM57xx-MRP-20140611.xml "的第2行中提到了该文件、如下所示:



    因此、我认为 Profinet 从设备可能需要该文件。


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

    尊敬的 Carolyn:

    [引用用户="Carolyn Zhang "]看起来 Profinet 主站需要文件

    您使用的是哪种 Profinet 主设备? 是 PLC 还是软件主设备? 作为主配置软件安装的一部分、xml 架构文件"GSDML-DeviceProfile-v2.31.xsd"应安装在 PC 中。

    在创建新项目时、我们只需将与 Profinet 从设备相对应的 GSDML 文件导入到主软件中。 PROFINET 从站可能不直接需要此 xsd 文件。

    此致、
    新进 P

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nijin、
    感谢您的申请。 它是主器件所需的文件。 我使用 Molex PCI 卡作为 Profinet 主设备。
    请告诉我如何测试 Profinet 从设备? 是否有任何详细信息文件? 我的板上有一个红灯闪烁。 当我设置数字输入2时、输出 LED 会移动。 但是、我仍然不知道 Profinet 是否已连接。 我感到很困惑。
    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Carolyn:

    请参阅 此处提供的 PRU-PROFINET 从站用户指南。 我希望 PROFINET 从站应用程序在您的电路板中正常运行。 这可以通过使用 TeraTerm 等软件验证应用程序发送的启动 UART 消息来确认。

    [引用用户="Carolyn Zhang "]我的主板上有一个红灯闪烁。

    这是活动 LED 指示器、指示应用程序已启动并在板中运行。 您是否正在使用 AM572x IDK 板? 我们通常看到活动 LED 闪烁蓝色。 活动 LED 颜色变化的原因可能是什么? GPIO 引脚和 SPI 是否发生了您在第一个帖子中提到的变化? 这种变化的原因是什么?

    [引用用户="Carolyn Zhang "]我使用 Molex PCI 卡作为 Profinet 主控方[/quot]

    我们不熟悉这个主器件。 我们通常使用 S7 1511-1系列 PROFINET PLC 进行测试。 您需要浏览"Brad applicationomio 软件工具"的用户手册并创建项目。 GSDML 文件( \examples\Profinet slave\GSD)将在项目创建期间使用。

    PROFINET 主站正确设置后、您可以验证 AM572x 主板和主站之间的 IO 数据交换。 此外、主配置软件将在 GUI 中显示从器件通信状态。

    从站侧的可见指示表明 IO 数据交换正确、即蓝色闪烁 LED 变为绿色闪烁 LED。 此外、如果您使用 IRT 应用、并且 PROFINET 主站配置为同步主站、则还会有恒定的红色 LED 指示应用程序与 PROFINET 主站同步。 您还可以将 预编译的二进制文件视为 参考。

    请告诉我们结果。

    此致、
    新进 P

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

    我不使用 AM572x IDK 板。 但是、我们将 PRU-ICSS 设置为与 AM572x IDK 相同、只是更改了 LED 的 GPIO 数量。 但我没有更改颜色定义。 因此、我认为 PROFINET 从站应用程序在我的板上运行不正确。 即使我拔下了网线、红色 LED 也始终闪烁。 您能告诉我三色状态的含义吗? 谢谢。

    /********* /
    /**@def Board_TRICOLOR0_RED
    * 用于配置 TRI 颜色0蓝色的宏
    *
    #define Board_TRICOL0_RED (1U <<(0U))
    /**@def Board_TRICOLOR0_GREEN
    * 用于配置 TRI 颜色0绿色的宏
    *
    #define Board_TRICOL0_GREEN (1U <<(1U))
    /**@def Board_TRICOL0_blue
    * 用于配置 TRI 颜色0红色的宏
    *
    #define Board_TRICOL0_BLUE (1U <<(2U))
    /**@def Board_TRICOL1_RED
    * 用于配置 TRI 颜色1蓝色的宏
    *
    #define Board_TRICOL1_RED (1U <<(3U))
    /**@def Board_TRICOLOR1_GREEN
    * 用于配置 TRI 颜色1绿色的宏
    *
    #define Board_TRICOLOR1_GREEN (1U <<(4U)))
    /**@def Board_TRICOL1_blue
    * 用于配置 TRI 颜色1红色的宏
    *
    #define Board_TRICOL1_BLUE (1u <<(5U))
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Carolyn:

    PROFINET 从站应用使用 AM57xx IDK 板中的工业 LED0和工业 LED1来指示 LED 状态。

    工业 LED0:应用(IRT)与 PROFINET 主站同步时呈红色常亮、否则关闭
    工业 LED1:活动 LED、如果应用正在运行、则呈蓝色闪烁。 一旦从器件与 PROFINET 主器件进行数据交换、它将变为闪烁绿色。 如果主机和从机之间存在任何通信中断、它将再次恢复为闪烁的蓝色。

    请注意、即使没有网络连接、活动 LED (工业 LED1)也会呈蓝色闪烁。 它仅指示应用程序处于活动状态(未崩溃)

    用于验证 PROFINET 从站应用程序是否在您的电路板中正常运行的基本诊断信息如下:

    • 验证 UART 显示、并查看应用程序是否打印启动消息、包括应用程序版本等
    • 将网络电缆连接到电路板、查看电路板是否定期传输 PROFINET LLDP 帧(通过 PC 中运行的 Wireshark 进行验证)
    • 板上是否存在活动 LED ( 活动 LED 颜色的变化在您的情况下可能不是功能问题、也可能与 GPIO 引脚的变化有关)

    如前所述、您需要尝试通过创建 PLC 项目来配置主器件、并尝试与从板通信。 PROFINET 器件名称和 IP 应由主器件根据 PLC 项目中完成的配置进行分配。 如果项目设置和通信成功、主配置软件中将正确检测/显示从器件。 您还将看到网络流量中的 IO 数据交换。

    此致、
    新进 P

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

    您能告诉我什么会导致"DCP NO_STATE_NAME"错误? 我认为问题是器件未连接到以太网。 工业 LED1呈蓝色闪烁、但 LED0始终处于关闭状态。
    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Carolyn:

    'CP no_station_name'错误表示 PROFINET 主站未正确设置从站名称。 在连接建立序列期间、主器件使用 DCP 设置请求配置从器件名称和 IP 地址。 只有在正确设置了名称/IP 后、主从机通信才会开始。

    我们需要捕获主设备和从设备之间的网络流量、以查看 DCP 设置请求/响应帧。 下面是参考序列

    • 主站发送 DCP 识别请求(NameOfStation 或 AliasName)
    • 从站以 DCP 识别响应进行响应(这将包含当前器件名称)
    • 如果主器件发现从器件名称 w.r.c 与 PLC 程序中配置的名称不同、主器件将发送 DCP 设置请求以获取新名称
    • 从设备应在 DCP 设置为 OK (表示设备名称)时响应
    • 主器件发送针对器件 IP 的 DCP 设置请求(根据 PLC 程序中配置的 IP 地址)
    • 从机应在 DCP 设置为 OK (用于 IP 地址)时响应

    此时、主器件将发送连接请求、而从器件应以有效的连接响应进行响应。 请验证网络流量以了解问题所在的位置。 您提到的 LED 指示也表示主从数据交换未激活。

    此致、
    新进 P

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

    我已经解决了这个问题。 没有用处的原因是我使用路由器来连接主设备和从设备。 当我使用开关时、绿色 LED 闪烁。

    PROFINET 连接是否有任何时间限制? 我是否可以更改输入整数和输出整数的长度?

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

    尊敬的 Carolyn:

    很高兴知道 Profinet 通信问题已解决。 绿色闪烁 LED 指示主设备和从设备之间的 Profinet 数据交换正常。 您是否将 PLC 配置为同步主应用程序、将从应用程序配置为同步从应用程序? 如果是、Profinet IRT 应用应与 PLC 同步、工业 LED0上应有恒定的红色 LED

    [报价用户="Carolyn Zhang "] Profinet 连接是否有任何时间限制?

    否、PROFINET 连接没有时间限制。

    [报价用户="Carolyn Zhang "]我是否可以更改输入整数和输出整数的长度?

    您是否正在尝试更改主设备和从设备之间交换的 Profinet IO 数据中的数据大小? 默认情况下、IO 数据大小将为40字节(帧大小将包括标头和尾部)。 我们需要在 Profinet 从站堆栈中进行更改以更改 IO 数据大小、并且应在 GSDML 文件中进行相应的更改以处理高达1440字节的大型 IO 数据。

    此致、
    新进 P

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nijin、
    在哪里可以将器件名称'molex-devti'更改为我需要的任何其他名称? 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nijin、

    我有另一个问题。 PRU-ICSS-Profinet Slave_01.00.00.00是否用作拓扑结构? 如果可以、可以实现哪种拓扑、线路拓扑、星型拓扑或树状拓扑?
    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Carolyn:

    我们只能实现双端口 PN 交换机。 因此、无论您可以使用它构建什么拓扑、都受支持。

    PROFINET 器件的器件名称可在运行时使用 DCP 协议进行更改。

    此致、

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

    我现在正在测试"Profinet Slave RT"。 我在 GSDML-v2.31-MOLEX _TI-AM57xx-MRP-20140611.xml 中看到 MinDeviceInterval 设置为32、因此我认为我可以以1ms 的时间间隔读取输入数据。 我没有将 SPI 时钟1MHz 更改为默认值。 我的 LED 正常移动。 但是、我在 Profinet 主设备上读取的输入数据就像'0、0x4、0x8、0xc、0x10、0x14...... '。 对吗?

    在我看来、我应该读取'0、0x1、0x2、0x3、0x4等输入数据、 0x5..."。 我是对的吗?

    谢谢。