3. WinCC与PLC通信连接
WinCC 与 S7 系列 PLC 之间的通信,是整座监控平台能否“看见现场”的第一道关口。WinCC 本身并不直接读写 PLC 的物理端口,而是通过通信驱动(Channel)把上位机的变量请求翻译成 S7 协议报文,再经以太网或 PROFIBUS 送到 CPU。理解这条链路的分层结构,是后续配置与排障的基础。
以最常用的以太网 S7 通信为例,链路自上而下大致分为四层:WinCC 变量管理中的连接(Connection)、S7 协议驱动(SIMATIC S7 Protocol Suite)、工业以太网网卡(如 IE General 或 TCP/IP)、以及 PLC 侧的 CP 或集成 PN 口。变量管理里建立的每一个连接,都绑定到某个驱动下的某个单元(Unit),单元再绑定到具体的网卡和 PLC 地址。任何一层参数不一致,都会表现为“变量读不到值”或“连接断开”。
一、S7 协议驱动的选择与连接建立
在 WinCC 项目管理器中打开“变量管理”,右键“变量管理”选择“添加新的驱动程序”,会看到一列驱动。与 S7 相关的主要有:SIMATIC S7 Protocol Suite(支持 MPI、PROFIBUS、以太网、Slot PLC 等多种单元)、SIMATIC S7-1200/1500 Channel(针对新 CPU 的优化驱动)以及 SIMATIC S7-300/400 Channel。选择原则很简单:S7-300/400 用 Protocol Suite 或 300/400 专用通道;S7-1200/1500 优先用 1200/1500 通道,它支持符号寻址和更高效的批量读取。
添加驱动后,展开驱动树会看到若干“单元”。以太网场景下常用 TCP/IP 单元(走标准 TCP,端口 102)或 IE General 单元(走 ISO-on-TCP,需在网卡属性中指定 ISO 协议)。右键单元选择“系统参数”,可以设置通信超时、重试次数等全局参数;右键单元选择“新建连接”,则建立一条指向具体 PLC 的连接。
新建连接时,连接属性对话框中最关键的几项是:
- 站地址(Station Address):填入 PLC 的 IP 地址,例如 192.168.0.10。
- 机架号(Rack)与槽号(Slot):S7-300 通常为 Rack 0 / Slot 2;S7-400 常见 Rack 0 / Slot 2 或 3;S7-1200/1500 一般固定为 Rack 0 / Slot 1。填错会直接导致“无法建立连接”。
- 连接资源:选择 PG 通信或 OP 通信通道,一般保持默认即可。
- 发送/接收超时:默认 1000 ms 左右,网络质量差时可适当放大。
连接建立后,在连接下新建变量。以太网 S7 通信的变量地址采用“区域+偏移”格式,例如 DB100.DBD0 表示数据块 DB100 中从第 0 字节开始的 32 位双字;M10.0 表示位存储区第 10 字节的第 0 位;I0.1、Q0.2 分别对应输入和输出过程映像。数据类型要与 PLC 侧一致:DBD 对应 32 位浮点或双整,DBW 对应 16 位字,DBX 对应位。
二、连接参数设置的关键点
参数设置中最容易出错的是“地址对齐”和“字节序”。S7 采用大端字节序(高字节在前),而部分第三方系统或脚本按小端解析,若在 WinCC 中直接读取 DBD 并做位操作,需注意高低字顺序。另一个常见问题是变量地址越界:例如 PLC 中 DB100 只定义了 20 字节,而 WinCC 中写了 DB100.DBD18,读取 4 字节会超出范围,导致该变量质量码变差。
对于 S7-1200/1500,若使用优化块访问,DB 块默认不保留绝对地址,此时必须改用符号寻址,或在 PLC 侧取消“优化的块访问”并编译下载。这是新老 CPU 混用时最典型的“连得上但读不到”的原因。
三、通信诊断方法
WinCC 提供了多层诊断手段。最直接的是变量管理中的“连接状态”图标:绿色表示正常,黄色表示正在建立,红色表示断开。右键连接选择“诊断”,可以查看该连接的详细状态、错误代码和收发计数。
更深入一层,可以使用 WinCC 自带的 Channel Diagnosis 工具(在开始菜单 Siemens Automation 下),它按驱动、单元、连接逐级显示通信统计,包括请求数、响应数、超时数、错误数。若超时数持续增长而响应数为零,基本可判定为网络不通或 IP 配置错误;若请求与响应都有但错误数偏高,则可能是地址越界或数据类型不匹配。
在操作系统层面,可用 ping 192.168.0.10 验证网络连通性,用 telnet 192.168.0.10 102 验证 102 端口是否开放。若 ping 通但 telnet 不通,说明网络层可达但 S7 通信端口被防火墙或 PLC 侧连接资源占满阻断。
四、常见故障排查路径
| 现象 | 可能原因 | 排查动作 |
|---|---|---|
| 连接图标红色,无法建立 | IP 错误、网线未通、机架槽号错误 | ping 目标 IP;核对 Rack/Slot;检查网卡选择 |
| 连接正常但变量无值 | 地址越界、DB 未下载、优化块访问 | 核对 DB 长度与偏移;检查 PLC 中 DB 是否存在;关闭优化访问 |
| 变量时有时无 | 网络抖动、超时过短、连接资源不足 | 增大超时;查看 Channel Diagnosis 超时计数;减少并发连接 |
| 部分变量错误码 0x… | 数据类型不匹配、字节序问题 | 统一数据类型;确认高低字节顺序 |
| 多台上位机只有一台能连 | PLC 连接资源被占满 | 在 PLC 硬件组态中查看 OP 通信资源数并扩容 |
排查时应遵循“先物理后逻辑、先单点后整体”的顺序:先用 ping 和 telnet 确认链路,再在 WinCC 中确认连接状态,最后逐个变量核对地址与类型。把 Channel Diagnosis 的统计数据和 PLC 侧的连接资源监控结合起来看,绝大多数通信故障都能在十分钟内定位到具体层级。