2. Sercos协议基础与实时通信原理

Sercos(SErial Real-time COmmunication System)是面向运动控制的串行实时通信总线,其设计目标不是“把数据从A传到B”,而是让多个伺服驱动器、I/O与控制器在同一时间基准下协同动作。理解Sercos,关键要抓住四条主线:循环通信决定数据何时被刷新,实时通道决定哪些数据必须准时到达,同步机制决定各节点动作是否对齐,报文结构与运动控制数据流决定位置、速度、转矩等量如何被封装、传输和消费。本节围绕这四条主线展开,并给出可观察、可判断的工程要点。

一、循环通信:把“实时”变成可预测的节拍

Sercos采用主从式循环通信。主站(通常是运动控制器或PLC)按固定周期发起通信,从站(伺服驱动器、远程I/O)在周期内响应。这个固定周期称为循环时间(Cycle Time),常见量级为250 µs、500 µs、1 ms、2 ms。循环时间越短,位置环、速度环可达到的带宽越高,但同时对主站处理能力、从站响应时间和网络抖动提出更高要求。

循环通信的核心价值在于可预测性:每个周期内,主站发送设定值(如位置指令、速度指令、控制字),从站返回实际值(如实际位置、实际速度、状态字、诊断信息)。这些数据在每个周期被刷新一次,因此运动控制算法看到的是“离散时间序列”,而不是连续信号。工程上必须保证:循环时间 ≥ 主站处理时间 + 报文传输时间 + 从站处理时间 + 安全余量。若余量不足,会出现周期超时、报文丢失或同步偏差,表现为伺服使能抖动、位置跟随误差增大甚至驱动器报错。

二、实时通道:同步通道与循环数据通道的分工

Sercos在物理层之上划分了不同的通信通道,典型包括同步通道和循环数据通道。同步通道负责传递同步报文(如MST、MDT中的同步信息),用于建立和维持全网时间基准;循环数据通道负责承载每个周期的过程数据,包括位置、速度、转矩、控制字、状态字等。

这种分工的意义是:同步信息必须短、准、稳,不能被大量过程数据阻塞;过程数据则要求带宽可规划、时延可界定。在Sercos III中,循环数据通常通过MDT(Master Data Telegram)和AT(Acknowledge Telegram)承载:主站周期发送MDT,从站在同一周期内回复AT。MDT中可包含多个从站的设定值,AT中汇总各从站的实际值与状态。这样,一个循环周期内完成“下发—执行—回读”的闭环。

判断实时通道是否健康,不要只看“通信是否建立”。应观察:循环周期是否稳定、同步偏差是否在允许范围内、AT是否在每个周期按时返回、诊断计数器是否持续增长。若AT延迟或丢失,即使链路指示灯正常,运动控制也可能已经失稳。

三、同步机制:让所有轴在同一时刻“对齐”

多轴运动控制中,若各驱动器各自按本地时钟采样和执行,轴间会出现相位差,导致插补轨迹畸变、龙门同步偏差、电子齿轮/凸轮啮合错误。Sercos的同步机制通过主站发送同步报文,使各从站在同一时间基准下锁存实际值、更新设定值并触发控制环计算。

同步过程可理解为:主站周期发出同步基准,从站接收后调整本地时钟,使各节点的采样时刻和输出时刻对齐。同步质量通常用同步偏差(Jitter)衡量,单位常为纳秒或微秒。对于高动态多轴应用,同步偏差应远小于循环时间,例如循环时间1 ms时,同步偏差宜控制在几微秒以内。若同步偏差过大,位置环会引入额外相位滞后,表现为轴间跟随误差不一致、轨迹圆度变差或龙门轴机械应力增大。

Sercos 循环通信与同步数据流 主站 / 运动控制器 循环任务 · 插补 · 同步基准 MDT 组包 · AT 解析 周期 T = 1 ms(示例) 同步通道 同步报文 / 时钟基准 锁存采样时刻 同步偏差 ≤ 数 µs 循环数据通道 MDT:设定值下发 AT:实际值回读 每周期刷新一次 从站 / 伺服驱动器 位置环 · 速度环 · 电流环 实际位置 / 速度 / 转矩 状态字 · 诊断 AT 回读(实际值/状态) 一个循环周期内的时序(示例 T = 1 ms) 0 0.25 ms 0.5 ms 0.75 ms 1.0 ms 同步 MDT 下发设定值 从站控制环计算 AT 回读实际值 主站下一周期准备 余量 设定值 → 控制环 → 实际值 → 下一周期修正,形成闭环运动控制数据流

四、报文结构与运动控制数据流

Sercos的循环报文并非“一包到底”,而是按从站和数据类型组织。以MDT为例,主站将多个从站的设定值按预定偏移量放入同一报文,从站根据配置的地址和长度提取属于自己的数据段。AT则由各从站按顺序写入实际值,主站按同样规则解析。这种固定偏移、固定长度的结构使通信时间可预测,也便于硬件加速处理。

运动控制数据流可概括为:轨迹规划 → 插补 → 位置设定值 → MDT → 驱动器位置环 → 速度环 → 电流环 → 电机 → 编码器反馈 → AT → 主站位置比较 → 下一周期修正。其中,位置设定值和实际位置是闭环的核心变量。若把循环时间设为1 ms,则每毫秒完成一次“下发—执行—回读”,主站据此计算跟随误差并调整下一周期指令。

工程中需要关注的数据包括:控制字(使能、启动、复位)、状态字(就绪、运行、故障)、位置设定值/实际值、速度设定值/实际值、转矩设定值/实际值、诊断码。这些量在报文中的位置和长度由设备描述(如Sercos设备配置文件)定义,配置错误会导致数据错位,表现为“通信正常但轴不动”或“实际值跳变”。

五、工程判断与常见问题

调试Sercos实时通信时,可按以下顺序判断:第一,确认循环周期与主站任务周期匹配,避免任务抖动导致报文发送不及时;第二,检查同步偏差是否在驱动器允许范围内,若偏差过大,优先排查同步报文是否被阻塞、从站时钟是否稳定;第三,观察AT返回是否每周期完整,若AT丢失,检查从站数量、报文长度和网络负载;第四,核对MDT/AT中数据偏移与设备配置是否一致,避免“数据错位”类故障。

不要用“通信正常”替代“实时正常”。Sercos链路建立、指示灯正常,只说明物理层和基本协议可用;真正的实时性要看循环周期稳定性、同步偏差、AT按时返回率和诊断计数器。若这些指标恶化,运动控制性能会先于通信报错而下降。

综上,Sercos协议基础的核心不是记忆报文格式,而是建立“周期—通道—同步—数据流”的整体认知:循环通信提供节拍,实时通道划分职责,同步机制保证对齐,报文结构承载运动控制数据。只有这四者协同,才能实现多轴运动控制所要求的确定性、低抖动和可预测响应。