跳到主要内容

SoE — 伺服驱动参数

SoE(Servo over EtherCAT)用于读写 SERCOS 兼容伺服驱动器的 IDN 参数。

核心功能

  • IDN 读写 — 支持多种数据类型(int/float/string 等)
  • 参数元数据 — 获取名称、单位、最小/最大值、默认值
  • PDO 映射 — 获取 AT(输入)和 MDT(输出)映射信息
  • 多驱动器 — 一个从站内多个逻辑驱动器的独立访问

配置工具:在 SoE Tab 中浏览参数列表,读写参数值,查看元数据。

导出方式选配 — 在导出窗口中勾选 SoE 参数配置 即可在代码中生成 IDN 参数读写。


SDK 用法

var soe = slave.SoE;

// ── 读取参数(多种类型)──
int? cycleTime = soe.ReadInt32(0x0001); // 循环时间
string name = soe.ReadString(0x0002); // 设备名称
float? speed = soe.ReadFloat(0x0040); // 速度

// ── 写入参数 ──
soe.WriteInt32(0x0001, 1000000); // 设置循环时间: 1ms

// ── 参数元数据 ──
var info = soe.GetParameterInfo(0x0040);
Console.WriteLine($"{info.Name} ({info.Unit}): {info.FormattedMinValue} ~ {info.FormattedMaxValue}");

// ── 列出所有参数 ──
foreach (var idn in soe.GetAvailableIDNs())
Console.WriteLine($"IDN {idn}: {soe.ReadName(idn)}");

// ── PDO 映射信息 ──
var mapping = soe.GetIDNMapping();
Console.WriteLine($"AT: {mapping.ATByteSize} 字节, MDT: {mapping.MDTByteSize} 字节");

导出的代码

// ── SoE 参数(由工具根据当前值自动生成)──
var soe = slave.SoE;
soe.WriteInt32(0x0001, 1000000); // 循环时间 = 1ms
soe.WriteFloat(0x0040, 3000.0f); // 速度限制 = 3000 rpm

更多

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