同步管理器 (SM) 与 FMMU
同步管理器 (SyncManager)
SM 保证数据一致性,防止读写冲突:
| SM | 类型 | 方向 | 用途 |
|---|---|---|---|
| SM0 | Mailbox | 主站→从站 | Mailbox 输出 |
| SM1 | Mailbox | 从站→主站 | Mailbox 输入 |
| SM2 | Buffered/PDO | 主站→从站 | 过程数据输出 |
| SM3 | Buffered/PDO | 从站→主站 | 过程数据输入 |
FMMU (现场总线内存管理单元)
FMMU 实现逻辑地址到物理地址的映射:
FMMU 使主站可以用统一的逻辑地址空间访问所有从站,无需关心物理地址细节。
PDO 映射配置
手动配置 PDO 映射示例
通过 SDO 手动配置 RxPDO 映射(主站→从站):
var slave = master.Slaves[0];
// 1. 禁用 RxPDO 映射(0x1600)
slave.CoE.SDOWrite<byte>(0x1600, 0x00, 0);
// 2. 配置要映射的对象
slave.CoE.SDOWrite<uint>(0x1600, 0x01, 0x60400010); // 控制字(0x6040,16位)
slave.CoE.SDOWrite<uint>(0x1600, 0x02, 0x607A0020); // 目标位置(0x607A,32位)
slave.CoE.SDOWrite<uint>(0x1600, 0x03, 0x60FF0020); // 目标速度(0x60FF,32位)
// 3. 启用 RxPDO 映射(写入映射对象数量)
slave.CoE.SDOWrite<byte>(0x1600, 0x00, 3);
// 4. 将 PDO 映射分配到同步管理器 SM2
slave.CoE.SDOWrite<ushort>(0x1C12, 0x00, 0); // 禁用 SM2 PDO 分配
slave.CoE.SDOWrite<ushort>(0x1C12, 0x01, 0x1600); // 分配 RxPDO 0x1600 到 SM2
slave.CoE.SDOWrite<ushort>(0x1C12, 0x00, 1); // 启用(1个PDO)
工具推荐
建议使用 DARRA EtherCAT Master Tools 进行配置:
- 一键配置同步管理器 - 自动识别设备并配置 SM
- 一键导出配置文件 - 导出 XML 配置文件用于生产环境部署
- 可视化 PDO 映射编辑器 - 图形化界面一键配置 PDO
- 自动校验 - 检查配置有效性,避免配置错误
手动配置适合学习和调试,生产环境强烈建议使用工具配置以提高效率和可靠性。