CoE — 对象字典读写
CoE (CANopen over EtherCAT) 是最常用的参数配置协议, 用于读写从站的 SDO 参数和对象字典。
功能概览
| 能力 | 说明 |
|---|---|
| SDO 读写 | 通过索引/子索引读写参数, 支持单条目和 CompleteAccess 模式 |
| 对象字典浏览 | 树视图列出所有索引/子索引, 按类别分组 |
| 启动序列 | 配置状态转换时的自动 SDO 写入 |
| Last SDO Error | 显示最近一次 SDO 操作的 Abort Code 与中文说明 |
| EMCY 历史 | 接收并保存从站紧急消息历史 |
| CiA402 状态机可视化 | 伺服驱动专用, 显示当前状态与操作模式 |
配置工具中, 在 CoE Tab 浏览和编辑参数, 在 启动 Tab 配置状态转换时的自动 SDO 写入。
快速开始
- 进入 配置工具的 CoE Tab
- 等待对象字典加载 (PreOp 及以上状态)
- 双击参数行就地编辑, 写入立即生效
- 切换到 启动 Tab, 添加状态转换时需要写入的 SDO 参数
- 导出 详细信息 Excel, 即可获得对象字典表格和启动序列表格
对象字典浏览
CoE Tab 提供对象字典的树视图。
- 加载方式 — 进入 PreOp 后首次展开 ODList 节点时自动加载, 加载后缓存, 切换从站不重复读取
- 分组 — 按对象类别折叠 (通讯参数 0x1xxx / 制造商区 0x2xxx / 设备子协议 0x6xxx 等)
- 每行显示 — 索引、子索引、名称、数据类型、访问权限、当前值
- 就地编辑 — 双击可写入的单元格直接发起 SDO 写
某条目首次访问失败 (如从站尚未进入 PreOp), ODList 会显示对应错误占位, 状态切换后右键 重新加载 重试。
启动序列
启动序列用于在状态转换时自动写入 SDO 参数, 确保从站以期望配置进入运行状态。
启动序列支持 6 种状态转换时机:
| 转换 | 方向 | 典型用途 |
|---|---|---|
| I→P | Init → PreOp | 初始化邮箱配置 |
| P→S | PreOp → SafeOp | 配置 PDO 映射、操作模式 |
| S→O | SafeOp → Op | 启用控制功能 |
| O→S | Op → SafeOp | 安全停止 |
| S→P | SafeOp → PreOp | 重新配置 |
| P→I | PreOp → Init | 完全重置 |
每条参数包含: 转换阶段、写入时机 (转换前/后)、索引/子索引、数据。导出 详细信息 Excel 报告时, 启动序列以表格形式包含。
CompleteAccess 模式
部分对象 (如 0x1018 Identity、PDO 映射对象) 支持 CompleteAccess (一次访问整个索引下所有子索引)。
CoE Tab 的 CompleteAccess 开关启用后, SDO 读写一次性传输整个对象的全部子索引, 速度更快、原子性更好。注意:
- 对象必须声明支持 CompleteAccess, 否则从站返回 Abort Code
- PDO 映射类对象建议开启, 避免子索引中间状态导致的映射不一致
- 无法确认时保持关闭, 按子索引逐个访问最稳妥
Last SDO Error 显示
每次 SDO 读写完成后, GUI 在 CoE Tab 底部状态栏显示 Last SDO Error:
| 字段 | 含义 |
|---|---|
| Abort Code | SDO Abort Code 原始 32 位编码 (如 0x06010002) |
| 说明 | Abort Code 的中文解释 (如 "尝试写入只读对象") |
| 索引 / 子索引 | 失败的对象位置 |
| 时间戳 | 最近一次错误发生时间 |
成功的操作不覆盖错误显示, 便于排查偶发问题。点击状态栏可清空。
常见 Abort Code:
| Abort Code | 含义 |
|---|---|
| 0x05030000 | Toggle 位错误 |
| 0x05040001 | 命令字未知 |
| 0x06010000 | 不支持的访问 |
| 0x06010002 | 尝试写只读对象 |
| 0x06020000 | 对象不存在于对象字典 |
| 0x06090011 | 子索引不存在 |
| 0x06090030 | 值范围超限 |
| 0x08000020 | 数据无法传输或保存到应用 |
EMCY 紧急消息历史
EtherCAT 从站可通过 CoE 上报 EMCY (Emergency) 紧急消息。GUI 在 CoE Tab 中提供 EMCY 历史 列表:
- 每条记录包含: 时间戳、Error Code、Error Register、厂商专属字节
- 按从站独立保存, 切换从站时显示对应历史
- 可设置每个从站保留的最大记录条数, 超出按 FIFO 丢弃最早记录
右键列表条目可复制原始字节, 便于与 ETG 文档或厂商手册对照。
CiA402 状态机可视化
针对伺服驱动从站 (实现 CiA402 设备子协议), GUI 提供独立的 CiA402 视图。
8 个标准状态:
| 状态 | 说明 |
|---|---|
| Not Ready To Switch On | 上电初始化中 |
| Switch On Disabled | 等待 Shutdown 命令 |
| Ready To Switch On | 等待 Switch On |
| Switched On | 高压已加, 未使能 |
| Operation Enabled | 使能完成, 按当前模式运行 |
| Quick Stop Active | 快速停车进行中 |
| Fault Reaction Active | 故障反应进行中 |
| Fault | 故障锁定 |
视图根据 0x6041 Statusword 实时刷新, 绘制状态机图并高亮当前状态, 箭头标注允许的下一步控制字命令。
10 种操作模式:
| 编号 | 模式 |
|---|---|
| 1 | Profile Position (PP) |
| 3 | Profile Velocity (PV) |
| 4 | Profile Torque (PT) |
| 6 | Homing (HM) |
| 7 | Interpolated Position (IP) |
| 8 | Cyclic Sync Position (CSP) |
| 9 | Cyclic Sync Velocity (CSV) |
| 10 | Cyclic Sync Torque (CST) |
视图显示 0x6060 (Modes of operation) 请求模式与 0x6061 (Modes of operation display) 实际反馈模式, 不一致时高亮提示。