为什么要按顺序排查
「取不出来」是症状不是原因。从设备里的一个变量到软件里的一个数值,要穿过物理连接、 IP 可达、端口开放、协议握手、权限校验、地址寻址、数据解析, 任何一环断了表现都一样:界面上没数。下面六步不能颠倒。
六步排查顺序
第 1 步:物理层——线到了没有
以太网看网口 Link / Act 灯与交换机对应口。串口更麻烦: RS485 的 A/B 接反是高频问题,现象是完全没有应答而不是报错, 不确定就直接对调试一次;还要看总线是否手拉手、两端有无 120Ω 终端电阻、屏蔽层是否单端接地。 485 线与动力线同槽会造成时好时坏的误码,最容易被误判成软件问题。 判断动作:以太网 ping 目标 IP,串口用通用工具发一帧看有无回应。
第 2 步:地址——IP、网段、站号、槽号
ping 不通先查地址:是否同一网段、掩码是否一致、设备 IP 有没有被现场改过; 还要防IP 冲突,表现是通信断断续续、ping 响应时间跳变很大。 协议层地址也在这一步:Modbus 站号、S7 机架号与槽号、三菱 MC 的网络号与站号、 DL/T 645 的 6 字节通信地址。这些错了大多没有任何应答, 和线没接上一样。铭牌上的资产编号往往不是通信地址。
第 3 步:权限——设备愿不愿意让你读
这一层最容易被忽略,现象很像地址错误:能建链、但请求被拒或返回空。
| 设备类型 | 权限相关的检查项 |
|---|---|
| 数控系统 | 数据访问的选装功能位是否购买;未开通时基础数据能读、刀具与宏变量类函数报错 |
| PLC(S7 系列) | DB 块「优化的块访问」是否勾选、CPU 保护等级、是否允许 PUT/GET |
| 机器人控制器 | 通信选件是否装、外部访问模式是否开、示教器模式是否允许通信 |
| 仪表 / 电表 | 是否本地锁定或处于菜单编辑状态,部分表菜单操作期间不响应 |
| OPC UA 服务端 | 匿名访问是否允许、证书是否被信任、账号与安全策略是否匹配 |
| 并发连接数 | 连接数是否被占满;新连接会被拒绝或挤掉旧连接 |
判断动作:换通用第三方工具读同一个点,读不到就在设备侧。
第 4 步:协议参数——版本、端口、超时、串口配置
以太网侧看端口号(S7 是 102、Modbus TCP 是 502、MC 端口在 PLC 参数里自设)、 协议变体(Modbus TCP 与 Modbus RTU over TCP 混用直接解析失败)、 规约版本(同族协议常有新旧两版互不兼容,读不通就试另一版)。 串口侧看波特率、数据位、校验位、停止位,校验位最常出错—— 按 8N1 配一个要求 8E1 的设备,大部分帧校验失败、偶尔碰巧读到正确值。 超时太短会频繁断链重连,跨网段需放宽,应做成界面可配。
第 5 步:防火墙与网络策略
典型症状:ping 通、端口连不上。查三处:Windows 防火墙(出站规则也要看)、
网络设备上的 ACL 或 VLAN 隔离策略、杀毒与终端管控软件的网络防护模块——
后者不在防火墙列表里,但会静默拦截长连接。判断动作:
Test-NetConnection 目标IP -Port 502 直连端口,拒绝或超时说明中间被拦。
可临时关掉防火墙定位一次,通了再回去加精确放行规则,
不要长期关着防火墙交付。
第 6 步:数据本身在不在那里
前五步都通、其他点也有数,就差这一个——这时要质疑需求本身: 这个值在可通信的存储区里真的存在吗? 屏幕上的数字可能来自 HMI 本地脚本、运动控制卡或伺服驱动器内部,通信区里没有对应变量。
另一种是地址对错了:不报错、返回一个数,但离谱或永远不变。 验证方法只有现场手动改值——点动一个轴、改一次转速设定、触发一次报警, 看对应点位跟不跟着变。同时核对数据类型与字节序:16 位当 32 位读、大小端搞反、倍率没除。
症状与对应层级速查
| 症状 | 最可能的层级 |
|---|---|
| ping 不通 | 第 1 步物理层 / 第 2 步地址与网段 |
| ping 通但端口连不上 | 第 5 步防火墙 / 第 4 步端口号 |
| 连接后立刻断开 | 第 3 步并发数已满 / 第 4 步超时参数 |
| 完全无应答,不报错 | 第 2 步站号错 / 第 1 步 A、B 接反 |
| 基础数据能读,某几项固定报错 | 第 3 步权限:选装功能位或块访问 |
| 时通时不通、偶尔校验失败 | 第 1 步接线干扰 / 第 4 步校验位 |
| 不报错但数值离谱或恒定 | 第 6 步地址、类型、字节序或倍率 |
| 其他点都有数,就这一个没有 | 第 6 步该变量在通信区里不存在 |
反向查用:症状落在哪一行就跳到对应层级,但仍不要跳过前面层级的确认动作。
工程上的两点建议
第一,采集软件必须能输出分层日志:连接建立与断开、协议握手报文、 请求与应答的原始报文(可开关)、解析后的数值与品质。日志只写「读取失败」, 这六步每一步都要靠外部工具重做。
第二,点表要在开发前定稿并双方签字。第 6 步最贵, 因为它往往意味着设备侧要改 PLC 程序,而那时设备可能已进厂调试。写法见 上位机软件外包怎么切分才不留坑。 敏洽承接软件与算法,硬件采购、安装与接线由客户负责,可推荐长期合作供应商。 协议范围见内置 45 个驱动的 SCADA 数采与监控软件, 或致电 400-814-5288。
常见问题
有具体设备清单或工件样品,可以直接给判断
提供设备型号、PLC 品牌与需要采集的数据项,或提供被检工件照片与精度要求,敏洽可先给出可行性判断与硬件前置条件,再谈软件工作量与报价。