1. 先搞清楚EtherCAT在InoProShop里的工作方式,再配置才不会两眼一抹黑
1.1 EtherCAT为什么能一条网线串起所有轴
很多第一次接触汇川EtherCAT总线的新手,拿到H5U或者AM系列PLC之后,第一反应就是“不就是把轴挂到网线上嘛”。真到了InoProShop里一拖一配,开始报错连连,才发现这套东西远不是“插根网线就行”。
EtherCAT从原理上和传统的脉冲、模拟量控制完全是两回事。传统脉冲控制是一个驱动器一根线,PLC发脉冲,驱动器执行,简单粗暴,但线多、距离短、轴数多了之后极其痛苦。EtherCAT是一条网线把所有伺服串起来,主站每隔一个固定周期(通常是1ms,甚至可以到125us)往总线上发一帧报文,报文经过每一个从站时,从站内部的ESC芯片立刻把属于自己的数据抽出来、把自己要反馈的数据写进去,然后转发给下一个从站。也就是说,所有从站的周期数据交换是在同一帧报文里完成的,谁也别掉队。
这就是为什么EtherCAT总线对“秩序”和“同步”的要求极高。主站发帧是有固定节奏的,如果把从站电断了、网线松了、站号重复了、PDO映射对不上,整条链路的数据帧就会乱套,轻则某个轴不走,重则整条总线全部掉线。理解这一点之后,你再去看InoProShop里的那些配置项,就会明白它们不是随便填的,而是每一个都在维持这个“节奏”。
InoProShop是汇川面向中大型PLC提供的编程和组态环境,支持IEC 61131-3标准,界面和操作逻辑对用过Codesys类软件的人会非常熟悉。H5U、Easy系列以及AM系列控制器都可以在InoProShop里完成EtherCAT主站配置。本文所有操作思路以InoProShop v1.6/v1.7配合H5U系列为基准,SV660N、IS620N等EtherCAT伺服驱动器作为从站设备来展开。
1.2 InoProShop里配置EtherCAT,实际是配置三层东西
我在培训时经常打一个比方:EtherCAT配置像是租房签约,要同时搞定“房子本身”“合同条款”“入住名单”三件事。缺了任何一环,后面的稳定运行都是奢望。
第一层是物理链路。就是网线、接线端子、站点的供电、终端电阻这些东西。很多人忽略这一层,以为软件配好了就行。实际上,现场大量“明明扫描到了,跑起来又掉线”的故障,根子都在物理链路上。
第二层是主站协议配置。在InoProShop里,你要告诉主站:总线上挂了多少个从站、每个从站的站号是多少、每个站需要交换哪些过程数据、用多大的周期去轮询。这一层对应到软件里,就是“EtherCAT主站”节点下的扫描结果、从站参数和PDO映射表。
第三层是从站设备的功能映射。对于伺服驱动器来说,光让总线上“看得到”它还不够,你还得把它的控制字、状态字、目标速度、当前位置这些对象映射到PLC的地址空间里,PLC程序才能操作它。这个动作在InoProShop里就是“轴配置”和“PDO映射”。
把这三层分开理解之后,再遇到故障,你就能有一个清晰的排查边界:是网线问题,是主站配置问题,还是从站对象映射问题。而不是像很多新手一样,一报错就懵,对着诊断窗口瞎试。
2. 开干之前的准备:软件版本、ESI文件和一条达标的网线
2.1 InoProShop版本与PLC固件要匹配
我必须先泼一盆冷水:EtherCAT配置的很多“疑难杂症”,根源是软件版本和固件版本不匹配。
InoProShop从早期的1.2、1.5一路更新到1.6、1.7,不同版本对EtherCAT主站功能的支持是有差异的。举个例子,早期版本对某些新固件的H5U支持不完整,扫描从站时会漏掉部分设备,或者配置界面缺选项。这时候你花几个小时在软件里折腾,不如先确认版本。
实操建议是:装完InoProShop之后,先到汇川官网查一下当前PLC型号推荐的软件版本,最好是装最新稳定版,不要用太老的安装包。然后,新拿到PLC的第一件事就是确认固件版本,必要时升级固件。这里有一个细节容易被忽略:固件升级完成后,一定要整机断电重启,不是软件复位,而是把PLC电源完全断开再上电。我遇到过固件升级后界面显示升级成功,但EtherCAT主站一直初始化失败,断电重上电之后才正常的情况。
2.2 ESI文件是从站的身份证
ESI文件全称是EtherCAT Slave Information,它是一个XML格式的描述文件,每个从站设备都有自己对应的ESI文件。InoProShop需要通过ESI文件来识别从站支持哪些对象、哪些PDO组合、同步模式支持什么。
很多新手第一次配总线时,图省事,从站扫描出来就直接用,也不看ESI文件版本。结果偶尔就出现“别人配得好好的,我配出来转不起来”,问题多半出在从站固件版本和ESI文件版本不一致。因为伺服驱动器升级固件之后,对象字典、默认PDO映射可能都变了,但InoProShop里加载的还是旧版ESI,两边一对话,数据就对不上。
正确的做法是:拿到伺服驱动器之后,确认驱动器面板上或者说明书里的固件版本,再去汇川官网或者伺服产品页面下载对应版本的ESI文件,放到InoProShop的EtherCAT设备描述文件库里。安装ESI文件通常是通过InoProShop的“EtherCAT从站描述文件管理”或者“设备仓库”功能导入,具体路径在软件里都能找到。导入之后,重新扫描,软件里显示出来的设备名称和版本信息应该和实物驱动器的标签一致。
2.3 网线、终端电阻和屏蔽的硬指标
EtherCAT的物理层本质上还是以太网,但它对网线和端子的要求比普通办公网络严得多。
普通超五类、六类屏蔽网线可以用于EtherCAT,但必须是屏蔽型(带金属屏蔽层,接线端子要能压住屏蔽层并接到机架地),不能用那种办公室插路由器用的普通非屏蔽跳线。工业现场电磁环境复杂,变频器、伺服驱动器、开关电源到处都是干扰源,非屏蔽网线在高负载下非常容易丢帧。
网线水晶头必须用带金属外壳的工业级水晶头,而且压制质量要过关。我见过太多“一会儿好一会儿掉线”的案例,拆开一看,水晶头里线序压歪了,或者屏蔽层没有和金属壳连通。EtherCAT对线序要求是标准的TIA/EIA-568B,也就是橙白、橙、绿白、蓝、蓝白、绿、棕白、棕,别在这上面发挥创意。
终端电阻的问题更隐蔽。EtherCAT从站内部其实有终端电阻的控制逻辑,但一些从站设备上保留了一个物理拨码开关,标着“终端”或者“TERM”,需要把末端从站的终端开关拨到ON位置。如果漏了这个操作,总线末端回波反射,轻则通讯不稳定,重则主站扫描直接报错。你可以在每次配置完成后,沿总线走一圈,确认只有最后一个从站的终端电阻是接通的。
3. EtherCAT总线配置分步实操:从新建工程到轴使能
3.1 新建工程,正确选择控制器型号
打开InoProShop之后,新建工程的第一步就是选控制器型号。这里不要随便选一个“差不多”的型号。H5U的不同子型号可能在EtherCAT从站数量、轴数量上限上有所不同,选错了后续编译、下载都会出莫名其妙的问题。
建好工程之后,建议先对PLC做一次整体初始化或者恢复出厂设置,把PLC内部可能残留的旧配置清干净。很多二手设备或者被别人调试过的PLC,里面有一堆历史配置,新工程下载时会混杂在一起,造成EtherCAT主站启动异常。初始化操作在InoProShop的在线连接窗口里能找到,具体名称可能是“恢复出厂设置”“清除应用”等,操作前务必确认工程已经备份。
3.2 扫描从站和分配站号:顺序错了后面全乱
在InoProShop左侧的工程树里,找到EtherCAT主站节点。先在“主站配置”里把主站参数设置好,比如周期可以先用默认的1ms,运行模式选择“运行状态”。然后,保证PLC的EtherCAT网口通过网线连接到第一个从站的IN口(注意方向,伺服驱动器的EtherCAT口通常标注了IN和OUT,OUT往下级联),所有从站串联起来,最后一个从站的终端电阻按之前说的方法处理。
之后在软件里点击“扫描从站”,InoProShop会自动遍历总线上的设备,弹出一个列表,显示检测到哪些从站、各站的位置信息。这里面的关键动作是:扫描到设备后,有一个“写入站号”的步骤。EtherCAT从站默认地址可能是0或者一个随机值,你需要为每个从站分配固定的站号。
站号分配的原则是:每个站唯一,不重复;映射关系要有规律可循,最好和轴的编号一致。比如轴1对应站号1,轴2对应站号2,这样以后排查程序问题时,不用翻图纸就能对上号。
分配好站号后,一定要重新断电、重新上电一次,再重新扫描确认站号写入成功了。这里有第二个关键点:扫描和写入动作是有先后顺序的,不能先把所有从站的拨码地址乱设一通再去扫描,有些驱动器的站号以软件写入的为准,有些以硬件拨码为准,具体看驱动器说明书。SV660N这一代基本以软件写入为主,但老的IS620N系列有些固件版本是读取硬件拨码的,装的时候要先看懂。
3.3 建轴和PDO映射:不要漏掉控制字/状态字
从站扫描完成只代表PLC“看到了”驱动器,不代表PLC能“操作”驱动器。接下来要在运动控制轴配置里把物理从站映射成逻辑轴。
在InoProShop的“运动控制轴”节点下新建轴,然后在轴配置窗口里选择“与EtherCAT从站关联”,并指定对应的从站站号。这时软件通常会弹出一个PDO映射选择界面,也就是决定这16个字节或者32个字节的过程数据里,到底塞哪些对象进去。
用伺服控制举一个最典型的PDO映射组:发送给驱动器的数据至少包含控制字(Controlword,对象0x6040)和目标速度(Target Velocity,对象0x60FF),如果是位置控制,还要包含目标位置(Target Position,对象0x607A)和轮廓速度等。从驱动器反馈回来的数据至少包含状态字(Statusword,对象0x6041)和实际位置(Position Actual Value,对象0x6064),实际速度(对象0x606C)和电流/扭矩值按需映射。
很多新手把目标位置映射进去了,却漏了控制字和状态字。结果就是轴看起来存在,但使能、点动、回零全都不灵。一个快速判断方法:映射完先编译,然后在线监控轴的状态字,如果状态字一直是0,说明反馈链路有问题;如果控制字写1但轴没反应,说明发送方向有遗漏。
另外,PDO映射的对象长度必须和驱动器的固件定义完全一致。比如某些驱动器默认0x6040和0x6041是16位,但有些固件版本把它扩展成了32位。映射错了,主站不会立刻报警,但运行到某个位置后,数据会错位,后面的对象全部错乱。这种故障最坑,现象不固定,排查难度极大。解决办法就是:严格使用与固件匹配的ESI文件,让软件自动加载默认PDO映射,不要手动硬凑。
3.4 同步模式与任务周期:正确的那一组才能稳定跑
InoProShop的EtherCAT从站支持多种同步模式,最常见的是自由运行(Free Run)、同步于SM事件(SM Synchronous)、DC同步三种。
自由运行模式下,从站按照自己的内部节拍执行,和主站的周期没有真正锁死。这种模式适合调试和低速点位控制,绝对不适合多轴插补、追剪这类需要严格同步的工艺。很多新手第一次跑起来觉得“还行”,但实际现场批量运行时一到高速就瞎抖动,原因就是自由运行。
DC同步(Distributed Clock)是EtherCAT最关键的同步机制。它的核心是让所有从站以主站时钟为基准,通过分布式时钟漂移补偿,每个从站在同一个时刻采样输入、更新输出,从而实现各轴之间的同步误差在纳秒级。在InoProShop里,把从站的同步模式选为DC,并确保主站的任务周期和从站的DC周期一致,比如都是1ms或者500us。
这里有第三个关键点:并不是所有从站都支持DC,有些廉价I/O模块只支持SM同步,你不能强行给它开DC。对不同步模式的从站混挂,主站支持会按最弱模式协同,但程序里所有轴的同步性会打折扣。所以,能选DC尽量选DC,不支持DC的模块单独评估工艺是否允许。
4. 99%新手遇到的通讯故障:现象、根因和排查链路
4.1 先看懂几个关键报错与现象
这部分我结合自己现场调试和带人的经验,把新手最常见的通讯故障做成了一个速查表。遇到问题先对照表里的现象,再往下一层排查,不要一上来就重装软件、换PLC。
| 故障现象 | 直接原因大概率 | 最先检查的方向 |
|---|---|---|
| 扫描不到任何从站 | 物理链路断、从站没上电、终端电阻不正确 | 网线、供电、IN/OUT方向 |
| 只能扫到部分从站 | 中间某个设备掉电或网线松动;或者该设备固件挂起 | 从扫不到的节点开始逐段排查 |
| 扫描得到但从站报错或红灯 | ESI版本不匹配、站号冲突、终端电阻开启位置不对 | 确认固件版本和ESI版本,重新写站号 |
| 程序下载后主站启动失败 | 主站配置里的从站列表与实际拓扑不一致 | 重新扫描,对比配置列表和实际接线 |
| 运行几分钟后偶发从站丢失 | 电磁干扰、网线质量差、屏蔽没接好、周期太紧 | 换工业屏蔽网线,检查屏蔽接地,适当放宽周期 |
| 轴使能后一个来回就报跟踪误差 | PDO映射错误、同步模式不对、负载参数不匹配 | 检查PDO对象顺序、同步模式DC、驱动器刚度参数 |
| 上电时报“初始化超时” | 驱动器上电比PLC晚、固件兼容性、上个工程残留 | 统一上电时序,确认固件版本,整机断电重启 |
这张表不可能覆盖所有情况,但覆盖了绝大多数新手的“第一次翻车点”。下面挑三个最有代表性的展开讲排查链路。
4.2 扫描不到从站的排查链路
扫描不到从站是最常见的第一道坎。我的建议是严格按照下面的顺序走一遍,不要跳步。
第一步,看从站驱动器的电源指示灯。很多驱动器的EtherCAT通讯口和主回路供电是分开的,如果只上了主回路电,控制电路没上电,插网线也没用。确认所有从站控制电源都亮着。
第二步,看驱动器的EtherCAT LINK指示灯。这个灯如果没亮,说明物理层没打通。用一台笔记本电脑,直接网线连到第一台从站的IN口,把电脑IP设置成自动获取,看看网卡是否能link上。如果link都不亮,大概率是网线坏了或者水晶头没压好。
第三步,检查IN/OUT方向。EtherCAT只支持从IN进、OUT出,如果你的网线从第一个从站的OUT口出来再往下走,第二个站能扫到的概率会变得很低,甚至导致整个主站无法正常轮询。
第四步,确认没有重复终端电阻。中间任何一个从站误开了终端电阻,都会造成链路异常,因为中间节点做终端匹配会吸收信号,后续报文传不过去。
第五步,把总线上最后一个从站的其他网口拔掉再扫描。有些新手把两个总线端口误用成了交换机架构,把同一根网线同时插在PLC和两个从站之间,这种接法是错的,EtherCAT是串联链式结构,不是星型结构。
如果以上五步都做了还扫不到,再考虑软件层面:确认InoProShop主站节点确实已经激活,当前工程里EtherCAT主站处于“使能”状态,而不是被注释或者其他功能块占用了。
4.3 运行中偶发断线,最隐蔽的两种根因
“跑起来总是偶尔报一次从站丢失,点了复位又好了,过一阵又犯”——这是现场最磨人的一类故障。总结下来,九成是下面两种根因。
第一种是电磁干扰。伺服驱动器动态加减速时母线电流变化剧烈,如果动力线(尤其是电机UVW线)和EtherCAT网线走在同一个线槽里,而且网线屏蔽层没有良好接地,偶发丢帧几乎是必然。专项整治方案是:动力线和通讯线分槽走,间隔距离至少20厘米,无法避免交叉时走直角交叉;网线的两端屏蔽层都要通过金属接头可靠接到机架地;用屏蔽层连续无断点的工业网线。
第二种是任务周期设置太紧。主站周期写得非常狠,比如从站密密麻麻挂了一排,周期却设成了250us,主站CPU忙不过来,偶发超时就会误判成从站丢失。判断方法是看InoProShop的主站诊断里是否有“总线周期超时”“看门狗触发”之类的记录。如果周期超时频繁,要么加长周期,比如从250us改到500us或者1ms,要么换更高性能的主站控制器,要么优化程序,把EtherCAT任务里的运行时间降下来。
4.4 上电就报总线错误,可能根本不在总线
还有一种情况是:设备一上电,PLC就报总线错误,看起来是EtherCAT的锅,但查完所有网络配置都正常。这时候考虑一个问题:上电时序。
EtherCAT主站PLC和伺服驱动器供电顺序很重要。如果PLC先上电开始扫描总线,而伺服驱动器后上电,驱动器还没准备好,扫描结果不完整,主站自然会报错。反过来,如果驱动器全部先上电稳定之后,再给PLC上电启动扫描,成功率会高很多。
具体的上电策略是:把PLC和伺服驱动器的控制电源用一个接触器控制,统一上电;如果只能分开上电,要把PLC的上电延后2到3秒。对于一些对启动顺序严格的项目,可以在PLC程序里加一个“总线就绪等待”逻辑,在EtherCAT主站启动前通过一个数字量输入点检查驱动器总电源接触器的反馈触点。这个方法虽然多占一个输入点,但能彻底解决问题。
5. 让总线从“能用”到“稳定”的几条现场经验
5.1 分布式时钟与任务周期的匹配原则
很多人在InoProShop里把同步模式选成了DC,然后就以为万事大吉。其实DC模式下还有一个关键参数容易踩坑:任务周期和DC周期的匹配。
如果你的PLC运动控制任务周期是1ms,但EtherCAT主站配置里从站的DC周期是500us,两者对不上,从站每个周期收到的数据其实是主站“隔一拍”才刷新的——从站的执行节拍和你的程序逻辑整体错位,表现出来就是轴响应慢半拍、位置跟着微抖。
我个人的习惯是:默认情况下,运动控制任务、EtherCAT主站周期、DC周期三者设置一致。常规设备用1ms起步,如果轴数多、插补要求高,可以整体降到500us,但要评估PLC负载。大批测试的方法是先开1ms跑空载,在诊断窗口看主站最大和平均周期时间,如果平均周期占用率超过70%,就不要盲目降周期,优先优化程序结构、减少EtherCAT任务里的浮点运算。
5.2 接线和走线的三个习惯
第一,给总线的每一个物理段做标识。从PLC出来到第一台伺服,这一段标“ECAT-0”,第一台到第二台标“ECAT-1”,以此类推。这样一旦某个物理段损坏,不用拆图纸,直接看哪段标号被跳过。
第二,网线不要留余量盘成圈。有些电工习惯把网线长出来的部分盘几圈绑在桥架上,这在普通网络里没问题,但在EtherCAT上相当于加了一个电感线圈,干扰环境下特别容易出问题。网线长度按实际距离做,留出必要的维护余量即可,不要大批盘绕。
第三,所有从站的电源最好从同一路EMC滤波后的电源上取。如果有的从站电源来自开关电源,有的来自驱动器内部的24V端子,地电位不一致时,总线通讯的抗干扰能力会大幅下降。
5.3 配置备份、固件升级和故障恢复技巧
工程配置除了在本地保存,一定要在整机调试通过后,把InoProShop的工程文件、用到的所有ESI文件、PLC固件版本、伺服固件版本、各从站的站号表打包成一个“交付配置包”存档。现场设备出问题时,第一件事不是上去瞎调,而是用这套配置包回到基准状态。
当设备出故障后,恢复操作有一个常用的三步法:先做总线复位(在InoProShop里对主站节点执行重启,不断PLC电源);不行就整机断电再上电;还不行才考虑重新扫描从站并对比配置。注意,重新扫描会改变部分从站的站号配置,除非确有必要,否则不要轻易重新扫描已经调好并固定站号的现场设备。
关于固件升级,我的原则是:不主动升级,除非当前配置有明确问题且官方说明该固件修复了此问题。现场最怕为了“反正升一下总没坏处”这种想法去动固件。固件升级对于伺服驱动器和PLC的系统稳定性有影响,生产中没故障的设备不用赶时髦。
最后再分享一个我实际使用中的小技巧:每次配置完EtherCAT,把轴映射表导出一份PDF或者截图放到项目文件夹里。下次现场排查故障时,不需要打开软件去翻,直接看这个截图就能快速知道每个轴用了哪些PDO对象、每个对象的地址范围。这个小习惯在设备多、项目周期长的场地上特别有用,至少帮我节省过十几次奔波到机台前开软件的时间。