Other Parts Discussed in Thread: AM2434
工具/软件:
你(们)好
客户使用 AM2434 报告有关大规模生产项目的一个问题。
我和他们会面,整理了附件中的线索。
请看一下、分享一些想法。
e2e.ti.com/.../Copy-of-Lost-Frame-issue.xlsx
谢谢
Zekun
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.
Other Parts Discussed in Thread: AM2434
工具/软件:
你(们)好
客户使用 AM2434 报告有关大规模生产项目的一个问题。
我和他们会面,整理了附件中的线索。
请看一下、分享一些想法。
e2e.ti.com/.../Copy-of-Lost-Frame-issue.xlsx
谢谢
Zekun
尊敬的 Zekun:
感谢您提供详细信息。 上面共享的日志片段中的一个小说明:
在 Node2 中、我看到从第 18803 帧到第 18806 帧前向帧 (WKC = 7) 和返回帧 (WKC = 11)、但在红色框中、它显示为丢失帧。 您能解释一下在这种情况下丢失的帧吗? 客户是否将第 53185 帧(来自节点 1)用作丢失的帧?
我们正在查看提供的详细信息和可能导致此类问题的参数。
此致、
Aaron
嗨、Aaron、Pratteesh
我还附加 Wireshark 捕获的 EtherCAT 软件包。
e2e.ti.com/.../7268.WiresharkLog.zip
谢谢
Zekun
嗨、Aaron
n Node2、我看到从第 18803 帧到第 18806 帧前向帧 (WKC = 7) 和返回帧 (WKC = 11)、但在红色框中、它显示为丢失帧。 您能解释一下在这种情况下丢失的帧吗? 客户是否将第 53185 帧(来自节点 1)用作丢失的帧?
有一个错误的 scrren 射击。
正确的 思路是您可以在 节点 2(正常情况下)中看到、表明了下行和上行对。 一个下行对一个上行。
但是对于 Node1、您可以看到 6-11-6、因此之后没有上游、这意味着应该传递给主器件的软件包丢失。
节点 1 与节点 2 没有关系、因为我们不能并行测试节点 1 和节点 2。
我们只想显示节点 1 和节点 2 的情况。
节点 1、6 –11-6、错误。 它应该是 6 - 11 - 6 - 11 –11 –11
node2、是正确的情况。
有 2 个可能的原因。
1.从节点 1 到节点 2 的包丢失、因此节点 1 有下游但没有上游、但节点 2 是正确的。
2.从 Node2 到 Node 的包丢失,因此 Node 2 正常,但 Node 1 丢失上游。
谢谢
Zekun
大家好、Aaron、Pratheesh
请查看以下错误计数器屏幕截图。
在以下环境中也会出现此问题。
目前、对于此环境、客户只确认了错误计数器值 0x300 至 0x30F。
【主器件】-[IO](5 个单元)-[E7B_1]-[E7B_2]-[E7B_3]
由于上部 PC 无法直接读取寄存器值、因此它们连接了 TwinCAT、以 在问题发生后确认寄存器。 然而、TwinCAT 可以读取并清除错误计数器值、因此结果可能无法反映出问题时的实际值。 这仅供参考。
E7B1

E7B2

E7B3

我还建议他们添加调试代码、以便 在使用调试代码获得寄存器值后提供寄存器值。
谢谢
Zekun
尊敬的 Zekun:
[引述 userid=“531957" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1568345/am2434-ethercat-communication-issue-of-am2434/6049026节点 1、6 –11-6、错误。 它应该是 6 - 11 - 6 - 11 –11 –11
node2、是正确的情况。
[/报价]我明白。 感谢您的讲解。
因此有两个可能的原因。
是、正确。
[Main Device]-[IO](5 个单元)-[E7B_1]-[E7B_2]-[E7B_3]
我的理解是、在这种环境中观察到帧丢失、错误计数器寄存器的捕获基于同样的环境?
因为上部 PC 无法直接读取寄存器值、因此它们连接了 TwinCAT 以 在问题发生后确认寄存器。 然而、TwinCAT 可以读取并清除错误计数器值、因此结果可能无法反映出问题时的实际值。 这仅供参考。
客户还可以在从 TwinCAT 读取错误寄存器时启用 Wireshark 捕获、以便我们可以从 TwinCAT 查看对错误寄存器的访问并实时观察错误计数器(无需预测 TwinCAT 是否清除这些寄存器)。
此致、
Aaron
尊敬的 Zekun:
因此根据当前情形、您是否有任何可能导致此问题的想法?
我们已经尝试使用上表中提到的 PDO 值从我方重现此问题。 我们怀疑该问题可能与自定义设置中执行的 FMMU 配置有关。 我们尝试了在以下环境中组合 PDO 分配:
SOEM(主器件)<>ET2000 <>AM243x-LP(RxPDO 286 字节、TxPDO 516 字节)<>AM243x-LP(RxPDO 9 字节、TxPDO 17 字节)<>AM243x-LP(RxPDO 9 字节、TxPDO 17 字节)
通过这种配置、可以实现 没有发现帧丢失 。 附加日志以供参考: e2e.ti.com/.../SOEM_5F00_Frame_5F00_Loss_5F00_Debug_5F00_v0690_5F00_0530.zip
客户设置中的错误计数器寄存器将有助于进一步分析问题。
此致、
Aaron
嗨、Aaron
客户重现问题并转储所需的寄存器、也转储正常情况下的版本。
|
軸1OK μ s |
軸2OK μ s |
軸5OK μ s |
軸6OK μ s |
軸1NG μ s |
軸2NG μ s |
軸5NG μ s |
軸6NG μ s |
|
|
寄存器 0x300 (CRCErrCntPort0) |
2. |
2. |
2. |
2. |
2. |
2. |
1. |
1. |
|
寄存器 0x301 (RxErrCntPort0) |
0 |
130 |
92 |
143. |
0 |
58 |
104. |
70 |
|
寄存器 0x302 (CRCErrCntPort1) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x303 (RxErrCntPort1) |
255 |
255 |
255 |
0 |
255 |
255 |
255 |
0 |
|
寄存器 0x304 (CRCErrCntPort2) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x305 (RxErrCntPort2) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x306 (CRCErrCntPort3) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x307 (RxErrCntPort3) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x308(转发的 RX 错误 CounterPort0) |
43 |
2. |
0 |
0 |
41. |
2. |
0 |
0 |
|
寄存器 0x309(转发的 RX 错误计数器端口 1) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x30A(转发的 RX 错误 CounterPort2) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x30B(转发的 RX 错误计数器端口 3) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x30C(ECAT 处理单元错误计数器) |
45 |
4. |
2. |
2. |
43 |
4. |
1. |
1. |
|
寄存器 0x30D(PDI 错误计数器) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x30E(PDI 错误代码) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x310(链路丢失计数器端口 0) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x311(链路丢失计数器端口 1) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x312(链路丢失计数器端口 2) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
寄存器 0x313(链路丢失计数器端口 3) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
执行以下操作:
1.为什么在 OK 和 NG 情况下存在错误计数?
2、AM243 0X30c 的定义与 Beckoff、的不同是寄存器是否仅存在于 TI ?
3.我要求客户也获取主控制器 FMMU 配置寄存器。
4.有什么想法来调试这个?
有一件事、
此致
Zekun
嗨、Aaron
SM 寄存器值(不使用 SM4~SM7)
|
軸1(十六进制) |
軸2(十六进制) |
軸5(十六进制) |
軸6(十六进制) |
||
|
寄存器 0x800~寄存器 0x803 |
SM0 |
1001000 |
1001000 |
1001000 |
1001000 |
|
寄存器 0x804~寄存器 0x807 |
SM0 |
10226 |
10226 |
10226 |
10226 |
|
寄存器 0x808~寄存器 0x80B |
SM1. |
1001200 |
1001200 |
1001200 |
1001200 |
|
寄存器 0x80C~寄存器 0x80F |
SM1. |
10222. |
10222. |
10222. |
10222. |
|
寄存器 0x810~寄存器 0x813 |
SM2. |
91400 |
91400 |
91400 |
91400 |
|
寄存器 0x814~寄存器 0x817 |
SM2. |
10164. |
10164. |
10164. |
10164. |
|
寄存器 0x818~寄存器 0x81B |
SM3. |
111600 |
111600 |
111600 |
111600 |
|
寄存器 0x81C~寄存器 0x81F |
SM3. |
10020 |
10020 |
10020 |
10020 |
不使用 FMMU、(FMMU2~FMMU7)
|
軸1(十六进制) |
軸2(十六进制) |
軸5(十六进制) |
軸6(十六进制) |
||
|
寄存器 0x600~寄存器 0x603 |
FMMU0 |
226 |
240 |
25A. |
274. |
|
Reg.0x604~Reg.0x607. |
FMMU0 |
7000009. |
7000009. |
7000009. |
7000009. |
|
Reg.0x608~Reg.0x60B |
FMMU0 |
2001400 |
2001400 |
2001400 |
2001400 |
|
寄存器 0x60C~寄存器 0x60F |
FMMU0 |
1. |
1. |
1. |
1. |
|
寄存器 0x610~寄存器 0x613 |
FMMU1 |
22f |
249. |
263. |
27d. |
|
Reg.0x614~Reg.0x617 |
FMMU1 |
7000011. |
7000011. |
7000011. |
7000011. |
|
寄存器 0x618~寄存器 0x61B |
FMMU1 |
1001600 |
1001600 |
1001600 |
1001600 |
|
寄存器 0x61C~寄存器 0x61F |
FMMU1 |
1. |
1. |
1. |
1. |
谢谢
Zekun
更新关于控制器的一件事:
此问题只能在特定 CNC 控制器上重现,如果选择 Beckoff 或 Omron ,则无法重现。
现在有几个疑问可以分析:
(1) 寄存器 0x303 在正常和异常条件下有一个非常可疑的值 255。 除非这是一个 8 位寄存器、否则这不是正常值。
(2) AM2434 上正常情况和异常情况下的寄存器值没有明显差异。
(3) 正常和异常情况下都有相当多的错误。
(4) 在何种情况下、ESC 会停止转发数据? 即使存在 CRC 错误、也应该转发数据吗?
谢谢
Zekun
尊敬的 Zekun:
感谢您提供详细信息。
[引用 userid=“531957" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1568345/am2434-ethercat-communication-issue-of-am2434/6079096 ](1) 寄存器 0x303 在正常和异常条件下的值均为 255。 除非是 8 位寄存器、否则这不是正常值。错误计数器寄存器详细信息可在以下位置找到: TI EtherCAT 子器件控制器寄存器列表。 RX Error 在该问题中似乎发挥了关键作用。
[引述 userid=“531957" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1568345/am2434-ethercat-communication-issue-of-am2434/6079096 ](2) AM2434 上的正常情况和异常情况之间的寄存器值没有明显差异。由于 RX_ERR 在这些情况下似乎发挥着关键作用、因此获取 PHY 寄存器值也将显著帮助我们了解 PHY 的行为。
(3) 在正常和异常情况下都有相当多的错误。
没错。
(4) 在什么情况下 ESC 会停止转发数据? 即使存在 CRC 错误、也是否应转发数据?
我无法想到 ESC 会在运行时不转发帧(此时 EtherCAT 网络已成功初始化)的情况。 即使 ESC 控件在处理任何数据报时卡住、也会在网络中观察到格式错误的数据包、因为帧头会转发到下一个节点。
此致、
Aaron