☰
汇川PLC与AGV的EtherNet/IP无线通信配置实战
2026/10/3 10:15:42 网站建设 项目流程

上个月帮一条锂电池模组线解决通信问题,汇川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系列:汇川的中大型PLC,EtherNet/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组网。通信双方只要约定好数据格式和RPI,IO数据就能周期性地从汇川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,比如输入Assembly(Input Assembly)保存要发给Scanner的数据,输出Assembly(Output Assembly)保存从Scanner接收的数据。Scanner跟Adapter建立连接时,需要在请求里指定用哪个Assembly Instance,然后双方按这个数据块的结构周期交换。

RPI(Requested 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 CPE

AGV项目里一般用第一种方案,因为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 Assembly;Scanner读到的数据对应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状态栏会显示"Running""Faulted"等状态,如果显示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.4GHz,IO报文在干净信道上的到达时间更容易保持稳定。

在PLC程序里加通信心跳监视:即使EtherNet/IP连接状态没有报错,最好在数据区里放一个计数器,PLC每扫描周期加1,上位机侧监视这个计数器的变化。如果计数器停止变化超过设定时间,说明数据流已经断了。这个心跳比任何状态位都实在,因为它是业务层面的通信健康度。

RPI和超时时间不要追求极限:无线环境下RPI设为20ms到50ms,超时倍数为8到12,这套组合在大多数工业Wi-Fi场景下都很稳。RPI设太低,链路稍一抖动就断;设太高,实时性又不够。20ms到50ms这个区间是经过多个项目验证过的实用平衡点。

最后分享一点

做完这个项目,我最大的体会是做无线EtherNet/IP配置,核心不在协议参数本身,而在整条链路留有多少余量。PLC侧配置好了,先有线通一遍,再切无线,这是最省时间的路子;无线链路验收不达标,就别急着动协议参数,否则永远在背锅和甩锅之间循环。现在再做AGV、行车这类项目,我的习惯是拿到现场第一周先看无线链路报告,再谈协议参数调整。这套流程虽然不是最快的路径,但一定是能复制、能交底的路径。希望这次复盘能帮你少走点弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询