用GX Works2经交换机连接三菱PLC,这件事乍一看就是“插根网线、改个IP、点个连接”,但真正到设备现场,简简单单一步操作背后全是细节。我遇到过不少次这样的情况:电脑和PLC电都通了、交换机状态灯也在闪,GX Works2却一直弹“连接失败”,围着控制柜转了两个小时,最后才发现问题出在Windows防火墙默认拦了PLC通信端口。这篇我就把GX Works2经交换机连接三菱PLC的整个链路拆开讲,从原理到操作再到排障,尽量说得直白、可复制。适合刚接触三菱PLC以太网通信的电气工程师、设备调试人员和现场维护人员参考,也适合那些“之前一直用USB线连,今天第一次用网线连”的朋友。
1. 为什么要经交换机连PLC,而不是一根网线直连
1.1 三种连接方式的适用场景,别等到了现场才纠结
很多人第一次用GX Works2连PLC,首选是USB或者串口编程线,因为省事、稳定、不需要考虑IP。但USB线有两个硬伤:距离短,一般超过5米就信号衰减;而且只能连一台PLC,调试多台设备时你得反复拔插。串口线更不用说了,现在的新电脑连COM口都没有,还要拖一个USB转串口,调试现场满地都是线,看着都头疼。
网线直连是第二种常见方式。电脑插一根网线直接接PLC的以太网口,IP设在同一网段就能通信。这种方式适合一对一调试,而且网线可以轻松做20米、30米甚至更长。不过直连有个明显限制:一次只能同时连接一台PLC,如果电脑需要同时监控两台设备的数据,直连就做不到了。
经交换机连接是第三种方式,也是今天要重点讲的。电脑和PLC都接到交换机上,形成一个最小局域网。这种方式既保留了一对一调试的便利,也把单点连接扩展成了多点互联。你可以在交换机的其他端口再接一台触摸屏或者上位机,甚至可以接一台工业路由网关,把数据采集和远程调试的通道一并打通。也就是说,交换机连接不是“直连的替代品”,而是“直连的方案升级版”。
1.2 交换机连接在真实项目里解决什么问题
从实际项目看,经交换机连接PLC主要有四个非常刚性的场景:
第一个是设备联调现场。一台自动化设备通常不止一台PLC,可能还有一个视觉控制器、一个机器人控制柜、几台伺服驱动器。这时把所有以太网设备集中到一台工业交换机上,GX Works2想连哪台就连哪台,IP切换一下就行,不需要物理拔线。
第二个是控制柜布局受限制。PLC装在控制柜里,操作工或者调试人员不可能一直蹲在柜子旁边。把PLC网线引到柜门上的网络接口或者旁边的工位交换机,人就可以坐在操作台前调试,这在产线改造项目里特别常见。
第三个是远程维护预留。客户现场经常要求设备具备远程诊断能力,最简单可靠的做法就是在交换机上预留一个网口给远程网关或者让维护电脑接入。没有交换机做汇聚点,这个口还真不好留。
第四个是距离问题。不通过交换机,电脑和PLC相距一百多米,一根网线极限也就100米,中间必须加交换机做信号中继。这种分级延长网段的做法,在现场布线里比拉光纤便宜得多。
1.3 动手之前先做IP规划,这步懒不得
很多朋友连不上PLC,问题根本不在GX Works2,而在IP冲突。这里说的IP冲突包括两种情况:一种是PLC和电脑IP完全一样,这在出厂默认配置下经常发生;另一种是交换机下还挂着别的设备,IP段和PLC占用的段重叠。
正确的做法是在动手前先画一张IP分配表。以最常见的场景为例:PLC设为192.168.3.10,子网掩码255.255.255.0;电脑设为192.168.3.5,掩码一样;网关可以不填,因为只是在局域网内通信,填错了反而可能引起路由判断异常。交换机的管理IP(如果需要登录交换机配置界面)可以放在另一个网段,比如给交换机专门预留一个地址,比如192.168.3.2,这样以后登录管理也方便,不会跟PLC抢地址。
IP规划还有一个容易被忽略的点:三菱PLC的IP地址是存在CPU参数里的,不是像电脑一样每次开机自动获取。你要知道自己这台PLC当前是什么IP,有两种办法:一是如果当前还能用USB连上,直接在GX Works2的“PLC参数-以太网端口设置”里读出来;二是查项目图纸或者出厂设定标签。最忌讳的就是不知道PLC当前IP,然后把电脑设成192.168.3.5,PLC实际在192.168.1.10,两边不同网段,PING都PING不通,你还以为是交换机坏了。
2. 通信原理与四个关键参数,弄懂了就不会瞎试
2.1 一台PLC为什么能“接网线”:内置以太网口与以太网模块
很多人一提到PLC通信就发怵,觉得底层协议很神秘。其实三菱PLC的以太网通信,本质就是一台设备通过网络接口进行TCP/IP数据交换。PLC的CPU程序里跑的逻辑控制,和网络通信是两个相对独立的“任务”。以太网口负责监听网络请求,CPU负责执行用户程序,两者通过内部总线交换数据。
三菱PLC支持以太网的方式分两类:一类是CPU本体自带网口,比如FX5U系列、Q系列的部分CPU,这类网口直接集成在PLC模块上,设置网络参数后即可使用。另一类是外挂以太网模块,比如Q系列机身旁边挂一个以太网通信模块,这种情况下“网络参数”必须在GX Works2的PLC参数里为这个模块分配一个“起始I/O号”,也就是告诉CPU这个模块占用哪个位置,以后通信就通过这个模块中转。
这两种方式的差别在排障时很重要。如果CPU本体自带网口连不上,问题通常集中在IP、端口、防火墙;如果外挂以太网模块连不上,除了上面这些,还要检查模块的I/O分配和网络号、站号是否和GX Works2里填的一致。这也是我后面会再做一张问题速查表的原因。
2.2 真正决定连接成功率的四个关键参数:IP、掩码、端口、协议
GX Works2经以太网连接PLC,其实就是在跟PLC的MC协议(MELSEC Communication Protocol)服务端口通信。一次连接能不能成功,主要由四个参数决定,缺一个不对都连不上。
第一个是IP地址。电脑和PLC的IP必须在同一网段,也就是说子网掩码换算下来之后,网络位必须相同。比如PLC的IP是192.168.3.10,掩码是255.255.255.0,那么电脑的IP就要是192.168.3.x,不能是192.168.1.x,否则数据包根本出不了本地网络。
第二个是子网掩码。这个参数很多人忽略,以为不填也能连。实际上如果掩码不一致,系统判断“目标是否在同一网段”时会得出错误结论。虽然有些情况下Windows会用“网关”硬转发,但PLC可没有默认网关,跨网段通信大概率失败。
第三个是端口号。这是GX Works2排障里最容易踩坑的点。三菱各系列PLC的默认MC协议端口不一样:FX5U内置以太网端口默认通常是1024,Q系列以太网模块常见默认端口是5007,具体以PLC侧模块参数为准。如果PLC侧改过端口,或者程序里对端口做过映射,GX Works2连接目标里的端口号也必须同步改过来,否则GX Works2发出去的连接请求会被PLC拒绝,表现就是“连接超时”。
第四个是协议类型。GX Works2连接PLC时,以太网连接方式下通常使用TCP协议。TCP面向连接,通信稳定可靠,适合编程软件与PLC之间的指令交互。UDP虽然传输开销小,但GX Works2对PLC的编程连接普遍走TCP。这个细节一般不需要人为选择,但你在排查交换机配置时要知道:如果交换机上做了端口ACL或者协议过滤策略,放行TCP端口那一项必须打开,否则会出现“PING能通、GX Works2连不上”的奇怪故障。
2.3 “PING能通但连不上”是怎么回事
现场最常见也最让人抓狂的故障就是:电脑能PING通PLC的IP,但GX Works2一点连接就报错。PING通说明网络层没问题,也就是IP、掩码、物理链路都正常;连不上说明更上层的TCP端口通信或者协议握手被拦住了。
这里要厘清一个概念:PING使用的是ICMP协议,GX Works2使用的是MC协议。ICMP通不通,和TCP端口通不通,是两套独立的判断。把ICMP比作“你能看见对方家门牌号”,把GX Works2连接比作“你必须按对门铃按钮并拿到钥匙才能进屋”。门牌号找得到,不等于钥匙能开锁。
按这个思路排查,优先检查三件事:
一是PLC的MC协议服务是否真的在运行。有些PLC程序里禁用了以太网通信功能,或者设置了“加密通信”,GX Works2就握不上手。这种情况在FX5U里并不少见,需要在PLC参数里把以太网端口的通信协议设置成开放。
二是Windows防火墙是否放行GX Works2。我遇到过不止一次,关掉“公用网络”的防火墙规则后立刻连通。这里不是建议你永久关闭防火墙,而是建议把GX Works2加入防火墙放行列表,或者临时关闭防火墙测试,确认根因后再恢复安全策略。
三是端口号是否匹配。PING通的是IP,GX Works2连的是端口。PLC侧端口如果从5007改成了5008,或者GX Works2里填的端口还是默认值,结果就是“看得见摸不着”。
2.4 交换机在这里扮演什么角色,为什么不能用HUB代替
交换机在连接链路里起的是“数据交换”作用。它维护一张MAC地址表,记录每个网口对应哪台设备的MAC地址,收到数据帧后只转发到目标端口,不向所有端口广播。这样多个设备之间通信互不干扰,带宽也高。
很早以前有人用HUB(集线器)代替交换机,那东西接收到任何数据都会复制给所有端口,设备越多冲突越严重。调试时只有电脑和PLC两台设备,HUB还能凑合;一旦柜子里再接入触摸屏或上位机,HUB环境下广播帧会占据大量带宽,你经常会看到通信偶尔成功偶尔失败,很难排查。工业现场还是老老实实用工业交换机,管理简单、故障率低。
如果用的是可网管交换机,还要注意一个概念:VLAN。VLAN把交换机的网口划分成不同广播域,PLC在VLAN10,电脑在VLAN20,即使插在同一台交换机上,它们也互相看不见。这种故障最隐蔽,因为物理连接明明都是正常的。绕开这个坑的办法是登录交换机管理界面,确认PLC和电脑所在的端口在同一个VLAN里。
3. 标准实操流程:从接线到通信测试一次跑通
3.1 硬件接线与交换机选型基础要求
实际操作从选交换机开始。仅在调试期使用的临时场景,普通桌面型百兆交换机问题不大;如果是设备正式交付、长期运行,要优先选工业级交换机,供电方式通常为DC24V,和PLC电源系统一致,防护等级、抗电磁干扰能力都比商用交换机强。
接线时注意网络接口标准。PLC的网口基本都是RJ45,支持直通线即可。电脑到交换机、交换机到PLC之间都用普通超五类或六类网线,不需要交叉线。现代交换机和网卡都支持自动翻转,交叉线这种老概念已经不重要了。
网线压接质量是现场故障的高发源。很多莫名其妙的偶发性通信失败,最后查出来就是RJ45水晶头里的线序没压好。按T568B线序压接:1白橙、2橙、3白绿、4蓝、5白蓝、6绿、7白棕、8棕。压接完最好用测试仪测一下,别省这一步。
3.2 电脑端参数设置:静态IP与防火墙放行
电脑端设置我习惯按以下顺序做,避免遗漏:
打开“网络和共享中心-更改适配器设置”,找到本地以太网卡,右键属性,双击“Internet协议版本4(TCP/IPv4)”。选择“使用下面的IP地址”,填入规划好的电脑IP,比如192.168.3.5,子网掩码255.255.255.0,默认网关如果只是本地局域网调试可以不填,填了反而要保证它可达。
IP填完后,打开命令行窗口,先运行:
ipconfig /all确认网卡确实拿到了手动配置的IP,再运行:
ping 192.168.3.10 -t用“-t”参数持续PING。如果响应正常且稳定,说明链路层没问题。如果超时,先检查网线和水晶头,再检查IP设置,不要急着点开GX Works2。
Windows防火墙这一步,我的建议是先“临时关闭”,测试连接成功后再恢复,并确认是哪一条规则导致了拦截。更规范的做法是在“允许应用通过防火墙”里添加GX Works2主程序,保证它能在防火墙开启状态下正常通信。如果现场管理严格,不希望关闭防火墙,至少要放行TCP端口,具体端口就是你GX Works2连接目标里填的那个端口。
3.3 设置PLC侧网络参数的方法
PLC侧如果没有正确IP,一切无从谈起。以FX5U为例,用USB线先连接PLC,打开GX Works2,新建或打开对应工程,进入“工程-PLC参数-以太网端口设置”。里面可以设置IP地址、子网掩码、默认路由器地址。在这里确认或修改PLC的IP为192.168.3.10,掩码255.255.255.0,端口相关参数通常保持默认即可。
如果设备是Q系列外挂以太网模块,需要到“工程-PLC参数-网络参数-以太网/CC IE/MELSECNET模块设置”里,为对应的以太网模块设置起始I/O号、网络号、组号、站号和IP地址。这里有一个容易混淆的点:PLC参数里的“站号”与GX Works2连接目标里填写的“站号”必须一致。单台PLC调试时网络号默认0、站号默认0,一般不用改,但如果你面对的是一台从别的现场拉过来的旧设备,这两个参数很可能被改过,要先读出来看。
设置完PLC参数后,需要把参数写入PLC并复位或者断电重启,参数才会生效。这一步很多人会忘:写入参数后不重启,PLC继续运行旧的网络配置,然后你在GX Works2里折腾半天也连不上。
3.4 在GX Works2里建立以太网连接目标
PLC侧和电脑侧都准备好之后,打开GX Works2。先确认当前工程对应的PLC系列和CPU型号,比如FX5U就选“FX5U”,Q系列就选对应CPU型号。如果工程类型和实际PLC型号不匹配,连接测试会直接失败,这也是一个隐蔽原因。
然后打开“连接目标”设置窗口。在GX Works2的“在线”菜单下找到“连接目标”,或者直接在工具栏点“连接目标”图标。在“CPU连接目标设置”窗口里,选择当前的连接方法为“以太网”,然后填写PLC的IP地址。端口号按PLC侧实际参数填写,FX5U内置以太网默认一般是1024,Q系列以太网模块常见是5007,以PLC侧看到的参数为准。
这里补充一下“网络号”和“站号”的填写逻辑。GX Works2以太网直连单台PLC时,网络号默认0、站号默认0通常就行。但是遇到多CPU系统、多PLC协同或者通过某台智能设备中转的场景,网络号和站号就必须和PLC参数里分配的一致。不清楚就先用USB连接读一下PLC参数,切不可凭感觉乱填。
配置完成后,点击“通信测试”,GX Works2会执行一次握手。连接成功的标志是弹出“与PLC连接成功”的提示框。如果失败,先别反复点“测试”按钮,回到前面的排查思路逐项检查。
3.5 通信测试与在线连接的注意事项
通信测试通过后,就可以“在线-监视模式”或者“在线-写入PLC程序”了。这里有几个细节值得注意。
第一,连接成功不代表可以随意写操作。在线修改PLC程序前,建议把PLC切换到STOP状态再写入,避免程序运行中数据不一致导致设备动作异常。特别是设备正在生产现场运行时,贸然在线修改,可能触发安全回路。
第二,调试过程中不要随便拔网线。GX Works2与PLC保持的是长连接,拔掉网线后要等TCP超时,GX Works2才会报错,重新插上后通常需要手动重新连接。频繁拔插还会导致交换机端口学习到错误的MAC地址,增加无谓的排障干扰。
第三,如果电脑同时连接了Wi-Fi和有线网卡,要注意Windows可能走无线网卡发出PLC数据包,导致“有物理连接却通信失败”。临时调试时,建议禁用无线网卡,或者在路由表里强制指定走有线网卡。
4. 经交换机连接的常见问题与排查清单
4.1 从现象到根因:一张速查表
我把自己和同行朋友踩过的典型故障整理成表格,按现象对号入座,能省不少排查时间。
| 现象 | 最可能原因 | 处理办法 |
|---|---|---|
| GX Works2提示超时,PING不通PLC | 电脑和PLC不在同一IP网段 | 检查电脑IP,确保与PLC同网段 |
| PING不通,网口指示灯也不亮 | 网线损坏或水晶头没压好 | 重新压接两端水晶头,用测试仪验证 |
| PING通,GX Works2仍然超时 | Windows防火墙拦截通信端口 | 临时关闭防火墙测试,或放行GX Works2及TCP端口 |
| PING通,GX Works2仍然超时 | PLC侧MC协议服务未开启/端口被改 | 用USB连接检查PLC以太网端口参数 |
| 经交换机连接失败,直连PLC反而正常 | 交换机端口或VLAN配置问题 | 登录交换机管理界面检查VLAN、端口速率 |
| 连接偶发失败,一段时间后又正常 | 交换机端口协商或网线质量差 | 将交换机端口固定为100M全双工,换质量好的成品网线 |
| 同一交换机下其他设备能上网,PLC连不上 | PLC侧IP被其他设备占用 | 拔掉PLC网线,PING该IP,看是否有别的设备响应该IP |
| 连接目标里选错PLC系列或CPU型号 | 工程类型与实物不符 | 正确选择PLC系列与CPU型号 |
| 修改PLC网络参数后仍然连接不上 | 参数未写入或PLC未重启 | 重新写入参数并断电重启PLC |
这张表不是万能药,但覆盖了现场八成以上的问题。我反复强调一个原则:改动一个变量,测试一次。不要同时改IP、改防火墙、改端口,否则你根本不知道是哪一步救活了故障。
4.2 逐层排查的顺序,不要一上来就重装软件
排障顺序应该从物理层往上走,而不是一开始就怀疑GX Works2有问题。我按下述顺序执行,从未失手。
第一步,看灯。交换机端口指示灯、PLC网口指示灯都亮不亮,闪烁是否正常。灯不亮基本可以断定物理链路断了,查水晶头压接和两端电源。
第二步,PING。命令行里持续PING PLC的IP,观察丢包和延迟。这里有三种结果:完全不响应、时通时不通、稳定响应。完全不通查IP设置和网段;时通时不通首先怀疑网线质量、交换机端口协商、电磁干扰;稳定响应再进入下一层。
第三步,测端口。PING通了但GX Works2连不上,就要用工具或者软件测试目标IP的TCP端口是否可访问。如果端口测试也失败,说明PLC侧完全没有打开对应端口,或者防火墙拦截了入站连接。
第四步,查协议配置。用USB线连接PLC,检查PLC参数里的以太网设置,重点关注IP、端口号、通信协议、与工程型号是否匹配。这一步能确认PLC侧的真实状态,避免“我以为PLC是这个配置”的错觉。
4.3 几个我踩过比较深的坑,希望你没机会踩
第一次踩坑发生在某设备联调现场。我当时调一台FX5U,直连电脑一切正常,换成交换机后死活连不上。拔出所有其他网线只留PLC,能通;插上触摸屏网线,就断。查了半天发现是触摸屏的IP和PLC设置在同一网段且地址冲突,两个设备抢同一个IP。GX Works2每次请求都被混沌的数据响应干扰。从那以后我学乖了,凡是经交换机连接,先把交换机下所有设备的IP列成一张表,确保没有重复地址,再开始调试。
第二次踩坑是在一套老设备上。PLC用的是Q系列外挂以太网模块,GX Works2连接时一直提示超时。PING能通,端口测试也显示是开放的,后来用USB连上PLC一读,发现以太网模块的起始I/O号在PLC参数里根本没分配正确。原来前一个维护人员刷过程序,参数被恢复到默认,导致CPU根本不知道机架上有这个以太网模块。这类问题光靠网络排查是查不出来的,必须回PLC参数里看。做设备运维的人一定要记住:网络通信故障不全是网络问题,很多时候根子在PLC参数配置里。
第三次是让人印象最深刻的一次。电脑和PLC都正常,IP也没冲突,直连和交换机连接都试过,GX Works2还是连不上。最后发现是电脑上装了一个第三方安全软件,对所有基于TCP的工业协议都做了“智能隔离”。这种软件层面的干扰,仅关Windows防火墙是没用的。给同行一个实用建议:调试工控设备时,尽量用干净的普通电脑,别在上面装各种电脑管家类软件,这类软件默认“守护”的很多东西,恰好会把工业通信误判成危险行为。
4.4 连接后的固化与日常维护建议
连接成功后,还可以做几件“一劳永逸”的事。
一是把GX Works2的连接目标配置导出或者截图存档。下次现场维护时,直接按照存档填写,不用每次重新猜参数。
二是在控制柜里贴一张IP地址标签。标明PLC、触摸屏、交换机、电脑各自分配的IP和端口号。设备故障时,任何人过来都能在一分钟内定位网络配置,而不是翻图纸找半天。
三是如果是长期运行设备,建议交换机端口配置成固定端口速率和双工模式,建议100M全双工或按设备实际速率固定。自动协商在工业现场可能有兼容性问题,固定配置反而稳定。
四是定期用PING命令检查PLC响应时间,把正常时延记录下来。比如正常时延<1ms,如果某天发现时延突然到了几十毫秒,说明交换机下可能有广播风暴或环路,趁早处理能避免一次停机事故。
最后说点我的实操体会
经交换机连接三菱PLC这件事,本质不复杂,但特别考验排障思路。我自己最大的体会是:顺序对了,问题就少了一半。物理层不通就别调IP,IP不同网段就别查端口,端口不通就别怪PLC程序。很多人卡在“明明PING得通怎么连不上”这个环节上,往往是没明白协议分层这个概念。还有一点想专门提醒,经交换机连接确实方便,但交换机的“隐形故障”也多,VLAN隔离、IP冲突、端口协商都可能在关键时刻坑你一把。建议首次调试时,先做一次只有一个PLC、一台电脑的“最小系统”验证,确认链路通畅后再把其他设备一台一台加进去,这样即使后面的设备出问题,你也知道是谁在捣乱。保持这个习惯之后,我后面再处理类似项目就没怎么在这个环节浪费过时间了。