做这个项目之前,我先把标题里的“lEF”纠正成“IE Field”——三菱FX5U这边的网络是CC-Link IE Field Basic,松下伺服那边的总线是EtherCAT,这两个东西本质上都是工业以太网,但完全不是一套协议。产线升级时碰到这个组合很正常:老设备里是三菱FX5U,新电机用的是松下MINAS系列,而松下伺服默认的标配总线就是EtherCAT,于是问题就变成了“FX5U怎么去控制一个说EtherCAT语言的伺服”。这篇文章就把我的完整处理思路、配置过程、踩过的坑全部摊开来讲,适合正在做三菱PLC和松下伺服混搭项目的电气工程师,也适合捣鼓EtherCAT主从站通信的自动化爱好者。
1. 为什么会出现“FX5U + 松下EtherCAT伺服”这种组合
1.1 FX5U的通讯底子不算弱,但就是没有EtherCAT主站口
三菱FX5U这款PLC,在小型机里算通讯能力很能打的了。本体自带一个以太网口,支持SLMP、Socket通信、CC-Link IE Field Basic主站、MODBUS TCP主从站,还能扩展CC-Link、CC-Link IE Field等网络模块。但有一点先泼冷水:FX5U没有原生的EtherCAT主站接口,也没法通过扩展模块直接加一个三菱原装的EtherCAT主站口。所以标题这个需求,天然就需要在中间架一座“桥”,或者换一个思路重新组织控制架构。
有些人会问:FX5U是不是可以通过“松下的EtherCAT从站伺服”加上“支持CC-Link IE Field Basic的网关”来实现控制?答案是可以,但前提是网关必须同时具备两个身份,一个是CC-Link IE Field Basic从站,另一个是EtherCAT主站。这类产品市面上不多,但不是没有。我后面会细说选型和配置逻辑。
1.2 松下伺服默认走EtherCAT,这是行业趋势
松下MINAS A6B、A5B这些伺服驱动器,默认支持的总线就是EtherCAT。EtherCAT在运动控制领域已经快成事实标准了,从倍福、欧姆龙到汇川、雷赛,几乎所有主流PLC或者运动控制器都把它作为高端轴控总线。松下伺服支持的EtherCAT功能包括CSP位置控制、CSV速度控制、CST力矩控制,还有各种原点回归、报警诊断,几乎是把整套驱动器功能都搬到了EtherCAT的过程数据对象(PDO)里。
所以当你拿到一台全新松下伺服,想用三菱FX5U去“说EtherCAT”,就得接受一个事实:PLC这边要把控制命令、目标位置、运行模式通过CC-Link IE Field Basic发给中间层,中间层再转换成EtherCAT报文,最终驱动伺服。中间层干了“翻译官”的活儿,这也是整个项目里最核心的技术点。
1.3 项目路线的总体判断
结合我实测经验,FX5U控制松下EtherCAT伺服,工程上最常见的路线有三条:
- 方案A:FX5U + 总线协议转换网关(CC-Link IE Field Basic从站 + EtherCAT主站)
- 方案B:FX5U + 第三方运动控制器(运动控制器做EtherCAT主站,同时和FX5U通过CC-Link IE Field Basic或TCP通讯)
- 方案C:FX5U通过普通以太网Socket,向一个PC式EtherCAT主站或者嵌入式主站发送控制字,再由它闭环控制伺服
方案A在硬件成本和项目实施上最贴近“PLC控伺服”的直觉,但坑也最多。方案B稳定性更好,实时性更强,但多了一个控制器,成本高、系统复杂。方案C适合会写上位机的人,但对普通电气工程师不太友好。我下面重点展开方案A,同时把方案B的适用场景也讲清楚。
2. 两条总线协议的底层区别,搞懂它才不会翻车
2.1 CC-Link IE Field Basic:三菱的“轻量级以太网总线”
CC-Link IE Field Basic是基于普通以太网(100BASE-TX)的协议,它对硬件要求很低,不需要专用的ASIC芯片,用PLC上自带的以太网口就能跑。它和CC-Link IE Field(原版,基于千兆以太网、需要专用芯片)最大的区别就是:Basic版牺牲了性能和容量,换来了低成本和高易用性。
具体来说,CC-Link IE Field Basic通信周期大概是“毫秒级”,一个网络里支持的从站数量是64个,每个从站固定的数据容量是:RX/RY 32点、RWr/RWw 4字。如果不够,可以扩展,但基本容量就是这么多。对伺服控制来说,这个容量其实比很多人想的紧张,后面讲数据映射时你们会感受到,一条伺服光控制字、状态字、目标位置、实际位置就要占掉不少字。
有个关键点要记住:CC-Link IE Field Basic的通信周期和EtherCAT没法比,它不是硬实时总线。如果你要做龙门双驱、电子凸轮、多轴插补这类高同步精度控制,FX5U走CC-Link IE Field Basic再去桥接EtherCAT的方案是肯定不行的。概周期抖动太大,多轴之间根本对不齐。这种场景请直接考虑iQ-R系列加运动控制模块,或者换成自带EtherCAT主站的运动控制器。
2.2 EtherCAT:从站芯片、DC同步和PDO映射
EtherCAT的核心设计思路叫“报文飞过式”处理,主站发一帧报文,从站硬件(ESC芯片,即EtherCAT Slave Controller)在报文经过时直接抽取或插入数据,延迟只有纳秒级,所以它的同步性能远超普通以太网总线。再加上分布式时钟(DC)机制,所有从站可以做到亚微秒级的时钟同步。
EtherCAT的每个从站都需要有ESC芯片,比如倍福的ET1100/ET1200,或者一些国产的IP核。和协议转换、主站移植相关的工作,经常绕不开SSC(EtherCAT Slave Stack Code)和ESI文件。ESI文件就是每个从站的“身份证”,里面写了这个从站支持哪些PDO、对象字典、同步模式等。松下伺服通过PANATERM软件可以导出对应的ESI文件,把文件导入到EtherCAT主站配置工具里,才能识别出这个伺服的全部能力。
这里解释一下PDO,因为后面配置天天用。PDO就是过程数据对象,分为RxPDO(主站发给从站的数据,比如控制字、目标位置、目标速度)和TxPDO(从站发给主站的数据,比如状态字、实际位置、实际速度)。你可以把PDO理解成“快递柜”,主站把控制命令塞进去,伺服把状态和反馈塞回来,每帧报文自动存取,不需要逐条解析报文。
2.3 一句话对比,选型时要用到
| 对比项 | CC-Link IE Field Basic | EtherCAT |
|---|---|---|
| 物理层 | 100BASE-TX以太网 | 100BASE-TX以太网 |
| 是否需要专用硬件 | 不需要,普通以太网口即可 | 从站必须带ESC芯片 |
| 通信周期 | 毫秒级,非硬实时 | 百微秒甚至更低的硬实时 |
| 同步机制 | 无严格同步 | DC分布式时钟,亚微秒级同步 |
| 数据容量 | 每从站固定32点+4字(可扩展) | 理论上一帧报文最大可达几十KB |
| 拓扑方式 | 星型、线型(通过交换机) | 线型、树型、环网,依赖从站级联 |
| 典型厂商 | 三菱 | 倍福、松下、汇川、欧姆龙等 |
这俩协议放在一起,本身就不是一个量级的对手。所以控制链条是“FX5U → CC-Link IE Field Basic → 网关 → EtherCAT → 松下伺服”,瓶颈一定在CC-Link IE Field Basic这一段。明白这一点,你就知道调试时哪些问题该往哪儿找。
3. 系统架构与硬件选型
3.1 方案A:FX5U + 协议转换网关,最直接的“翻译官”路线
先看网络拓扑。FX5U的以太网口接一个工业交换机,然后接到网关设备的CC-Link IE Field Basic从站口;网关的EtherCAT主站口再接松下伺服驱动器。调试时电脑可以也接到交换机上,实现“一台电脑既连GX Works3,又能看网关配置,还能用PANATERM看伺服”。
这里有个很容易忽略的细节:网关的EtherCAT主站不是“通电就能跑”的。它需要先完成配置加载,然后进入OP状态,也就是Operational状态,才能周期性输出PDO。而CC-Link IE Field Basic主站这边,三菱PLC上电后会自动执行循环通信,如果网关没有进入OP状态,PLC侧看到的就是通信正常但数据不更新,或者干脆网络连线断开。调试时最好先配好EtherCAT主站,确保网关和伺服之间能正常跑起来,再去处理PLC侧的CC-Link IE Field Basic通信。
网关选型时有几个硬指标必须盯住:
- CC-Link IE Field Basic从站占用容量是否可配置
- EtherCAT主站支持多少个轴,PDO最大长度是多少
- 是否有DC同步支持
- 配置方式是网页配置、U盘加载还是专用软件
- 工作电源、安装方式、导轨宽度是否适合机柜
不建议选那种“功能看着都有,但固件常年不更新”的小众网关。EtherCAT协议本身很标准,但不同版本的主站代码,尤其是国产化HAL层的稳定性千差万别。我建议优先选择有成熟案例、技术支持响应快的品牌,不要只看价格。
3.2 方案B:运动控制器做中间层,牺牲成本换可靠性
如果网关方案让你心里没底,或者项目对同步精度要求确实高,那就换成“FX5U + 支持EtherCAT主站的运动控制器”架构。这等于把桥和主站合并成一个专门干运动控制的设备,市面上常见的有汇川、固高、雷赛、正运动等品牌的运动控制器,它们都内置EtherCAT主站功能。
此时FX5U和运动控制器之间可以用CC-Link IE Field Basic通信,也可以直接用FX5U的Socket通信发一个结构体过去,把目标位置、速度、加减速、使能信号发给运动控制器,运动控制器再通过EtherCAT驱动松下伺服。这样控制逻辑分成两层:PLC管流程,运动控制器管轴。项目调起来反而清爽,运动控制器自带的示波器功能还可以帮你抓伺服波形,排查问题比网关方案容易得多。
代价是成本高了一截、程序量多了一截,而且你得多学一套控制器的开发环境。如果项目只有一两根轴、不要求高精度同步,没必要走到方案B。
3.3 方案C:PC式EtherCAT主站,特种兵玩法
这个方案适合有C++或C#基础、不想买专用控制器的工程师。用一台工控机,装免费EtherCAT主站软件,比如SOEM,或TwinCAT的免费授权版本,把它当成“软PLC + EtherCAT主站”。FX5U通过普通以太网Socket发送控制命令给工控机上的主站程序,主站程序再去控制松下伺服。
这个方案最大的问题是稳定性和实时性,工控机操作系统不是硬实时,EtherCAT周期抖动会比专用控制器大。如果再加一层Windows更新、杀毒软件之类的,轴控稳定性会很悬。除非你只做调试测试,量产设备不建议这样搞。
4. 从零配置全流程
4.1 GX Works3里配置CC-Link IE Field Basic主站
三菱FX5U的编程软件是GX Works3,注意不是GX Developer,也不是GX Works2。FX5U和它下面的网络配置必须用GX Works3。
新建工程时要选对CPU型号。然后进入“参数 — 以太网端口”分类,找到CC-Link IE Field Basic的设置项,把它设为主站模式。此时需要添加从站设备,也就是你选用的那个网关设备。从站设备的站号要和网关上实际设置的站号一致。假设网关的从站站号是1,容量是默认的RX/RY 32点、RWr/RWw 4字,那么GX Works3里分配地址时就会自动算出位软元件和字软元件的起始地址。
调试建议先不要急着接伺服,而是先把FX5U和网关单独通信,通过GX Works3的“CC-Link IE Field Basic诊断”功能,确认链路是通的、从站是Online状态。这一步如果都过不了,后面EtherCAT那边配得再漂亮也白搭。
4.2 网关侧EtherCAT主站配置:导入ESI文件、扫描伺服
用USB或网线连接网关的配置接口,打开配套软件。典型操作:新建工程,选择“EtherCAT主站”功能,点击扫描(Scan)按钮,软件会自动识别下游的松下伺服。识别成功的标志是软件里出现一个从站,厂商名显示“Panasonic”,型号类似“MADLN05BE”或“MADLT05BF”之类的具体型号。如果扫描不出来,十有八九是松下伺服上的站号有冲突,或者伺服没有上电、EtherCAT线没接好。
然后要手动导入松下的ESI文件。这个文件从哪儿来?如果用的是PANATERM软件,库里自带;如果不上网的情况下,也可以去伺服驱动器包装里的光盘找。导入后需要重新扫描,确保软件识别到的从站信息来自ESI文件,而不是“未知设备”。
接下来配置PDO映射。以松下MINAS A6B系列为例,常用的RxPDO可以映射这些对象:
- 0x6040:控制字
- 0x607A:目标位置
- 0x60FF:目标速度(如果用速度模式)
- 0x6060:运行模式
TxPDO则映射:
- 0x6041:状态字
- 0x6064:实际位置
- 0x606C:实际速度
- 0x60FD:数字输入状态
这些映射关系全部在网关配置里做。不同网关软件界面不一样,但底层逻辑一致。配置完成后生成工程,把配置下载到网关里,网关重新启动后会自动进入EtherCAT主站模式。
4.3 松下伺服侧的准备
松下伺服上电后,默认可能有报警,比如AL-10或AL-31,要先确认。可以在PANATERM里看报警信息,根据代码查手册处理。
然后把伺服设为EtherCAT通信模式。松下有些型号通过面板按键可以设置“通信选择”为EtherCAT,有些型号只能在PANATERM软件里改。改了之后需要重启驱动器。
站号设置也需要确认。EtherCAT的从站站号可以由主站分配,但初始扫描时要保证物理上只有一个从站,或者正确拨码。如果没有特殊要求,我建议物理接线时先把伺服拔掉,让网关只连着电脑调试,最后再接伺服,这样可以避免扫描时一串报警信息干扰判断。
4.4 数据映射与控制字解析
当EtherCAT主站进入OP状态后,网关内部会形成一个数据映射区,一端是EtherCAT的PDO数据,另一端是CC-Link IE Field Basic的RWr/RWw数据。FX5U通过CC-Link IE Field Basic往RWw里写数据,网关把这些数据映射到EtherCAT的RxPDO,继而发送给伺服;伺服返回的TxPDO则被网关拆解,映射到RWr里,FX5U直接读RWr就行。
熟悉松下EtherCAT伺服的人应该知道,控制字0x6040要按状态机顺序来写,不能上来就写“使能”。常用的切换路径是:
- 从初始状态开始,先写控制字0x06,让伺服进入“Ready to Switch On”
- 再写0x07,进入“Switched On”
- 最后写0x0F,进入“Operation Enable”,此时伺服才真正使能
很多新手直接给控制字写0x0F,结果伺服没反应,就以为是通信断了。其实是状态机没有按顺序走。调试时可以在PLC里做一个“使能按钮”,按下后按延时依次写入0x06、0x07、0x0F,每步间隔50毫秒左右,基本能解决。
另外,模式选择0x6060也是必须的。松下伺服支持的模式里,位置控制模式的值通常是1,速度模式是3,力矩模式是4。如果模式不匹配,写了目标速度但伺服不动,多半就是这里的问题。
5. 调试实录与常见问题排查
5.1 伺服不上使能,先查这三件事
如果PLC逻辑写了使能,但伺服就是不带电,我建议按顺序排查。
第一,看EtherCAT主站状态。网关软件一般能看到主站是否在OP状态,如果停在PRE_OP或者SAFE_OP,说明PDO配置或DC配置有问题,主站无法进入完全运行状态。松下伺服对同步模式要求不算苛刻,但DC模式必须正确配置,否则极难进入OP。
第二,看伺服面板有没有报警。A6B系列常见的“AL-51”是过载,这个不是通信问题。但我碰到过一次“AL-64”编码器相关报警,最终发现是伺服编码器线接头松动。
第三,看STO输入。松下伺服的STO端子(安全转矩关闭)如果没有接通,不管上位怎么发使能,伺服都不会通电。检查方法是看伺服面板是否显示“STO”字样,或者用万用表量一下STO端子输入电压。这个坑非常常见,尤其是第一次接线的人,经常把STO当成额外保护接口,没接,然后折腾一下午。
5.2 EtherCAT断站、掉站怎么处理
EtherCAT掉站,首先要确认是不是线缆问题。EtherCAT在物理层很敏感,不能用普通网线随便接,要确保是正经的工业以太网线,尤其是带屏蔽的。实际项目中,我见过很多次“频繁掉站”是因为现场强电干扰,网线没走独立线槽,或者屏蔽层没有单端接地。
排除物理层后,再用网关软件看掉站时的错误码。EtherCAT运行中掉站,多数是因为丢帧率过高,比如线上有反射、网线过长、交换机接线不合格等。EtherCAT理论上可以线型级联,但不建议中间串一个普通交换机。还有一次是伺服之间的接线顺序问题,主站出线接第一台伺服IN口,第一台伺服OUT口接第二台伺服IN口,接反就会出现奇奇怪怪的掉站问题。
5.3 CC-Link IE Field Basic通了,但数据不刷新
FX5U和网关的CC-Link IE Field Basic已经握手成功,数据却不刷新,我碰到过的原因有三个。
一是数据容量不匹配。网关侧配置了扩展的RWr/RWw字长,但PLC侧还是默认4字,数据读不全,看起来就是某些数据一直是0。二是在GX Works3里分配的软元件地址和实际映射表错位了,多了一句注释没关系,但差一个字,整段数据就全乱了。三是网关没有把CC-Link IE Field Basic的状态映射到EtherCAT侧,比如网关内部的“数据有效”标志位没有置位,导致PLC发的数据根本没被使用。
我的排查方法是先在PLC程序里强制写一个特殊值,比如写“0x5A5A”到某个RWw地址,然后在网关软件里看能不能读到这个值。能读到说明链路OK,读不到就去查地址配置。
5.4 常见问题速查表
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| 伺服完全无反应,不上电 | 状态机没切换、STO未接通、模式错误 | 查控制字写入顺序、量STO端子、查0x6060 |
| EtherCAT主站无法进入OP | PDO映射错误、ESI版本不匹配、DC配置异常 | 重新导入ESI、检查PDO映射、关闭或者开启DC |
| FX5U和网关通信正常,但数据不更新 | RWr/RWw地址错位、容量配置不一致 | 强制赋值测试、对照映射表逐字核对 |
| 伺服偶尔掉站 | 线缆质量、干扰、接线顺序错误 | 换屏蔽网线、检查接地、核对IN/OUT |
| 伺服运行中报警AL-51/AL-64 | 负载过大、编码器故障 | 查负载、查编码器线缆、伺服增益需要调整 |
最后分享一点个人感受
做这个项目时我最深的体会是:不要把“CC-Link IE Field Basic”和“EtherCAT”想象成水火不容的两套东西,它们本质上就是两门语言,中间加一个翻译官就行。但翻译官的实时性决定了整套系统的天花板。如果只是定位控制、点位运动,FX5U加网关完全够用;如果要跑插补、同步、凸轮,劝你趁早换成真正的运动控制器,别在总线上死磕。
调试的时候一定要备一台好的工业交换机,留一个口给电脑抓包或监视。有人会用Wireshark抓EtherCAT报文分析,虽然大部分时候不用走到这一步,但遇到极难排查的掉站、数据错乱问题,抓包是最能说明问题的。另外,松下的PANATERM软件最好装最新版,老版本对一些新固件的A6B伺服识别不全,导出的ESI也不够完整,直接会影响主站配置。
最后一个小技巧:交付设备前,建议把PLC侧程序里对伺服的控制字做上“上电自动复位”逻辑。很多设备现场断电再上电后,伺服会停在报警或未使能状态,如果PLC程序没有复归逻辑,现场操作工只能去按伺服面板,体验非常差。把这个细节做好,设备交付后的售后电话能少一半。