CANopen 默认 CAN-ID 速查
以下编号来自 CANopen 预定义连接集。设备可以通过对象字典重新配置部分 PDO 和 SDO COB-ID,因此抓包时仍应读取或核对设备实际配置。
不加 Node-ID 的报文
| 用途 | 默认 CAN-ID | 说明 |
|---|---|---|
| NMT | 0x000 | DATA 中指定命令和目标 Node-ID |
| SYNC | 0x080 | 同步事件 |
| TIME | 0x100 | 时间戳服务 |
需要加 Node-ID 的报文
| 用途 | 基础编号 | Node 0x01 | Node 0x20 |
|---|---|---|---|
| EMCY | 0x080 | 0x081 | 0x0A0 |
| TPDO1 | 0x180 | 0x181 | 0x1A0 |
| RPDO1 | 0x200 | 0x201 | 0x220 |
| TPDO2 | 0x280 | 0x281 | 0x2A0 |
| RPDO2 | 0x300 | 0x301 | 0x320 |
| TPDO3 | 0x380 | 0x381 | 0x3A0 |
| RPDO3 | 0x400 | 0x401 | 0x420 |
| TPDO4 | 0x480 | 0x481 | 0x4A0 |
| RPDO4 | 0x500 | 0x501 | 0x520 |
| 默认 SDO 响应 | 0x580 | 0x581 | 0x5A0 |
| 默认 SDO 请求 | 0x600 | 0x601 | 0x620 |
| Boot-up / Heartbeat | 0x700 | 0x701 | 0x720 |
计算方法始终是:
CAN-ID = 对应服务的基础编号 + Node-ID
Node-ID 范围通常为 1~127。0 在 NMT 中用于广播,不应分配给普通节点。
方向要站在 CANopen 设备一侧
TPDO 和 RPDO 的 T/R 是相对于拥有该 PDO 的节点:
- 电机 TPDO:电机发送,ESP32 接收;
- 电机 RPDO:ESP32 发送,电机接收;
- ESP32 TPDO:ESP32 发送,其他节点接收。
所以 0x181 是 Node 0x01 的 TPDO1,0x1A0 是 Node 0x20 的 TPDO1。