1. 课程导入与集成场景认知

在智能制造体系中,WinCC 与 MES 处在两个不同但必须协同的层级。WinCC 是面向设备与产线的监控组态软件,负责采集 PLC、仪表、机器人、称重、拧紧、视觉等现场信号,完成实时监视、报警、趋势、配方下发和操作记录;MES 是面向订单、工艺、质量与追溯的制造执行系统,负责工单派发、物料校验、工艺参数管控、过程数据归档、SPC 分析和批次追溯。两者之间不是简单的“上位机连数据库”,而是一条从现场信号到业务语义、再回到现场控制指令的双向数据链。

理解这条数据链,先要看清各自的数据职责边界。WinCC 擅长毫秒到秒级的实时值、报警状态、趋势曲线和设备状态字,它的数据模型以变量、归档、报警和画面对象为中心;MES 关心的是工单号、产品序列号、批次、工序、设备编号、工艺参数上下限、检验结果和人员班次,它的数据模型以业务实体和事务记录为中心。集成的本质,就是把 WinCC 侧的“设备语言”翻译成 MES 侧的“业务语言”,并把 MES 的“业务指令”翻译成 WinCC 可执行的“控制参数”。

典型的生产数据集成需求可以归纳为四类:第一类是过程数据上传,例如每件产品的扭矩值、焊接电流、温度曲线、称重结果按序列号上传 MES;第二类是工单与配方下发,MES 将工单号、产品型号、工艺版本下发给 WinCC,由 WinCC 写入 PLC 或切换配方;第三类是状态与报警同步,设备停机、故障代码、首件状态实时反馈给 MES,用于 OEE 和异常响应;第四类是追溯与防错,MES 校验物料批次、人员资质和上道工序结果后,才允许 WinCC 放行启动。

这四类需求在数据方向上并不一致,因此集成方案必须区分“上行”和“下行”。上行数据通常由 WinCC 侧主动采集并写入中间层,强调时序完整、不丢件、可补传;下行数据通常由 MES 侧发起,强调指令唯一、可确认、可回滚。若把两者混在一条无确认的通道里,就会出现“MES 以为已下发、WinCC 实际未收到”或“WinCC 已上传、MES 因主键重复丢弃”的典型故障。

WinCC 与 MES 生产数据集成双向链路 现场层 / WinCC PLC 变量与设备状态 扭矩 / 温度 / 称重 报警与趋势归档 故障码 / 停机原因 配方与画面操作 参数下发 / 放行 序列号与结果绑定 单件数据记录 操作日志与班次 人员 / 时间戳 集成中间层 接口服务 / OPC UA 采集、缓存、重传 数据映射与语义转换 变量 → 业务字段 消息队列 / 事务表 唯一键、确认、回滚 接口日志与监控 丢包、延迟、失败重试 安全与权限校验 业务层 / MES 工单与派工 工单号 / 型号 / 数量 工艺参数管控 上下限 / 版本 质量与 SPC 检验结果 / 趋势 追溯与批次 序列号 / 物料批次 OEE 与看板 停机 / 节拍 / 产量 上行:过程数据 下行:工单/配方 写入业务库 下发指令 统一时间戳与唯一键,保证不丢件、不重复、可追溯

从工程落地角度看,集成方案的选择取决于实时性、数据量和系统边界。若只是把 WinCC 归档中的班次产量、报警统计传给 MES,采用 WinCC 的 SQL 归档查询或 OPC UA 历史访问即可,周期可以放宽到分钟级;若要把每件产品的扭矩曲线按序列号实时上传,则需要在 WinCC 侧用 C 脚本或 VBS 在“件完成”事件触发时组包,通过 OPC UA 或消息队列发送,并在中间层做缓存和重传。若 MES 需要向 WinCC 下发配方,则通常由 MES 写入中间数据库表,WinCC 用定时脚本读取并校验“工单号+版本号”后写入 PLC,同时回写确认状态。

下面给出一个可直接参考的集成需求梳理表,用于在项目启动阶段明确每一路数据的边界。表中参数为教学示例,实际项目应按设备与 MES 接口规范调整。

数据项 方向 源对象 目标对象 触发方式 示例周期/条件 关键校验
扭矩值+序列号 上行 WinCC 变量 MES 过程表 件完成事件 每件一次,约 8s 序列号非空、扭矩在量程内
设备停机报警 上行 WinCC 报警 MES 异常表 报警状态变化 上升沿触发 报警号+设备号唯一
工单与型号 下行 MES 工单表 WinCC 内部变量 MES 写入 换型时一次 工单状态为“已派工”
工艺参数上下限 下行 MES 工艺表 PLC 配方区 WinCC 脚本读取 换型或版本变更 版本号匹配、写入回读
放行/禁止启动 下行 MES 校验结果 WinCC 画面按钮 MES 写入标志位 每件启动前 物料、人员、上道工序均合格

本课程的学习路径按“认知—打通—治理—实战”推进。第一阶段建立角色定位与数据流认知,明确 WinCC 与 MES 各自管什么、接口传什么;第二阶段动手打通一条最小链路,例如用 OPC UA 把 WinCC 的一个扭矩变量按序列号写入中间表,并在 MES 侧查询到;第三阶段处理工程中真正棘手的问题,包括断线补传、重复数据去重、时间戳对齐、配方版本回滚和接口性能;第四阶段完成一个覆盖“工单下发—参数校验—过程采集—质量判定—追溯查询”的完整案例。学完本课程,你应当能够独立设计一份集成接口清单,判断某路数据该走上行还是下行,选择 OPC UA、数据库表或消息队列中的合适方式,并能定位“数据没到 MES”这类问题出在采集、传输还是业务校验环节。

建议在开始后续章节前,先在自己的项目或实验环境中确认三件事:WinCC 工程能否正常读写一个测试变量;MES 或模拟 MES 是否提供可写入的接口表或 OPC UA 服务端;现场设备的序列号在哪个环节生成、由谁保证唯一。这三件事决定了后续集成链路能否闭环。

需要特别提醒的是,集成不是把两个系统的数据库直接连起来。直接读对方生产库会带来锁表、权限失控和版本耦合风险;更稳妥的做法是通过明确的接口契约交换数据,接口双方约定字段、类型、方向、频率、确认机制和异常处理。WinCC 侧要避免在画面刷新线程中做耗时网络操作,MES 侧要对重复上传做幂等处理。只有把“数据从哪来、到哪去、怎么确认、出错怎么办”四件事说清楚,集成才具备可维护性。