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 校验失败或通信直接中断。
主站与从站的数据域分配
数据域是整帧中信息密度最高的部分,其分配方式直接决定伺服能接收哪些指令、反馈哪些状态。以典型的 Sigma-7 伺服从站为例,一个通信周期内主站与从站交换的数据大致分为四类:
- 控制字/状态字:主站通过控制字下发伺服使能、报警清除、指令更新等位操作;从站通过状态字回传伺服就绪、运行中、报警等状态位。
- 位置数据:主站下发目标位置指令,从站回传实际位置反馈,通常各占 4 字节。
- 速度数据:主站下发速度指令,从站回传实际速度,各占 4 字节。
- 转矩数据:主站下发转矩指令(或转矩限制),从站回传实际转矩,各占 4 字节。
这些字段在数据域中的排列顺序由所选“命令类型”决定。例如位置控制模式下,数据域会优先安排位置指令与位置反馈;速度控制模式下则优先安排速度指令与速度反馈。主站在初始化阶段通过参数设定每个从站的命令类型,从站据此解析数据域。如果主站与从站对命令类型的理解不一致,就会出现“数据错位”——主站以为发的是位置指令,从站却按速度指令解析,表现为伺服动作异常或直接报警。
通信周期(0.25ms~8ms)的设定方法
通信周期是主站轮询所有从站一轮所需的时间,MECHATROLINK-II 支持 0.25ms、0.5ms、1ms、2ms、4ms、8ms 等档位。周期越短,控制响应越快,但可挂载的从站数量和可传输的数据量也越受限;周期越长,则相反。
设定通信周期时,需要同时考虑以下约束:
- 从站数量与帧长:每个从站占用一帧的传输时间,从站越多、帧越长,一轮所需时间越长。若周期设得过短,会出现“一轮还没轮询完,下一个周期已经到来”的溢出。
- 伺服控制带宽:位置环、速度环的响应速度应与通信周期匹配。周期为 1ms 时,位置指令更新率为 1kHz;若周期设为 4ms,指令更新率降到 250Hz,高速定位场景下可能出现指令台阶感。
- 主站处理能力:主站 CPU 需要在每个周期内完成命令生成、帧发送、响应接收和数据处理。周期越短,CPU 负载越高。
实际设定时,通常先在主站配置工具中选择通信周期档位,再扫描从站并确认所有从站均能在该周期内完成响应。若出现通信超时或从站掉线,应优先增大周期或减少从站数量,而不是盲目提高主站优先级。
同步帧与异步帧的区别
MECHATROLINK 的帧按时间关系分为同步帧和异步帧两类,这是理解总线实时性的关键。
同步帧与通信周期严格对齐:主站在每个周期的固定时刻发出同步帧,从站在收到后于同一周期内返回响应。同步帧用于周期性数据交换,如位置指令、速度指令、状态反馈等。它的特点是时间确定性高,适合实时控制。
异步帧则不绑定通信周期,可在任意时刻插入发送,用于参数读写、报警读取、从站信息查询等非周期性操作。异步帧的响应时间不确定,但不会打乱同步帧的节拍。主站在处理异步帧时,通常会在同步帧之间的空闲窗口插入,避免影响实时控制。
| 对比项 | 同步帧 | 异步帧 |
|---|---|---|
| 时间关系 | 与通信周期严格对齐 | 任意时刻插入 |
| 典型用途 | 位置/速度/转矩指令与反馈 | 参数读写、报警读取、信息查询 |
| 响应确定性 | 高,周期内完成 | 低,取决于总线空闲 |
| 对实时控制影响 | 直接决定控制节拍 | 不影响同步节拍 |
理解帧结构、数据域分配和周期设定之后,下一步就是把这些参数落到实际工程配置中。在 Sigma 系列伺服调试时,建议先确认帧长与命令类型,再设定通信周期,最后用同步帧验证实时数据交换是否正常,用异步帧读取从站参数确认配置生效。这样由粗到细、由周期到内容的顺序,能有效减少反复试错。