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的订单表原样推给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的集成要抓住四条主线:订单下发要准、报工反馈要全、物料消耗要实、在制品同步要勤。每条主线都对应明确的字段、状态和异常处理规则,只有把这些规则落到接口和日常对账中,计划与执行才能真正打通。