跳到主要内容

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 提供符号名访问。寻址按索引组 / 索引偏移;不要按变量名、符号表或结构体名字去访问。

通知机制

变量变化通知

  1. 客户端订阅特定变量
  2. 变量值改变时自动通知
  3. 支持死区和采样率配置
  4. 减少轮询开销

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 实现(需要开发)

如何确认设备支持

  1. 查看 ESI 文件中的 <AoE /> 标签
  2. 阅读设备技术文档
  3. 查看是否提供 ADS 服务接口

Darra SDK 中的 AoE 支持

Darra SDK 提供 AoE 协议支持:

核心功能

  • ADS 读写 — 按索引组 / 偏移的邮箱读写
  • 提供符号名访问
  • 不是配方 / SCADA / 多协议网关

兼容性

  • 兼容标准 ADS 协议
  • 支持 ADS 设备访问
  • 可与第三方 ADS 设备通信

开发建议

实现 AoE 服务器(从站侧)

如果您在开发支持 AoE 的从站:

  1. 实现基本 ADS 命令

    • Read、Write、Read/Write
    • Read State、Write Control
    • 正确的错误代码返回
  2. 定义索引组映射

    • 规划数据区域的索引组
    • 文档化可访问的索引组 / 偏移
    • 不要按符号表/变量名访问(本 SDK 无符号名访问)
  3. 实现通知机制

    • 变量监控和死区检测
    • 异步通知发送
    • 管理订阅列表
  4. 路由支持

    • 处理路由转发请求
    • 维护路由表
    • 实现地址解析

使用 AoE 客户端(主站侧)

如果您在开发使用 AoE 的应用:

  1. 地址管理

    • 维护 NetId 和 Port 映射表
    • 实现服务发现机制
    • 处理地址变化
  2. 错误处理

    • 超时和重试机制
    • 友好的错误提示
    • 日志记录
  3. 性能优化

    • 按索引组批量读写
    • 不要缓存符号名(本 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 协议?

  1. 阅读公开的 ADS 协议规范
  2. 参考 ETG 标准与 ADS 服务接口说明
  3. 使用 Darra SDK 的 AoE 功能
  4. 实际连接支持 AoE 的设备测试