对象字典与预定义连接集

对象字典与预定义连接集

CANopen 的“统一地址空间”:一切配置、诊断、过程数据映射都围绕 Object Dictionary
通信对象默认 CAN-ID 由 预定义连接集(Pre-defined Connection Set) 决定


1. 对象字典(Object Dictionary)

每个 CANopen 设备维护一张对象字典:

  • Index:16-bit(常写为 4 位十六进制,如 0x6040
  • SubIndex:8-bit(如 0x00
  • 每个条目有:数据类型、访问属性(ro/wo/rw)、默认值、可选 PDO 映射标志等
1
2
3
4
5
访问形式: Index : SubIndex
例子:
0x1017:00 Producer Heartbeat Time
0x6040:00 Controlword(CiA 402)
0x6064:00 Position actual value

1.1 索引分区(必须背)

范围 用途
0000h 未使用 / 保留语义
0001h009Fh 数据类型定义区(通信用数据类型)
00A0h0FFFh 保留
1000h1FFFh 通信参数区(通信行为)
2000h5FFFh 厂商自定义应用参数
6000h9FFFh 标准化设备行规参数(如 CiA 401/402)
A000hFFFFh 保留 / 特殊用途

来源要点见 CiA 对内部设备架构的说明:
CiA — CANopen

1.2 通信区常见对象(1000h 起)

Index 名称 作用
1000h Device type 设备类型
1001h Error register 错误寄存器
1003h Pre-defined error field 错误历史
1005h COB-ID SYNC SYNC 的 COB-ID
1006h Communication cycle period 通信周期
1008h Manufacturer device name 设备名
1009h Manufacturer hardware version 硬件版本
100Ah Manufacturer software version 软件版本
1010h Store parameters 参数存盘
1011h Restore default parameters 恢复出厂
1014h COB-ID EMCY 紧急对象 COB-ID
1016h Consumer heartbeat time 消费者心跳监视
1017h Producer heartbeat time 生产者心跳周期
1018h Identity object Vendor-ID / Product code / Revision / Serial
1200h+ SDO server/client 参数 SDO 通道
1400h+ RPDO 通信参数 RPDO COB-ID、传输类型
1600h+ RPDO 映射参数 RPDO 映射表
1800h+ TPDO 通信参数 TPDO COB-ID、传输类型
1A00h+ TPDO 映射参数 TPDO 映射表

2. EDS 与 DCF(CiA 306)

文件 含义
EDS(Electronic Data Sheet) 描述设备“能提供哪些对象、默认值、类型”
DCF(Device Configuration File) 在 EDS 基础上写入本网络实例的具体参数值(含 Node-ID 等)

用途:

  • 配置工具导入 EDS,生成网络工程
  • 主站/协议栈用 DCF/EDS 生成对象字典代码或运行时配置
  • 测试与诊断工具读取设备描述

官方系列说明:
CiA 306 — Electronic Device Description

现代也常见 XML/XDD 等描述格式(工具链相关);经典工程仍大量使用 EDS/DCF。


3. 预定义连接集(Pre-defined Connection Set)

为降低“从零配置”成本,CiA 301 定义了基于 Node-ID 的默认 COB-ID:

公式形态(概念):COB-ID = 功能码基址 + Node-ID

3.1 常用默认 COB-ID(11-bit)

功能 默认 COB-ID(示意) 说明
NMT 0x000 网络管理(广播命令)
SYNC 0x080 同步(可改)
EMCY 0x080 + Node-ID 紧急
TPDO1 0x180 + Node-ID 发送 PDO1
RPDO1 0x200 + Node-ID 接收 PDO1
TPDO2 0x280 + Node-ID
RPDO2 0x300 + Node-ID
TPDO3 0x380 + Node-ID
RPDO3 0x400 + Node-ID
TPDO4 0x480 + Node-ID
RPDO4 0x500 + Node-ID
SDO TX(Server→Client) 0x580 + Node-ID
SDO RX(Client→Server) 0x600 + Node-ID
Heartbeat / Node Guard 0x700 + Node-ID
LSS 请求/响应 0x7E5 / 0x7E4 CiA 305

具体数值以设备 EDS / CiA 301 为准;上表用于快速心算与抓包对照。

3.2 为什么要改默认 COB-ID?

  • 多主站/复杂拓扑避免冲突
  • 多轴优化 PDO 布局
  • 与网关、桥接设备对接
  • 安全相关对象(如 SRDO)另有规则

改法:通过 SDO 写对应通信参数对象(如 1800h 的 COB-ID 子索引)。


4. 位速率与线缆(工程要点)

CiA 301 允许约 10 kbit/s ~ 1 Mbit/s。经验关系:

波特率 典型总线长度上限(经验)
1 Mbit/s ~25 m
500 kbit/s ~100 m
250 kbit/s ~250 m
125 kbit/s ~500 m
50 kbit/s ~1000 m

实践注意:

  • 两端 120Ω 终端电阻
  • 双绞屏蔽、单点接地策略
  • 所有节点波特率必须一致(可用 LSS 统一切换)
  • 高波特 + 长线 = 最先出问题的组合

5. Identity Object(1018h)为何重要

1018h 通常包含:

  • Vendor-ID
  • Product code
  • Revision number
  • Serial number

用途:

  • LSS 选择性切换(按身份定位未配置节点)
  • 资产盘点与固件匹配
  • 主站启动时校验“接的是不是预期设备”

6. 与应用行规的衔接

通信区(1xxxh)回答:“怎么通信
行规区(6xxxh)回答:“通信的是什么应用量

例如 CiA 402:

Index 含义
6040h Controlword
6041h Statusword
6060h Modes of operation
607Ah Target position
6064h Position actual value

详情见 04-CiA402伺服控制.md

下一篇:02-NMT与错误控制.md

文章互动

阅读 --

留言

0 条留言

正在加载留言…