4. ERP与MES集成

ERP与MES的集成,本质上是把“计划层”和“执行层”之间的信息断层补上。ERP关心的是订单、库存、成本和交期,MES关心的是工单、工序、设备和实时产出。两者如果只靠人工导表或电话沟通,就会出现计划与现场脱节:ERP里显示已发料,现场却缺料停线;MES里已经报工完成,ERP库存和成本却迟迟不更新。因此,这一节要解决的核心问题是:生产订单如何从ERP准确下发到MES,报工和物料消耗如何实时回传,在制品状态如何保持两边一致。

一、集成的主链路与数据对象

ERP到MES的集成不是单一接口,而是一条围绕生产订单展开的数据链路。典型对象包括:生产订单(或工单)、物料主数据、BOM、工艺路线、工序、工作中心、批次/序列号、库存地点。ERP侧通常由计划部门下达生产订单,MES侧接收后拆解为可执行的工序任务,再通过报工、投料、检验等动作产生执行数据,最后回传ERP形成入库、消耗和成本凭证。

这条链路里,最容易被忽视的是“状态映射”。ERP的生产订单有“已创建、已下达、已确认、已关闭”等状态,MES的工单有“待生产、生产中、暂停、完工、关闭”等状态。两边状态不是一一对应,必须建立映射规则。例如ERP“已下达”对应MES“待生产”,MES“完工”回传后ERP才允许做入库和结算。如果映射不清,就会出现MES已完工、ERP仍显示在制,或者ERP已关闭、MES还在报工的矛盾。

ERP ↔ MES 生产订单集成主链路 ERP 计划层 生产订单 订单号 / 物料 / 数量 / 交期 物料与BOM 组件 / 用量 / 单位 库存与批次 可用量 / 预留 / 批次 成本与结算 工时 / 消耗 / 差异 订单状态 已下达 / 已确认 / 已关闭 MES 执行层 工单/工序任务 工序 / 工作中心 / 设备 报工记录 合格数 / 不良数 / 工时 物料消耗 投料 / 退料 / 批次追溯 在制品WIP 工序在制 / 数量 / 位置 完工入库 成品 / 半成品 / 批次 集成通道 订单下发接口 ERP → MES:订单、BOM、工艺 报工回传接口 MES → ERP:产出、工时、不良 物料消耗接口 MES → ERP:投料、退料、倒冲 WIP同步接口 双向:在制数量、工序状态 状态映射与对账 订单状态 / 差异校验 / 重试 实线箭头表示主要数据流向;蓝色为ERP下发,绿色为MES接收,橙色为执行结果回传

二、生产订单下发:从ERP到MES的字段与约束

订单下发不是把ERP的订单表原样推给MES。MES需要的是“可执行”的信息,因此下发内容通常包括:订单头(订单号、物料编码、计划数量、计划开始/结束时间、优先级)、订单行(组件物料、单位用量、损耗率)、工艺信息(工序号、工序名称、工作中心、标准工时)、以及批次/序列号要求。如果ERP的工艺路线和MES的工序定义不一致,就必须在集成层做转换。

实际项目中,建议采用“事件驱动+幂等”的下发方式。ERP订单状态变为“已下达”时触发接口,MES接收后返回确认。接口需要携带唯一消息ID,MES侧按订单号+版本号做幂等处理,避免重复下发导致工单重复创建。对于订单变更(数量调整、交期提前、工艺更改),应支持增量更新而不是整单覆盖,否则会冲掉MES侧已经产生的报工和投料记录。

一个常见的教学示例参数如下:ERP订单号PO-2024-001,物料FG-1001,计划数量1000件,BOM包含组件RM-2001用量2.0/件、RM-2002用量0.5/件,工艺路线为“下料→机加工→装配→检验”,标准工时分别为0.5h、1.2h、0.8h、0.3h。下发到MES后,MES生成工单WO-2024-001,并按工序拆成4条任务。这些参数属于示例假设,用于说明字段结构,不代表真实生产数据。

三、报工反馈:数量、工时与不良的闭环

报工是MES向ERP反馈执行结果的核心动作。一次完整的报工至少包含:工单号、工序号、报工数量(合格数、不良数、报废数)、实际工时(准备工时、加工工时)、报工人员、设备、开始/结束时间、批次号。ERP收到后,一方面更新订单的“已完工数量”,另一方面归集工时用于成本核算。

报工回传最容易出问题的地方是“数量口径”。MES的合格数是否包含返修后合格?不良数是否包含待判?报废是否单独走报废单?这些必须在集成前定义清楚。建议在接口中明确字段语义,例如:goodQty(合格数)、defectQty(不良数)、scrapQty(报废数),并约定goodQty+defectQty+scrapQty=报工总数。ERP侧按goodQty增加完工入库,按scrapQty触发报废处理,defectQty进入待处理队列。

工时回传也要注意单位。MES通常按分钟记录,ERP可能按小时核算,接口层要做换算。如果ERP采用标准工时与实际工时对比,还要区分“报工工时”和“标准工时”,避免把实际工时直接当成标准工时写入。

四、物料消耗与在制品同步

物料消耗有两种模式:一是“领料制”,即ERP先发料,MES按领料单投料,消耗回传后冲减ERP库存;二是“倒冲制”,即MES按报工数量反推组件消耗,ERP根据BOM和报工数自动扣料。倒冲适合物料价值低、不易逐笔记录的场景,但要求BOM准确、损耗率合理。无论哪种模式,回传的消耗记录都应包含物料编码、批次、数量、工单号、工序号,以便ERP做批次追溯和成本归集。

在制品同步是双向的。MES要把各工序的在制数量、状态、位置回传ERP,ERP也要把订单变更、优先级调整、紧急插单同步给MES。WIP同步的频率可以是事件触发(如工序完工、投料、报工),也可以是定时快照(如每15分钟)。对于离散制造,建议以事件触发为主,定时对账为辅。对账时重点检查:ERP在制数量与MES在制数量是否一致、差异是否在允许范围内、差异原因是否可追溯。

集成对账建议每天执行一次,重点核对三类差异:订单完工数量差异、物料消耗差异、在制品数量差异。差异超过阈值时,先冻结相关订单的自动过账,再人工排查,避免错误数据进入财务成本。

五、异常处理与状态一致性

集成链路不可能永远通畅。网络中断、接口超时、ERP或MES升级、主数据不一致都会导致同步失败。因此,集成设计必须包含重试机制、失败队列和告警。对于报工回传失败,MES应保留本地记录,待接口恢复后按时间顺序补传;ERP侧要支持按消息ID去重,避免重复过账。

状态一致性是最终目标。建议在集成层维护一张“订单同步状态表”,记录ERP订单状态、MES工单状态、最后同步时间、同步结果、差异说明。当ERP显示“已完工”而MES仍有未报工工序时,系统应阻止ERP关闭订单,并提示具体差异。只有两边状态对齐,生产订单才算真正闭环。

总结来说,ERP与MES的集成要抓住四条主线:订单下发要准、报工反馈要全、物料消耗要实、在制品同步要勤。每条主线都对应明确的字段、状态和异常处理规则,只有把这些规则落到接口和日常对账中,计划与执行才能真正打通。