问:工厂里ERP说工单“已完工”,MES说“执行中”,两个系统状态不一致。AI做生产进度分析时该信谁?
答:哪个都不能全信。工单状态对不齐是制造企业ERP-MES集成的老大难问题,根源是两个系统对“状态”的定义和更新时机不一致。在解决这个问题之前,AI做的任何生产进度分析都有偏差。
一、状态对不齐的三种典型情况
情况一:定义不同
ERP里的“已完工”表示“计划层面对这个工单已完成”,而MES里的“执行中”表示“车间现场还在扫最后一道工序”。两个系统对“完工”的定义差了一道工序的扫描时间。
情况二:更新不同步
ERP每天夜间批量同步数据,MES实时写入。上午10点在MES里工单已经报工完成了,但ERP要到明天才能看到“已完工”状态。中间有接近24小时的时间差。
情况三:异常未回传
MES里工单因为设备故障暂停了,操作工做了“暂停”操作,但这个状态没有回传给ERP。ERP看到的是“执行中”,以为一切正常,但车间实际已经停了2小时。
二、解决状态同步问题
第一步:统一状态码映射
在ERP和MES之间建一张状态映射表:
|
ERP状态码 |
ERP状态名称 |
MES状态码 |
MES状态名称 |
映射关系说明 |
|
0 |
未开始 |
New |
新建 |
直接对应 |
|
1 |
执行中 |
InProgress |
执行中 |
直接对应 |
|
2 |
已完工 |
Closed |
已关闭 |
直接对应 |
|
- |
- |
Paused |
暂停 |
ERP无对应状态,需单独处理 |
第三步最麻烦——MES的“暂停”状态在ERP里没有对应字段。解决方案是在ERP工单表里增加一个扩展字段,用于同步MES的暂停状态。
第二步:改变同步方式,用CDC增量同步代替定时批量同步
把同步频率从“每日批量”改为“事件触发+CDC增量同步”。MES里工单状态发生变化时,立即通过CDC(变更数据捕获)机制触发同步,将变化实时推送到ERP。
这样ERP看到的工单状态和MES基本一致,时间差从24小时缩短到秒级。大部分主流ERP和MES都支持CDC对接,技术上没有障碍,主要是开发和配置工作量。
第三步:建立状态不一致的监控告警
在集成层加一个状态一致性检查任务,每小时跑一次,对比ERP和MES的工单状态。如果发现不一致(超过10分钟差异),自动推送告警给IT运维。
告警内容要清晰:工单号、两个系统的状态值、差异持续时间。运维人员根据告警可以快速定位问题——是CDC停了还是状态映射配置出错了。
三、状态同步做好之后的价值
状态同步做扎实了,企业至少可以在两个场景里安心用AI:
实时生产进度查询:销售问“订单A123做到哪了”,AI直接给出准确答案,不用再“我去问问车间”
产能预警:AI实时监控所有执行中工单的状态,发现某条产线的工单积压超过阈值时自动推送预警
FAQ
Q:ERP和MES的状态映射需要业务部门参与吗?
A:非常需要。状态码的业务含义只有业务部门说得清楚。IT部门负责技术实现,业务部门负责确认“ERP的2是不是等于MES的Closed”。业务部门不参与,映射一定出错。
Q:CDC同步会不会影响ERP的性能?
A:CDC读取的是数据库的变更日志(如MySQL的binlog、SQL Server的CDC表),不是直接查询业务表,对ERP性能几乎没有影响。这也是CDC比定时批量同步更优的原因之一。
一句话总结: 工单状态对不齐,AI的生产分析就是错的。先把状态映射表建好、改CDC实时同步、加一致性监控——这三步做完了,AI才能读到可信的工单状态数据。

1335

被折叠的 条评论
为什么被折叠?



