跳到主要内容

AoE — ADS 通信

AoE(ADS over EtherCAT)用于与支持 Beckhoff ADS 协议的设备通信。

核心功能

  • 索引组读写 — 通过 IndexGroup + IndexOffset 读写设备数据
  • 设备信息 — 获取设备版本号、构建号、名称
  • 状态控制 — 读取/切换 ADS 状态(Idle/Run/Stop/Config 等)
  • 命令发送 — 向指定端口发送自定义命令
  • 事件订阅 — 按周期或数据变化订阅通知事件
  • 网络配置 — 配置源/目标 NetID 和端口号

配置工具:在 AoE Tab 中执行索引组读写、查看设备信息、配置网络参数。

导出方式选配 — 在导出窗口中勾选 AoE 通信 即可在代码中生成 ADS 读写配置。


SDK 用法

var aoe = slave.AoE;

// ── 设备信息 ──
var info = aoe.ReadDeviceInfo();
if (info.success)
Console.WriteLine($"设备: {info.deviceName} v{info.majorVer}.{info.minorVer}.{info.build}");

// ── 状态查询 ──
var state = aoe.ReadState();
Console.WriteLine($"ADS 状态: {aoe.GetAdsStateDescription(state.adsState)}");

// ── 索引组读写 ──
byte[] data = aoe.Read(indexGroup: 0x4020, indexOffset: 0, length: 4);
aoe.Write(indexGroup: 0x4020, indexOffset: 0, data: new byte[] { 0x01, 0x00, 0x00, 0x00 });

// ── 状态控制 ──
aoe.WriteControl(adsState: 5 /* Run */, deviceState: 0);

// ── 事件订阅(数据变化时通知)──
uint? handle = aoe.AddNotification(
indexGroup: 0x4020, indexOffset: 0, length: 4,
transMode: 2, // OnChange
maxDelay: 0,
cycleTime: 1000000 // 100ns 单位 = 100ms
);

// 取消订阅
// aoe.DelNotification(handle.Value);

导出的代码

// ── AoE 配置(由工具自动生成)──
var aoe = slave.AoE;
var config = aoe.GetConfig();
// Target NetID / Port / Source NetID / Port

var info = aoe.ReadDeviceInfo();
Console.WriteLine($"设备: {info.deviceName} v{info.majorVer}.{info.minorVer}");

更多

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