序号 | 原因 | 一句话解释 | 典型表现 |
1 | 通信协议不匹配 | 你说Modbus TCP,它只听Modbus RTU,鸡同鸭讲 | 连接超时,完全没有响应 |
2 | 通信口参数设错 | 波特率、数据位、校验位对不上,就像电话串线 | 时连时断,收到乱码 |
3 | 硬件故障 | 通信口烧了或PLC本身有问题 | 所有通信都挂,不仅一个上位机连不上 |
4 | 线路故障 | 线断了、短路了、接松了 | 信号时有时无,碰一下线就好了 |
5 | 程序逻辑错误 | PLC程序里把通信指令屏蔽了或逻辑卡死 | 通信正常但PLC不执行,看程序有报警 |
排查顺序:从外到内,先简单后复杂
别上来就拆PLC,按这个顺序来,90%的问题前两步就解决了:
① 查线路——最简单,先排除
线有没有接对?TX/RX有没有接反?(RS485的A/B接反是最常见低级错误)
用万用表测通不通,别用眼睛看——看着接了实际松了的情况太多了
接头有没有氧化?车间环境潮湿,DB9头生锈接触不良很常见
② 查协议和参数——最容易忽略
必查项 | 怎么查 | 常见坑 |
通信协议 | 两边设备手册对照,确认协议名称一致 | Modbus RTU和Modbus TCP是两回事,别混 |
波特率 | 两边设成一样,通常9600或19200 | 一边9600一边19200,必连不上 |
数据位/停止位 | 通常8位数据+1位停止 | 不一致收到的是乱码,不是完全没响应 |
校验位 | 无校验/奇校验/偶校验要统一 | 设错了偶发报错,最难定位 |
站号/从站地址 | 上位机指向的地址要对上PLC的站号 | PLC站号设1,上位机写2,永远找不到设备 |
️ 这步排查有个捷径:用串口调试助手(如SSCOM)直接发报文,能通说明硬件线路没问题,问题在上位机程序;不能通说明协议或硬件有问题。先定位故障在哪个半边,别两边同时改。
③ 查硬件——确认通信口是不是真坏了
换一根线、换一个口试试——如果换了就好,说明原来的口或线有问题
PLC多个通信口的话,换个口测试——一个口通一个口不通,口烧了
换过硬件的话,确认型号兼容、安装到位、跳线没漏
④ 查PLC程序——前三个都没问题才到这步
程序里有没有写条件屏蔽了通信接收?比如M100.0=1才允许接收,但M100.0一直是0
有没有逻辑死循环卡住了扫描周期?通信指令根本没执行到
看报警信息——PLC的故障诊断缓冲区里通常有线索
⑤ 查上位机——最后一环
上位机程序版本对不对?驱动装没装?
网络环境是否正常?防火墙有没有拦?IP是否在同一网段?
有没有别的程序在抢占同一个通信口?
排查流程一张图
一句话口诀:先线路后参数,先硬件后程序,串口助手定位半边天。