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的设备编号之间如果没有建立映射表,追溯就会断链。
集成接口的关键设计点
在实际工程中,三层之间的集成通常通过中间件、消息队列或API网关实现。ERP与MES之间多采用批量接口或消息通知,例如ERP生成生产订单后,通过消息队列推送订单号、物料编码、数量、交期给MES;MES完成工单后,回传完工数量、消耗物料、工时。MES与SCADA之间则更偏向实时或准实时,常用OPC UA、Modbus TCP、MQTT等协议,SCADA将设备状态变化、报警事件、周期采集数据推送给MES。
设计接口时需要重点确认三件事:第一,数据所有权。同一份数据只能有一个权威来源,例如订单数量以ERP为准,设备实时状态以SCADA为准,MES负责映射和转换,避免多头维护。第二,时间戳与时钟同步。三层系统的时间必须对齐,否则追溯时无法判断“设备报警”和“MES记录的不良”是否同一时刻。第三,异常处理。当SCADA断线、MES宕机或ERP接口超时,数据是缓存重传、降级运行还是人工补录,必须在集成方案中明确。
常见边界模糊与处理原则
实际项目中,三层边界并非总是泾渭分明。例如设备综合效率(OEE)统计,SCADA可以提供设备运行/停机/故障的原始状态,MES负责按班次、工单、产品型号计算OEE,ERP则关心产能成本。如果让SCADA直接算OEE,往往因为缺少工单上下文而算不准;如果让ERP算OEE,又因为数据粒度太粗而失去意义。合理的做法是:SCADA提供状态事件流,MES完成上下文关联和指标计算,ERP只接收汇总结果。
再如质量判定,SCADA可以采集测量值并做越限报警,但合格/不合格的最终判定、不良代码分类、返修流程,通常由MES管理,因为MES掌握工艺标准、批次规则和处置流程。ERP则接收质量汇总数据,用于供应商评价和成本分析。明确“谁产生、谁加工、谁消费”这条链,比争论“这个功能该放哪层”更有效。
总结来看,ERP、MES、SCADA三层集成的核心不是把三个系统简单连起来,而是建立清晰的数据流契约:ERP管计划与资源,MES管执行与追溯,SCADA管设备与实时信号;自上而下传递目标与指令,自下而上反馈实绩与状态;接口处明确数据所有权、时间基准和异常策略。只有这三层各司其职又顺畅衔接,工厂的集成蓝图才能真正落地。