2. 运动控制基础
在进入 EtherCAT 运动控制实战之前,必须先建立一套统一的“语言体系”。运动控制领域的概念术语高度凝练,轴、坐标系、插补、回零、跟随误差等词汇在工程现场频繁出现,但初学者往往因为概念边界模糊,导致后续阅读手册、配置驱动器、编写运动程序时产生误解。本章将围绕运动控制的核心概念、关键术语以及系统硬件组成展开,为后续 EtherCAT 总线控制打下坚实的认知基础。
一、核心概念与术语
1. 轴(Axis)
轴是运动控制中最基本的执行单元,代表一个独立可控的直线运动或旋转运动自由度。在物理层面,一根轴通常对应一台伺服电机、一台步进电机或一个液压/气动执行器;在控制层面,轴是一个逻辑对象,包含位置指令、实际位置、速度、力矩、报警状态等属性。需要特别注意的是:物理轴与逻辑轴并不总是一一对应。例如,在龙门同步控制中,两个物理轴(左、右电机)通过电子齿轮耦合为一个逻辑轴;而在某些多轴插补场景中,一个物理轴也可能被映射到多个逻辑任务中。
轴的核心参数包括:
- 轴号(Axis ID):在控制系统中唯一标识轴的编号,EtherCAT 从站地址与轴号的映射关系通常在初始化时配置。
- 单位(Unit):常用脉冲数(pulse)、毫米(mm)、度(°)或用户自定义单位。EtherCAT 的 CiA 402 规范中通过“位置分辨率”将用户单位与编码器计数关联。
- 回零方式(Homing Mode):绝对值编码器无需回零,增量式编码器则需要通过限位开关、原点开关或力矩限位等方式建立机械原点。
- 软限位/硬限位:软限位由控制器内部设定位置范围,硬限位由外部开关信号直接切断使能或触发急停。
2. 坐标系(Coordinate System)
坐标系用于描述运动对象在空间中的位置与姿态。在运动控制中,至少需要区分以下三个层级:
- 机械坐标系(Machine Coordinate System, MCS):固定在机床或设备基座上的坐标系,是设备出厂标定的绝对参考。
- 工件坐标系(Work Coordinate System, WCS):固定在工件或夹具上的坐标系,编程时通常在此坐标系下描述目标轨迹,便于对刀和偏移。
- 用户坐标系(User Coordinate System, UCS):由操作者临时定义的参考系,例如在机器人示教中,将工具中心点(TCP)所在坐标系作为用户坐标系。
在 EtherCAT 运动控制中,坐标系的变换通常由上位控制器(如 IPC + 运动控制卡)完成,而总线上的各从站轴只负责执行各自轴的位置指令。对于多轴联动(如 3 轴直角坐标机器人),控制器需要将工件坐标系中的目标点(X, Y, Z)通过运动学反解,转换为各物理轴的位置指令。
3. 插补(Interpolation)
插补是运动控制的核心算法,指在已知的路径关键点(型值点)之间,实时计算出中间点的位置指令,使各轴协调运动,形成预期的轨迹。插补分为粗插补与精插补两级:粗插补由上位机完成,周期通常为 1~10 ms,计算路径上的中间点;精插补由专用运动控制芯片或实时内核完成,周期为 0.1~1 ms,对粗插补点之间进行线性或圆弧细分,输出平滑的位置增量。
常见的插补方式包括:
- 直线插补(G01):在两点之间沿直线运动,各轴按距离比例分配速度。
- 圆弧插补(G02/G03):在指定平面内沿圆弧运动,需要给出圆心或半径。
- 样条插补:通过 B 样条或 NURBS 曲线拟合复杂自由曲面轨迹,适用于模具加工。
关键理解:插补不是简单的“路径规划”,它必须考虑各轴的最大速度、加速度、加加速度(Jerk)限制,否则会导致轨迹轮廓误差或机械振动。在 EtherCAT 网络中,插补周期与总线同步周期必须匹配,通常采用 DC(Distributed Clock)同步模式,使各从站轴在同一时刻锁存指令与反馈。
4. 其他重要术语
| 术语 | 含义 | 工程示例 |
|---|---|---|
| 跟随误差 | 指令位置与实际位置的差值 | 龙门双轴同步时,两轴跟随误差之差应小于 0.01 mm |
| 电子齿轮比 | 从轴速度/位置与主轴的比例关系 | 印刷机色标辊与牵引辊的同步比例 |
| 凸轮曲线 | 从轴位置随主轴位置变化的非线性函数 | 包装机械的横封刀运动曲线 |
| 使能(Enable) | 允许驱动器向电机输出力矩的状态 | 急停后必须重新使能才能运动 |
| 回零(Homing) | 建立机械原点与控制器坐标的映射 | 每次上电后执行一次回零 |
二、运动控制系统的组成
一个完整的运动控制系统,无论采用脉冲接口、模拟量接口还是 EtherCAT 总线接口,其逻辑组成都包含以下五个层级。理解这些层级之间的数据流与控制流,是进行系统调试和故障排查的基础。
1. 人机交互层(HMI / 上位机)
负责操作员指令输入、状态监控与程序管理。常见形式包括触摸屏、PC 上的组态软件、或基于 C#/C++ 开发的自定义界面。该层通过以太网、USB 或 PCIe 与运动控制器通信,下发加工程序、启动/停止命令,并显示各轴位置、报警信息。
2. 运动控制层(Motion Controller)
运动控制层是系统的“大脑”,负责插补运算、逻辑控制、回零流程、限位处理等。在 EtherCAT 系统中,运动控制器通常表现为:
- 独立式运动控制卡(如雷赛 DMC-E3032、固高 GTS 系列),插入工控机 PCIe 插槽;
- 嵌入式运动控制器(如正运动 VPLC 系列),运行实时操作系统;
- 软运动控制(如 TwinCAT、CODESYS SoftMotion),基于 Windows + 实时扩展。
3. 总线通信层(EtherCAT 主站)
EtherCAT 主站负责管理网络拓扑、刷新过程数据、处理分布式时钟同步。主站通常集成在运动控制器内部,通过标准以太网物理层(RJ45 或 SFP)向下连接从站。主站的核心任务包括:
- 周期性发送过程数据帧(位置指令、控制字);
- 接收从站反馈(实际位置、状态字、跟随误差);
- 执行 DC 同步,确保所有从站同时采样/输出;
- 处理非周期性邮箱通信(SDO 参数读写)。
4. 从站驱动层(伺服驱动器 + 电机)
EtherCAT 从站通常是伺服驱动器(如台达 ASDA-A3、汇川 IS620N、松下 A6 等),它们接收主站下发的目标位置或速度指令,通过内部电流环、速度环、位置环三环控制,驱动电机旋转。从站同时采集编码器信号,将实际位置通过过程数据对象(PDO)回传主站。部分从站还支持扩展 I/O 模块,用于接入限位开关、原点开关、气缸电磁阀等。
5. 机械执行层(传动机构与负载)
电机通过联轴器、丝杠、同步带、减速机等传动机构驱动负载运动。机械系统的刚度、惯量、间隙、摩擦特性直接影响运动控制的效果。例如,丝杠的导程决定了电机旋转一圈对应的直线位移,减速比则影响分辨率与输出力矩。
工程提示:在 EtherCAT 系统调试中,务必先确认“从站拓扑顺序”与“轴号映射”一致。例如,第一个从站(站地址 0)对应轴 0,第二个从站(站地址 1)对应轴 1。若拓扑顺序错误,会导致轴指令发到错误的驱动器上,造成设备碰撞风险。
三、EtherCAT 运动控制系统的数据流与同步机制
与传统的脉冲方向控制不同,EtherCAT 采用集总帧通信方式:主站发送一帧数据,依次经过每个从站,每个从站在帧经过时“顺手”取出自己的输出数据并插入自己的输入数据,帧到达末端后由最后一个从站返回主站。这种“处理-on-the-fly”机制极大提高了通信效率。
在运动控制中,最关键的是分布式时钟(DC)同步。所有从站通过 DC 机制共享同一个系统时间基准,主站以固定的周期(如 1 ms)发送同步帧,各从站在接收到同步信号后,同时锁存编码器位置并更新 PWM 输出。这样保证了轴 0 和轴 1 的位置采样时刻完全一致,避免了因先后采样导致的轮廓误差。
// 典型 EtherCAT 运动控制周期任务伪代码(1ms 周期)
void CyclicTask_1ms()
{
// 1. 读取所有从站实际位置(PDO 输入)
for (int i = 0; i < axis_count; i++)
{
actual_pos[i] = ecat_slave[i].input.actual_position;
}
// 2. 执行插补运算,生成各轴目标位置
double target_pos[axis_count];
InterpolateLine(&target_pos[0], current_cmd, next_cmd, t);
// 3. 写入各从站目标位置(PDO 输出)
for (int i = 0; i < axis_count; i++)
{
ecat_slave[i].output.target_position = target_pos[i];
}
// 4. 触发 EtherCAT 帧发送(DC 同步)
Ecat_SendFrame();
}
四、案例:三轴直角机器人 EtherCAT 控制架构
以典型的 3 轴直角坐标机械手(X/Y/Z)为例,其运动控制系统组成如下:
- 上位机:工控机运行 C# 应用程序,通过 TCP/IP 与运动控制器通信,下发取放料坐标点。
- 运动控制器:采用正运动 VPLC 系列,内置 EtherCAT 主站,执行直线插补与回零逻辑。
- EtherCAT 从站:3 台台达 ASDA-A3 伺服驱动器,分别驱动 X、Y、Z 轴电机,每台驱动器配备 2500 线增量编码器(电子 4 倍频后为 10000 pulse/rev)。
- 传动机构:X 轴同步带传动,减速比 1:3,带轮周长 120 mm;Y 轴丝杠导程 10 mm;Z 轴丝杠导程 5 mm。
- I/O 从站:一个 16 入/16 出的数字量 I/O 从站,接入原点开关、正负限位、真空吸盘电磁阀。
在该系统中,运动控制器将工件坐标系中的目标点(如 X=200 mm, Y=50 mm, Z=-10 mm)通过运动学反解,转换为各轴脉冲指令。由于 X 轴为同步带传动,其脉冲当量为:
X轴脉冲当量 = 带轮周长 / (编码器分辨率 × 减速比)
= 120 mm / (10000 × 3)
= 0.004 mm/pulse
Y 轴与 Z 轴为丝杠传动,脉冲当量分别为 0.001 mm/pulse 和 0.0005 mm/pulse。控制器在插补时,会根据各轴脉冲当量将目标位置转换为各轴独立的脉冲数,再通过 EtherCAT 周期下发。
五、常见误区与复盘
误区一:混淆“轴”与“电机”。一台电机不一定只对应一根逻辑轴。例如,在龙门同步中,两台电机共同驱动一根横梁,若控制器只识别为两个独立轴,则无法实现同步纠偏。正确做法是在控制器中配置“龙门同步”功能,将两个物理轴绑定为一个逻辑轴组。
误区二:忽略坐标系原点定义。在调试中,若工件坐标系原点与机械原点不重合,且未正确设置偏移量,则所有目标点都会产生固定偏差。例如,机械原点在 X=0 处,而工件原点在 X=50 mm 处,若未设置 G54 偏移,程序中的 X=0 实际会运动到机械 X=50 mm 位置,导致撞机。
误区三:插补周期与总线周期不匹配。若上位机插补周期为 2 ms,而 EtherCAT 同步周期为 1 ms,则会出现指令“断档”,导致轨迹抖动。正确做法是将插补周期设置为总线周期的整数倍(如 1 ms 插补,1 ms 总线周期),或采用“前馈+锁存”机制。
复盘建议:在每次调试前,先绘制一张系统组成框图,标注各轴的物理参数(脉冲当量、减速比、行程)、坐标系偏移量、回零方式。这张图是排查一切位置偏差、轨迹异常的第一手依据。同时,务必在控制器中开启“跟随误差超限报警”,当实际位置与指令位置偏差超过设定阈值(如 0.1 mm)时立即停止运动,避免机械损坏。