【问题标题】:How does a CANopen frame look like, 2. What is the meaning of Transmit PDO and Receive PDO? , 3. How is a PDO mapping done programatically?CANopen 帧长什么样, 2. Transmit PDO 和 Receive PDO 是什么意思? , 3. PDO 映射如何以编程方式完成?
【发布时间】:2020-03-05 12:46:15
【问题描述】:

我无法理解 CANopen 协议。我知道 CAN 的工作原理以及 CAN 帧的外观。 CAN 数据或远程帧包含开始帧、消息标识符字段、DLC、RTR、数据(有效负载)、CRC、ACk 字段等。我知道 CANopen 标准利用 CAN 总线发送 CAN 消息。但是,CANopen 的 CAN 帧看起来不同,它在消息标识符字段中包含 COB ID+节点 ID,在有效负载字段中包含对象字典相关信息。因此,我想问以下问题:

  1. 如何定义对象字典。我知道这是一个
    包含数据的 ID、子 ID、数据类型信息的表 它包含相应数据的制造商信息
    入境等它们是否都被硬编码为 m*n 多维
    软件堆栈中的数组?

  2. 我对传输 PDO 和接收 PDO 这两个术语感到困惑。是不是类似于CAN数据帧和CAN远程帧?

  3. 什么是 PDO 映射以及如何识别对象字典中的哪个对象 ID 映射到 PDO 映射中的哪个对象 ID
    桌子。两者都使用相同的术语对象 ID ?

我实际上是 CANopen 的新手,我根据我最初的理解提出了这些问题。我在 CiA 网站上找不到详细的解释。

提前谢谢你

奎师那

【问题讨论】:

  • 您基本上是在问整个 CANopen 标准是如何工作的。这是一个太宽泛的问题,在这里解释起来需要很长时间。您可以在“拥有”CANopen 标准的非营利组织CAN in Automation 学习基础知识。
  • 非常感谢您的回复。我将通过链接并返回..

标签: can-bus canopen


【解决方案1】:

没那么容易理解!!

CanOpen 是 Master(客户端)和 Slave(服务器)之间的通信。 像传感器这样的设备是从设备。 从站有一个 OD(对象目录)。制造商提供有关它的所有信息。前任。如果我想读取温度,它的位置位于子索引 00 处的地址 0x2040。然后主机(我们的系统)需要发出这个请求。为此,您需要通过发送一些请求(使用 SDO)来配置设备,以更改 TPDO1 映射 (0x1A00) 和 TPDO1 通信参数 (0x1800)。并且能够通过设备接收温度。该设备不能单独工作。

SDO(读/写)允许 OD 访问条目。前任。更改 TPDO1 映射。 PDO 是设备运行后的输出/输入。

有 NMT 主控命令可将设备置于操作模式或发送 SYNC 或 Heartbeat。取决于设备需要什么? 前任。 080h 00 : SYNC 由主机发送 280h 06 E5 EF 02 00 00 00 : TPDO2 设备响应 000h 02 01 1F : 将 ID = 1F 的设备置于操作模式

如果您想要一个很好的示例设备 POSITAL FRABA 绝对旋转编码器,可以打开接口。

希望对你有所帮助!!!

【讨论】:

  • 非常感谢 Martin Pelletier。你的解释很有帮助。这真的鼓励像我这样的初学者进一步阅读。通过 CIA 网站和一些 Youtube 视频,我对 CANopen 有了一些基本的了解。
猜你喜欢
  • 2013-05-11
  • 1970-01-01
  • 2011-08-14
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
相关资源
最近更新 更多