跳到主要内容

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 对象字典表格:

索引子索引名称数据类型访问权限当前值
0x10000Device typeuint32只读0x1389
0x10181Vendor IDuint32只读0x2
0x60400Controlworduint16读写0x0000
0x60600Modes of operationint8读写8

导出:Excel 启动序列表格

启动序列同样导出在 Excel 报告中,记录状态转换时需要写入的 SDO 参数:

转换时机索引子索引数据说明
P→S转换前0x1C1200x00清空 RxPDO 分配
P→S转换前0x1C1210x1600分配 RxPDO
P→S转换前0x606008操作模式: CSP

启动序列支持 6 种状态转换时机:

转换方向典型用途
I→PInit → PreOp初始化邮箱配置
P→SPreOp → SafeOp配置 PDO 映射、操作模式
S→OSafeOp → Op启用控制功能
O→SOp → SafeOp安全停止
S→PSafeOp → PreOp重新配置
P→IPreOp → Init完全重置

更多

完整 CoE API 请参考 C# SDK — CoE