1. 制造企业三层架构总览

在典型的离散制造工厂里,从客户下单到产品下线,信息并不是一条直线,而是在三个层次之间来回流动。ERP(企业资源计划)、MES(制造执行系统)和SCADA(数据采集与监控系统)分别站在经营管理层、执行控制层和现场设备层,各自回答不同的问题:ERP回答“要不要做、做多少、成本多少”,MES回答“怎么做、做到哪一步、合格不合格”,SCADA回答“设备现在是什么状态、参数是多少”。理解这三层的定位与边界,是后续集成架构设计的基础。

三层各自的职责边界

ERP位于最上层,管理的是企业级的资源与计划。它接收销售订单、预测需求,经过MRP运算生成生产计划、采购计划,并管理库存、成本、财务。ERP关心的是“周”和“天”级别的粒度,例如某型号产品本周需要生产5000台,物料是否齐套,产能是否满足。它通常不直接关心某台设备当前是否在运行,也不关心某个工位的实时节拍。

MES位于中间层,是计划与执行之间的桥梁。它把ERP下达的生产订单拆解为工序级、工位级的作业任务,管理工单派发、物料批次追溯、工艺参数下发、过程质量采集、在制品跟踪和设备绩效统计。MES的时间粒度通常是“班次”“小时”甚至“分钟”,它需要知道每道工序完成了多少、良品与不良品各多少、用了哪批物料、由谁操作。

SCADA位于最下层,直接面对PLC、传感器、仪表、机器人等现场设备。它负责实时采集温度、压力、转速、扭矩、开关状态等信号,执行上位监控、报警、趋势记录,并在授权范围内下发设定值或启停指令。SCADA的时间粒度是“毫秒”到“秒”,它关注的是设备当前是否正常、参数是否越限。

数据流关系:从订单到设备,再回到经营

三层之间的数据流可以概括为“自上而下下达目标,自下而上反馈实绩”。ERP将生产订单和物料需求下发给MES;MES根据工艺路线和资源状态,把作业指令、配方参数、批次信息下发给SCADA或直接下发给设备控制系统;SCADA采集设备运行数据、产量计数、质量检测结果,向上汇总给MES;MES再将这些实绩与订单进行匹配,形成完工汇报、物料消耗、工时统计,回传给ERP,用于库存扣减、成本核算和订单状态更新。

这个闭环中,最容易出问题的往往不是单层内部,而是层与层之间的接口。例如ERP的订单单位是“台”,MES的工单单位是“批”,SCADA的计数单位是“件”,如果换算关系没有在集成时明确定义,就会出现数量对不上。再比如ERP的物料编码与MES的批次号、SCADA的设备编号之间如果没有建立映射表,追溯就会断链。

典型工厂三层集成蓝图 ERP 经营管理层 销售订单 · MRP运算 · 采购计划 · 库存管理 · 成本核算 · 财务 生产订单 物料需求 BOM/工艺路线 时间粒度:天/周 订单下达 / 计划分解 完工汇报 / 消耗回传 MES 制造执行层 工单派发 · 工序跟踪 · 批次追溯 · 质量采集 · 在制品管理 · 设备绩效 作业指令 配方/参数 批次/序列号 时间粒度:班次/小时 指令下发 / 参数设定 状态/产量/质量反馈 SCADA 现场监控层 实时采集 · 上位监控 · 报警管理 · 趋势记录 · 设定值下发 · 设备联锁 PLC/传感器 机器人/仪表 温度/压力/转速 时间粒度:毫秒/秒 集成接口 / 中间件 关键映射:ERP物料编码 ↔ MES批次号 ↔ SCADA设备编号;订单单位 ↔ 工单单位 ↔ 计数单位

集成接口的关键设计点

在实际工程中,三层之间的集成通常通过中间件、消息队列或API网关实现。ERP与MES之间多采用批量接口或消息通知,例如ERP生成生产订单后,通过消息队列推送订单号、物料编码、数量、交期给MES;MES完成工单后,回传完工数量、消耗物料、工时。MES与SCADA之间则更偏向实时或准实时,常用OPC UA、Modbus TCP、MQTT等协议,SCADA将设备状态变化、报警事件、周期采集数据推送给MES。

设计接口时需要重点确认三件事:第一,数据所有权。同一份数据只能有一个权威来源,例如订单数量以ERP为准,设备实时状态以SCADA为准,MES负责映射和转换,避免多头维护。第二,时间戳与时钟同步。三层系统的时间必须对齐,否则追溯时无法判断“设备报警”和“MES记录的不良”是否同一时刻。第三,异常处理。当SCADA断线、MES宕机或ERP接口超时,数据是缓存重传、降级运行还是人工补录,必须在集成方案中明确。

教学示例:某电子组装厂ERP下达工单“WO-20240501-001,产品A,数量5000台,交期5月10日”。MES将其拆为SMT、插件、组装、测试四道工序,每道工序生成子工单并绑定批次号。SCADA在测试工序采集每台产品的测试结果,按序列号回传MES,MES汇总良品4980台、不良20台,完工汇报回传ERP,ERP据此扣减库存并核算成本。此例中,若SCADA的序列号与MES的批次号未建立映射,20台不良品的追溯就会中断。

常见边界模糊与处理原则

实际项目中,三层边界并非总是泾渭分明。例如设备综合效率(OEE)统计,SCADA可以提供设备运行/停机/故障的原始状态,MES负责按班次、工单、产品型号计算OEE,ERP则关心产能成本。如果让SCADA直接算OEE,往往因为缺少工单上下文而算不准;如果让ERP算OEE,又因为数据粒度太粗而失去意义。合理的做法是:SCADA提供状态事件流,MES完成上下文关联和指标计算,ERP只接收汇总结果。

再如质量判定,SCADA可以采集测量值并做越限报警,但合格/不合格的最终判定、不良代码分类、返修流程,通常由MES管理,因为MES掌握工艺标准、批次规则和处置流程。ERP则接收质量汇总数据,用于供应商评价和成本分析。明确“谁产生、谁加工、谁消费”这条链,比争论“这个功能该放哪层”更有效。

总结来看,ERP、MES、SCADA三层集成的核心不是把三个系统简单连起来,而是建立清晰的数据流契约:ERP管计划与资源,MES管执行与追溯,SCADA管设备与实时信号;自上而下传递目标与指令,自下而上反馈实绩与状态;接口处明确数据所有权、时间基准和异常策略。只有这三层各司其职又顺畅衔接,工厂的集成蓝图才能真正落地。