拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

EtherCAT工业以太网实战:从站开发、分布式时钟与多轴同步优化

EtherCAT工业以太网实战:从站开发、分布式时钟与多轴同步优化

1. 为什么工业现场需要一条“数据高铁”

1.1 从产线痛点说起:传统总线到底卡在哪

我在产线做设备调试那几年,最怕听到的一句话就是“这个轴响应又慢了”。早期用脉冲控制或者一些低速现场总线的时候,多轴联动简直是噩梦。一个贴片机的龙门架,X轴和Y轴要同步插补,如果通信周期抖动个几毫秒,贴出来的元件位置就偏了。更别提那种几十个伺服轴协同的包装线,每个轴都要在几毫秒内收到位置指令并回传实际位置,传统总线要么带宽不够,要么实时性保证不了。

传统方案的问题集中在三个地方。第一是通信周期不够短且不稳定,很多总线的最小周期在几毫秒甚至十几毫秒,而且这个周期还会因为网络负载变化而抖动。第二是拓扑结构僵化,要么是纯线型,要么必须加交换机,交换机本身会引入不确定的排队延迟。第三是同步精度差,多个从站之间的时钟各走各的,靠软件去对齐,误差能到几十微秒甚至更大,对于高精度多轴同步来说完全不够看。

这些痛点归结起来就是一句话:工业现场需要一条确定性的、低延迟的、高同步精度的数据通道。注意“确定性”这三个字,它不是“平均很快”,而是“每一次都快,且时间可预测”。这就像高铁和普通公交的区别,公交平均速度可能不慢,但你永远不知道下一班什么时候来,而高铁是准点发车准点到站,工业通信要的就是这种准点。

1.2 EtherCAT的“高铁逻辑”:不换乘、不停站、直达终点

EtherCAT的全称是Ethernet for Control Automation Technology,它最核心的设计思想可以用一个词概括:On the fly,也就是“飞行中处理”。我习惯把它类比成高铁的直达模式。

传统以太网通信是这样的:主站发一个数据包给交换机,交换机收完整个包、解析地址、再转发给下一个设备,每个设备都要“停下来”把包收完再决定下一步。这就像每到一个站都要停车、开门、上下客、关门、再启动,效率极低。

EtherCAT的做法完全不同。主站发出一个以太网帧,这个帧在网络上像高铁一样飞驰。当它到达第一个从站时,从站的ESC芯片(EtherCAT Slave Controller)直接在数据帧经过的瞬间,读取属于自己的那部分数据,同时把自己的数据插入到帧的指定位置。整个过程不需要把帧完整接收下来再转发,而是在硬件层面“边飞边处理”。帧继续飞向下一站,每个从站都做同样的操作,最后帧回到主站时,所有从站的数据都已经收集完毕。

这个机制带来的直接好处是:通信周期几乎不受从站数量影响。你带10个轴和带100个轴,帧的传输时间增加的主要是物理线路的传播延迟和每个从站几纳秒的处理延迟,而不是像传统方案那样线性增长。实测下来,100个从站的刷新周期做到100微秒以内是很常见的事情。

1.3 谁适合看这篇内容:从新手到进阶的路线图

这篇内容我主要面向几类人。第一类是刚接触工业以太网的电气工程师或PLC程序员,你可能之前用惯了脉冲控制或者Modbus RTU,现在项目要求上EtherCAT,你需要快速搞清楚它到底怎么工作、怎么配置。第二类是做运动控制开发的软件工程师,你需要理解Sync0和Sync1这些同步信号到底怎么用,为什么你的多轴插补总是不够丝滑。第三类是想了解从站开发的技术爱好者,你可能想自己做一个EtherCAT从站设备,需要知道ESC芯片选型和FMMU配置的基本逻辑。

我会从整体设计思路讲到核心细节,再到实操配置和问题排查,尽量把每个“为什么”都讲清楚。你不需要有很深的网络协议基础,但最好对工业控制的基本概念有点了解,比如什么是主站、什么是从站、什么是过程数据。如果你完全零基础,也没关系,我会用生活化的类比把复杂概念拆开讲。

2. EtherCAT核心机制深度拆解

2.1 ESC芯片:从站的“心脏”到底在做什么

ESC是EtherCAT Slave Controller的缩写,它是每个EtherCAT从站设备里必须有的专用芯片。你可以把它理解成从站的“心脏”加“交通警察”。它负责的事情包括:在数据帧经过时快速提取和插入数据、管理从站的通信状态机、生成同步信号、处理中断等。

为什么一定要用专用芯片而不是用普通单片机软件模拟?因为“On the fly”处理要求极高的实时性。数据帧在网线上的传输速度是100Mbps甚至1Gbps,一个最小帧的传输时间可能只有几微秒。如果靠软件中断去处理,CPU响应中断的延迟都不止这个时间。ESC芯片是用硬件逻辑实现的,数据帧经过时,它在几个时钟周期内就完成了读写操作,这个速度是软件根本追不上的。

常见的ESC芯片有几大系列,比如Beckhoff的ET1100、ET1200,Microchip的LAN9252、LAN9253,还有汇川、台达等厂商自己集成的ESC模块。选型的时候主要看几个参数:支持的端口数量(2端口还是3端口)、是否支持分布式时钟、FMMU数量、过程数据RAM大小、接口类型(SPI还是并口)。对于新手来说,LAN9252是比较友好的选择,资料多、开发板便宜,SPI接口用普通单片机就能驱动。

注意:ESC芯片的供电和晶振一定要按手册来,尤其是晶振频率和精度。我见过因为晶振偏差导致从站无法进入OP状态的案例,排查了半天才发现是晶振问题。

2.2 FMMU:数据映射的“翻译官”

FMMU是Fieldbus Memory Management Unit的缩写,它的作用是把从站的物理内存地址映射到EtherCAT数据帧的逻辑地址空间。听起来很抽象,我换个说法你就明白了。

想象主站要读取从站的一个温度传感器值,这个值存在从站ESC的某个物理地址上,比如0x1200。但主站不知道也不关心这个物理地址,它只知道“我要读第3个从站的第1个输入数据”。FMMU就是干这个翻译工作的:它告诉ESC,“当数据帧里逻辑地址0x1000被访问时,你就去读物理地址0x1200的数据放进去”。

每个FMMU可以配置映射方向(读或写)、映射长度、逻辑起始地址、物理起始地址等。一个从站通常有多个FMMU,分别处理输入数据、输出数据、邮箱数据等。配置FMMU是EtherCAT从站开发中最关键的步骤之一,配错了数据就对不上,主站读到的全是乱码。

我个人的经验是,配置FMMU的时候一定要画一张表,把每个FMMU的逻辑地址、物理地址、长度、方向都列清楚。特别是当从站有多个过程数据对象时,地址不要重叠,长度要算准。有一次我配一个模拟量输入模块,8个通道每个2字节,总共16字节,结果FMMU长度写成了8,主站只能读到前4个通道的数据,后面全是零,查了好久才发现是长度少写了一倍。

2.3 分布式时钟:让所有从站“对表”

分布式时钟是EtherCAT实现高精度同步的核心机制。在没有分布式时钟的系统中,每个从站有自己的本地时钟,这些时钟因为晶振差异会慢慢漂移,导致各个从站的动作不同步。分布式时钟的作用就是让所有从站的时钟都对齐到主站的参考时钟。

工作原理是这样的:主站发送一个特殊的广播帧,这个帧会依次经过每个从站。每个从站记录下帧到达和离开的时间戳。主站根据这些时间戳计算出每个从站的传输延迟和时钟偏差,然后下发补偿值。从站根据补偿值调整自己的本地时钟,最终所有从站的时钟误差可以控制在纳秒级别。

这个机制对于多轴同步至关重要。比如一个六轴机器人,如果每个轴的时钟不同步,那怕只差几微秒,在高速运动时末端执行器的轨迹就会产生明显偏差。有了分布式时钟,所有轴可以在同一个时刻精确地执行位置指令,轨迹精度大幅提升。

2.4 Sync0与Sync1:同步信号的“发令枪”

Sync0和Sync1是EtherCAT从站产生的两个同步信号,它们基于分布式时钟,可以精确地控制从站的动作时刻。很多新手搞不清楚这两个信号的区别,我用一个类比来解释。

Sync0是周期同步信号,它按照主站配置的周期定期产生。比如你配置周期是1毫秒,那Sync0就每1毫秒产生一次中断。从站的控制程序在Sync0中断里执行,读取最新的过程数据、计算控制量、更新输出。Sync0的作用是让从站的动作与通信周期严格对齐。

Sync1是单次同步信号,它通常用于非周期性的精确时刻控制。比如你需要在某个特定时刻触发一个动作,就可以配置Sync1在那个时刻产生一次中断。Sync1可以理解为“定时炸弹”,设定好时间,到点就响。

在实际配置中,Sync0的周期通常与主站的通信周期一致,而Sync1用于一些特殊场景,比如飞拍、色标检测等需要精确时刻触发的应用。配置Sync0的时候要注意,从站的控制程序执行时间必须小于Sync0周期,否则会丢中断,导致控制异常。

提示:如果你用的是汇川H5U带伺服轴,Sync0周期一般设置为1毫秒或更短。伺服驱动器的电流环和速度环在驱动器内部执行,位置环在Sync0中断里执行。如果Sync0周期设得太长,位置环响应会变慢,影响动态性能。

3. 从零搭建EtherCAT通信的实操过程

3.1 硬件选型与拓扑规划

动手之前先把硬件确定下来。一个典型的EtherCAT系统包括:主站控制器、从站设备、网线、电源。主站可以是带EtherCAT主站功能的PLC(比如汇川H5U、倍福CX系列),也可以是普通工控机加装EtherCAT主站软件(比如TwinCAT、CODESYS)。从站就是各种伺服驱动器、IO模块、传感器等。

拓扑规划是很多人忽略的一步。EtherCAT支持线型、树型、星型等多种拓扑,但最常用也最简单的是线型拓扑。主站的一个网口出来,依次连接从站1、从站2、从站3,最后一个从站的第二个网口不接或者接回主站的另一个网口形成冗余环。

线型拓扑的好处是接线简单、延迟可预测。每个从站有两个网口,一进一出。数据帧从主站出发,经过所有从站,再从最后一个从站返回主站。注意,EtherCAT从站的网口是“透传”的,即使从站断电,数据帧也能物理旁路通过(前提是从站支持旁路功能),不会导致整个网络瘫痪。

线缆选择上,一定要用工业级屏蔽网线,最好是Cat5e以上。我见过用普通办公网线导致通信不稳定的案例,现象是偶尔丢帧、从站掉线,换了屏蔽网线就好了。屏蔽层要可靠接地,否则会引入干扰。线缆长度方面,两个从站之间的线缆不要超过100米,这是以太网的物理限制。

3.2 主站配置:扫描从站与PDO映射

以汇川H5U为例,主站配置的流程大致是这样的。首先在编程软件里新建工程,选择H5U型号,然后在EtherCAT配置界面里扫描从站。扫描的时候主站会发送广播帧,所有从站响应并上报自己的信息,包括厂商ID、产品代码、修订号等。扫描完成后,从站会出现在设备列表里。

接下来是PDO映射。PDO是Process Data Object的缩写,就是过程数据对象。每个从站都有输入PDO和输出PDO,输入PDO是从站发给主站的数据(比如实际位置、实际速度、状态字),输出PDO是主站发给从站的数据(比如目标位置、控制字)。PDO映射就是配置每个PDO里包含哪些对象、每个对象多长。

配置PDO的时候要注意数据对齐。EtherCAT的数据是按字节对齐的,如果一个对象是1位(比如状态字的某个位),它可能和其他位对象打包在一个字节里。映射的时候要确保主站和从站的映射一致,否则数据会错位。我一般会先把从站手册里的PDO列表抄下来,然后在软件里一项一项对照着配,配完再核对一遍总长度。

3.3 从站地址分配与FMMU配置实战

从站地址分配有两种方式:自动增量地址和配置地址。自动增量地址是主站根据从站在网络中的位置自动分配的,第一个从站地址是1,第二个是2,以此类推。配置地址是主站给从站分配一个固定的地址,存在从站的EEPROM里,下次上电不用重新分配。

对于新手来说,自动增量地址更简单,不需要额外配置。但自动增量地址有个问题:如果网络拓扑变了,从站地址会变,主站的配置也要跟着改。所以正式项目里一般用配置地址,把地址固定下来。

FMMU配置通常在主站软件里是自动完成的,你只需要配置PDO映射,软件会自动计算FMMU的逻辑地址和物理地址。但如果你在做从站开发,就需要手动配置FMMU寄存器。配置流程是:先确定每个PDO的物理地址(在ESC的RAM里),然后配置FMMU的物理起始地址、逻辑起始地址、长度、方向。配置完要读回验证,确保写入的值正确。

3.4 分布式时钟与Sync0中断的配置细节

分布式时钟的配置在主站软件里通常是一个勾选项,勾上之后主站会自动计算和下发时钟补偿值。但有几个参数需要手动设置:同步周期和同步模式。同步周期一般与通信周期一致,同步模式有自由运行、同步于Sync0、同步于Sync1等。

Sync0中断的配置在从站侧。以伺服驱动器为例,你需要设置Sync0周期、中断优先级、中断服务程序。Sync0周期通常等于主站的通信周期,比如1毫秒。中断服务程序里执行位置环计算,读取主站发来的目标位置,计算实际位置,更新状态字。

这里有个坑要注意:Sync0中断的执行时间必须小于Sync0周期。如果你的中断服务程序里做了太多事情,比如浮点运算、查表、通信,导致执行时间超过1毫秒,那就会丢中断,从站会报同步错误。解决办法是把耗时的操作放到后台循环里,中断里只做最核心的数据搬运和简单计算。

4. 常见问题排查与避坑经验

4.1 从站无法进入OP状态的排查思路

从站上电后,通信状态机会经历Init、Pre-OP、Safe-OP、OP四个阶段。如果从站一直停在Pre-OP或者Safe-OP,进不了OP,说明配置有问题。排查思路是这样的:

先看EEPROM配置。从站的EEPROM里存着厂商ID、产品代码、PDO配置等信息。如果EEPROM里的PDO配置和主站扫描到的不一致,从站就进不了OP。解决办法是用主站软件重新扫描并写入配置,或者用从站厂商的工具重新烧录EEPROM。

再看PDO映射长度。主站配置的PDO总长度必须和从站实际的一致。如果主站配了16字节输入,从站只支持8字节,那从站会拒绝进入OP。检查方法是看主站软件里的PDO列表和从站手册是否一致。

最后看分布式时钟配置。如果从站支持分布式时钟但主站没启用,或者同步模式配置错误,从站也可能进不了OP。检查主站的分布式时钟设置,确保同步周期和模式正确。

4.2 通信周期抖动的常见原因

通信周期抖动是指实际周期和设定周期之间的偏差。偶尔抖动几微秒是正常的,但如果抖动超过周期的10%,就会影响控制性能。常见原因有:

  • 主站CPU负载过高:主站软件需要实时处理通信任务,如果CPU被其他任务占用,通信周期就会抖动。解决办法是给EtherCAT任务最高的优先级,关闭不必要的后台程序。
  • 网线质量差或过长:劣质网线会导致信号衰减和反射,增加传输延迟。换用优质屏蔽网线,缩短线缆长度。
  • 从站处理延迟大:某些从站的ESC处理延迟较大,尤其是带多个FMMU的复杂从站。检查从站手册里的处理延迟参数,必要时减少从站数量或换用更快的从站。
  • 电磁干扰:变频器、伺服驱动器等强干扰源附近的网线容易受干扰。网线要远离动力线,屏蔽层要可靠接地。

4.3 Sync0不触发的几种可能

Sync0不触发是比较棘手的问题,因为从站看起来在OP状态,但控制程序不执行。排查方向:

第一,检查分布式时钟是否同步。如果从站的时钟没有同步到主站,Sync0就不会产生。在主站软件里查看从站的时钟偏差,如果偏差很大或者同步状态不是“已同步”,说明分布式时钟配置有问题。

第二,检查Sync0周期配置。Sync0周期必须大于0,且通常是通信周期的整数倍。如果周期配置为0或者小于通信周期,Sync0不会触发。

第三,检查中断使能。从站的控制程序里要正确使能Sync0中断,配置中断优先级和中断服务程序入口。如果中断没使能,Sync0信号产生了但没人处理。

第四,检查从站状态。有些从站在Safe-OP状态下不产生Sync0,只有进入OP后才产生。确保从站已经进入OP状态。

4.4 多轴同步精度不够的优化技巧

多轴同步精度不够的表现是:多个轴同时收到指令,但实际动作有先后,导致轨迹偏差。优化技巧有:

  • 启用分布式时钟:这是基础,没有分布式时钟,同步精度只能到微秒级,有了分布式时钟可以到纳秒级。
  • 统一Sync0周期:所有从站的Sync0周期必须一致,且与通信周期对齐。
  • 优化中断服务程序:中断里的代码越短越好,把非关键操作放到后台。
  • 使用Sync1做精确触发:对于需要精确时刻触发的动作,用Sync1而不是Sync0。
  • 检查从站固件版本:有些老版本固件的同步性能不好,升级到最新版本。

4.5 常见问题速查表

问题现象可能原因排查方法解决措施
从站不进OPEEPROM配置不一致对比主站扫描结果和从站手册重新扫描写入配置
从站不进OPPDO长度不匹配检查主站PDO总长度修改PDO映射
通信周期抖动大主站CPU负载高查看CPU占用率提高EtherCAT任务优先级
通信周期抖动大网线质量差更换网线测试换用屏蔽网线
Sync0不触发分布式时钟未同步查看时钟偏差检查分布式时钟配置
Sync0不触发中断未使能检查从站代码使能Sync0中断
多轴同步精度差Sync0周期不一致检查各从站配置统一Sync0周期
多轴同步精度差中断执行时间过长测量中断执行时间优化中断服务程序

提示:排查EtherCAT问题的时候,主站软件里的诊断工具非常有用。可以查看每个从站的状态、通信错误计数、时钟偏差等。养成看诊断信息的习惯,能省很多排查时间。

5. 从站开发入门:自己动手做一个EtherCAT从站

5.1 开发环境搭建与ESC芯片选型

如果你想自己开发一个EtherCAT从站,第一步是选ESC芯片和开发环境。对于新手,我推荐LAN9252,原因有三:一是资料多,Microchip的官网有完整的数据手册和应用笔记;二是开发板便宜,几百块就能买到;三是SPI接口简单,用STM32或者Arduino都能驱动。

开发环境方面,你需要一个单片机开发环境(比如STM32CubeIDE)、一个EtherCAT主站软件(比如TwinCAT或者CODESYS,用于测试从站)、一个ESC配置工具(比如Microchip的LAN9252配置工具,用于生成EEPROM文件)。

硬件连接上,LAN9252有两个网口,分别接主站和下一个从站。SPI接口接单片机,单片机通过SPI读写LAN9252的寄存器。电源方面,LAN9252需要3.3V和1.2V(内核),注意电平匹配。

5.2 从站状态机与邮箱通信实现

EtherCAT从站的状态机是协议规定的,必须按照Init、Pre-OP、Safe-OP、OP的顺序转换。每个状态转换都有对应的寄存器操作和邮箱通信。

Init到Pre-OP的转换需要配置邮箱通信。邮箱通信是主站和从站之间交换非周期数据的通道,用于配置参数、读写EEPROM等。邮箱通信基于FMMU和中断,主站发一个邮箱帧,从站收到后产生中断,单片机在中断里处理邮箱数据,然后回复。

Pre-OP到Safe-OP的转换需要配置过程数据。主站下发PDO配置,从站根据配置设置FMMU和过程数据RAM。这个阶段主站会检查从站的PDO配置是否和主站一致。

Safe-OP到OP的转换需要分布式时钟同步。从站开始接收主站的时钟补偿值,调整本地时钟。同步完成后,从站进入OP状态,开始正常的过程数据交换。

5.3 过程数据交换与中断处理

进入OP状态后,从站的主要工作就是过程数据交换。每个通信周期,主站发一个数据帧,从站的ESC在帧经过时自动完成输入输出数据的读写。单片机需要做的是:在Sync0中断里读取ESC里的输出数据(主站发来的),执行控制逻辑,然后写入输入数据(发给主站的)。

中断处理程序要尽量短。我一般的做法是:Sync0中断里只做数据搬运和简单的状态更新,复杂的计算放到后台循环里。中断里读到的数据存到全局变量,后台循环处理完再写回全局变量,中断里再写到ESC。

注意:ESC的寄存器读写要通过SPI,SPI的速率会影响中断执行时间。LAN9252的SPI最高可以到40MHz,但实际用的时候要根据单片机的SPI性能来定。如果SPI太慢,中断执行时间会变长,可能超过Sync0周期。

5.4 EEPROM烧录与从站信息配置

每个EtherCAT从站都有一个EEPROM,里面存着从站的基本信息:厂商ID、产品代码、修订号、序列号、PDO配置、FMMU配置等。主站扫描从站的时候就是读这个EEPROM来识别从站的。

EEPROM的内容可以用ESC配置工具生成。你需要填写厂商ID(可以向ETG申请,也可以先用测试ID)、产品代码、PDO列表、FMMU配置等。生成好之后,用烧录工具写到EEPROM里。

烧录的时候要注意EEPROM的地址和容量。LAN9252支持多种容量的EEPROM,从1Kbit到4Mbit都有。地址要按手册设置,否则ESC读不到EEPROM。烧录完成后,最好用主站扫描一下,确认从站信息正确。

6. 工业现场部署的实战心得

6.1 布线规范与抗干扰措施

工业现场的电磁环境比实验室恶劣得多。变频器、伺服驱动器、接触器、继电器都是强干扰源。EtherCAT虽然抗干扰能力比普通以太网强,但布线不规范照样出问题。

我的经验是:网线必须用屏蔽双绞线,屏蔽层两端接地。网线走线要远离动力线,至少保持20厘米以上的距离。如果必须交叉,要垂直交叉,不要平行走线。从站设备的接地要可靠,接地电阻小于4欧姆。控制柜内的网线不要和动力线捆在一起,分开走线槽。

还有一个容易被忽略的点:网线的弯曲半径。网线弯曲半径太小会导致信号反射,影响通信质量。一般要求弯曲半径不小于线缆直径的4倍。我见过把网线折成90度直角导致通信不稳定的案例,把线理顺就好了。

6.2 从站数量与通信周期的平衡

EtherCAT的通信周期和从站数量、数据量都有关系。从站越多,数据帧越长,传输时间越长。但EtherCAT的优势在于,从站数量对周期的影响不是线性的,因为数据帧是“飞行中处理”的,每个从站的处理延迟只有几纳秒。

实际项目中,我一般这样估算:通信周期 = 数据帧传输时间 + 从站处理延迟总和 + 主站处理时间。数据帧传输时间取决于帧长度和网速,100Mbps下,一个1000字节的帧传输时间大约是80微秒。从站处理延迟每个大约1微秒,100个从站就是100微秒。主站处理时间取决于主站性能,一般几十微秒。

所以100个从站、每个从站16字节数据的情况下,通信周期做到200微秒左右是可行的。但如果数据量更大,比如每个从站64字节,周期就要相应增加。我的建议是:先按最坏情况估算,然后实测验证,留20%的余量。

6.3 冗余与热插拔的配置要点

对于不能停机的产线,EtherCAT的冗余功能很重要。冗余配置有两种:线缆冗余和从站冗余。线缆冗余是主站的两个网口分别接成环,一个方向断了,另一个方向还能通信。从站冗余是每个从站有两个ESC,一个坏了另一个顶上。

配置冗余的时候要注意:主站要支持冗余功能,从站也要支持。冗余环的切换时间一般在微秒级,对大多数应用来说足够快。但冗余不能解决所有问题,比如从站本身故障,冗余也救不了。

热插拔在EtherCAT里支持得比较好。从站支持热插拔的话,可以在运行中拔掉一个从站,网络会自动旁路,其他从站继续通信。但热插拔后从站地址会变,主站需要重新扫描。所以热插拔一般用于维护场景,不建议在正常生产中使用。

6.4 现场调试的实用工具与技巧

现场调试的时候,有几个工具能大幅提高效率。第一是主站软件的诊断功能,可以查看每个从站的状态、错误计数、时钟偏差。第二是网络分析仪,可以抓包分析数据帧的内容和时序。第三是示波器,可以测量Sync0信号的波形和时序。

调试技巧方面,我习惯先单站调试,再多站联调。先接一个从站,确认通信正常、PDO映射正确、Sync0触发正常。然后再逐个增加从站,每加一个都验证一遍。这样出问题的时候容易定位是哪个从站的问题。

还有一个技巧是用LED指示灯辅助调试。很多从站设备有通信状态LED,RUN灯亮表示OP状态,ERR灯亮表示错误。通过LED可以快速判断从站状态,不用每次都打开软件看。

7. 写在最后:一些踩坑之后的体会

EtherCAT这套东西,刚接触的时候觉得概念多、配置复杂,但用熟了之后会发现它的设计非常优雅。On the fly的处理机制、分布式时钟的同步精度、FMMU的灵活映射,这些设计加在一起,才成就了工业以太网里的这条“数据高铁”。

我踩过最大的坑是在一个多轴项目里,Sync0周期设成了500微秒,但中断服务程序里做了一些浮点运算,执行时间超过了500微秒,导致从站频繁丢同步。现象是轴偶尔会抖一下,不规律,查了很久才定位到中断执行时间。后来把浮点运算改成定点运算,中断时间降到100微秒以内,问题就消失了。所以中断服务程序的执行时间一定要实测,不能凭感觉。

另一个体会是EEPROM配置一定要备份。有一次调试一个从站,改EEPROM配置的时候写错了,从站直接不通信了。幸好之前备份了EEPROM文件,重新烧录就好了。从那以后,我每次改EEPROM之前都会先读出来备份一份。

最后分享一个小技巧:如果你用的是汇川H5U带伺服轴,配置EtherCAT的时候,先把伺服的PDO映射精简到最少。很多伺服默认的PDO映射包含了很多用不到的对象,导致数据帧很长,通信周期降不下来。把不需要的对象去掉,只保留控制字、状态字、目标位置、实际位置、目标速度、实际速度这几个,通信周期能缩短不少。这个技巧在带几十个轴的项目里特别管用。

返回列表