TECH NOTE
EtherCAT PDO 与 CSP 控制笔记:固定映射、周期插值与反馈链路
约 3 分钟阅读
1309 字
# EtherCAT# CiA 402# 伺服控制# PDO# CSP
1. EtherCAT 通信逻辑
- EtherCAT 使用 SM(Sync Manager,同步管理器) 和 FMMU(Fieldbus Memory Management Unit,现场总线内存管理单元)。
- 一个通信周期只发送一个标准以太网数据帧。
- 采用类似“列车”的机制:所有电机的 PDO 数据都放在同一个报文中。
- EtherCAT 采用“飞越传输”(on-the-fly processing):报文经过从站时,从站直接读取或写入属于自己的数据区。
2. PDO 内存布局
- PDO 使用固定的内存布局。
- 运行期间不能临时改变 PDO 的长度、排列顺序或数据种类。
- RxPDO 用于下发控制指令,TxPDO 用于上传状态与反馈。
2.1 RxPDO:控制器 → 驱动器
| 对象索引 | 名称 | 说明 |
|---|---|---|
0x6040 |
Controlword | 控制字 |
0x607A |
Target position | 目标位置 |
0x60FF |
Target velocity | 目标速度 |
0x6071 |
Target torque | 目标转矩 |
0x60B1 |
Velocity offset | 速度偏置 |
0x6060 |
Modes of operation | 运行模式 |
2.2 TxPDO:驱动器 → 控制器
| 对象索引 | 名称 | 说明 |
|---|---|---|
0x6041 |
Statusword | 状态字 |
0x6064 |
Position actual value | 实际位置 |
0x606C |
Velocity actual value | 实际速度 |
0x6077 |
Torque actual value | 实际转矩 |
0x603F |
Error code | 故障码 |
0x300B |
DC bus voltage | 母线电压 |
0x300C |
Current RMS value | 电流有效值 |
0x3009 |
Motor temperature | 电机温度 |
0x300F |
Drive-board temperature | 驱动板温度 |
0x6061 |
Modes of operation display | 当前控制模式 |
0x3009、0x300B、0x300C、0x300F属于厂商自定义对象,准确含义应以驱动器对象字典为准。
3. 控制模式与 PDO 字段
涉及的同步控制模式:
- CSP:Cyclic Synchronous Position,周期同步位置模式
- CSV:Cyclic Synchronous Velocity,周期同步速度模式
- CST:Cyclic Synchronous Torque,周期同步转矩模式
PDO 布局可以固定,但驱动器会根据当前模式选择需要处理的字段。例如在 CST 模式下,驱动器会忽略 Target velocity。
4. CSP 插值与目标位置下发
- CSP 进行 5 次插值,每
1 ms下发一次中间位置。 - 电机移动过程中:持续下发中间位置。
- 电机到达目标后:持续下发最终位置,不能停止刷新目标值。
- 新的 CSP 目标值加入环形队列,队列容量为
8。
简化流程:
1 | 上层目标位置 |
5. 反馈路径
sdk中的反馈链路为:
1 | Axis Feedback → Controller → IPC → C++ read_feedback() → demo |
即轴反馈先由控制器采集,再传至 IPC,最后由 C++ 接口 read_feedback() 提供给演示程序或上层应用。
INTERACTION / 讨论与互动
评论与表情点赞