对象字典与通信对象
CANopen 把设备的所有可访问内容组织成对象字典:每个条目用索引加子索引定位,前部区域是标准规定的通用条目,后部留给厂商专用,因此不同厂商的同类设备在通用条目上行为一致。通信对象按功能分类:过程数据对象承载周期性过程数据,发送与接收各一套,映射关系在上电配置阶段确定;服务数据对象用于参数读写,数据量大时分块传输;此外还有网络管理、同步、紧急事件与时间戳等对象。节点状态由网络管理状态机控制,只有进入运行态之后过程数据对象才会真正传输。
基本信息
| 对象字典 | 索引加子索引寻址,分标准区与厂商专用区 |
|---|---|
| 过程数据对象 | 周期过程数据,可配置映射与传输类型 |
| 服务数据对象 | 参数读写,支持分块传输大数据 |
| 网络管理 | 状态机与心跳监控,控制节点是否在运行态 |
| 同步对象 | 为多个节点提供统一的时间基准 |
| 紧急事件 | 故障与报警上报 |
| 标识符分配 | 按功能码与节点号组合,节点号需唯一 |
典型使用场景
- 驱动器组态:先通过参数通道写入配置,再切换到周期数据交换
- 分布式 I/O:用过程数据对象周期性交换输入输出状态
- 参数备份:上电后读取全量参数用于备份与比对
- 故障上报:通过紧急事件对象上报故障码
- 多轴协同:用同步对象让多个节点在同一时刻采样或动作
- 设备替换:按对象字典逐项核对参数,避免只改节点号就上电
通信对象速查
| 对象 | 用途 | 特点 |
|---|---|---|
| 过程数据对象 | 周期过程数据 | 映射与传输类型决定行为,运行态才发送 |
| 服务数据对象 | 参数读写 | 有确认,可分块,适合配置与诊断 |
| 网络管理 | 状态控制与在线监控 | 控制节点进入或退出运行态 |
| 同步对象 | 统一时间基准 | 让多节点动作对齐 |
| 紧急事件 | 故障上报 | 带故障码与寄存器内容 |
| 时间戳 | 统一时间 | 为事件提供时间参考 |
使用顺序与排查要点
使用顺序与排查要点
# 1 上电后节点处于初始化,随后进入预运行态
# 2 预运行态下用参数通道读写配置(映射、传输类型、限值)
# 3 配置完成后由网络管理命令切入运行态
# 4 运行态下过程数据对象按设定周期传输
# 排查提示:通信正常但数据不动,先看节点是否真的进入运行态
# 替换设备:逐项核对对象字典,不能只改节点号过程数据对象在预运行态不发送,这是新设备上线后数据不更新的常见原因,排查时先确认节点状态而不是怀疑总线。
节点号重复会造成标识符冲突,表现为随机通信异常,接线与终端都检查无误时不要忽略节点号配置。