3、端口与地址配置:主站与从站IP地址/站号设置、子网掩码与网关配置、端口号冲突检测

说实话,通信出问题,十有八九是地址配错了。

我干这行十几年,每次去现场排查故障,第一件事就是问:「地址看了没?」结果十次有八次,对方一脸茫然。嗯,今天咱们就把这块彻底讲透。

3.1 IP地址与站号设置——通信的「身份证」

先说说IP地址。这东西就像你家的门牌号,主站和从站必须在同一个网段里,才能互相找到对方。

我个人习惯,先把主站的IP固定下来。比如主站设成 192.168.1.100,那从站就得是 192.168.1.x,x不能重复,也不能是100。

核心原则:同一网络内,每个设备的IP地址必须唯一。主站与从站的网络号必须一致。

站号呢?这玩意儿在Modbus、Profibus这类协议里特别重要。站号就是设备在总线上的编号,范围一般是1到247。我遇到过最坑的事——两个从站设了同一个站号,结果主站发指令,两个从站同时响应,数据全乱套了。

我的小技巧:站号最好和设备物理位置挂钩。比如1号柜的PLC设成1号站,2号柜设成2号站。这样查起来一目了然。

3.2 子网掩码与网关配置——别让数据「迷路」

子网掩码这东西,很多人搞不明白。说白了,它就是用来划分「你家小区」和「隔壁小区」的。

举个例子:主站IP是 192.168.1.100,子网掩码 255.255.255.0。这意味着前三位 192.168.1 是网络号,最后一位是主机号。从站只要前三位一样,就能直接通信。

但如果你跨网段了呢?比如主站在 192.168.1.x,从站在 192.168.2.x。这时候就需要网关出场了。网关就像小区大门,数据要出小区,必须经过它。

注意:网关地址必须和本机IP在同一个网段。比如主站IP是 192.168.1.100,网关就得是 192.168.1.1192.168.1.254 这类地址。我曾经见过有人把网关设成 192.168.2.1,结果数据包根本发不出去。

我建议你配完网关后,用 ping 命令测一下。能通,说明网关没问题;不通,先查物理连接,再查配置。

3.3 端口号冲突检测——看不见的「暗战」

端口号,很多人容易忽略。其实它特别重要。

主站和从站通信,默认端口号一般是502(Modbus TCP)、2000(S7协议)之类的。但如果你在同一台电脑上跑了多个软件,端口号就可能打架。

我记得有一次,现场工程师死活连不上PLC。我远程一看,他电脑上开了两个组态软件,都占用了502端口。结果第二个软件启动时直接报错,但第一个软件还在跑,PLC那边就收不到正确的请求了。

检测方法:

  • Windows下用 netstat -ano | findstr :502 查看端口占用
  • Linux下用 netstat -tulnp | grep 502
  • 看到PID后,去任务管理器里查是哪个进程占用的

如果发现端口被占用了,怎么办?两个办法:要么关掉那个进程,要么改端口号。改端口号的话,主站和从站两边都得改,保持一致才行。

避坑指南:我曾经遇到一个案例,防火墙把502端口给封了。查了半天才发现。所以端口通了之后,别忘了检查防火墙规则。

3.4 实战排查流程——一张图说清楚

下面这张图,是我自己总结的排查流程。每次遇到地址类故障,我就按这个顺序查,基本没失手过。

端口与地址配置排查流程图 开始排查 1. 检查IP地址是否在同一网段 2. 检查站号是否唯一 3. 检查子网掩码是否一致 4. 检查网关配置是否正确 排查完成

按这个流程走一遍,90%的地址类故障都能解决。剩下的10%,多半是硬件问题或者协议不匹配,那就要另说了。

3.5 常见问题速查表

现象 可能原因 解决方法
ping不通 IP不在同一网段 修改IP或子网掩码
通信时断时续 IP地址冲突 用arp -a检查,改掉重复IP
连接被拒绝 端口号被占用 netstat查端口,关掉冲突进程
数据乱码 站号重复 重新分配唯一站号
跨网段不通 网关未配置或配错 检查网关地址和路由表

好了,端口与地址配置这块,核心就是这些。你想想看,是不是其实没那么复杂?只要按步骤来,别跳步,基本不会出大问题。

专注资料整理