CoE — 对象字典读写
CoE(CANopen over EtherCAT)是最常用的参数配置协议,用于读写从站的 SDO 参数和对象字典。
配置工具:在 CoE Tab 中浏览和编辑参数,在 启动 Tab 中配置状态转换时的自动 SDO 写入。
导出方式:CoE 相关内容通过 Excel 详细信息 导出,包含对象字典表格和启动序列表格,不生成在代码中。
SDK 用法
var coe = slave.CoE;
// ── 读取参数 ──
byte[] modeData = coe.SDORead(0x6060, 0); // 读取操作模式
Console.WriteLine($"操作模式: {modeData[0]}");
// ── 通过对象字典访问 ──
var od = coe.ODList; // 首次访问自动加载
if (od != null)
{
// 按索引访问
var deviceType = od[0x1000];
Console.WriteLine($"设备类型: {deviceType[0].Value}");
// 按名称访问
var identity = od["Identity"];
foreach (var entry in identity.Entries)
Console.WriteLine($" [{entry.SubIndex}] {entry.Name} = {entry.Value}");
}
// ── 写入参数 ──
coe[0x6060].SDOWrite(0, new byte[] { 8 }); // 设置 CSP 模式
导出:Excel 对象字典表格
通过 导出 → 详细信息 导出 Excel 报告,其中包含 CoE 对象字典表格:
| 索引 | 子索引 | 名称 | 数据类型 | 访问权限 | 当前值 |
|---|---|---|---|---|---|
| 0x1000 | 0 | Device type | uint32 | 只读 | 0x1389 |
| 0x1018 | 1 | Vendor ID | uint32 | 只读 | 0x2 |
| 0x6040 | 0 | Controlword | uint16 | 读写 | 0x0000 |
| 0x6060 | 0 | Modes of operation | int8 | 读写 | 8 |
导出:Excel 启动序列表格
启动序列同样导出在 Excel 报告中,记录状态转换时需要写入的 SDO 参数:
| 转换 | 时机 | 索引 | 子索引 | 数据 | 说明 |
|---|---|---|---|---|---|
| P→S | 转换前 | 0x1C12 | 0 | 0x00 | 清空 RxPDO 分配 |
| P→S | 转换前 | 0x1C12 | 1 | 0x1600 | 分配 RxPDO |
| P→S | 转换前 | 0x6060 | 0 | 8 | 操作模式: CSP |
启动序列支持 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 | 完全重置 |
更多
完整 CoE API 请参考 C# SDK — CoE。