刚接触汇川这套系统的时候,我其实被 EtherCAT 折磨得不轻。记得第一次在客户现场调试 H5U 配 SV660N,明明线也接了、站号也拨了,InoProShop 里就是扫描不到从站,折腾了一下午最后发现是网线顺序插错口。这些年踩过的坑多了,回头看很多所谓“通讯故障”,其实都集中在几个固定的环节。这篇就是把汇川 InoProShop 配置 EtherCAT 的完整流程拆开来讲,从原理到实操、从参数设置到故障排查,尽量把新手最容易卡住的 99% 问题一次说透。不管是做设备维护的老电工,还是刚入行的电气工程师,只要手头有汇川 PLC 和 EtherCAT 从站,这篇应该都能帮你少走不少弯路。
1. 为什么 EtherCAT 配置让人头疼:先搞懂这套系统的“骨架”
1.1 EtherCAT 到底解决了什么问题
先说清楚 EtherCAT 是干嘛的。在它普及之前,PLC 控制伺服主要有几种方式:脉冲、模拟量、Modbus 通讯。脉冲方式接线多、频率上限低,轴一多就头疼;Modbus 虽然接线少,但速度慢、实时性差,多轴协同基本指望不上。EtherCAT 属于实时以太网,用标准的网线就能把几十个从站串起来,一个周期内主站发一帧数据,每个从站经过时把自己的数据取走、再插入反馈数据,整个过程极快,同步精度能做到微秒级。这也是为什么现在汇川的 H5U、AM 系列、Easy 系列都把它当成标配总线。
但“快”也意味着“严”。EtherCAT 的配置不像 Modbus 那样只要地址对就能大概率跑通,它需要主站和从站之间有一份高度匹配的“设备描述文件”(XML)来约定数据格式,需要正确设置从站站号,需要合理映射 PDO 数据,还要确保网络拓扑没有错误。任何一个环节出错,表现出来的都是“通讯不上”或者“总线报错”,这也是新手觉得它难的根本原因——问题往往不在通讯本身,而在配置链路上的某一环。
1.2 InoProShop 在 EtherCAT 调试中的角色
InoProShop 是汇川基于 CODESYS V3 内核开发的编程软件,支持 IEC 61131-3 标准的梯形图、结构化文本、功能块图等语言,同时把 EtherCAT 主站的配置界面直接集成在工程里。也就是说,你不需要单独装一个第三方主站工具,从站扫描、从站参数配置、PDO 映射、变量绑定,全部在 InoProShop 里完成。
不同系列对应的软件版本要注意:H5U、Easy 系列通常用 InoProShop,而 AM 系列有些型号走的是另一套界面或者更新版本的 InoProShop。版本差异直接决定你看到的配置菜单、支持的从站数量、以及 XML 文件的导入方式。V1.6 和 V1.7 之间的界面布局就改了不少,如果你习惯了老版本,升上去之后找“从站配置”入口都要花点时间。我的建议是:项目没特殊要求就固定用同一个版本,不同版本建的工程要谨慎互开,配置文件不一定完全兼容,而且从站 XML 版本也可能有匹配问题。
2. 配置前必须想清楚的 4 件事:硬件、版本、站号和 XML
2.1 硬件选型和接线:网线不是随便插的
EtherCAT 用的是标准 RJ45 网口和以太网线,但和普通办公网络的用法差别很大。普通交换机不能随便串进 EtherCAT 网络里,因为 EtherCAT 的帧是逐个从站“接力”转发,交换机那种存储转发机制会破坏实时性。这一点新手经常踩坑:以为中间加个交换机方便布线,结果发现系统要么扫描不到从站、要么运行中频繁断网。
接线方面有几点需要特别留意:
- 网线质量:建议不低于 CAT5e,现场强干扰环境最好用带屏蔽的工业网线,屏蔽层要可靠接地。我遇到过好几次伺服偶尔报通讯故障,换根好网线就再没出现过。
- 端口区分:汇川伺服、变频器作为 EtherCAT 从站时,通常标有 IN 和 OUT 两个网口,或者用 X1、X2 区分。主站网线必须接 IN 口,搞反了从站不会转发数据。
- 终端电阻:EtherCAT 从站内部一般集成了终端电阻,不需要像 Profibus 那样手动加终端电阻,但前提是最后一个从站的 OUT 口不要再接任何设备。
- 拓扑结构:汇川主站通常支持线型拓扑,也支持分支(通过 IO 耦合器之类的设备实现)。新手最稳妥的方案就是一条线串下来:PLC → 伺服1 → 伺服2 → 变频器,清清楚楚。
2.2 固件版本匹配:为什么从站扫描出来“名字不对”
这是很多人在现场突然卡住的地方:软件里明明导入了从站 XML,网上搜到的教程也能照做,但扫描出来的从站型号和实际设备对不上。真实原因多半是主站软件版本、从站固件版本、XML 文件版本三者不匹配。
举个例子,SV660N 伺服早期固件和后期固件在对象字典上有些调整,如果你导入的是新版的 XML,但设备还是老固件,扫描出来的名称可能还是对的,可一旦下载配置,伺服就报参数错误或直接切到 Fault 状态。变频器 MD800 也有类似情况,不同批次固件对 CiA402 报文支持的程度不一样。我现在的习惯是:拿到设备先看铭牌固件版本,再去汇川官网下载对应版本的 XML 文件,而不是顺手用安装包自带的那个。
有时候你打开 InoProShop 的从站库,能看到同型号设备好多个版本条目,别选最新的就完事,得和实际设备固件对应。实在不确定,可以先把设备单独上电,用汇川的上位机调试软件读一下固件版本再匹配。
2.3 从站站号设定:最容易被忽略的“身份 ID”
EtherCAT 通讯里,主站靠站号识别每个从站。站号一般有三层概念:物理拨码(如果有的话)、从站内部参数、主站工程里分配的地址。这三者必须形成对应关系。
很多汇川伺服和变频器没有硬件拨码,而是通过面板参数设置站号。MD800 变频器通常在参数组里设通讯地址或站点号,SV660N 则需要在伺服驱动器面板上设置站号参数。注意了:站号必须唯一,而且不能为 0。如果两个从站撞了号,扫描的时候后一个从站往往会把前面从站的通讯打断,表现就是时好时坏。
还有一个细节:主站工程里的从站地址不完全等于从站实际的站号。在线扫描添加从站时,InoProShop 会根据从站返回的地址自动分配主站逻辑位置,但你如果在扫描后手动改过从站的拨码或参数,最好删掉重新扫一次,否则工程配置里的地址和物理设备对不上,一下载就会报“从站无响应”。
2.4 从站 XML 文件:设备身份说明书
XML 文件全称是 EtherCAT Slave Information,对从站来说就像身份证,里面写清了设备支持的对象字典、PDO 映射模板、同步模式、厂商信息等。主站软件解析了 XML 才知道怎么跟这个从站通讯、能传输哪些数据。
EtherCAT 从站 XML 文件的获取和导入流程:
- 从汇川官网或者随机 U 盘里找到对应型号的 XML 文件,一般是类似
SV660N_xxx.xml的命名。 - 打开 InoProShop 工程,进入“设备”或“从站配置”界面,在设备库里找到“导入 XML 描述文件”之类的入口。
- 导入后注意检查设备库里是否多出了相应型号,有的版本导入后需要重启软件才能识别。
- 如果在“从站配置”里还是找不到,检查 XML 是否放错了目录,有些老版本只扫描软件安装目录下的指定文件夹。
有一个很容易被忽略的问题:某些第三方从站或非汇川设备的 XML 文件版本较老,可能不支持新的 InoProShop 导入。这时候可以尝试用文本编辑器打开 XML,看看EtherCATInfo版本号,如果版本过低,可能需要向设备厂家要新版本的描述文件。汇川自己设备一般没这个坑,但接第三方伺服、IO 模块时就要多留个心眼。
3. 一步一步实操:建立一个能跑的 EtherCAT 项目(以 H5U + SV660N + MD800 为例)
3.1 新建工程与添加主站:选对模板是成功的一半
打开 InoProShop,新建工程时选择对应 PLC 型号和固件版本。型号选错的话,EtherCAT 主站功能可能在菜单里直接不出现,或者在编译下载时报“设备类型不匹配”。
新建好工程后,在左侧设备树里找到“EtherCAT 主站”或“总线主站”节点,右键选择“添加设备”。这里要注意,InoProShop 有“自动扫描”和“手动添加”两种方式。新手建议先扫描,这种操作的问题后面细说。扫描之前,确保连接好 PLC 和所有从站,PLC 处于运行或停止状态都行,但一定要先连上软件并能读到 PLC 信息。
3.2 扫描并添加从站:在线扫描 vs 手动添加
在 InoProShop 里,双击主站节点,工具栏上能找到“扫描网络”或类似按钮。点下去之后,软件会发送广播帧查找从站。如果链路正常,扫描列表里会按物理顺序显示所有从站型号。
这里有一个很关键的选项:是否将扫描到的从站添加到工程中。我建议第一次先扫描但不立即添加,先核对列表里的型号、数量和实际设备是否一致,再确认每个从站的地址分配是否符合预期。如果扫描结果里出现“未知设备”或“文件缺失”,说明 XML 文件没装全,回到第 2.4 节解决。
手动添加适用于没有实际硬件但需要离线编程的场景。这种方式好处是可以先把程序写好,坏处是容易出现“工程配置和现场设备对不上”的问题。所以离线编程时,一定要通过设备铭牌确认好型号、固件版本、从站数量,离线添加完成后,到现场最好还是重新扫描比对一次。
3.3 配置从站参数与 PDO 映射:地址、模式、报文都要对
添加完从站,真正的核心工作才开始。双击一个从站节点,可以进入参数配置界面。这里面主要关注几个方面:
同步模式:从站支持 Free-Run、SM 同步、DC 同步等模式。多轴需要精确同步时选 DC,单轴简单控制时用 SM 或 Free-Run 问题不大。汇川伺服一般默认就能用,但如果出现速度波动或位置同步误差,要考虑切换同步模式并配合总线周期调整。
对象字典与 PDO 映射:这是最容易出错的地方。SV660N 这类 CiA402 伺服,控制字(Controlword,对象 6040h)、状态字(Statusword,对象 6041h)、目标速度(60FFh)、目标位置(607Ah)等关键对象,必须映射到通讯报文里,主站才能读写。InoProShop 里一般提供“默认映射”或“标准报文”的快捷选择,新手直接用默认的就行,不要一上来就自定义,等有经验了再按需裁剪。
以 SV660N 为例,常用标准报文映射大致是:
| 方向 | 内容 | 对象字典 |
|---|---|---|
| 主站→从站 | 控制字 | 6040h |
| 主站→从站 | 目标速度/目标位置 | 60FFh / 607Ah |
| 主站→从站 | 模式设定 | 6060h |
| 从站→主站 | 状态字 | 6041h |
| 从站→主站 | 实际速度/实际位置 | 606Ch / 6064h |
MD800 变频器也类似,但要注意它支持的报文可能没有伺服那么多,映射的时候以 XML 文件里列出来的 PDO 为准,强行加一个设备不支持的对象,配置校验会直接报错。
3.4 映射到 PLC 变量与编写简单运动程序
PDO 映射解决的是“从站数据放在通讯报文的哪个位置”,下一步要把报文里的数据变成程序里能轻松访问的变量。InoProShop 的做法是把每个从站的输入输出数据做成过程映像变量,再通过符号链接的方式映射到全局变量表。
实际操作里,我一般会这样组织变量:
- 在全局变量表里建一组
SV660N_Axis1_ControlWord、SV660N_Axis1_StatusWord这类别名变量。 - 把过程映像里的
Outputs.ControlWord链接到这个别名变量。 - 程序里只用别名变量,不直接碰过程映像的原始数据结构。
这样的好处是程序逻辑清晰,而且后续如果换了从站型号,PDO 位置变了,只需要重新链接变量,梯形图和 ST 程序不用大改。
写一个简单的点动程序,思路就是:置位控制字 6040h 的 bit0(使能),等待状态字 6041h 的 bit0 或 bit1 准备状态,再切换到速度模式(6060h = 3),再往 60FFh 写入目标速度。对新手来说,下面的梯形图或者 ST 逻辑片段可以直接抄:
// 伪代码:伺服使能与点动 IF bEnable THEN Axis1_ControlWord := 16#0006; // 先复位,再切换到 ready to switch on ELSE Axis1_ControlWord := 16#0000; END_IF // 使能后,延时一下再给主使能 IF bJogForward THEN Axis1_ControlWord := 16#000F; // 打开主接触器 + 使能运行 Axis1_Mode := 3; // 速度模式 Axis1_Speed := 500; // 目标速度 500 r/min END_IF实际项目里这个使能时序要比上面严格很多,比如“快速停止”“急停”“限位触发”都要单独处理,但底层思路是一样的:控制字走 6040h,状态字看 6041h,模式选 6060h。
3.5 下载、在线与监控:第一次“能通讯上”的判断标准
配置完成后,点击编译、下载,把工程下载到 PLC。下载完成后把 PLC 切到运行模式。
此时 InoProShop 的从站节点状态会从绿色的 OP(Operational,正常运行)到红色的类似“INIT”的状态。最理想的通讯状态是主站节点和所有从站节点都处于 OP。如果你看到某个从站节点显示在 PRE-OP 或 SAFE-OP,说明通讯建立了一部分,但还没有完全运行起来。常见原因是 PDO 映射不完整、看门狗时间太短、或 DC 同步没有成功。
从这一步开始,如果一切顺利,你就能在 InoProShop 的监控表里看到伺服的状态字在变化、实际位置在更新。如果走到这里还是不“能通讯上”,那大概率进入了真正考验排查能力的环节,也就是下一部分。
4. 新手 99% 通讯故障:现象、原因与排查实录
4.1 从站扫描不到或报错:常见原因速查表
扫描不到从站是最常见的故障,现象很单一:点击扫描,列表空白,或者报“总线通讯超时”。很多人第一反应就是报修,其实 80% 的情况都出在下面几个环节。
| 故障现象 | 可能原因 | 排查方法 |
|---|---|---|
| 扫描列表完全空白 | PLC 本身没有识别主站模块,或固件不支持 EtherCAT | 检查 PLC 型号是否支持 EtherCAT,看主站节点是否配置 |
| 扫描列表空白且网口灯不亮 | 网线没接对或网线损坏 | 确认接的是 PLC 的 EtherCAT 口,不是调试网口;换一根好网线 |
| 扫描列表只出现部分从站 | 某个从站 IN/OUT 接反,或中间设备断电 | 从 PLC 开始逐段检查网线连接和从站供电 |
| 扫描时提示“XML 文件缺失” | 从站型号的 XML 没导入,或版本不匹配 | 回第 2.4 节重新导入对应版本的 XML |
| 扫描发现同名从站但站点乱序 | 有从站站号重复,或接线顺序和物理顺序不一致 | 逐台断电,确认每台设备的站号唯一 |
有一个经验之谈:当整条链路扫不通时,先拔掉中间所有从站,只留 PLC 和一个最近端从站,从最小系统开始验证。这样定位特别快,逐个加回去,问题节点一下子就暴露了。
4.2 配置下载后 PLC 报“总线错误”:IO 超时的排查路径
扫描成功,配置也下载了,但 PLC 一运行就报总线错,从站节点在 OP 和 SAFE-OP 之间反复跳。这类问题发生在“配置能够建立,但保持不住”的阶段,重点排查方向有三个。
第一,看门狗时间。如果看门狗太短,程序扫描周期稍长,从站收不到连续的数据帧,就认为主站“掉线”,自动切回 SAFE-OP。InoProShop 里主站和从站都可以设置看门狗时间,默认值一般在几百毫秒级别,程序循环超过这个时间就要报警。解决办法一方面是优化程序扫描周期,另一方面是适当加大看门狗时间,但不要盲目加得太大,否则真的掉线了系统反应太慢。
第二,PDO 映射不完整。比如 MD800 变频器的 XML 里有发送 PDO 和接收 PDO,如果你只映射了接收 PDO 没映射发送 PDO,通讯校验时不一定会报错,但运行中从站可能会周期性报错。检查每个从站节点下,RxPDO 和 TxPDO 是否都完整映射了实际需要的数据。
第三,DC 同步失败。多从站设备都开启了 DC 同步,但主站和从站的时钟修正一直没达到收敛,从站就会始终处于 SYNC 错误状态。这种情况常见于首尾站距离很远、线缆质量差、或主站周期设置太极端。先把同步模式换成 SM 或 Free-Run 验证是不是 DC 的问题,如果是,再优化接线和周期设置。
4.3 伺服能通讯但电机不动:模式、使能和限位三个坎
比较隐蔽的问题不是“通讯不上”,而是“通讯都正常,伺服也显示运行,但电机不转”。新手经常被这个搞懵,以为轴坏了,其实绝大多数是逻辑上的三个坎没过。
第一个坎是控制字时序不对。CiA402 状态机要求伺服从“启动”到“运行使能”要经历几个步骤:Shutdown → Switch On Disabled → Ready To Switch On → Switched On → Operation Enabled。如果程序里直接往控制字写 16#000F,有些伺服会直接拒绝执行。正确做法是先用 16#0006 让状态机复位,再切 16#0007,最后给 16#000F 使能运行。这个过程建议加延时或者循环检测状态字,按状态机的节奏走。
第二个坎是模式没有被正确设置。你写的是速度模式,但 6060h 里存的是位置模式,控制字给了使能,电机也不会转。排查方法很简单,在 InoProShop 监控表里读一下 6060h 的值,看是不是 3,如果不对,在程序里每次上电都强制写一遍。
第三个坎是限位或急停回路没有准备好。伺服驱动器的 CN1 端子一般都有急停、正限位、负限位输入,这些信号如果触发,驱动器的运行使能会被内部控制逻辑掐断。即便通讯层看着一切正常,控制字给了使能,实际也转动不了。这时看驱动器的面板报警代码,通常能看到 A540 之类的紧急停止报警,把对应端子信号复位就好了。
4.4 抖动、报警和偶发断网:干扰与通信质量的坑
如果项目运行过程中偶尔报“同步丢失”或“总线断”,但重启又好了,这一般不是配置问题,而是通信质量问题。
EtherCAT 走的是差分以太网信号,本身抗干扰能力比串口强很多,但在变频器、伺服驱动器密集的电柜里,强干扰源依然能影响通讯。我总结下来有几种情况值得优先处理:
- 接地问题:设备金属外壳要可靠接地,网线屏蔽层也要接地。汇川手册里一般有明确的接地要求,现场最忌把屏蔽层悬空。
- 布线距离:EtherCAT 的网线理论距离是 100 米,但现场最好控制在 50 米以内,且强电线和通讯线不要走同一个线槽,避免长距离并行走线。
- 终端匹配:最后一个从站的 OUT 口不要插任何网线,如果接了不该接的设备,信号反射会造成偶发通讯错误。
- 总线周期设置:周期太短对主站和从站的处理能力都是考验。比如主站周期设 250us,对 H5U 来说可能有点激进,程序稍微一复杂就容易超时。一般单轴应用 1ms 完全够用,多轴高同步需求再考虑 500us。
5. 把项目做得更稳:几个能直接抄的进阶经验
5.1 诊断信息怎么读:InoProShop 自带的“听诊器”
InoProShop 里每个从站节点右键一般都有“诊断”或者“在线诊断”入口。这里能看到的不仅仅是“通讯是否正常”,更关键的是能看到从站返回的错误码、状态机跳动的原因、以及同步误差。
举个例子,如果从站卡在 SAFE-OP 状态,诊断页面通常会给出一个错误代码,这个代码对应到从站手册里的错误说明。SV660N 报 0x1001 之类的是同步错误,MD800 报类似 0x6320 的可能是看门狗超时。每个厂家编码规则不同,但你只要把错误代码抄下来,去手册目录里搜,比瞎猜快得多。
另外一个实用的技巧是:在程序里把主站状态和从站状态读进变量,再写到触摸屏上。这样客户现场出了通讯问题,不用拿电脑连 PLC,直接在 HMI 上就能看到是哪个从站离线、总体状态是否正常。汇川主站节点一般会提供一些系统变量,比如“所有从站处于 OP”的状态标志,接出来显示在画面上,售后成本立刻降一半。
5.2 总线周期、看门狗和同步:稳定运行的三个参数
很多项目能跑但偶尔小脾气不断,参数调优是关键。三个参数要盯紧:
- 总线周期:InoProShop 主站配置里可以设置周期,默认可能是 1ms,根据项目需求可以改为 2ms、4ms。周期越长,总线负载越低,但位置控制的跟随性会差一些。点动、定位这类场景 1ms 够用;如果做了电子凸轮、追剪这类高速同步应用,可能需要 500us 甚至更短,这时候对 PLC 型号和程序效率要求就上去了。
- 看门狗时间:建议设为总线周期的 3 到 5 倍。比如总线周期 1ms,看门狗设 3ms,既不会因为偶尔一个周期波动误报警,又能保证真出问题时快速停机。
- DC 同步:如果开启了 DC,诊断页面会显示每个从站的同步误差,理想情况应该在微秒级。如果误差到几十微秒甚至更大,优先检查线缆和接地,然后再考虑调整总线周期。
5.3 用抓包和日志做“事后复盘”:一次真实故障的排查过程
对于顽固的偶发断网问题,光靠 InoProShop 的诊断界面不一定够用。PC 上装 Wireshark 配合普通网卡并不能直接解析 EtherCAT 的实时数据,但如果你把网络拓扑设计成临时在总线上串一个带镜像抓包能力的设备,或者使用主站软件自带的通信日志功能,还是能看到很多线索。
我之前遇到过一次现场每两个小时断一次网的问题。InoProShop 诊断显示从站看门狗超时,但重启就好,很像是干扰。后来我开启主站日志,发现每次断网前都有一串 CRC 错误记录,而时间点和现场的一台大功率设备启动完全重合。最终确定是干扰导致数据帧在某个从站转发时 CRC 出错,解决办法是把通讯线换成了双屏蔽工业网线,并把屏蔽层在电柜进线口单独接地,问题彻底消失。
所以遇到非常规的通讯故障,别一上来就怀疑配置,先保留现场日志,尤其是报错前的几百条记录,往往藏着真正的元凶。InoProShop 和汇川的部分伺服调试软件都支持导出通信日志,养成“先存日志再操作”的习惯,对排查疑难故障特别有用。
6. 写在最后的一点体会
做了这么多年汇川系统,我最大的感受是 EtherCAT 这套东西,说难是真的难,它把所有问题都集中在配置环节;但说简单也简单,只要你能静下心来按“硬件接线 → XML → 站号 → 扫描 → PDO 映射 → 状态机检查 → 干扰排查”这个顺序一步步走,绝大多数故障都能在半小时内定位。很多新手一报错就慌,东改西改,结果配置越改越乱,最后只能半夜喊技术支持。我个人的习惯是每次做新项目都写一份检查清单,从网线插口到固件版本,一项项打勾,确认无误再上电,这套流程帮我省下的现场调试时间,少说也有几百个小时。希望这篇东西也能帮你把那些“99%”的通讯故障,变成“都见过、都会修”的小问题。