3. MECHATROLINK帧结构与通信周期

MECHATROLINK 的通信行为可以理解为一条严格按时间节拍运行的总线:主站周期性发出命令帧,从站按同一节拍返回响应帧。要真正用好 Sigma 系列伺服,必须同时掌握三件事——帧里有什么、数据域怎么分、周期怎么定。这三者共同决定了控制精度、响应延迟和可挂载的从站数量。

命令帧与响应帧的格式

MECHATROLINK 采用主从轮询结构,一帧由若干“域”顺序拼接而成。以 MECHATROLINK-II 的 17 字节标准帧为例,其字段顺序为:

  • 前导码(PA):1 字节,用于物理层位同步,接收端据此锁定字节边界。
  • 帧起始定界符(FC):1 字节,标识一帧的开始。
  • 站地址(SA):1 字节,指明本帧寻址的从站编号(1~15 为有效从站地址,0 常用于广播/同步)。
  • 控制域(CT):1 字节,携带命令类型、帧方向、同步/异步标志等控制信息。
  • 数据域(DATA):10 字节,承载实际的控制命令或反馈数据。
  • 帧校验序列(FCS):2 字节,对帧内容做 CRC 校验,用于判断帧是否在传输中出错。
  • 帧结束定界符(FE):1 字节,标识一帧结束。

命令帧与响应帧的字段结构完全对称,区别在于方向与数据域内容:命令帧由主站发往从站,数据域中放的是位置指令、速度指令、转矩指令、控制字等;响应帧由从站返回主站,数据域中放的是实际位置、实际速度、实际转矩、状态字、报警码等。主站正是通过“发命令—收响应”的成对交互,在一个通信周期内完成一次闭环数据交换。

需要特别注意的是,数据域长度并非固定不变。MECHATROLINK-II 常见 17 字节和 32 字节两种帧长,32 字节帧的数据域扩展到 24 字节,可容纳更多通道或更高分辨率的数据。帧长一旦选定,主站与所有从站必须一致,否则会出现帧解析错位、FCS 校验失败或通信直接中断。

MECHATROLINK-II 命令帧 / 响应帧结构与数据域分配 命令帧(主站 → 从站) PA 1B FC 1B SA 1B CT 1B DATA(位置/速度/转矩指令、控制字) 10B(17B帧) / 24B(32B帧) FCS 2B FE 1B 响应帧(从站 → 主站) PA 1B FC 1B SA 1B CT 1B DATA(实际位置/速度/转矩、状态字、报警码) 10B(17B帧) / 24B(32B帧) FCS 2B FE 1B 数据域(DATA)典型分配示例 控制字 / 状态字 2B 位置指令 / 反馈 4B 速度指令 / 反馈 4B 转矩指令 / 反馈 4B 报警码 / 保留 2B 通信周期节拍(示例:1ms) t0 t0+1ms t0+2ms t0+3ms t0+4ms

主站与从站的数据域分配

数据域是整帧中信息密度最高的部分,其分配方式直接决定伺服能接收哪些指令、反馈哪些状态。以典型的 Sigma-7 伺服从站为例,一个通信周期内主站与从站交换的数据大致分为四类:

  • 控制字/状态字:主站通过控制字下发伺服使能、报警清除、指令更新等位操作;从站通过状态字回传伺服就绪、运行中、报警等状态位。
  • 位置数据:主站下发目标位置指令,从站回传实际位置反馈,通常各占 4 字节。
  • 速度数据:主站下发速度指令,从站回传实际速度,各占 4 字节。
  • 转矩数据:主站下发转矩指令(或转矩限制),从站回传实际转矩,各占 4 字节。

这些字段在数据域中的排列顺序由所选“命令类型”决定。例如位置控制模式下,数据域会优先安排位置指令与位置反馈;速度控制模式下则优先安排速度指令与速度反馈。主站在初始化阶段通过参数设定每个从站的命令类型,从站据此解析数据域。如果主站与从站对命令类型的理解不一致,就会出现“数据错位”——主站以为发的是位置指令,从站却按速度指令解析,表现为伺服动作异常或直接报警。

在调试初期,建议先用示波器或总线分析工具抓取一帧原始数据,逐字节对照手册确认 SA、CT、DATA 的实际内容,再进入参数配置阶段。这一步能避免大量“参数看起来对、动作却不对”的排查时间。

通信周期(0.25ms~8ms)的设定方法

通信周期是主站轮询所有从站一轮所需的时间,MECHATROLINK-II 支持 0.25ms、0.5ms、1ms、2ms、4ms、8ms 等档位。周期越短,控制响应越快,但可挂载的从站数量和可传输的数据量也越受限;周期越长,则相反。

设定通信周期时,需要同时考虑以下约束:

  1. 从站数量与帧长:每个从站占用一帧的传输时间,从站越多、帧越长,一轮所需时间越长。若周期设得过短,会出现“一轮还没轮询完,下一个周期已经到来”的溢出。
  2. 伺服控制带宽:位置环、速度环的响应速度应与通信周期匹配。周期为 1ms 时,位置指令更新率为 1kHz;若周期设为 4ms,指令更新率降到 250Hz,高速定位场景下可能出现指令台阶感。
  3. 主站处理能力:主站 CPU 需要在每个周期内完成命令生成、帧发送、响应接收和数据处理。周期越短,CPU 负载越高。

实际设定时,通常先在主站配置工具中选择通信周期档位,再扫描从站并确认所有从站均能在该周期内完成响应。若出现通信超时或从站掉线,应优先增大周期或减少从站数量,而不是盲目提高主站优先级。

同步帧与异步帧的区别

MECHATROLINK 的帧按时间关系分为同步帧和异步帧两类,这是理解总线实时性的关键。

同步帧与通信周期严格对齐:主站在每个周期的固定时刻发出同步帧,从站在收到后于同一周期内返回响应。同步帧用于周期性数据交换,如位置指令、速度指令、状态反馈等。它的特点是时间确定性高,适合实时控制。

异步帧则不绑定通信周期,可在任意时刻插入发送,用于参数读写、报警读取、从站信息查询等非周期性操作。异步帧的响应时间不确定,但不会打乱同步帧的节拍。主站在处理异步帧时,通常会在同步帧之间的空闲窗口插入,避免影响实时控制。

对比项同步帧异步帧
时间关系与通信周期严格对齐任意时刻插入
典型用途位置/速度/转矩指令与反馈参数读写、报警读取、信息查询
响应确定性高,周期内完成低,取决于总线空闲
对实时控制影响直接决定控制节拍不影响同步节拍
同步帧与异步帧不能在同一时刻争用总线。若异步帧发送过于频繁,会挤占同步帧的窗口,导致周期抖动甚至通信超时。调试阶段应控制异步帧的发送频率,优先保证同步帧的稳定节拍。

理解帧结构、数据域分配和周期设定之后,下一步就是把这些参数落到实际工程配置中。在 Sigma 系列伺服调试时,建议先确认帧长与命令类型,再设定通信周期,最后用同步帧验证实时数据交换是否正常,用异步帧读取从站参数确认配置生效。这样由粗到细、由周期到内容的顺序,能有效减少反复试错。