跳到主要内容

CANopen 默认 CAN-ID 速查

以下编号来自 CANopen 预定义连接集。设备可以通过对象字典重新配置部分 PDO 和 SDO COB-ID,因此抓包时仍应读取或核对设备实际配置。

不加 Node-ID 的报文

用途默认 CAN-ID说明
NMT0x000DATA 中指定命令和目标 Node-ID
SYNC0x080同步事件
TIME0x100时间戳服务

需要加 Node-ID 的报文

用途基础编号Node 0x01Node 0x20
EMCY0x0800x0810x0A0
TPDO10x1800x1810x1A0
RPDO10x2000x2010x220
TPDO20x2800x2810x2A0
RPDO20x3000x3010x320
TPDO30x3800x3810x3A0
RPDO30x4000x4010x420
TPDO40x4800x4810x4A0
RPDO40x5000x5010x520
默认 SDO 响应0x5800x5810x5A0
默认 SDO 请求0x6000x6010x620
Boot-up / Heartbeat0x7000x7010x720

计算方法始终是:

CAN-ID = 对应服务的基础编号 + Node-ID

Node-ID 范围通常为 11270 在 NMT 中用于广播,不应分配给普通节点。

方向要站在 CANopen 设备一侧

TPDO 和 RPDO 的 T/R 是相对于拥有该 PDO 的节点:

  • 电机 TPDO:电机发送,ESP32 接收;
  • 电机 RPDO:ESP32 发送,电机接收;
  • ESP32 TPDO:ESP32 发送,其他节点接收。

所以 0x181 是 Node 0x01 的 TPDO1,0x1A0 是 Node 0x20 的 TPDO1。