Other Parts Discussed in Thread: AM2434, TIDEP-01032
器件型号: AM2434
主题: TIDEP-01032 中讨论的其他器件
尊敬的 TI 专家:
我们正在 AM2434 微控制器上使用 EtherCAT 接口开发应用。 我们使用的是工业通信 SDK V11.00.00。
对于我们的应用、我们需要一个时间戳。 我们最喜欢的解决方案是使用 EtherCAT 系统时间。 我们正尝试从 EherCAT 从控制寄存器 0x0910-0x0917 读取此信息。 但是、存在意外行为。 我不确定我是否遗漏了一些东西或是否存在另一个问题。
出现了两个问题:
- 寄存器 0x0914-0x0917 中的值未更新。 此器件连接到 EtherCAT 主站 (Beckhoff IPC)、并在直流同步模式下运行。 我看到、当我将系统切换到运行模式时、最初设置寄存器中的值。 之后、只有 0x0910-0x0913 中的值在变化。 应该每~4 秒发生一次溢出、导致较高寄存器发生变化、但不会发生这种情况。
我还尝试使用 TwinCAT 读取从器件的寄存器值。 在这里更新了这些值。 读取寄存器后、如果在控制器应用中读取这些值、还可以在寄存器中看到更新的值。
我是否需要调用任何函数来更新系统时间寄存器 0x0914-0x0917? 还是我遗漏了其他东西? - 如果我们的器件未连接到任何 EtherCAT 主站、则系统时间始终显示为 0。 这是正常的 bevaviour 吗? 我本以为设备有一个从零开始的“本地时间“。
我´ve 两种读取寄存器的方法:
- 使用指向寄存器地址的指针进行直接访问
- 使用 ecSlvApi_esc.h 中的 EtherCAT Slave API 函数 EC_API_SLV_readDoubleWordEscRegister ()
这两种方式的行为是相同的。
提前感谢您的支持!
此致、
基督教
