SoE - 伺服驱动协议
什么是 SoE?
SoE (Servo Drive Profile over EtherCAT) 是基于 IEC 61800-7-204 (SERCOS III) 标准的高性能运动控制协议。
SoE 是一个专为伺服驱动器设计的应用层协议,特别适合需要高精度、高响应速度的运动控制场景。
协议定位
SoE 是 EtherCAT 对 SERCOS III 标准的直接集成,让 SERCOS 伺服驱动器可以无缝接入 EtherCAT 网络。
SoE 与 CoE 的区别
| 特性 | SoE | CoE (CiA 402) |
|---|---|---|
| 技术来源 | SERCOS III 运动控制标准 | CANopen 通用标准 |
| 参数寻址 | IDN (16位标识符) | 索引 + 子索引 |
| 实时性能 | 极高(为运动控制优化) | 高 |
| 主要应用 | 高端伺服、数控系统 | 通用伺服、自动化设备 |
| 厂商支持 | 主要是 SERCOS 联盟成员 | 几乎所有 EtherCAT 设备 |
| 复杂度 | 较复杂(完整运动控制栈) | 中等 |
| 互操作性 | SERCOS 设备间高度统一 | 设备间差异较大 |
核心概念
IDN (Identification Number)
SoE 使用 IDN 而不是对象字典索引来标识参数:
- S-x-xxxx — 标准 SERCOS IDN(示例:S-0-0134)
- P-x-xxxx — 产品特定 IDN(示例:P-0-1000)
IDN 结构:
- S/P:标准/产品特定
- 第1位:参数类型(0=标准,1-7=扩展)
- 后4位:参数编号
常用标准 IDN
控制和状态
| IDN | 名称 | 类型 | 说明 |
|---|---|---|---|
| S-0-0134 | Master Control Word | UINT16 | 主站控制字(启动、停止等) |
| S-0-0135 | Drive Status Word | UINT16 | 驱动器状态字(运行、故障等) |
| S-0-0142 | Control Unit Cycle Time | UINT32 | 控制周期时间 |
| S-0-0143 | Drive Cycle Time | UINT32 | 驱动器周期时间 |
位置控制
| IDN | 名称 | 类型 | 说明 |
|---|---|---|---|
| S-0-0035 | Position Command Value | INT32 | 位置指令值 |
| S-0-0040 | Position Feedback Value | INT32 | 位置反馈值 |
| S-0-0051 | Position Feedback 2 Value | INT32 | 第二位置反馈(双编码器) |
速度和扭矩
| IDN | 名称 | 类型 | 说明 |
|---|---|---|---|
| S-0-0036 | Velocity Command Value | INT32 | 速度指令值 |
| S-0-0040 | Velocity Feedback Value | INT32 | 速度反馈值 |
| S-0-0084 | Torque Command Value | INT16 | 扭矩指令值 |
| S-0-0085 | Torque Feedback Value | INT16 | 实际扭矩反馈 |
诊断和状态
| IDN | 名称 | 类型 | 说明 |
|---|---|---|---|
| S-0-0095 | Diagnostic Message | STRING | 当前诊断信息 |
| S-0-0011 | Class 1 Diagnostic | UINT16 | 一级诊断代码 |
| S-0-0012 | Class 2 Diagnostic | UINT16 | 二级诊断代码 |
SoE 通信服务
实时通信(AT - Acyclic Telegram)
用于循环数据交换(位置、速度、扭矩等):
- 通过 PDO 映射
- 每个控制周期更新
- 延迟极低
非实时通信(AT - Acyclic Telegram)
用于参数读写、配置和诊断:
- 通过 Mailbox 传输
- 支持读取、写取、命令执行
- 用于启动、配置、监控
SoE 服务类型
| 服务 | 代码 | 说明 |
|---|---|---|
| Read Request | 0x01 | 读取 IDN 数据,获取状态、参数 |
| Read Response | 0x81 | 读取响应,返回数据 |
| Write Request | 0x02 | 写入 IDN 数据,修改参数 |
| Write Response | 0x82 | 写入响应,确认写入 |
| Emergency | 0x04 | 紧急通知,故障报警 |
SoE 驱动器状态机
SoE 定义了标准的驱动器状态转换:
| 状态 | 说明 | 特点 |
|---|---|---|
| S0 - 未就绪 | 初始化状态 | 驱动器上电 |
| S1 - 待机 | 参数设置就绪 | 可配置参数 |
| S2 - 准备运行 | 通信同步就绪 | 等待使能 |
| S3 - 运行 | 电机使能运行 | 接受运动指令 |
| S4 - 故障 | 错误状态 | 需要故障恢复 |
支持 SoE 的主要厂商
| 厂商 | 产品系列 | 特点 |
|---|---|---|
| Bosch Rexroth | IndraDrive | SERCOS 标准的主要推动者 |
| Siemens | SINAMICS S120 | 高端伺服系统 |
| Yaskawa | Sigma-7 | 高性能伺服 |
| Kollmorgen | AKD | 先进运动控制 |
| Schneider Electric | Lexium | 工业伺服驱动 |
SoE vs CoE - 如何选择?
有哪个用哪个, SoE方便多了
技术优势
标准化程度高
SERCOS 协会严格定义了:
- 参数命名和编号
- 状态机转换逻辑
- 数据类型和单位
- 错误代码定义
不同厂商的 SoE 驱动器具有高度一致性。
实时性能优异
- 支持 62.5μs 控制周期
- 确定性通信延迟
- 硬件时间戳
- 分布式时钟同步
功能完整
内置完整的运动控制功能:
- 位置、速度、扭矩控制模式
- 电子齿轮和凸轮
- 限位和安全功能
- 插补和轨迹规划
诊断能力强
- 分级诊断系统
- 详细的错误描述
- 实时监控能力
- 故障历史记录
Darra SDK 中的 SoE 支持
Darra SDK 提供完整的 SoE 协议支持:
功能特性
| 功能 | 说明 |
|---|---|
| IDN 读写 | 支持所有标准和产品特定 IDN |
| 循环数据 | 自动映射 SoE PDO |
| 状态机管理 | 自动驱动器状态转换 |
| 诊断解析 | 解析 SERCOS 诊断信息 |
| 多轴同步 | 支持多轴时间同步控制 |
设备识别
SDK 自动识别 SoE 设备并加载相应配置。
如何学习 SoE 开发?
- 阅读 IEC 61800-7 标准文档
- 参考驱动器厂商的 SoE 参数列表
- 使用 Darra SDK 的 SoE 示例代码
- 实际连接 SoE 驱动器进行测试
总结
SoE 是 EtherCAT 在高端运动控制领域的重要协议,它将 SERCOS 的成熟技术与 EtherCAT 的高性能结合,为数控机床、机器人等应用提供了卓越的解决方案。
虽然 SoE 比 CoE 更复杂,但在需要极致性能的场合,这些额外的复杂度是值得的。