
做工控调试的朋友,十有八九都遇过这个离谱的场景:
网线插好,IP配好,cmd里ping PLC的IP稳稳的通,零丢包。结果一转到博途在线,要么转圈半天提示连接失败,要么搜到设备却转不了在线,下载程序更是无从谈起。
很多人遇到这问题就乱了阵脚:换网线、重启电脑、重装博途,折腾一下午找不到原因。其实核心逻辑很简单:ping通只代表物理层和网络层的ICMP协议通,而S7通信要走TCP 102端口+应用层协议,中间差了整整两层。能ping通却连不上,问题基本都出在传输层、软件配置和权限设置上。
这几年跑过几十条产线的S7-1200项目,踩遍了从博途设置到现场网络的各种坑,总结出这套按优先级排序的8步排查法。从最常见的低级错误到最冷门的硬件故障,按顺序走,半小时内基本都能定位问题。
排查总流程
先上完整的排查路径图,按照概率从高到低排序,不走冤枉路。
#mermaid-svg-yeexK4rgYfHt5C2u{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-yeexK4rgYfHt5C2u .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-yeexK4rgYfHt5C2u .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-yeexK4rgYfHt5C2u .error-icon{fill:#552222;}#mermaid-svg-yeexK4rgYfHt5C2u .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-yeexK4rgYfHt5C2u .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-yeexK4rgYfHt5C2u .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-yeexK4rgYfHt5C2u .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-yeexK4rgYfHt5C2u .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-yeexK4rgYfHt5C2u .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-yeexK4rgYfHt5C2u .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-yeexK4rgYfHt5C2u .marker{fill:#333333;stroke:#333333;}#mermaid-svg-yeexK4rgYfHt5C2u .marker.cross{stroke:#333333;}#mermaid-svg-yeexK4rgYfHt5C2u svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-yeexK4rgYfHt5C2u p{margin:0;}#mermaid-svg-yeexK4rgYfHt5C2u .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-yeexK4rgYfHt5C2u .cluster-label text{fill:#333;}#mermaid-svg-yeexK4rgYfHt5C2u .cluster-label span{color:#333;}#mermaid-svg-yeexK4rgYfHt5C2u .cluster-label span p{background-color:transparent;}#mermaid-svg-yeexK4rgYfHt5C2u .label text,#mermaid-svg-yeexK4rgYfHt5C2u span{fill:#333;color:#333;}#mermaid-svg-yeexK4rgYfHt5C2u .node rect,#mermaid-svg-yeexK4rgYfHt5C2u .node circle,#mermaid-svg-yeexK4rgYfHt5C2u .node ellipse,#mermaid-svg-yeexK4rgYfHt5C2u .node polygon,#mermaid-svg-yeexK4rgYfHt5C2u .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-yeexK4rgYfHt5C2u .rough-node .label text,#mermaid-svg-yeexK4rgYfHt5C2u .node .label text,#mermaid-svg-yeexK4rgYfHt5C2u .image-shape .label,#mermaid-svg-yeexK4rgYfHt5C2u .icon-shape .label{text-anchor:middle;}#mermaid-svg-yeexK4rgYfHt5C2u .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-yeexK4rgYfHt5C2u .rough-node .label,#mermaid-svg-yeexK4rgYfHt5C2u .node .label,#mermaid-svg-yeexK4rgYfHt5C2u .image-shape .label,#mermaid-svg-yeexK4rgYfHt5C2u .icon-shape .label{text-align:center;}#mermaid-svg-yeexK4rgYfHt5C2u .node.clickable{cursor:pointer;}#mermaid-svg-yeexK4rgYfHt5C2u .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-yeexK4rgYfHt5C2u .arrowheadPath{fill:#333333;}#mermaid-svg-yeexK4rgYfHt5C2u .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-yeexK4rgYfHt5C2u .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-yeexK4rgYfHt5C2u .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-yeexK4rgYfHt5C2u .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-yeexK4rgYfHt5C2u .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-yeexK4rgYfHt5C2u .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-yeexK4rgYfHt5C2u .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-yeexK4rgYfHt5C2u .cluster text{fill:#333;}#mermaid-svg-yeexK4rgYfHt5C2u .cluster span{color:#333;}#mermaid-svg-yeexK4rgYfHt5C2u div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-yeexK4rgYfHt5C2u .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-yeexK4rgYfHt5C2u rect.text{fill:none;stroke-width:0;}#mermaid-svg-yeexK4rgYfHt5C2u .icon-shape,#mermaid-svg-yeexK4rgYfHt5C2u .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-yeexK4rgYfHt5C2u .icon-shape p,#mermaid-svg-yeexK4rgYfHt5C2u .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-yeexK4rgYfHt5C2u .icon-shape .label rect,#mermaid-svg-yeexK4rgYfHt5C2u .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-yeexK4rgYfHt5C2u .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-yeexK4rgYfHt5C2u .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-yeexK4rgYfHt5C2u :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
是
否
是
否
是
否
是
否
是
否
是
否
是
否
能ping通但S7连接失败
第1步: 核对PG/PC接口设置
问题解决?
结束
第2步: 关闭防火墙与安全软件
问题解决?
第3步: 检查PLC保护等级与PUT/GET权限
问题解决?
第4步: 确认项目IP与实际PLC一致
问题解决?
第5步: 排查S7连接资源是否耗尽
问题解决?
第6步: 核对博途与固件版本兼容性
问题解决?
第7步: 检查网络中间设备与端口
问题解决?
第8步: 硬件与固件底层排查
第1步:核对PG/PC接口设置(80%的人栽在这)
这是最常见的原因,没有之一。很多人想当然觉得“电脑能上网能ping通,网络就没问题”,但博途的S7通信不是走系统默认网络,而是走PG/PC接口指定的网卡。
典型现象
- 能ping通PLC,cmd里网络完全正常
- 博途在线访问里搜不到设备,或者搜到了转在线就失败
- 笔记本用有线连PLC,开着WiFi的时候尤其容易出问题
操作步骤
- 绝对不要选「TCP/IP (Auto)」,自动选择经常跳错网卡
- 64位系统中,可用的物理网卡后缀通常带.TCPIP.1
现场避坑
- 笔记本调试一定要先关无线网卡!不然系统会优先走WiFi,博途也经常自动切到无线接口,看似插着网线,实际通信走的WiFi
- 装了VMware、VirtualBox的,会有一堆虚拟网卡,一定要选物理网卡,别选到虚拟的
- 每次换网卡、换接口,都要回来重新确认这个设置,它不会自动跟着变
第2步:关闭防火墙与安全软件(第二高频原因)
ping用的是ICMP协议,大部分防火墙默认放行;但S7通信依赖的TCP 102端口,Windows默认是拦截的,第三方安全软件更是直接把博途当成可疑程序。
典型现象
- 直连PLC有时候能连上,有时候连不上,毫无规律
- 换一台电脑就能正常连接,同一根线同一台PLC就不行
操作步骤
- 放行TCP 102端口(ISO-on-TCP/S7Comm默认端口)
- 放行TIA Portal主程序的全部网络访问
现场避坑
- 不要只看出站规则,S7连接是主动发起到PLC,但是握手过程的回程报文会被入站规则拦截
- 有些公司的域策略会强制开启防火墙,本地关了也没用,这时候要找IT加白名单
第3步:检查PLC保护等级与PUT/GET权限
S7-1200从V4.0固件开始,默认开启完全保护,禁止远程PUT/GET通信。这是西门子的安全设计,但也成了无数新手的坑:网络通的,就是连不上。
典型现象
- 能ping通,能搜到设备,但是一转在线就提示连接被拒绝
- 报错代码经常出现0x80C8(连接被拒绝)
操作步骤
现场避坑
- 如果PUT/GET选项是灰色的点不了,是因为开启了「访问控制」。要么关闭访问控制,要么配置授权用户;也可以临时把设备版本改成V3.x,勾完再改回来
- 改完设置必须下载硬件组态!只在项目里改不下载,PLC那边还是原来的保护策略,等于白改
- 现场调试完建议把保护改回去,避免无关人员随意连接
第4步:确认项目IP与实际PLC一致
很多时候不是连不上,是你连错了对象。项目里组态的IP和PLC实际IP对不上,博途照着项目里的IP去连,当然连不上,但你ping的是实际IP,所以是通的。
典型现象
- 在线访问里能搜到PLC,也能看到实际IP,但项目里转在线失败
- 之前改过PLC的IP地址,之后就连不上了
操作步骤
现场避坑
- 不要只看IP前三位,子网掩码必须一致。比如PLC是255.255.255.0,电脑设成255.255.0.0,看似同网段实际路由不对
- 修改过PLC IP地址后,必须重启PLC才能完全生效,不要改完就立刻连
第5步:排查S7连接资源是否耗尽
S7-1200的S7连接资源非常有限,标准固件最多支持8个并发S7连接。触摸屏、WinCC、上位机、其他PLC分站,占满了之后,新的连接就会被直接拒绝。
典型现象
- 有时候能连上有时候连不上,毫无规律
- 现场触摸屏连着的时候,电脑就连不上;触摸屏一断,电脑就能连
- 通信时断时续,频繁掉线重连
操作步骤
现场避坑
- 很多人写上位机程序,每次发数据都新建一次S7连接,用完不断开,用不了几次资源就耗光了
- 长期通信建议用TSEND/TRCV或者TCP自由口,不要一直占着S7连接资源
- S7-1200的连接数远少于S7-300/400,不要拿大型PLC的经验来套
第6步:核对博途与固件版本兼容性
博途版本和PLC固件版本不匹配,也是常见的隐形坑。能ping通说明网络没问题,但协议握手的时候版本不兼容,直接就失败了。
典型现象
- 能搜到设备,能看到IP和型号,但就是转不了在线
- 下载程序提示“硬件版本不兼容”
- 老项目用新版博途打开后,连不上原来的PLC
操作步骤
现场避坑
- 高版本博途可以兼容低版本固件,但低版本博途一定不支持高版本固件。比如V17博途可以连V4.4固件,但V15博途连不上V4.6固件
- 不要只看大版本,小版本差0.1也可能出问题,尽量严格对应
第7步:检查网络中间设备与端口
如果电脑直连PLC正常,过了交换机、路由器就不行,那问题就在中间设备上。S7协议比较特殊,很多三层设备的默认策略会拦截它。
典型现象
- 电脑直连PLC一切正常,通过交换机/路由器就连不上
- 跨网段、跨VLAN的场景下无法连接
操作步骤
- 不要用博途的搜索功能,手动指定IP地址连接
- 在路由器上放行TCP 102端口的双向转发
- 家用路由器默认不转发S7广播包,搜索不到是正常的
现场避坑
- 很多企业级防火墙的DPI引擎会把S7Comm识别为可疑协议,静默丢包,抓包能看到SYN发出去但没回应
- 跨网段调试优先用静态路由,不要用NAT,S7协议对NAT兼容性很差
第8步:硬件与固件底层排查
前面七步都试过了还是不行,再考虑硬件层面的问题,这是概率最低的情况。
操作步骤
现场避坑
- 不要一上来就恢复出厂,前面七步覆盖了99%的问题,恢复出厂是最后一步
- 恢复出厂前一定要备份程序和组态,不然数据丢失很难恢复
- 如果是新设备刚拆封就有问题,直接走售后,别自己折腾
快速定位对照表
| 能ping通,搜不到设备 | PG/PC接口选错、防火墙拦了广播 | 第1、2步 |
| 能搜到设备,转在线失败 | 保护等级没开PUT/GET、IP不匹配 | 第3、4步 |
| 有时候能连有时候不能 | 连接资源耗尽、防火墙间歇拦截 | 第5、2步 |
| 直连正常,过交换机就不行 | 中间设备拦了102端口 | 第7步 |
| 换电脑就正常 | 本机防火墙、PG/PC接口、博途版本 | 第1、2、6步 |
现场踩坑总结
S7-1200的通信问题,看起来五花八门,其实核心原因就那么几类。按这个8步排查法,从最高概率的问题往下走,正常情况半小时之内肯定能定位。跑现场的时间宝贵,别把精力浪费在瞎试上,有章法的排查,才是最高效的。
网硕互联帮助中心





评论前必须登录!
注册