『7x24小时有问必答』
PLC不理上位机?五条原因,照着查就完事
上位机发了指令,PLC装没听见——这大概是现场调试最让人抓狂的场景之一。别急着重启,先按逻辑排查:

先搞清可能的原因

序号
原因
一句话解释
典型表现
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是否在同一网段?
有没有别的程序在抢占同一个通信口?

排查流程一张图

一句话口诀:先线路后参数,先硬件后程序,串口助手定位半边天。
以上是 PLC 不接受上位机指令可能的一些原因

具体问题需要根据实际情况进行排查。

---

如果 PLC 不接受上位机指令,可以按照以下步骤进行解决:

第一步:查线路——别用眼睛看,用表量
线路问题占现场故障的大头,但大多数人排查线路的方式就是"看一眼"——看一眼线接了,就认为没问题。
实际要查什么:
检查项
怎么查
常见坑
线有没有接对
对照接线图,TX/RX、A/B别接反
RS485的A/B接反是最常见低级错误,看着接了实际反了
接头有没有松
手轻拉一下,看会不会脱落
DB9头螺丝没拧紧,震两下就松了,时通时断最头疼
线路通不通
万用表蜂鸣档,两端测
看着接了但内部断线,只有表量才知道
有没有短路
万用表电阻档,测线间阻值
外皮破皮搭在一起,信号全乱
屏蔽层接地了吗
测屏蔽层对地电阻
RS485不接地,干扰把信号吃得干干净净
线路排查有个快速判断法:用手轻晃接头,通信状态跟着变——不用量,就是接触不良。

第二步:对参数——两边必须一字不差
线路没问题,接下来对参数。别凭记忆,把两边的参数抄出来逐项比对:
必对项
PLC侧
上位机侧
常见坑
通信协议
Modbus RTU?TCP?自由口?
必须和PLC选的一样
RTU和TCP是两个协议,名字像但完全不通
波特率
9600/19200/38400/115200
必须一致
一边9600一边19200,永远对不上
数据位
7位或8位
必须一致
7位vs8位,收到的是乱码不是完全没响应
停止位
1位或2位
必须一致
通常都是1,但个别老设备用2
校验位
无/奇校验/偶校验
必须一致
校验位设错最难发现——偶发报错,时好时坏
站号/从站地址
PLC设的站号
上位机指向的地址
PLC站号设1,上位机写2,永远找不到设备
通信口选择
用哪个口?COM1?COM2?
上位机连的是哪个口?
PLC有多个口,接了口1却在程序里配了口2
快速验证法:用串口调试助手(SSCOM)按PLC的参数配置,手动发一条读指令——通了说明参数没问题,问题在上位机程序;不通说明参数或协议还有错。

第三步:查硬件——先排除,别上来就换
前两步都排查过了,线路和参数都没问题,还是不通?那就要怀疑硬件了。
怎么判断是不是硬件坏了:
测试方法
操作
结果判断
换口测试
PLC有多个通信口的话,换一个口试
换口通了→原来的口烧了;换口也不通→问题不在口
换线测试
换一根确认好的通信线
换线通了→原来的线内部断;换线也不通→排除线路
换设备测试
用笔记本直连PLC通信口
能通→问题在上位机硬件;不能通→问题在PLC侧
看指示灯
通信口旁的TX/RX灯
完全不亮→口可能坏了;只亮TX不亮RX→发送正常但收不到
换过硬件要额外确认:
型号是否兼容?同品牌不同系列的通信模块不一定通用
安装是否到位?模块没插紧,接触不良,时通时断
跳线/拨码开关有没有漏设?老款PLC的通信模块有硬件跳线,软件里看不到
硬件故障概率最低但更换成本最高——别一上来就拆换,先做上面的对比测试,确认是真的坏了再动。

第四步:查程序——通信到了门口,逻辑不让进
线路通了、参数对了、硬件没坏,PLC还是不执行指令?那问题就在程序里——通信信号到了,但被逻辑挡在了门外。
程序里最常见的三种"门禁":
类型
怎么挡的
怎么查
条件屏蔽
通信接收加了前提条件,条件不满足就不执行
找到通信指令,看前面有没有M/X/D的触点条件,确认条件是否满足
逻辑死循环
扫描周期被卡死,根本执行不到通信程序段
看扫描周期时间,正常几ms,如果飙到几百ms甚至超时——大概率有死循环
指令参数错
通信指令的从站地址、寄存器地址写错了
对照通信指令的参数,确认目标地址和上位机发的是否一致
排查顺序:
先看报警信息
——PLC诊断缓冲区里有什么?通信超时?从站无响应?报错代码比猜逻辑快一百倍
再看通信指令有没有被使能
——在线监控,看通信指令前面各触点状态,哪个是0就是谁挡的
最后看执行逻辑
——收到数据后怎么处理的?有没有写错寄存器地址、溢出、类型不匹配
前三步查的都是"路通不通",这一步查的是"门开不开"——路通了门没开,信号照样进不来。

第五步:查上位机——问题可能在对面
四步查完PLC侧都没问题,那故障就在上位机这边了。
检查项
怎么查
常见坑
程序逻辑
上位机发送的报文格式对不对?地址对不对?
报文里寄存器地址写错了,PLC收到但写到了别的位置,看着像"没执行"
版本匹配
上位机软件版本和驱动版本是否兼容
升级了上位机软件但没更新驱动,通信协议悄悄变了
通信口占用
有没有别的程序在抢同一个口?
两个软件同时开,一个占着COM口,另一个发不出去
网络环境
TCP通信时,ping一下PLC看通不通
防火墙拦了、IP不在同一网段、网线插错了交换机口
发送节奏
上位机是不是发指令太快了?
PLC还没处理完上一条,下一条又来了,缓冲区溢出直接丢包
快速定位法:用串口调试助手替代上位机发指令——PLC响应正常,说明问题100%在上位机程序。  这一步在第二步就应该先做,能省掉后面大量排查时间。
整条排查链路回顾:
一句话口诀:先量线再对表,换口排除硬件,看报警查逻辑,串口助手定位半边天
四步都查完了还不通?别硬扛
先用串口助手定位故障在PLC侧还是上位机侧,别两边同时改
确认自己排查过的每一步都有结论,"查了没问题"和"没查"是两回事
把故障现象、已排查步骤、报错代码整理好再找厂家——你提供的信息越清晰,厂家定位越快,电话里十分钟解决比你自己折腾三天强

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码