跳到主要内容

AoE - ADS over EtherCAT

什么是 AoE?

AoE (ADS over EtherCAT) 是 Beckhoff 的 ADS 协议在 EtherCAT 上的实现,提供可路由的客户端-服务器通信机制

AoE 主要用于实现设备间的高级通信功能,特别适合网关、诊断和分布式服务应用。

协议背景

ADS (Automation Device Specification) 是 Beckhoff 开发的通信协议,广泛用于 TwinCAT 系统。AoE 将 ADS 集成到 EtherCAT,扩展了设备间通信能力。

核心特性

特性说明优势
可路由支持多级路由,跨网段通信灵活的网络拓扑
客户端-服务器标准的请求-响应模式易于理解和实现
并行服务支持多个服务同时运行功能模块化
低开销高效的协议设计适合嵌入式系统
符号访问通过名称访问变量便于编程和维护
通知机制变量变化自动通知实现事件驱动

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 — 符号访问,示例:通过名称访问

主要应用场景

网关设备

协议转换网关

  • EtherCAT-CANopen — EtherCAT 主站控制 CANopen 子网络,应用:集成 CANopen 设备
  • EtherCAT-Modbus — Modbus 设备接入 EtherCAT,应用:工业传感器集成
  • EtherCAT-IO-Link — IO-Link 主站功能,应用:智能传感器管理
  • EtherCAT-PROFIBUS — PROFIBUS DP 从站集成,应用:遗留系统整合

AoE 在网关中的作用

  • 提供标准化的配置接口
  • 远程诊断和监控
  • 子网络状态报告
  • 参数批量配置

远程诊断和监控

功能

  • 实时读取设备状态
  • 访问诊断缓冲区
  • 远程参数调整
  • 性能计数器读取

优势

  • 统一的访问接口
  • 跨设备的标准化诊断
  • 支持远程专家系统
  • 集成到 SCADA/HMI

参数服务器

集中式配置管理

  • 存储设备配置参数
  • 批量参数分发
  • 配置模板管理
  • 版本控制

应用场景

  • 多设备参数同步
  • 配方管理系统
  • 生产线快速切换
  • 灾难恢复

分布式服务

服务类型

  • 数据记录 — 分布式数据采集,示例:多点温度监控
  • 报警管理 — 集中报警处理,示例:故障汇总和通知
  • 配方管理 — 生产配方下发,示例:不同产品参数切换
  • 时间同步 — 分布式时间校准,示例:日志时间戳统一

ADS 命令类型

基本命令

  • Read (0x02) — 读取数据,应用:获取设备状态
  • Write (0x03) — 写入数据,应用:设置参数
  • Read/Write (0x09) — 原子读写操作,应用:参数交换
  • Read State (0x04) — 读取设备状态,应用:健康检查
  • Write Control (0x05) — 控制命令,应用:启动/停止
  • Add Notification (0x06) — 添加变量通知,应用:事件订阅
  • Delete Notification (0x07) — 删除通知,应用:取消订阅

符号访问

通过变量名访问数据:

  • 通过名称读取 — 使用符号名而非地址,优势:代码可读性高
  • 符号信息查询 — 获取变量类型和大小,优势:动态适应
  • 结构体访问 — 访问复杂数据结构,优势:组织清晰

通知机制

变量变化通知

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

AoE 与其他协议对比

AoE vs CoE

  • 来源 — AoE: Beckhoff ADS / CoE: CANopen
  • 用途 — AoE: 高级服务和通信 / CoE: 设备配置和控制
  • 路由 — AoE: 支持多级路由 / CoE: 直接访问
  • 通知 — AoE: 内置通知机制 / CoE: 依赖 PDO
  • 符号访问 — AoE: 原生支持 / CoE: 需要额外实现
  • 标准化 — AoE: Beckhoff 特定 / CoE: 国际标准

AoE vs EoE

  • 协议层 — AoE: 应用层(ADS) / EoE: 网络层(IP)
  • 用途 — AoE: 专用服务 / EoE: 通用网络
  • 效率 — AoE: 针对自动化优化 / EoE: 通用协议开销
  • 学习曲线 — AoE: 需要了解 ADS / EoE: 熟悉 TCP/IP 即可

典型架构模式

模式1:网关架构

主站 ↔ AoE ↔ EtherCAT 网关 ↔ 子网络(CANopen/Modbus)

  • 主站通过 AoE 配置和监控网关
  • 网关管理子网络设备
  • 双向数据交换和状态报告

模式2:分布式服务

主站 ↔ AoE ↔ 多个从站(各自提供服务)

  • 每个从站运行特定服务
  • 主站作为客户端访问服务
  • 从站间可通过路由互相通信

模式3:集中监控

多个客户端 ↔ AoE ↔ EtherCAT 网络 ↔ 所有设备

  • HMI、SCADA、诊断工具并行访问
  • 统一的数据访问接口
  • 实时状态和历史数据

优势与限制

优势

  • 功能强大 — 支持复杂的通信模式和服务
  • 扩展性好 — 易于添加新服务和功能
  • 效率高 — 专为自动化应用优化
  • 灵活路由 — 支持复杂网络拓扑
  • TwinCAT 集成 — 与 TwinCAT 无缝集成

限制

  • Beckhoff 特定 — 主要用于 Beckhoff 生态
  • 学习曲线 — 需要了解 ADS 协议
  • 文档依赖 — 依赖 Beckhoff 文档
  • 互操作性 — 与其他厂商设备集成需要转换

设备支持

支持 AoE 的设备类型

  • Beckhoff 设备 — 原生支持(Beckhoff)
  • 网关模块 — 协议转换网关(多家厂商)
  • 智能从站 — 高级从站控制器(部分厂商)
  • 第三方设备 — 通过 SDK 实现(需要开发)

如何确认设备支持

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

Darra SDK 中的 AoE 支持

Darra SDK 提供 AoE 协议支持:

核心功能

  • ADS 读写 — 支持基本 ADS 读写操作
  • 符号访问 — 通过变量名访问数据
  • 通知服务 — 变量变化通知机制
  • 路由管理 — 配置 ADS 路由表
  • 诊断工具 — ADS 通信诊断

兼容性

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

开发建议

实现 AoE 服务器(从站侧)

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

  1. 实现基本 ADS 命令

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

    • 规划数据区域的索引组
    • 文档化所有可访问的数据
    • 实现符号表(如需要)
  3. 实现通知机制

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

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

使用 AoE 客户端(主站侧)

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

  1. 地址管理

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

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

    • 批量读写操作
    • 使用通知代替轮询
    • 缓存符号信息

实际应用案例

案例1:Modbus 网关

需求:将 20 个 Modbus RTU 设备接入 EtherCAT

方案

  • 使用 EtherCAT-Modbus 网关
  • 通过 AoE 配置网关:
    • Modbus 从站地址映射
    • 寄存器地址配置
    • 轮询周期设置
  • 通过 AoE 监控:
    • 子网络通信状态
    • 错误计数和诊断
    • 设备在线状态

案例2:分布式温度监控

需求:100 个测温点,集中监控和报警

方案

  • 10 个温度采集模块(每个 10 通道)
  • 使用 AoE 通知机制:
    • 订阅所有温度变量
    • 设置报警阈值死区
    • 温度超限自动通知
  • 降低主站 CPU 负载(无需轮询)

案例3:配方管理系统

需求:生产线快速切换产品配方

方案

  • 集中配方服务器(AoE 服务)
  • 存储多个产品配方
  • 通过 AoE 批量下发:
    • 读取配方参数
    • 写入到各设备
    • 验证配置成功
  • 支持配方版本管理

常见问题

AoE 只能用于 Beckhoff 设备吗?

不是。虽然 ADS 是 Beckhoff 开发的,但协议是公开的。任何设备都可以实现 AoE 支持,许多第三方网关和设备已支持。

AoE 和 CoE 能同时使用吗?

可以。一个设备可以同时支持多种邮箱协议。例如,使用 CoE 进行基本配置,使用 AoE 提供高级服务。

为什么要用 AoE 而不是 EoE?

  • AoE 更轻量级,专为自动化优化
  • EoE 更通用,支持所有 TCP/IP 应用
  • 选择取决于具体需求和设备能力

如何学习 ADS 协议?

  1. 阅读 Beckhoff 的 ADS 协议规范
  2. 查看 TwinCAT 文档和示例
  3. 使用 Darra SDK 的 AoE 功能
  4. 实际连接支持 AoE 的设备测试