4、通信协议配置:EtherCAT总线配置、CANopen协议配置、脉冲方向模式配置

通信协议这块,说白了就是让两个轴“说同一种语言”。

我见过不少工程师,硬件接得没问题,电机也转,但就是同步精度上不去。查到最后,往往是通信配置里某个参数没对齐。嗯,这里咱们得仔细捋一捋。

4.1 EtherCAT总线配置

EtherCAT是我个人最常用的总线方案。为什么?因为它快,而且确定性好。你想想看,在双轴同步场景下,两个轴的位置指令如果差了几微秒,那同步误差可能就放大到几个脉冲了。

配置EtherCAT,核心就三步:

  1. 设置站号(Station Alias):每个从站必须有唯一的站号。我习惯用拨码开关或者EEPROM来写死,避免上电后地址冲突。
  2. 配置PDO映射:说白了,就是告诉主站你要收发哪些数据。对于双轴同步,至少需要映射目标位置、实际位置、控制字、状态字。
  3. 设置DC同步模式:这是EtherCAT的精髓。分布式时钟能让所有从站的时间基准统一到纳秒级。

关键参数:

  • Sync0周期:通常设为位置环周期的整数倍,比如1ms或500μs
  • Shift Time:根据总线抖动调整,我一般设50~100μs

我曾经在一个项目中,两个轴明明配置一样,但同步误差总在±5个脉冲左右晃。查了两天,最后发现是其中一个轴的DC同步没使能。从那以后,我每次配置完都会用Wireshark抓一下总线报文,确认DC同步标志位已经置1。

// 示例:EtherCAT从站配置代码片段(基于SOEM库)
ec_slave[0].configadr = 1;      // 站号1
ec_slave[1].configadr = 2;      // 站号2

// 配置PDO:控制字 + 目标位置
ec_config_map(&IOmap);
ec_configdc();  // 使能分布式时钟

我的小技巧:上电后先读一下从站的DC系统时间寄存器,如果两个轴的时间差超过1μs,建议检查网线质量和拓扑结构。

4.2 CANopen协议配置

CANopen虽然比EtherCAT慢,但在一些老设备或成本敏感的项目里还是很常见。配置CANopen,说白了就是调好对象字典。

双轴同步用CANopen,我建议重点关注这几个对象:

索引 对象名称 说明
0x6040 控制字 控制电机启停、使能
0x607A 目标位置 主轴的指令位置
0x6064 实际位置 从轴反馈位置
0x6081 电子齿轮比分子 同步比例系数
0x6082 电子齿轮比分母 同步比例系数

配置步骤其实不复杂:

  • 设置节点ID(1~127),不能重复
  • 配置PDO映射,把上面这些对象映射到TPDO和RPDO
  • 设置同步周期,CANopen一般用SYNC报文来同步

注意:CANopen的波特率必须统一。我见过有人把主站设成500k,从站设成250k,结果总线直接瘫痪。嗯,这种低级错误我也犯过。

另外,电子齿轮比的分子分母一定要用整数。我曾经遇到一个客户,非要设成0.333这种小数,结果驱动器直接报错。说白了,电子齿轮比就是两个整数相除,别想着用浮点数。

// CANopen SDO写电子齿轮比示例
// 分子设为 2,分母设为 1,即从轴转2圈对应主轴转1圈
SDO_Write(0x6081, 0x00, 2);  // 分子
SDO_Write(0x6082, 0x00, 1);  // 分母

4.3 脉冲方向模式配置

脉冲方向模式,说白了就是最传统的控制方式。一个轴发脉冲,另一个轴收脉冲。虽然简单,但坑也不少。

配置脉冲方向模式,核心参数就这几个:

  • 脉冲类型:PULSE+DIR(最常见),或者CW/CCW
  • 脉冲极性:上升沿有效还是下降沿有效
  • 最大脉冲频率:一般不超过200kHz,否则容易丢步
  • 滤波时间:我习惯设1~5μs,滤掉毛刺

双轴同步的关键:主轴发出的脉冲频率,决定了从轴的速度。如果主轴突然加速,从轴必须立刻跟上。所以脉冲频率的加减速时间常数要匹配。

我曾经在一个包装机械项目里,主轴用PLC发脉冲,从轴用伺服驱动器接收。结果一跑高速,从轴就丢步。查了半天,发现是脉冲线太长,信号衰减了。后来加了差分驱动(RS422),问题解决。

避坑指南:脉冲线一定要用双绞屏蔽线,而且屏蔽层单端接地。我曾经因为没接地,现场干扰大得离谱,两个轴的位置误差直接到了几十个脉冲。

配置示例(以台达ASDA-A2伺服为例):

// 参数设置
P1-00 = 0x0002  // 脉冲+方向模式
P1-01 = 0x0000  // 脉冲极性:正逻辑
P1-44 = 100     // 电子齿轮比分子
P1-45 = 1       // 电子齿轮比分母
P1-46 = 0       // 脉冲输入滤波:1μs

你想想看,脉冲方向模式虽然简单,但它的同步精度完全取决于脉冲频率的稳定性。如果主轴脉冲有抖动,从轴就会跟着抖。所以,我建议在主轴端加一个电子齿轮功能,把脉冲频率做一下平滑处理。

嗯,通信协议配置这块,说白了就是选对协议、配好参数、注意细节。EtherCAT适合高速高精度,CANopen适合中等要求,脉冲方向模式适合简单应用。选哪个,看你的项目需求。

双轴同步通信协议配置知识体系 EtherCAT • 站号配置 • PDO映射 • DC同步模式 • Sync0周期 • Shift Time • 总线抖动补偿 • 分布式时钟 • 纳秒级同步 CANopen • 节点ID设置 • 对象字典配置 • PDO/SDO映射 • 电子齿轮比 • SYNC同步 • 波特率统一 • 控制字/状态字 • 整数比例因子 脉冲方向模式 • PULSE+DIR • CW/CCW模式 • 脉冲极性设置 • 最大频率限制 • 滤波时间常数 • 差分驱动(RS422) • 双绞屏蔽线 • 加减速匹配 高速高精度 → EtherCAT | 中等要求 → CANopen | 简单应用 → 脉冲方向

总结一下:不管用哪种协议,双轴同步的核心就是让两个轴的时间基准和位置基准对齐。配置时多花10分钟检查参数,现场调试就能少花2小时。

专注资料整理