干工控这几年,EtherCAT总线基本成了设备通讯的标配。汇川的H5U、Easy系列PLC配InoProShop编程软件,是很多中低端自动化项目里的常见组合,伺服、步进、远程IO统统挂一条总线上去,接线省一大半。但越是这种“标配方案”,新手上手时踩的坑越多:从站扫描不到、站号冲突、进不了OP状态、跑着跑着掉站……我当年第一次用InoProShop配EtherCAT,光是把从站弄上线就折腾了一晚上,最后发现只是网线插错了一个口。这篇文章把我后来反复用到的完整配置流程、参数选型逻辑、还有现场排障的套路整理出来,给正在和这条总线较劲的朋友,尤其是刚接触汇川PLC的新手。
1. 这套组合到底解决什么问题:InoProShop与EtherCAT的关系
1.1 为什么项目里要选EtherCAT总线
传统方案里,伺服和PLC之间要么走脉冲,要么走模拟量、485通讯。脉冲方案接线多、倍频高的时候丢脉冲是常事;485方案速度慢,刷新周期一长,多轴协调就费劲。EtherCAT这种实时以太网总线,本质上是主站往从站发出一帧数据,数据帧沿着线缆依次经过每一个从站,每个从站在帧经过的时候“顺手”取走自己的输入、写入自己的输出,这叫“On The Fly”处理机制。数据帧最后再回到主站,完成一个通讯周期。
这样做的好处非常直接:通讯周期可以做到1ms甚至更短,多轴同步精度比传统方案高一个量级;而且一根网线串联所有设备,从站之间只需一进一出,整个电柜的布线量肉眼可见地减少。对一台有七八个伺服、十几个IO模组的设备来说,省下来的时间和空间相当可观。EtherCAT在工业自动化领域应用很广,汇川中大型PLC把它作为标配总线,背后的逻辑就是让用户在成本和性能之间拿到一个很实用的平衡方案。
1.2 InoProShop支持哪些机型,为什么不是AutoShop
汇川的编程软件分两套:老款小PLC(H1U、H2U、H3U之类)用AutoShop;H5U、Easy521、Easy522以及AM系列这些支持总线的机型,用的是InoProShop。很多新手拿到H5U,习惯性去找AutoShop,结果发现设备型号里根本选不到,还以为软件装错了,其实只是没用对工具。InoProShop基于CODESYS V3内核,支持IEC 61131-3标准编程语言,设备树里直接管理EtherCAT主站和从站。第一次用的人可能会觉得界面和AutoShop差距有点大,但一旦习惯了设备树加任务配置这套逻辑,写起程序来效率其实是提升的。
还有一点值得注意,AM系列也走InoProShop,但和H5U/Easy系列在工程文件格式上有差异。H5U用的工程后缀是.project,AM工程的顶层结构看起来也不一样,千万不要把两个系列的工程文件互相乱拷,轻则打开报错,重则设备信息混乱。项目里如果同时有H5U和AM,最好分目录管理,这一点我会在后面实操部分再提。
1.3 新手最常栽的跟头:把“总线配置”和“程序逻辑”混为一谈
我在很多群里看到新手的提问,“EtherCAT配置了为什么伺服不动”“总线通讯明明正常但轴使能失败”。这类问题十有八九是没搞清楚:总线配置解决的是“数据能不能实时交换”的问题,而轴能不能动、动得对不对,还取决于PLC程序里有没有正确调用轴控指令、有没有把PDO数据映射到变量、有没有给伺服下使能。EtherCAT跑通只是第一步,相当于电话线接通了,电话那头的人愿不愿意说话、说什么,是另一回事。
所以我建议新手在动手之前,先把这条线理清楚:物理接线→主站识别从站→状态进入OP→PDO数据映射→程序读写数据→调用轴控指令。每一步都有对应的验证方法,别跳步。很多排查到最后发现不是总线问题,而是程序里一个变量没赋值。这篇文章主要讲前四步,但最后一步我也会带一笔,因为它是通讯故障里最常见的“假故障”。
2. 配置之前的功课:软件、硬件与接线
2.1 软件版本选择与安装要点
InoProShop目前常见的有V1.6、V1.7等版本,不同版本对固件和设备支持有差异。原则很简单:PLC固件版本和软件版本尽量匹配,下载工程时报“固件与编程工具版本不匹配”这类错误,多半就是版本没对齐。建议安装官方最新稳定版,PLC固件也升级到和软件配套的版本。H5U升级固件可以通过SD卡或者编程软件在线升级,Easy系列一般通过网口或USB,具体路径在官方手册里都有,这里不展开。
安装时有几个细节容易忽略。一是杀毒软件,安装过程中如果开着急速杀毒或者系统自带的安全软件,可能会拦截驱动安装,导致后续连不上PLC,安装时可以先退出杀毒软件,装完再打开。二是安装路径,建议全英文路径,不要带中文、空格和特殊字符,免得编译某些库文件时路径解析出错。三是驱动,USB下载线需要装驱动,InoProShop安装包一般自带,如果装完设备管理器里还是感叹号,去安装目录下找driver文件夹手动更新驱动。
2.2 现场接线规范与网线选型
EtherCAT网线不是随便找根办公室网线就能用的。虽然物理接口是RJ45,但工业总线对线缆的要求比普通网络高很多。首选带屏蔽层的超五类或六类工业以太网线,屏蔽层要可靠接地;两端水晶头最好用带金属屏蔽壳的,压接质量要过关,接触不良是偶发掉站的隐性杀手。线长单段不要超过100米,超过就加从站设备做中继或者调整拓扑。
拓扑结构EtherCAT比较灵活,最常见是线型串联:主站网口出来,接第一个从站的IN口,第一个从站的OUT口再接第二个从站的IN口,以此类推。这里IN和OUT的方向必须搞对,很多新手扫描不到从站,下去一看,是第二个从站把网线插反了。有些设备IN和OUT口印刷不明显,要仔细看标识,或者看说明书上的接口定义。另外,EtherCAT不需要终端电阻,这点和CAN总线不一样,别画蛇添足。
供电和接地也很关键。从站设备的24V电源容量要算够,多个IO模组挂在一条电源链路上时,末端电压可能跌到19V以下,从站逻辑混乱、偶发重启都可能是这个原因。建议从站电源单独拉一路,或者在关键位置加电源中继。通讯线和动力线(伺服电机线、变频器输出线)要分槽走线,间距尽量大,无法避免交叉时走直角交叉,不要平行长距离走线。
2.3 从站XML文件到底要不要提前准备
EtherCAT从站设备(伺服、IO模组、阀岛等)都有一个描述文件,叫ESI文件,后缀通常是.xml,里面写明了设备的Vendor ID、Product Code、Revision以及PDO映射的能力。InoProShop要识别这个从站,就得靠这个文件。汇川自家设备(SV660N、SV660F等)的XML文件在官网或者安装包的驱动目录里基本都能找到,第三方设备(比如步进驱动器、协作机器人关节模组)就得到对应厂家官网下载,有时候还得找技术支持要。
我的建议是,配置之前把项目里所有从站的XML文件都收集到一个文件夹里统一管理,方便导入时选择,也能保证版本一致。如果从站固件升级过,最好找厂家要对应固件版本的XML,版本不匹配会出现识别异常或者PDO映射错乱。我第一次配一个第三方的步进驱动器,用旧版XML怎么都进不了OP,后来找厂家要到新版XML,一次就通了,这个坑印象特别深。
3. 一步步把总线跑起来:主站与从站配置全流程
3.1 新建工程与主站添加
打开InoProShop,新建工程的时候,选择对应的PLC型号。如果是H5U,就选H5U系列下的具体型号,确认订货号是否一致,选错了后续编译下载都会出问题。工程创建后,默认会有一个“Device”节点,下面挂着PLC的IO映射区、任务配置等。要使用EtherCAT,首先得在设备树下添加一个EtherCAT主站。不同版本软件操作路径略有不同,一般是右键Device或者“总线主站”节点,选择“添加设备”,在弹出的设备列表里找EtherCAT Master。如果在设备列表里找不到,检查软件安装时是否有对应组件没有勾选。
添加完主站后,建议把主站参数里的通讯周期先设好。H5U做伺服轴控制,我一般从1ms起步;如果从站数量多、程序逻辑复杂,2ms或4ms也是可以的,后面我会单独讲周期取舍。主站的配置窗口里还有看门狗时间、错误处理策略等参数,新手先用默认值,跑通了再慢慢优化。
3.2 从站扫描与手动添加的正确姿势
主站添加好之后,把PLC通电、网线连好从站链路,回到软件里右键主站节点,选择“扫描设备”。软件会沿总线依次识别在线从站,识别出来的设备会列在扫描结果里。这时候大概率会出现两种情况:一种是直接识别出具体型号(说明XML已经内置或者之前导入过),另一种是显示“未知设备”或“未识别设备”,这种十有八九是缺少对应的ESI描述文件。
遇到未知设备,先记住它的Vendor ID、Product Code、Revision这些标识符,去找对应的XML文件。然后回到主站节点,右键选择“从文件安装设备描述”或类似功能,导入XML。如果找不到完全一致的版本,一般情况下Revision号不一致也能识别,但PDO映射可能出现偏差,最好还是用对版本。扫描完之后,确认每个从站前的勾选,点击确定,从站就附加到主站节点下了。
这里有个经验:扫描之前,最好给所有从站都上电并且处于正常待机状态,有些从站如果处于故障报警状态,扫描时可能会显示异常或无法识别。另外,扫描模式不要选“快速扫描”之类的高性能模式(如果有这个选项),先用标准模式把链路认全,再逐台检查。链路中间有任何一个从站掉电,它后面的设备统统扫描不到,这是新手排查时特别容易忽略的。
3.3 从站参数配置与PDO映射、轴配置
从站添加成功后,第一步是检查站号。EtherCAT里主站通过从站在链路中的物理位置识别设备,站号是逻辑寻址用的标识,默认扫描后分配的站号一般从1开始。如果工程里后续要离线编辑、或者从站设备需要固定站号(比如通过拨码设置),那就需要手动修改从站地址,保证和实际设备匹配。部分IO模组上有站号拨码,拨码值要和软件里分配的一致,否则一上电就有冲突报警。
第二步就是PDO映射,这是整个配置里最核心的环节。以伺服为例,SV660N这类符合CiA402标准的从站,过程数据分RxPDO和TxPDO:RxPDO里包含控制字(Controlword)、目标位置、目标速度、目标转矩、模式等;TxPDO里包含状态字(Statusword)、实际位置、实际速度、实际电流等。你要在InoProShop里根据PLC程序的需要,勾选或者配置对应的PDO条目。勾选的原则是“够用就行”,别把一大堆没用的对象全部启用,PDO条目越多,每周期通讯数据量越大,对总线和主站CPU都是负担。
PDO配置完之后,如果用的是汇川H5U自带轴功能块,还需要在“轴配置”里把轴关联到对应的伺服从站。H5U的轴控体系里,通常是通过软件生成的AXIS_REFERENCE或类似结构体变量来绑定EtherCAT从站。这个关联做错了,程序里调用MC_Power、MC_MoveAbsolute这些运动控制指令时,会报轴未连接或模块不存在之类的错误。如果你只是用EtherCAT传数据、不想用运动控制库,那可以不用建轴,直接通过PDO映射出来的变量读写伺服寄存器,但那样的话同步控制逻辑就得自己写,我建议能用库函数还是用库函数,省心得多。
3.4 周期设置与DC时钟到底该选多少
通讯周期直接决定设备的动态性能和控制精度。做伺服位置同步,1ms是很通用的选择,大多数H5U项目扛得住;如果CPU负载已经很高(在线监控里可以看到任务周期占用率),往2ms调也是一种稳定策略。纯做IO采集,比如挂几个远程IO模块,周期2ms到4ms完全够用,没必要为了“追求性能”去跑1ms,徒增系统负担和潜在掉站风险。
DC(分布式时钟)是EtherCAT实现从站高精度同步的机制。伺服轴这种需要多轴同步的场合,必须启用DC同步,并且从站模式要选DC模式。IO模组或者不需要高精度同步的设备,可以用FreeRun自由运行模式,减少对DC的依赖。如果混用了DC和非DC设备,主站会做一些补偿处理,但现场问题会变多,建议关键设备和普通设备分组管理。DC配置里有一个“同步偏移时间”的自动计算功能,新手直接用软件推荐值就行,不需要手调。我见过有人自己乱填偏移时间,结果所有伺服轴联动时差反而变大,最后恢复默认值就好了。
配置完成之后,编译工程,确认没有错误,然后下载到PLC。下载完成后,在主站节点上会显示当前总线的状态,一般有INIT、PRE-OP、SAFE-OP、OP这几个状态。如果所有从站都变成了OP,恭喜,总线已经跑通了。如果卡在某个状态,别急,下面的排查部分我按现象逐个讲。
4. 99%新手通讯故障排查实录
4.1 排查思路:先分层再动手
在谈具体故障之前,先给一个总的排查思路。EtherCAT通讯链路可以分成三层:物理层(网线、供电、接口、接地)、配置层(XML、站号、PDO、周期)、运行层(OP状态、掉站、数据错乱)。出现故障,别一上来就在软件里乱点,按这个顺序来:先看物理层,再查配置层,最后分析运行层。
物理层的问题最蠢也最常见,但往往最隐蔽。比如网线插反、从站没上电、水晶头虚接,这些在软件里表现出来的症状和配置错误一模一样,都是扫描不到、状态卡住。我的习惯是,现场总线有问题,第一件事是拿万用表量从站供电电压,确认每个从站都正常上电;第二件事是沿链路看一眼每个网口IN/OUT是否接对;第三件才是打开软件看扫描结果。这习惯帮我少走了很多弯路。
4.2 典型故障1:扫描不到从站
扫描不到从站,先区分是整个链路扫不到,还是部分设备扫不到。整个链路扫不到,主站节点下方一个设备都没有,先查主站到第一个从站之间的网线,以及PLC上的EtherCAT网口是否和普通网口混用。H5U有的机型有多个网口,EtherCAT主站用的网口可能和以太网通信口是分开的,接错口当然扫不到。再检查软件里主站是否处于激活状态,有时候主站没使能,扫描功能是灰的。
部分设备扫不到,从头到尾捋一下:假设链路有5个从站,前3个能扫到,第4个扫不到,那么问题大概率在第3个和第4个之间,或者第4个从站本身。先看第4个从站有没有上电,再看连接第3个OUT到第4个IN的网线是不是好的。把第4个设备后面所有的接线都先断开,单独让第4个设备挂在链路末端测试,如果还是扫不到,拿一台好的从站替换试试,一步步缩小故障范围。我碰到过一次,扫不到中间一个IO模组,查了半小时,结果是那个模组的电源线端子松了,导致模组半上电,指示灯看起来是亮的,但通讯芯片没正常工作。
还有一种情况,从站能扫描到,但名称显示“未知设备”,然后就跳过了。这个原因就是我前面说的,缺少对应的XML描述文件。解决办法是查Vendor ID和Product Code,去下载对应的ESI文件并导入。注意导入之后,要把原来扫描到的未知设备删除,重新扫描一遍,否则配置还是会沿用旧的错误识别。
4.3 典型故障2:从站进不了OP状态
扫描正常、从站也识别出来了,但状态始终上不了OP,这是第二阶段最常见的问题。EtherCAT从站要进入OP,需要经过INIT→PRE-OP→SAFE-OP→OP这个过程,每一步都要求主站和从站配置一致。卡在PRE-OP进不了SAFE-OP,多半和输入输出映射(FMMU/SM)有关,也就是PDO配置有问题。如果你改了PDO映射但没有重新编译下载,或者从站XML版本和实际固件不匹配,都会卡在这一步。
卡在SAFE-OP进不了OP,多半是看门狗或者IO数据无效导致的。检查主站看门狗参数是否太苛刻,以及从站是否在报警状态(伺服故障报A.xxx之类的)。伺服在报故障的情况下,状态机是拒绝进入OP的,要先在伺服面板或者调试软件里清除报警,并且排除报警原因。还有站号冲突也会导致进不了OP,链路中两个从站站号设置成了同一个值,主站判别状态就会异常。检查每个从站的拨码站号或软件站号,保证唯一。
我自己遇到过的问题比较典型:给SV660N配PDO时,从默认模板里勾选了一个“目标转矩”,但伺服驱动器内部把转矩限制模式的参数改成了别的内容,导致参数类型对不上。具体症状就是状态一直循环PRE-OP→SAFE-OP→PRE-OP,软件报一个很模糊的输入输出配置错误。后来把该伺服的全部参数恢复到出厂默认,重新按说明书步骤配置一遍PDO,问题立刻消失。所以遇到这种奇怪的循环状态,先怀疑配置和实际参数不对齐。
4.4 典型故障3:通讯时断时续、偶发掉站
总线能进去OP,运行时偶尔报“从站丢失”“看门狗超时”,或者从站状态突然从OP跳到SAFE-OP再自动恢复,这类问题最磨人,因为不是稳定复现。原因通常集中在三个方向:电磁干扰、网线质量、周期过短。
电磁干扰方面,检查通讯线和动力线是否在同一个线槽里平行走线,伺服电机抱闸线、编码器线这些是否靠近网线;电柜里有没有变频器、开关电源靠近PLC;屏蔽层接地是否可靠,EtherCAT的网线屏蔽层至少要在PLC侧或者电柜侧做单端接地,两端都不接地等于没屏蔽。网线质量方面,换一根正规的工业屏蔽网线,水晶头重新压一次,故障率立刻下降一半。很多“偶发掉站”最后查下来就是网线内芯断了但外皮没断,或者水晶头弹片松了。
周期设置方面,如果你把总线周期压到了0.5ms,而从站数量多、主站性能一般,CPU算不过来就会丢周期,表现为偶发看门狗超时。把周期调到1ms或者2ms,观察故障是否消失。另外,从站供电电压波动也会导致通讯芯片重启,用示波器抓或者万用表长时间监测从站端电压,如果电压在启动瞬间跌落明显,加一个大电容或者独立供电就能解决。还有一个容易忽略的是PLC的开集电极输出或者继电器输出动作瞬间,如果和EtherCAT共用电源,会引起电压尖峰,这种情况下最好给总线系统单独供电。
4.5 一张速查表搞定常见故障
| 故障现象 | 可能原因 | 排查动作 |
|---|---|---|
| 整个链路扫描不到 | 主站网口接错、网线断、从站集体断电 | 确认EtherCAT网口、换线、量供电 |
| 部分从站扫描不到 | IN/OUT插反、中间从站掉电、网线故障 | 沿链路逐个检查方向、供电、换线 |
| 扫描到但显示未知设备 | 缺少XML描述文件 | 查Vendor ID,下载导入对应ESI |
| 从站状态卡在PRE-OP | PDO映射不一致、XML版本不匹配 | 编译下载最新配置,核对XML版本 |
| 从站状态卡在SAFE-OP | 看门狗超时、从站报警、站号冲突 | 检查看门狗参数、清除从站报警、核对站号 |
| 运行时偶发掉站 | 电磁干扰、网线质量差、周期过短 | 分槽布线、换屏蔽线、加大周期 |
| 通讯正常但轴不动 | 使能信号未给、PDO映射变量未赋值、轴未关联从站 | 监控PDO数据、检查轴配置、查看伺服状态字 |
这个表基本覆盖了我现场遇到的大部分EtherCAT通讯问题,新手遇到问题先对着表一项项排除,能省很多时间。
5. 实操心得与进阶扩展
5.1 几个容易忽略的细节
第一个细节是工程备份。InoProShop工程文件本身很小,但包含从站配置、XML引用和任务参数。改配置之前,习惯性另存一个带日期的版本,万一改坏了可以随时回滚。我见过现场工程师把好好的配置改乱,又忘了原来是什么参数,最后只能一个个从站重新配,白白浪费半天时间。
第二个细节是在线监控的使用。从站进入OP之后,在软件的设备诊断或者在线监控页面可以看到每个从站的输入输出数据、状态字和错误代码。比如SV660N的Statusword里某个位代表了“使能中”还是“运行使能”,对照手册看这些位,能快速定位轴不能动的原因。很多伺服报警代码在驱动器面板上能看到,但如果人在PLC旁边操作,直接用总线去读伺服的对象字典更高效。
第三个细节是EtherCAT抓包。如果需要深挖通讯问题,可以用Wireshark接在链路外面抓EtherCAT帧,以太网类型是0x88A4,注意抓包位置要选在主站到第一个从站之间,或者最后一个从站的OUT口后面,因为EtherCAT帧在中间节点是被实时修改的,从链路中间抓到的包没有参考意义,而且会显示CRC错误,容易误导判断。这个技巧适合老手深究,新手先不用管,知道有这个手段就行。
5.2 后续可以怎么扩展
EtherCAT配通之后,能玩的方向很多。一条总线上除了汇川自家伺服,还可以挂第三方支持EtherCAT的步进驱动器、远程IO模组、阀岛、射频识别读写头、称重仪表等。只要设备厂家提供ESI文件,按照我前面讲的导入流程基本都能挂上去。现在很多协作机器人的关节模组也支持EtherCAT,用Easy521这类小型控制器去控制关节模组做运动规划,也是一种很有用的组合。配第三方从站的关键还是那几步:XML文件不能少、PDO映射要对齐、从站固件版本要匹配。
如果你用的是AM系列PLC,它本身基于CODESYS,EtherCAT配置思路和InoProShop里很接近,配置经验可以直接迁移,唯一要注意的是不同PLC的轴控库和运动控制指令略有差异,调用时查一下对应手册就行。汇川这边还支持触摸屏和PLC之间的标签通讯,配合EtherCAT总线的实时数据,做设备监控、配方管理和报警记录都很顺手。我给很多设备做交付时,都会做一页“总线状态”的画面,把从站数量、状态机的值和通讯周期占用率直接显示在触摸屏上,客户一眼就能判断设备健康状态,后续维修省很多事。
5.3 最后再分享一个现场习惯
就我个人习惯,每次项目调试完,会把工程里用到的所有从站XML文件、固件版本号、站号分配表整理成一份配置清单,打印出来贴在电柜门上。这个习惯救过我好几回——客户设备用了半年反馈掉站,我远程让他打开电柜门报一下从站版本号,十分钟内就判断出是他当地电工更换了其中一个IO模组,买了旧型号固件,和新XML不匹配导致的。配置文档这种东西,平时不起眼,关键时刻比什么都值钱。
EtherCAT这条总线配置,说简单也简单,说复杂也复杂。只要把物理层、配置层、运行层这三层思路理顺,按照“扫描→识别→映射→OP→监控”的流程走,99%的新手通讯故障都能解决。剩下那1%,大概率是外部干扰和环境因素,那就得靠现场经验和设备来迭代了。希望这篇文章能让你少走一点弯路,省下来的时间,多喝两口茶。