汇川PLC与AGV的EtherNet/IP无线通信配置实战

发布时间:2026/10/3 10:15:58
汇川PLC与AGV的EtherNet/IP无线通信配置实战 上个月帮一条锂电池模组线解决通信问题汇川AM402 PLC要跟AGV上的工控机实时交换数据协议指定用EtherNet/IP但AGV是移动设备网线根本拉不过去。第一次把有线换成工业Wi-Fi联调时踩了一连串坑连接超时、IO断线、数据偶发卡顿前前后后折腾了三天才把参数全部调顺。现在这套系统已经在产线上稳定跑了一个多月借这个机会把完整的配置过程复盘一遍。这篇文章适合那些需要在汇川PLC上做EtherNet/IP无线以太网通信配置的工程师——不管你要连AGV、RGV还是旋转台、行车这类移动设备只要线拉不过去、但协议又指定了EtherNet/IP下面的内容都可以直接参考。1. 无线化改造之前先想清楚这三个问题1.1 你的汇川PLC型号到底支不支持EtherNet/IP汇川PLC的产品线跨度很大从几十点的小型机到中大型运动控制器都有但不是所有型号都原生支持EtherNet/IP。做方案前先确认手里的CPU型号这一点比协议参数本身更重要。目前汇川PLC对EtherNet/IP的支持情况大致是这样的AM400系列AM401、AM402等支持EtherNet/IP从站功能通过InoProShop编程软件配置在设备组态里可以找到对应的Adapter配置入口。AM402在这个系列里性价比高很多AGV和输送线项目都在用。AM600系列AM600-CPU1608等支持EtherNet/IP从站相比AM400资源更充裕处理大一点的数据交换更从容。AC800系列汇川的中大型PLCEtherNet/IP支持更完整但软件版本和固件版本影响比较大建议先确认固件支持列表。H5U系列小型PLC里的主力虽然主要走EtherCAT和Modbus TCP但部分固件版本也支持EtherNet/IP从站。具体到某个型号是否支持、支持到什么程度建议直接查对应型号的用户手册或者问汇川技术支持。这里给个实操建议拿到PLC后先看固件版本再翻手册确认通信章节里是否有EtherNet/IP的从站说明。如果手册里没有大概率是硬件不支持就别在协议上花时间了老老实实走Modbus TCP或者加一个协议转换网关反而更快。1.2 无线不是把网线抽掉换天线这么简单很多人第一次做无线EtherNet/IP时有个错觉既然EtherNet/IP跑在标准以太网上那我把有线换成Wi-Fi只要Ping通不就行了这个想法会害死人。EtherNet/IP和Modbus TCP有个本质区别Modbus TCP是请求-响应模式报文发出去没回音就重发或报错对链路的短暂中断有天然容忍度。EtherNet/IP里的隐式IO连接是周期性报文——主站每过一段时间RPI就发一个实时IO包从站必须在这个周期内回应。链路只要抖一下IO连接就可能超时断开然后主站侧报Connection Timeout重新建立连接又要花几百毫秒甚至几秒。在移动设备上这个反复断线重连的体验就是设备走走停停、数据时有时无。所以无线化改造的核心不是让无线和有线一样稳定而是让协议参数去匹配无线链路的实际能力。我的原则是有线环境下RPI可以设10ms甚至5ms无线环境下就老老实实从20ms到50ms开始调先把连接稳住再谈实时性优化。1.3 给通信实时性定一个可验收的底线在动手配置之前建议先在项目现场定几个验收指标写进测试记录里。没有指标就调参最后就是玄学调参。我一般按这套标准来验收无线环境下的EtherNet/IP通信指标参考底线说明无线信号强度RSSI不低于-65dBm低于这个值丢包率会明显上升平均时延小于5ms从Ping小包测得的平均值时延抖动Jitter小于10ms重点关注比平均时延更重要丢包率小于0.01%用长Ping测试至少打1000个包IO连接稳定时间连续运行24小时以上不出现断线无线场景下这是硬指标有了这份验收表后面的所有参数调整都有依据。比如RPI调大后到底有没有效果看IO连接稳定时间就好了不用靠感觉判断。2. EtherNet/IP协议里跟无线环境最相关的几个机制2.1 Scanner和Adapter模型为什么大多数场景汇川是做从站EtherNet/IP沿用了CIP协议的Scanner/Adapter模型本质上是一主多从的关系。Scanner是IO扫描器负责周期性发起IO请求对标Modbus里的主站Adapter是适配器被动响应请求对标从站。在AB的PLC体系里Scanner就是PLC里的EtherNet/IP扫描器模块如果上位机软件做了EtherNet/IP主站那上位机就是Scanner。现实项目里汇川PLC绝大多数情况下是当Adapter用的。原因很简单汇川PLC的EtherNet/IP从站功能比较成熟而主站功能支持有限碰到上位机、AB PLC、罗克韦尔PLC要连汇川的场景EtherNet/IP从站模式是最快的路。比如我那个AGV项目AGV上的工控机跑上位机软件做Scanner地面段的汇川AM402做Adapter两者通过工业Wi-Fi组网。通信双方只要约定好数据格式和RPIIO数据就能周期性地从汇川PLC映射到上位机反过来也一样。这个模型理解透了配置时就不会晕。搞不清谁是Scanner谁是Adapter后面EDS文件、Assembly Instance全都会乱。2.2 隐式报文和显式报文无线环境下要区别对待EtherNet/IP的通信分两类隐式报文Implicit Message和显式报文Explicit Message。这两者在无线环境下的表现差异非常大。隐式报文走UDP目标端口是2222也就是0x08AE。这类报文承载实时IO数据报文小、频率高、周期固定是EtherNet/IP连接的核心。正因为是UDP报文丢了就丢了协议栈不会重传——IO连接超时与否取决于有没有在超时时间内收到对端报文。显式报文走TCP目标端口是44818也就是0xAF12。这类报文承载组态、参数读写、诊断等信息走TCP意味着有重传机制丢几个包问题不大顶多响应慢一点。无线环境的典型问题是UDP小包在空口竞争时容易丢失或延迟。Wi-Fi是共享信道同一时刻只能有一个设备在发数据一旦其他业务占用信道隐式报文的到达时间就会抖动。明白了这个机制配置时就会下意识地把RPI调得保守一点而不是像有线环境那样往极限压。2.3 Assembly Instance和RPI到底怎么理解Assembly对象实例是CIP协议里的数据集合概念。每个Adapter设备会定义若干个Assembly比如输入AssemblyInput Assembly保存要发给Scanner的数据输出AssemblyOutput Assembly保存从Scanner接收的数据。Scanner跟Adapter建立连接时需要在请求里指定用哪个Assembly Instance然后双方按这个数据块的结构周期交换。RPIRequested Packet Interval是IO报文的请求时间间隔即Scanner期望每隔多少毫秒跟Adapter交换一次数据。这个参数有点像PLC扫描周期只是它针对的是网络上的IO刷新。无线环境下RPI设置的实操建议不要低于20ms除非无线链路质量特别好且项目允许反复调优。有线测试时可以用10ms验证功能但切无线之前先调回保守值。如果实际生产负载比较大30ms、50ms也可以接受很多输送线项目30ms完全够用。设置RPI之后还要关注Connection Timeout Multiplier这个参数。它表示允许多少个RPI周期没收到报文才判定连接超时默认值一般是4。有线环境默认4没问题无线环境建议调大比如8到12给链路抖动留出余量。3. 无线链路搭建选型、网规和现场验收3.1 三种常见工业无线方案的取舍做无线EtherNet/IP第一步是把物理链路先搞稳。当前工业现场常见的无线方案有三类选型逻辑不太一样方案类型适用场景优点缺点典型产品工业AP客户端AGV、RGV、移动设备在固定区域内漫游覆盖范围大支持漫游灵活性高受现场环境干扰影响大漫游切换可能有短暂丢包Moxa AWK系列、西门子SCALANCE W点对点无线网桥两个固定位置之间拉不了线链路稳定、带宽高、时延低只能点对点设备移动受限大功率网桥设备工业5G路由器跨车间、跨厂区的远距离通信覆盖距离远不受厂区内部Wi-Fi干扰时延波动大运营商网络质量不可控各类工业5G CPEAGV项目里一般用第一种方案因为AGV的运动范围在车间内划定路线工业AP客户端模式把漫游策略配好后AGV走到哪个位置都有信号覆盖。如果现场是两个固定机台之间距离远又拉不了线用点对点网桥更划算链路质量比Wi-Fi漫游稳定得多。5G路由器这类场景优先级最低除非是户外园区长距离传输否则不建议把实时IO跑在运营商网络上。3.2 IP规划、信道规划和天线安装的细节无线链路一旦牵扯到EtherNet/IP网络规划就不能随便搞了。这里有几个实操细节是走过坑之后才总结出来的。IP地址规划方面建议给无线通信单独划一个VLAN和独立网段不要跟办公网络混在一起。EtherNet/IP的IO报文是周期广播性质的广播域太大无谓的广播报文会占用空口资源。比如PLC和上位机都在192.168.50.x网段工厂办公网在192.168.1.x网段中间用三层交换机隔离。信道规划方面工业Wi-Fi优先用5GHz频段。2.4GHz频段穿透力好但干扰源太多——蓝牙、微波炉、其他AP都会挤在2.4GHz上空口竞争激烈时延抖动很难压下来。5GHz频段可用信道多干扰少。信道固定选择其中一个不要用自动信道选择否则无线AP自己切信道时通信会瞬断几十毫秒EtherNet/IP连接直接就断了。天线安装是很多人容易忽略的环节。AP天线和客户端天线最好是同一极化方向AGV行走路线如果比较固定天线安装时注意让AP的覆盖方向沿着AGV运行路径展开不要对着铁皮机柜或金属立柱。AGV上的天线要注意安装高度尽量避开AGV自身金属车体的遮挡天线附近不要贴大块金属板。3.3 用实测数据验收无线链路无线链路搭好后先别急着一头扎进PLC配置先在网络层面做一轮验收。我自己习惯的做法是三层检测先Ping网关和PLC验证基本连通性ping -t 192.168.50.10 -l 1400加-l参数是为了发送稍大的报文测试链路在承载较大数据时的表现。跑1000个包以上看平均延迟和丢包率。第二步看无线信号质量可以在工业AP的管理页面里查看RSSI和连接速率。如果客户端是移动中的AGV专门在运行路径上走一圈记录不同位置点的RSSI找出信号最弱的位置。发现某个位置低于-65dBm就要调整AP位置或增加AP数量。第三步用Iperf跑一下UDP吞吐如果有条件的话验证链路带宽余量。EtherNet/IP IO报文本身不会占太多带宽但如果链路带宽已经跑满延迟抖动就会很大。UDP吞吐测试时跑一个略高于IO业务实际带宽的流量观察是否有大量丢包。链路质量达标后再进到PLC配置环节。切记不要在无线链路还没验收的情况下就开始调协议参数否则分不清问题是出在协议配置还是无线链路上。4. 汇川PLC做Adapter的配置流程4.1 在InoProShop里找到配置入口以AM402为例汇川PLC的EtherNet/IP从站功能在InoProShop里配置。InoProShop底层是类Codesys架构如果你用过Codesys系PLC上手会很快没用过也没关系关键是找到配置入口。在InoProShop里新建工程并选好CPU型号后设备树里找到以太网相关的配置节点。AM系列一般是以太网口属性里有EtherNet/IP或从站配置的选项。不同版本的软件界面有差异有的版本要把EtherNet/IP的协议栈添加到设备树里有的版本直接在主站/从站配置里就能看到入口。这里有个判断标准只要配置界面里能设置设备的输入输出Assembly长度、能导出EDS文件说明这个PLC的EtherNet/IP从站功能已经启用了。反之如果界面里只有Modbus TCP配置项、找不到EtherNet/IP字样大概率是固件或软件版本不支持需要升级。4.2 配置关键参数IP地址、Assembly长度、寄存器映射进入EtherNet/IP从站配置界面后按顺序配置下面几项第一项是PLC自身的IP地址、子网掩码和网关。IP地址必须和Scanner侧在同一个网段例如192.168.50.10子网掩码255.255.255.0。第二项是输入/输出Assembly的设置。这里需要注意命名CIP协议里讲的输入和输出是以Scanner的角度定义的——Scanner的输出数据写入Adapter的数据对应Adapter侧的Output AssemblyScanner读到的数据对应Adapter侧Input Assembly。汇川PLC界面里一般会让你设置输入长度和输出长度总的原则是两边加起来的数据量够用就好不要贪大。数据块越大单个IO报文就越长在无线环境下的传输时间和占用空口的时间都更长。我常用32字节输入、32字节输出绝大多数AGV数据交互够用了。第三项是寄存器映射。汇川PLC的EtherNet/IP从站会把IO报文里的数据映射到PLC内部的保持寄存器或软元件区。比如输出数据映射到%QW0到%QW31对应Modbus保持寄存器40001到40017。设置好映射关系之后PLC程序里只要读写这些寄存器地址就能实现与Scanner交换数据。这个映射关系要记录清楚后面联调时在Scanner侧要用相同的地址范围来对应。4.3 PLC程序侧的数据准备EtherNet/IP从站本身不产生业务数据它只是一个透明的数据通道。业务数据要靠PLC程序往映射区里填。以AM402为例在InoProShop里写一段程序把需要上送的数据比如当前设备状态、AGV速度指令、运行模式等累到映射区的寄存器里同时把映射区里收到的数据转存到程序变量中。这段程序要用周期任务执行扫描周期建议和RPI保持一个合理关系。作为理论参考PLC扫描周期一般比RPI快一倍以上比如RPI设30ms扫描周期可以设5ms到10ms确保数据是新鲜的但扫描周期也不是越快越好太快的扫描周期会额外消耗CPU资源AM402这种中端CPU跑10ms完全没问题。实际操作中不要忘了字节序问题。EtherNet/IP底层是CIP协议默认是大端Big Endian字节序而很多PLC的内部存储是Little Endian或者按字存储。如果Scanner侧读到的数据高低字节反了单独拧一下字节交换指令就行。这个坑几乎每个项目都会遇到遇到时先别怀疑通信配置八成是字节序的问题。4.4 导出EDS文件给主站侧配置完成后界面里会有导出EDS文件的操作。EDS文件本质上是EtherNet/IP设备的身份证里面描述了设备支持的Assembly Instance、连接路径、参数对象等关键信息。Scanner侧在建立连接时很多配置需要参考EDS文件来填写少部分软件支持直接导入EDS文件自动生成配置。注意EDS文件的版本要和PLC固件版本匹配。如果PLC固件升过级建议重新导出一份EDS文件不要拿旧版本EDS硬套否则可能出现连接路径对不上、Assembly大小不一致的问题。导出EDS后把文件发给做Scanner侧配置的同事或直接导入上位机软件。文件很小就是个文本但它的准确程度直接决定联调能不能一次过。5. 主站侧联调配置与EDS文件的正确用法5.1 从EDS文件出发而不是从参数表出发很多工程师联调EtherNet/IP时有个不好的习惯不导入EDS直接逢人便问Assembly Instance填多少、CIP路径填什么。其实答案就写在EDS文件里。把EDS文件用记事本打开能看到这样一段结构[Device] VendorName Inovance ProductName AM402 Catalog AM402 [Connection Manager] ConnectionPath 20 04 24 64 2C 66这里的ConnectionPath就是建立IO连接时要用的CIP路径。不同型号的PLC路径不一样以EDS导出结果为准。Scanner侧配置软件比如Kepware、Rockwell Studio 5000、西门子S7的EtherNet/IP驱动等在导入EDS后会自动识别这些参数。所以配置主站的第一步永远是拿到正确的EDS文件并导入然后再手动确认少数几个参数。5.2 以Kepware为例走一遍Scanner侧的配置Kepware是现场常用的OPC服务器软件支持EtherNet/IP驱动用来做上位机跟汇川PLC的通信很顺手。配置步骤如下在Kepware的Channel处新建通道驱动选择EtherNet/IP填写PLC的IP地址和端口EtherNet/IP显式报文默认端口是44818。Device处导入PLC导出的EDS文件Kepware会识别出设备类型和连接参数。在Device的属性里设置RPI常见做法是先设30ms作为起点等无线链路稳定后再尝试缩小。如果Scanner侧支持Comm Timeout或Connection Timeout Multiplier把倍数调大到8以上避免无线抖动导致连接频繁断开。配置完成后在Kepware中新建Tag关联到IO Assembly相应的数据字段。比如Input数据里第一个Word对应的Tag地址格式一般和CIP对象的实例和属性有关Kepware的Tag地址向导里有下拉列表可以选不需要手写地址。创建完Tag后启动通信观察Tag值是否在正常刷新。如果Tag值不刷新优先检查Device状态。Kepware的Device状态栏会显示RunningFaulted等状态如果显示Faulted点开诊断信息看具体错误码。多数情况下不是EDS问题就是RPI设置超出了设备支持范围把RPI调到30ms再试一次往往就好了。5.3 联调顺序别搞反联调最大的坑是顺序反了一上来就无线环境调试结果分不清问题是出在PLC配置、Scanner配置还是无线链路上。我建议严格按下面的顺序走先把PLC和上位机用网线直连或者接到同一个有线交换机上验证EtherNet/IP通信是否正常。这一步务必确认数据能周期性刷新、读写正常、断开网线后能报超时、重新插上能自动恢复连接。有线通信跑通后再切换到无线链路。切换后先用Ping验证链路连通性再让上位机建立EtherNet/IP连接。如果无线环境下连接时通时断先回看第三章的无线链路验收指标确认物理链路没问题后再动协议参数。无线模式下跑通后不要马上说搞定至少做24小时老化测试尤其是AGV运行的整个路径都要覆盖到。期间记录断线次数和恢复时间。标准很简单24小时内不允许出现IO连接断开即使断开也必须在2秒内自动恢复且不需要人工干预。6. 无线场景下的故障排查实战记录6.1 现象一IO连接反复超时Ping却一直通这种情况最常见也是我那个AGV项目里当初最先遇到的问题。现象描述从工控机Ping AM402延迟在1到3毫秒丢包率几乎为零但上位机软件里的EtherNet/IP IO连接每隔几分钟就报一次超时断开后过几秒自己恢复。排查思路Ping通不代表IO报文就顺畅。Ping走的是ICMP跟UDP 2222端口的隐式报文完全不是一回事。隐式报文对时延抖动极其敏感而Ping看到的是平均时延几毫秒的平均时延背后可能穿插着几十毫秒的尖峰。我当时的排查步骤是先用连续Ping观察抖动趋势发现偶尔会有几个包延迟到50ms以上。接着登录无线AP管理页面查看频谱环境发现2.4GHz频段上有一个外部AP的信号在周期性抢占信道。把汇川PLC对应的客户端切换到5GHz频段、固定信道后时延抖动改善了不少但连接还是偶尔断开。最后一个关键参数是RPI。之前有线联调时RPI设的是10ms切到无线后忘了调回来。10ms对无线链路来说太激进了空口一旦忙一点连续三四个周期没收到报文连接就超时了。把Kepware里的RPI从10ms改成30ms把连接超时倍数从默认4改成8之后IO连接再没有断过。这里把经验总结成一句话先看无线频谱是否被干扰再看RPI和超时倍数是否太激进。80%的无线IO断线问题出在这两个地方。6.2 现象二数据偶发卡顿报文间隔忽大忽小另一个项目里遇到的情况是IO连接始终不报错但上位机收到的数据偶尔会卡一下——比如AGV的速度值应该连续变化实际却出现一两个周期跳变或重复。这个现象说明连接还活着但报文到达时间不均匀。用Wireshark在工控机上抓包过滤条件这样写udp.port 2222 ip.addr 192.168.50.10分析抓到的报文看IO报文的实际到达间隔。正常情况下RPI设30ms报文间隔应该在30ms上下小幅波动。如果出现间隔突然拉大到100ms的情况说明空口当时被其他业务占用了。我那次就是因为AGV上的客户端开启了自动信道扫描每隔一段时间会短暂离开当前信道去做背景扫描正好撞上IO报文的刷新窗口。解决办法很简单在客户端无线网卡的驱动里关闭自动信道扫描或者启用工业无线协议里的快速漫游/快速切换功能让客户端只在AP之间漫游时才做信道切换平时不扫描。调整后报文间隔恢复均匀。这个问题的排查要点是用抓包数据说话别凭感觉判断。Wireshark看报文时间戳一眼就能看出抖动来源。6.3 从根源上减少断线的几个配置习惯经历过几次联调踩坑后我总结了几个面向无线EtherNet/IP的配置习惯后续项目基本没再被同样的问题折腾过。IP与MAC绑定在无线AP上把汇川PLC、客户端的IP和MAC绑定防止接入设备IP变化导致连接无效。这在AGV场景里尤其重要——多台AGV漫游切换时DHCP分配IP一变上位机连的就不知道是谁了。固定信道并用5GHz频段避免AP自动选择信道无线环境越稳定比速度更重要。5GHz频段的干扰和拥塞远低于2.4GHzIO报文在干净信道上的到达时间更容易保持稳定。在PLC程序里加通信心跳监视即使EtherNet/IP连接状态没有报错最好在数据区里放一个计数器PLC每扫描周期加1上位机侧监视这个计数器的变化。如果计数器停止变化超过设定时间说明数据流已经断了。这个心跳比任何状态位都实在因为它是业务层面的通信健康度。RPI和超时时间不要追求极限无线环境下RPI设为20ms到50ms超时倍数为8到12这套组合在大多数工业Wi-Fi场景下都很稳。RPI设太低链路稍一抖动就断设太高实时性又不够。20ms到50ms这个区间是经过多个项目验证过的实用平衡点。最后分享一点做完这个项目我最大的体会是做无线EtherNet/IP配置核心不在协议参数本身而在整条链路留有多少余量。PLC侧配置好了先有线通一遍再切无线这是最省时间的路子无线链路验收不达标就别急着动协议参数否则永远在背锅和甩锅之间循环。现在再做AGV、行车这类项目我的习惯是拿到现场第一周先看无线链路报告再谈协议参数调整。这套流程虽然不是最快的路径但一定是能复制、能交底的路径。希望这次复盘能帮你少走点弯路。