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

资讯详情

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

EtherCAT主站选型全解析:原理、实现路线与六大关键指标

EtherCAT主站选型全解析:原理、实现路线与六大关键指标 1. 读懂EtherCAT主站选型之前必须先搞清的事1.1 EtherCAT协议里主站到底做了什么很多第一次接触EtherCAT的朋友容易把主站想得过于神秘觉得这是个高大上的硬件设备。其实剥开来看EtherCAT主站的核心工作就三件事组帧、收发、管理状态机。先说组帧EtherCAT的数据传输方式跟传统以太网完全不一样。传统以太网是一对一通信主站给每个从站单独发报文从站多的时候延迟和抖动都会变大。EtherCAT采用路过式处理主站发出一帧报文报文在总线里挨个经过从站每个从站只处理属于自己的那几个字节处理完直接传给下一个最后一个从站再把报文沿原路返回。所以不管总线上挂了10个还是50个从站一个周期只需要一帧报文这个思路非常巧妙。主站的第二个任务是维护状态机。EtherCAT从站有Init、Pre-Operational、Safe-Operational、Operational四种运行状态主站要通过写控制字一步步把从站拉起来从站要在规定时间内回复状态确认。这个过程看着简单实际藏着很多细节比如有些从站启动慢主站重试超时时间设得太短就会误报错误再比如热插拔从站时主站要做拓扑变更识别这些都属于主站软件的逻辑复杂度。至于收发报文看起来就是标准以太网收发真正考验的是实时性。EtherCAT周期可以跑到1ms甚至125us主站必须保证每个周期定时发送报文误差要控制在微秒级别。这里的关键就不是协议本身了而是操作系统、网卡驱动、中断处理这一整条链路的实时能力。1.2 为什么主站选型比从站更让人头疼从站有芯片可选ESCSEtherCAT Slave Controller就那么几家方案成熟、资料齐全画个电路、写个状态机基本就能搞定。主站完全不一样它没有一个通用的标准主站芯片可以拿来就用主站方案的本质是拿通用处理器去跑实时任务性能、实时性、协议栈成熟度、开发难度都揉在一起选型就是在这些维度里找平衡。更麻烦的是EtherCAT主站研发的门槛主要不在协议本身而在实时操作系统、网卡驱动、工业现场抗干扰这些配套工程问题上。比如Windows下想跑主站就得靠TwinCAT这种深度耦合的软件Linux下想跑主站要打PREEMPT_RT实时补丁要选支持IgH等协议栈的网卡嵌入式裸机环境又要考虑处理器主频够不够、网卡驱动能不能拿到源码。这些问题不列出来等开发到一半再发现返工成本很高。另外EtherCAT主站没有一个统一的认证体系。从站可以通过一致性测试来验证而主站通常是各家自己宣称兼容或支持到底兼容到什么程度、在极端工况下会不会出错都得靠项目实测。所以我一直建议选主站方案时不要只盯着规格书一定要做一个20个从站以上的满负荷压力测试跑个三天三夜看丢帧率和最大抖动。1.3 主站与从站的匹配边界要划清楚有一种常见误解觉得只要主从都支持EtherCAT买回来就能直接跑通。真实情况是EtherCAT只规定了数据链路层和通信协议用户层的数据对象、参数配置完全是开放的。也就是说A家的伺服驱动器和B家的主站虽然在物理上能握手但如果你想读到驱动器内部的自定义参数就得在ESD文件里找对对象字典然后在主站里手动配置映射关系。这意味着什么意味着主站选型不只是选一个通信盒子还要考虑它能不能方便地导入从站的ESI文件EtherCAT Slave Information能不能灵活配置PDO映射INIT到OP的启动流程是否可控出现同步错误时能不能给出有效的诊断信息。这些日常使用中接触最多的功能才是体现主站方案优劣的地方。还有一点EtherCAT的DC同步时钟是主站发起漂移补偿的主站软件如果DC实现得不好从站数量一多同步误差就会成倍放大。所以如果你的应用是多轴同步场景比如印刷、电子装配、机器人联动主站的DC算法质量要作为一票否决项来评估。2. 主站控制器的五种实现路线与选型框架2.1 商业软件主站是省心还是被绑定说到EtherCAT商业主站绕不开倍福的TwinCAT和3S的CODESYS。这两家的主站都是把实时核嵌入到Windows系统底层通过网卡直通的方式绕过Windows网络协议栈实现微秒级稳定通信。TwinCAT的优势是生态极其成熟毕竟EtherCAT就是倍福发明的主站与所有倍福从站的兼容性毋庸置疑。如果你项目里大量使用倍福的IO模块、伺服、驱动器TwinCAT几乎是不需要犹豫的选择。代价是授权费用不低而且整个项目会被绑定到Windows加倍福硬件这个生态里。CODESYS要开放许多它支持在Windows软PLC模式下运行EtherCAT主站也支持把Runtime部署到Linux、树莓派甚至你自己的嵌入式板卡上。我见过不少中小型设备厂家用CODESYS搭配普通工控机就做起了多轴运动控制省掉了专用运动控制卡的硬件成本。另外CODESYS的IEC 61131-3编程环境上手比较快电气工程师不需要写C就能实现逻辑控制和轴控制。选择商业主站方案最关键的不是当前功能是否满足而是后续的授权模型、版本升级策略、现场License管理这些决定了产品量产后的单台成本。有的商业Runtime按设备台数授权有的按开发版授权量产免费这里面的差距对整机成本影响很大选之前一定要和销售确认清楚。2.2 开源方案SOEM、IgH怎么选开源主站方案在业内已经有很广泛的应用常见的两条技术路线一条是SOEMSimple Open EtherCAT Master一条是IgHEtherCAT Master for Linux。SOEM的特点是轻量、跨平台C语言编写可以跑在Windows、Linux、裸机嵌入式多种环境移植非常方便很多商用主站产品的底层其实都有SOEM的影子。它比较适合嵌入式场景比如你有一个MCU加一个MAC控制器想省掉商业协议栈费用SOEM是非常现实的起点。缺点是不像IgH那样深度依赖Linux内核驱动实时性完全靠你自己控制需要自己处理网卡驱动和调度。IgH是Linux内核态的主站驱动运行效率很高用标准Socket模式和RTAI等实时补丁配合可以达到很稳定的周期抖动。它最大的优势是生态成熟、文档多、网上踩坑案例丰富NXP i.MX系列、AMD Xilinx Zynq这些常见工业处理平台都有现成的移植记录。IgH的配置是基于文本的配置从站、映射PDO的过程不如TwinCAT可视化那么直观但这正好适合做OEM设备的厂家配置写死在代码里不需要现场反复调整。我的一个观点是开源方案适合有软件团队、愿意把主站集成到自有系统里的厂家。它本质上是把商业协议栈的采购成本转换成了研发团队的维护成本公司得有持续跟进社区更新、处理内核兼容问题的人否则后期压力会比较大。2.3 专用硬主站与模块化控制器如果说上面几种都是软件主站跑在通用硬件上那还有一种路线是专用ASIC/FPGA主站方案。倍福有自己的主站硬件IP一些工业通信厂商也提供FPGA实现的主站核特点是实时性高、不依赖操作系统调度周期抖动可以做到极低适合超高速、超多从站、微秒级同步这类苛刻场景。FPGA主站的开发门槛确实高一般需要Verilog/VHDL能力而且固件验证周期长适合大批量、功能固定的产品。如果你的产品形态是标准化运动控制器直接从FPGA主站开始无可厚非如果只是项目制非标设备我建议别动这个心思用现成的软件主站会省事很多。还有一类是模块化运动控制器比如倍福的CX系列嵌入式控制器、欧姆龙、基恩士配套的EtherCAT运动控制器这些本质上是厂家把主站软件和硬件做了深度整合用户拿到的是一台自带EtherCAT主站的控制器编程还是PLC风格整机可靠性由厂家兜底。项目交期紧、开发人手少的情况下这类方案很值得考虑缺点就是硬件形态被固定了灵活性不如自己做主站。2.4 按项目类型对号入座我整理了一个选型粗筛表不一定绝对准确但适合项目立项时快速缩小范围。项目特征更合适的路线理由快速验证、中小型设备、PLC工程师为主商业软件主站TwinCAT/CODESYS上手快、调试工具齐全、不需要嵌入式开发嵌入式设备量产、软件团队自研SOEM/IgH加实时Linux或裸机成本可控、可深度定制、无授权风险极高同步精度、超多轴同步FPGA/专用主站硬件抖动指标有保障、不受系统调度影响非标自动化集成项目模块化运动控制器整体交付、故障排查省心控制器厂家OEM自研或者半导体IP授权长期产品竞争力需要自主可控这个表只是个起点真正决定最终方案的还是下面要讲的几个核心指标。3. 六大核心选型要点逐个拆解3.1 实时性能与抖动指标是硬门槛选主站第一件事不是看功能列表而是问清楚最小支持周期和周期抖动。EtherCAT标准里并没有统一规定主站必须达到多少微秒的抖动算合格这完全取决于你的工艺需求。举个例子一般包装机械的同步运动1ms周期、抖动50us以内通常够用但如果是锂电池卷绕设备或者高速贴片机可能就需要250us甚至125us的周期抖动要控制在个位数微秒。抖动来源很复杂有操作系统调度抖动、网卡中断响应、总线芯片缓存、远端从站时钟漂移等多个叠加项。选型时不要信PPT上的理论值要让厂家提供实测示波器截图注明从站负载和运行时长。实测方法其实不复杂把主站和几个从站连起来在OP状态下用示波器抓某个从站的SYNC信号输出连续跑几个小时看上升沿间隔的最大最小值就是这个周期的真实抖动。这个方法谁都可以做我强烈建议在评估阶段就动手测这比看任何宣传资料都靠谱。3.2 从站数量和拓扑形态影响巨大主站支持的从站数量不只是能不能挂上的问题还关系到总线利用率、维护便利性和故障排查复杂度。一个简单的判断逻辑是挂10个从站和挂60个从站对主站处理能力的要求完全不同。在EtherCAT里每增加一个从站报文长度就增加一部分相同周期下总线上的数据量变大。正常情况下100Mbps带宽在1ms周期下挂几十个从站是没问题的但如果你每个从站的PDO数据都塞得特别满或者从站里有大量邮箱通讯比如伺服驱动器的在线调试、固件升级总线负载一下子就会上去可能导致报文往返超时。如果你对拓扑有特殊需求比如用了EtherCAT Hub扩展星型结构或者通过交换机做冗余环网一定要确认主站软件是否支持这种拓扑。不少开源主站默认只支持纯线型换交换机后拓扑识别会出问题这个坑我身边有人踩过。3.3 DC分布式时钟关系到多轴同步的命根子EtherCAT能做高精度多轴同步靠的就是DC机制。主站在第一个从站上打一个时间基准后面每个从站都基于这个基准校准自己的本地时钟最终让总线里所有从站在同一个时间点同步采样和输出。这里有个容易忽略的点DC同步是主站软件参与的。主站要周期性地计算时钟偏移并写回从站寄存器做漂移补偿。如果主站的DC算法写得粗糙比如补偿周期拉得太长或者补偿数值跳变太剧烈就会导致从站之间的同步误差缓慢漂移。我遇到过最典型的现象是单看主站和每个从站握手的同步误差都很正常但设备连续运行几个小时后轴与轴之间出现了肉眼可见的相对抖动。排查到最后就是主站DC补偿策略的问题。所以选主站时要重点看它是否暴露了DC误差的诊断参数以及这些诊断数据在运行过程中是否稳定而不是只在初始上电时对齐一次。3.4 周期任务和通信周期的关系要理清主站选型时很多人会忽略一个实际问题主站的任务调度和通信周期是怎么配合的。比如运动控制里常见的架构是位置环放在伺服驱动器内部主站只做1ms的位置规划但如果你的架构是把位置环放在主站里做那主站必须在每个通信周期内完成插补运算、位置环计算、指令下发这一整串逻辑留给通信的时间非常有限。所以评估主站性能时不能只看通信层指标要看通信应用任务一起跑的时候最坏情况下的周期时间是多少。我习惯做这样一个测试主站里加一个耗费CPU的浮点计算任务模拟实际项目里的插补算法然后看EtherCAT通信周期的抖动是否变大了。有些主站在空载时数据很漂亮一加任务就现原形。另外EtherCAT周期、运动控制周期、HMI刷新周期并不是同一个概念选型时要把它们之间的耦合关系定义清楚。很多设备把HMI直连在同一个主站上HMI的刷新请求会占用总线带宽这时候要么单独走以太网要么在组态时给实时通信预留出足够余量。3.5 生态、调试工具和维护成本也要算进去主站方案好不好用除了通信本身日常调试的体验也特别关键。商业方案的调试工具一般做得比较成熟比如TwinCAT和CODESYS都能在线扫码垛、查看每个从站的当前状态、手动强制DO输出、追踪变量波形做起诊断来效率很高。开源方案在这块就薄弱一些IgH可以命令行查看从站信息也支持通过脚本抓数据但可视化程度和易用性确实差一个档次。如果你的设备要交付到客户现场指望现场工程师用命令行去排查问题不现实这时候商业主站的在线监控功能就是一种隐形的售后成本节约。还有一点是固件升级和应用层兼容性。EtherCAT从站固件可以更新但主站是否能稳定地做固件升级升级失败后怎么恢复这些细节都要提前问清楚。我见过只升级一个从站固件结果整个从站组配置全都丢了的案例最后重新映射PDO花了半天时间这种隐藏成本在选型阶段基本看不出来。3.6 成本模型和量产风险成本要分成两块看一块是单台授权/硬件成本另一块是研发投入成本。商业主站单价不低但如果你们产品是年销量几千台的标准设备每台摊下来可能可以接受如果只是做个样机参加展会商业主站的授权费就显得比较刺眼。开源主站表面上免费但研发人员投入的时间是可量化的。我粗略估算过一个熟练的嵌入式工程师从拿到IgH/SOEM到把主站功能稳定跑起来、完成从站适配至少要两到三周如果是新手碰到网卡不兼容、实时补丁冲突这些问题时间就完全不可控了。量产风险则更多体现在供应链上。Windows工控机方案要担心硬件停产、系统更新导致驱动兼容问题嵌入式方案要担心主控芯片的供货稳定性和生命周期FPGA方案则要担心逻辑器件本身的供货风险。这些风险未必会立刻爆发但选型时就要有预案哪怕只是备选第二主控这样一个简单的B计划。4. 热点硬件平台实战rk3568与Linux 6.6内核的配置思路4.1 为什么rk3568这类ARM平台值得关注瑞芯微rk3568是近几年工业控制领域讨论度很高的一颗处理器四核A55带原生千兆MAC和PCIe接口可以外接Intel i210这种常见工业网卡。跑Linux做EtherCAT主站成本和性能都能控制在不错的区间很多国产运动控制板卡和工控机都选择了这个平台。实际做方案时rk3568主要分两种玩法。一种是在Linux上加PREEMPT_RT实时补丁跑IgH主站协议栈用标准网卡驱动加独立网口另一种是在裸机或者RTOS环境下跑SOEM不依赖Linux实时性完全由自己控制。前者上手快、社区资料多后者更适合对实时性要求很高、或者想完全掌控时序的场景。我认为对多数设备厂家来说rk3568加实时Linux是性价比天花板——芯片价格能接受、硬件设计资料免费开放、Linux生态成熟、后续做边缘计算网关也没问题。不过要提醒一句rk3568的GPU和NPU在EtherCAT场景用不上如果纯粹为了主站功能选它有点浪费考虑更低端的型号也许更合适。4.2 Linux 6.6.119的实时补丁与igc网卡驱动近期内核版本维持续稳定更新Linux 6.6.x系列作为一个长期维护版本在工业领域被广泛使用。EtherCAT主站选型时内核版本的影响主要在两个地方一是PREEMPT_RT实时补丁的兼容性二是网卡驱动的稳定性。Intel igc驱动对应的是I225/I226系列网卡这个系列的网卡在工业主板上很常见驱动架构比较新对时间戳和硬件中断的控制也比较好。如果你用rk3568或者其他芯片通过PCIe接I225/I226网卡需要注意内核里igc驱动的IRQ亲和性配置不要让网卡中断和主站应用任务挤在同一个CPU核上。配置实时内核时有几个必须确认的开关CONFIG_PREEMPT_RT要开启CONFIG_HZ_TICK改成高频率还要关闭CPU调频调压的实时性干扰项。不少人在普通发行版内核上直接跑主站跑起来发现抖动很大往往就是内核配置没做实时化。我没有拿到这颗芯片的现成实时补丁配置流程但按照ARM平台Linux实时化的一般套路核心就这几步下载对应版本内核源码、打上PREEMPT_RT补丁、配置内核选项、编译安装、再用cyclictest验证实时性。4.3 一个可参考的IgH主站环境搭建流程假设你的目标是rk3568板子上跑IgH主站这里给一个符合常见实践的参考步骤细节需要根据你使用的具体开发板做调整。第一步准备工具链和内核。在Ubuntu交叉编译环境中安装交叉编译器下载Linux 6.6.119内核源码和对应的PREEMPT_RT补丁进入内核目录执行补丁操作然后通过menuconfig打开实时相关选项包括Preemption Model选择Fully Preemptible Real-Time同时确认igc网卡驱动的支持开启。编译好镜像后烧录到板卡启动后用uname -a和cyclictest确认内核和实时性是否就绪。第二步获取并编译IgH主站源码。IgH目前的主站代码可以从其官方仓库获取编译前需要设置好内核源码路径执行configure、make、make install。安装后加载主站模块再按实际需要开启ethercat的调试功能比如在rc.local里留一个加载命令方便开机自启。第三步连接从站并扫描总线。用ethercat scan命令扫描挂载的从站看能不能正确识别每个从站的厂商号和产品码。扫描成功后如果从站厂商提供了XML格式的ESI文件在IgH中一般需要用工具将XML生成C头文件然后修改主站配置代码把从站的PDO映射关系定义进去。不少朋友卡在第三步因为IgH不像TwinCAT那样有图形界面从站配置全靠改头文件再编译。其实这个环节熟能生巧核心就是搞懂从站PDO里面的变量类型和映射规则。做过两个不同厂商的伺服驱动器的适配以后基本就能摸清套路了。4.4 CODESYS Control RTE SL在工控机上的主站配置如果你不想碰Linux命令行希望在Windows环境下快速搭一个EtherCAT主站CODESYS Control RTE SL是个常见选择。它的思路是装一个实时运行环境EtherCAT主站功能是Runtime里的一个组件通过CODESYS的工程界面来完成配置。安装好CODESYS后第一步是在设备树里添加EtherCAT Master设备。添加时CODESYS会枚举当前网卡选择一个作为主站网卡。这里有个经验一定要选那种支持实时驱动的网卡CODESYS对Intel的I210、I211、I225等网卡支持比较好Realtek网卡需要额外确认驱动支持情况否则实时性会打折扣。添加完主站后扫描从站。CODESYS可以自动读取从站的ESI信息把从站加到设备树里。然后手动配置PDO映射如果你的从站有多个同步管理器要确保每个SM的映射方向、更新模式设置正确。全部配置好后切换到在线模式启动PLC运行时观察从站状态是否能成功进入OP。CODESYS配置EtherCAT主站相对直观但真正的坑往往是版本兼容。CODESYS本身迭代很快Runtime版本、Device描述版本、网卡驱动版本之间都有对应关系升级任何一个组件都可能引入问题。所以实际项目里我习惯把CODESYS的版本组合记录下来作为项目的固定基线不随意升级。5. 常见选型误区与排查实录5.1 选型阶段最容易踩的坑误区一是参数越高越好。有人一上来就问主站支不支持125us周期可实际应用根本用不到结果花了更多成本去堆硬件还因为周期太高导致CPU占用率飙升反而增大了故障概率。合理做法是预留30%左右的性能余量而不是追求极限值。误区二是只测通不测稳定。现场演示时主站跑通了OP状态就以为方案可行。实际上EtherCAT的很多问题在短时间测试中暴露不出来特别是DC漂移、长时间运行后的内存泄漏、从站偶发丢站。我建议至少做48小时以上连续运行测试同时记录周期抖动的变化趋势。误区三是忽略从站的一致性。同型号的从站不同批次可能有微小的固件差异主站如果对从站状态处理过于严格就会出现这个批次正常下一批次频繁报警的情况。选型时最好问清楚主站方案对从站固件差异的容错机制。误区四是只看主站不看网络质量。EtherCAT对连接线缆、端子、现场干扰都很敏感再好的主站方案如果用了劣质网线或布线不规范同样会丢包。选型阶段就应该把现场的网线、接头选型一起考虑进去。5.2 调试阶段典型问题速查表下面整理几个EtherCAT主站调试中最常见的问题每个都是我实际遇到过或身边同行反馈过的典型场景。现象可能原因排查思路从站卡在Init进不了OP状态机切换时序不对、从站未正确响应、配置参数错误查看主站日志中从站的状态响应码确认ESI文件是否匹配检查DC配置是否开启运行中偶发Lost Frame网线接触不良、电磁干扰、主站超时时间设置过短用系统日志统计丢帧位置更换屏蔽网线重新测试同时排查电机抱闸等大电流器件干扰多轴同步误差缓慢增大主站DC补偿策略问题、从站晶振漂移过大监控DC漂移寄存器观察同步误差是否随时间线性增长尝试调整补偿周期PDO映射修改后无法启动SM内存大小不匹配、映射变量类型错误核对从站手册中每个SM的分配范围检查数据对齐方式通信周期正常但轴抖动明显运动控制任务优先级被通信任务抢占检查线程优先级设置确保插补计算任务与实时通信任务在同一实时线程内或合理调度这些问题共同点在于光靠主站本身的指示灯很难定位必须借助主站软件提供的诊断计数器和日志系统。这也是为什么我不建议在选型时只看通信功能诊断能力的强弱直接决定现场排查效率。5.3 关于步进电机与脉冲当量的一个提醒热词里出现了ethercat 步进电机 脉冲当量这样的搜索组合我觉得值得多说一句。很多做步进电机控制的工程师以前习惯了脉冲方向接口电机每转的脉冲数就是脉冲当量驱动器接受的是高速脉冲信号。换成EtherCAT后驱动器接收的是数字化的位置指令单位通常是用户自定义单位或者转的百分之一、千分之一而不是脉冲数。这个变化很容易造成理解混乱。EtherCAT环境下电机每转的细分不是靠主站发多少个脉冲决定的而是驱动器固件内部把位置指令换算成电机步距角。在配置主站时要把电子齿轮比、每转位置分辨率等参数弄清楚否则会出现主站给伺服发1000个单位电机转了半圈都不到的情况。我建议项目里保留一套脉冲当量换算表把旧方案的脉冲数、新方案的用户单位、实际机械位移三者对应起来方便机械和电气工程师沟通。很多人觉得这是小事但现场调试时因为单位换算错误导致轴超程撞机的案例并不少见。6. 选型决策清单与个人经验最后分享一个我做EtherCAT主站选型时常用的决策清单基本按照先硬件、再软件、最后商务的顺序来做。第一确认实时性指标把最小周期、最大抖动要求写死并让候选方案提供实测数据第二用实际项目中的从站模型做总线扫描测试确认拓扑兼容性和从站识别情况第三用满负载方式运行48小时记录丢帧率、DC误差变化曲线和内存占用趋势第四检查诊断工具是否覆盖你现场排障的常规需求第五核算单台成本和量产供应链风险至少握一个备选方案。在这些都确认完之后再回头对比TwinCAT、CODESYS、IgH、SOEM、FPGA方案各自的优缺点答案通常就比较清楚了。我个人在实际项目中的习惯是如果这是设备的核心技术壁垒比如运动控制器本体倾向于采用开源或自研主站把技术掌握在自己手里如果只是项目里的辅助功能模块比如一台设备的远程IO和简单轴控制直接用商业主站或集成控制器省出时间去做工艺优化。没有哪个方案是绝对最优的找到适合自己团队技术储备和项目交付节奏的才是最好的选型。
返回列表