AoE - ADS over EtherCAT
什么是 AoE?
AoE (ADS over EtherCAT) 是 Beckhoff 的 ADS 协议在 EtherCAT 上的实现,提供可路由的客户端-服务器通信机制。
AoE 用于 ADS 邮箱通信,不是多协议网关、配方或 SCADA 产品。
ADS (Automation Device Specification) 是一种公开的通信协议。AoE 将 ADS 集成到 EtherCAT,扩展了设备间通信能力。
核心特性
| 特性 | 说明 | 优势 |
|---|---|---|
| 可路由 | 支持多级路由,跨网段通信 | 灵活的网络拓扑 |
| 客户端-服务器 | 标准的请求-响应模式 | 易于理解和实现 |
| 并行服务 | 支持多个服务同时运行 | 功能模块化 |
| 低开销 | 高效的协议设计 | 适合嵌入式系统 |
| 寻址方式 | 索引组 + 偏移 | 本 SDK 不提供符号名访问 |
| 通知机制 | ADS 规范有通知;本 SDK 按邮箱命令走 | 不是 SCADA/配方产品 |
ADS 协议基础
ADS 地址结构
每个 ADS 设备由唯一的地址标识:
- NetId — 6字节网络标识符,示例:192.168.1.10.1.1
- Port — 16位端口号,示例:851 (PLC Runtime)
索引组和偏移
ADS 使用索引组(Index Group)和索引偏移(Index Offset)来寻址数据:
- 0xF020 — PLC 输入映像,示例:读取输入状态
- 0xF030 — PLC 输出映像,示例:写入输出
- 0xF021 — PLC 标志区,示例:访问内部变量
- 0xF003 — ADS 规范中的符号访问索引;本 SDK 不提供符号名访问
主要应用场景
本 SDK 的 AoE 是 ADS 邮箱读写,不是符号名访问,也不是配方系统、SCADA 或 CANopen/Modbus/IO-Link/PROFIBUS 多协议网关。
网关设备
第三方从站若自己做协议转换,那是从站固件的事。本 SDK 不交付多协议网关,也不经 AoE 去“集成 CANopen / Modbus / IO-Link / PROFIBUS 子网”。
远程诊断和监控
功能:
- 实时读取设备状态
- 访问诊断缓冲区
- 远程参数调整
- 性能计数器读取
优势:
- 统一的访问接口
- 跨设备的标准化诊断
- 本 SDK 不把 AoE 做成 SCADA/HMI 产品
参数服务器
集中式配置管理:
- 存储设备配置参数
- 批量参数分发
- 配置模板管理
- 版本控制
应用场景:
- 多设备参数读写(索引组 + 偏移)
- 不是配方管理系统
分布式服务
服务类型:
- 数据记录 — 分布式数据采集,示例:多点温度监控
- 报警管理 — 集中报警处理,示例:故障汇总和通知
- 时间同步 — 若从站提供对应 ADS 服务;本 SDK 不附带配方下发
ADS 命令类型
基本命令
- Read (0x02) — 读取数据,应用:获取设备状态
- Write (0x03) — 写入数据,应用:设置参数
- Read/Write (0x09) — 原子读写操作,应用:参数交换
- Read State (0x04) — 读取设备状态,应用:健康检查
- Write Control (0x05) — 控制命令,应用:启动/停止
- Add Notification (0x06) — 添加变量通知,应用:事件订阅
- Delete Notification (0x07) — 删除通知,应用:取消订阅
符号访问
本 SDK 不提供符号名访问。寻址按索引组 / 索引偏移;不要按变量名、符号表或结构体名字去访问。
通知机制
变量变化通知:
- 客户端订阅特定变量
- 变量值改变时自动通知
- 支持死区和采样率配置
- 减少轮询开销
AoE 与其他协议对比
AoE vs CoE
- 来源 — AoE: Beckhoff ADS / CoE: CANopen
- 用途 — AoE: 高级服务和通信 / CoE: 设备配置和控制
- 路由 — AoE: 支持多级路由 / CoE: 直接访问
- 通知 — AoE: 内置通知机制 / CoE: 依赖 PDO
- 符号访问 — 本 SDK 的 AoE 不提供符号名访问 / CoE: 对象字典索引
- 标准化 — AoE: Beckhoff 特定 / CoE: 国际标准
AoE vs EoE
- 协议层 — AoE: 应用层(ADS) / EoE: 网络层(IP)
- 用途 — AoE: 专用服务 / EoE: 通用网络
- 效率 — AoE: 针对自动化优化 / EoE: 通用协议开销
- 学习曲线 — AoE: 需要了解 ADS / EoE: 熟悉 TCP/IP 即可
典型架构模式
模式1:不要当成网关产品
第三方 EtherCAT 网关从站若存在,配置方式看该从站文档。本 SDK 的 AoE 不是 CANopen/Modbus 多协议网关。
模式2:分布式服务
主站 ↔ AoE ↔ 多个从站(各自提供服务)
- 每个从站运行特定服务
- 主站作为客户端访问服务
- 从站间可通过路由互相通信
模式3:集中监控
多个客户端 ↔ AoE ↔ EtherCAT 网络 ↔ 所有设备
- 多个客户端并行发 ADS 邮箱请求(若从站支持)
- 不是 SCADA 集中监控产品
优势与限制
优势
- 功能强大 — 支持复杂的通信模式和服务
- 扩展性好 — 易于添加新服务和功能
- 效率高 — 专为自动化应用优化
- 灵活路由 — 支持复杂网络拓扑
- 标准 ADS — 兼容标准 ADS 服务接口
限制
- 生态特定 — 主要用于支持 ADS 的设备生态
- 学习曲线 — 需要了解 ADS 协议
- 文档依赖 — 依赖 ADS 协议规范文档
- 互操作性 — 与其他厂商设备集成需要转换
设备支持
支持 AoE 的设备类型
- Beckhoff 设备 — 原生支持(Beckhoff)
- 网关模块 — 第三方协议转换从站(若该从站自己实现;不是本 SDK 产品)
- 智能从站 — 高级从站控制器(部分厂商)
- 第三方设备 — 通过 SDK 实现(需要开发)
如何确认设备支持
- 查看 ESI 文件中的
<AoE />标签 - 阅读设备技术文档
- 查看是否提供 ADS 服务接口
Darra SDK 中的 AoE 支持
Darra SDK 提供 AoE 协议支持:
核心功能
- ADS 读写 — 按索引组 / 偏移的邮箱读写
- 不提供符号名访问
- 不是配方 / SCADA / 多协议网关
兼容性
- 兼容标准 ADS 协议
- 支持 ADS 设备访问
- 可与第三方 ADS 设备通信
开发建议
实现 AoE 服务器(从站侧)
如果您在开发支持 AoE 的从站:
-
实现基本 ADS 命令
- Read、Write、Read/Write
- Read State、Write Control
- 正确的错误代码返回
-
定义索引组映射
- 规划数据区域的索引组
- 文档化可访问的索引组 / 偏移
- 不要按符号表/变量名访问(本 SDK 无符号名访问)
-
实现通知机制
- 变量监控和死区检测
- 异步通知发送
- 管理订阅列表
-
路由支持
- 处理路由转发请求
- 维护路由表
- 实现地址解析
使用 AoE 客户端(主站侧)
如果您在开发使用 AoE 的应用:
-
地址管理
- 维护 NetId 和 Port 映射表
- 实现服务发现机制
- 处理地址变化
-
错误处理
- 超时和重试机制
- 友好的错误提示
- 日志记录
-
性能优化
- 按索引组批量读写
- 不要缓存符号名(本 SDK 无符号名访问)
实际应用案例
案例1:不要把 AoE 当成多协议网关
把 Modbus RTU / CANopen / IO-Link 接到 EtherCAT,属于从站或独立网关产品,不是本 SDK 的 AoE 能力。AoE 只做 ADS 邮箱读写。
案例2:分布式温度监控
需求:100 个测温点,集中监控和报警
方案:
- 10 个温度采集模块(每个 10 通道)
- 使用 AoE 通知机制:
- 订阅所有温度变量
- 设置报警阈值死区
- 温度超限自动通知
- 降低主站 CPU 负载(无需轮询)
案例3:配方 / SCADA 不在本 SDK
生产线配方切换、配方版本管理、SCADA 集中监控都不是 AoE 交付物。需要配方或 SCADA 时用专门系统,不要经本 SDK 的 AoE 去搭。
常见问题
AoE 只能用于 Beckhoff 设备吗?
不是。虽然 ADS 是 Beckhoff 开发的,但协议是公开的。任何设备都可以实现 AoE 支持,许多第三方网关和设备已支持。
AoE 和 CoE 能同时使用吗?
可以。一个设备可以同时支持多种邮箱协议。例如,使用 CoE 进行基本配置,使用 AoE 提供高级服务。
为什么要用 AoE 而不是 EoE?
- AoE 更轻量级,专为自动化优化
- EoE 更通用,支持所有 TCP/IP 应用
- 选择取决于具体需求和设备能力
如何学习 ADS 协议?
- 阅读公开的 ADS 协议规范
- 参考 ETG 标准与 ADS 服务接口说明
- 使用 Darra SDK 的 AoE 功能
- 实际连接支持 AoE 的设备测试