中小厂云MES落地:一套能跑通的 PLC / ERP 集成架构

简介: 本文基于中小制造企业数字化实践,剖析MES项目失败主因——边界不清,并提出以ISA-95为纲的分层架构:边缘网关终结工业协议、云MES专注业务逻辑、ERP与MES通过3个核心接口解耦。强调“设备数据→业务语言”的翻译本质,给出可落地的数据模型、断网缓存方案及实施路径。

做过几套中小制造数字化项目,踩过坑,也跑通过云MES + 边缘网关 + 金蝶/用友 + OPC UA/Modbus 的集成。

一、为什么很多中小厂MES项目做着做着就黄了?

不是MES功能不够强,而是边界没划清:

• ERP想让MES去管设备控制

• MES想让PLC去管业务状态流转

• 实施方把工单、工序、报工、设备点检全塞进一张大宽表

• 接口一改,ERP/MES/SCADA全线报错

其实ISA-95标准早就说清楚了,各层各管一摊:

6913348d-0b6f-4863-975e-a4df4ccf1762.png

MES不该替代PLC做PID调节,也不该替代ERP做MRP运算。
它的核心价值就一件事:把设备数据翻译成业务语言,把业务指令翻译成设备动作。

二、整体架构长什么样?

[PLC / CNC / DCS]
↑ Modbus / OPC UA / MQTT
[边缘网关 / 采集服务] ← 车间本地,断网也能缓存
↑ JSON over MQTT / HTTPS
[云MES]
↑ REST API / 中间表
[ERP:金蝶云星空 / 用友U8]

三个关键设计原则:

  1. 工业协议在车间本地终结——不让OPC UA直接穿透公网,安全且稳定
  2. 边缘侧做协议解析 + 断网缓存——车间网络没你想的那么可靠
  3. 云MES只处理业务对象——工单、工序、报工、检验、设备状态,不碰底层控制

三、向下接PLC:核心是把"地址"变成"业务"

1. 协议怎么选?
2873e013-03a8-42a7-b6fe-ce7f85f91fe4.png

2. 地址到业务字段的映射

PLC里看到的是 DB100.DBW2 = 3050,但MES需要的是:
{
"workOrderNo": "WO-20260928-001",
"operationNo": "OP10",
"deviceCode": "CNC-03",
"status": "RUNNING",
"spindleLoad": 62.5,
"ts": "2026-09-28T17:55:00+08:00"
}

边缘网关实际干三件事:

16dafae1-9b74-4d15-865a-89ff9684cea3.png

3. 断网了怎么办?

车间网络不稳定是常态,所以边缘侧必须有本地缓存:
def on_plc_event(payload):
payload["ts"] = device_clock() # 用设备时间,别用云端时间
if cloud_reachable():
mqtt_publish("mes/event", payload)
else:
local_sqlite.insert("offline_queue", payload)

def flush_offline():

# 网络恢复后,按时间顺序补传
for row in local_sqlite.query("offline_queue ORDER BY ts"):
    if mqtt_publish("mes/event", row):
        local_sqlite.delete("offline_queue", row.id)

踩坑经验:时间戳一定用设备端时间,别用云端接收时间。否则追溯时事件顺序会乱。

四、向上接ERP:别一上来做200个接口

很多项目死在"接口太多、全量同步、双向耦合"。其实先跑通三个核心接口就够了:

ERP → MES(下发)

• 生产工单

• BOM / 工艺路线

• 物料主数据

MES → ERP(回写)

• 报工结果

• 完工入库单

• 物料消耗 / 不良数量

状态回写

• 工单状态:已下发 → 开工 → 完工 → 入库

金蝶/用友的对接方式:

ERP类型 对接方式

6c63abc5-9d87-44b8-9d13-5684ff2b2c6e.png

报工回写示例:
@PostMapping("/api/erp/work-report")
public ResponseEntity<?> reportToErp(@RequestBody WorkReport report) {
// 1. 校验ERP工单是否存在
ErpWorkOrder order = erpClient.getOrder(report.getErpOrderNo());
if (order == null) return BAD_REQUEST;

// 2. 构造报工数据并回写ERP
erpClient.postProductionFeedback(ProductionFeedback.builder()
    .workOrderNo(report.getErpOrderNo())
    .operationNo(report.getOperationNo())
    .qtyGood(report.getQtyGood())
    .qtyScrap(report.getQtyScrap())
    .reportTime(report.getTs())
    .build());

// 3. 标记MES侧已回写
mesService.markReported(report.getId());
return OK;

}

五、数据模型别偷懒(这是最容易翻车的地方)

中小厂MES最常见的错误:把"工单号+工序+报工+设备"写成一张大宽表。
后面做OEE、追溯、返工全废。

最小可用模型就三张表:
-- 生产工单
production_order(
order_no PK,
erp_order_no, -- ERP来的单号
product_code,
plan_qty,
status
);

-- 工序
operation(
op_id PK,
order_no FK, -- 关联工单
op_no, -- 工序号
device_code,
plan_start,
plan_end
);

-- 报工记录
work_report(
report_id PK,
op_id FK, -- 关联工序
worker_code,
qty_good,
qty_scrap,
report_ts
);

关系很清楚:工单 → 工序(一对多)→ 报工(一对多)。
别偷懒合并,后面你会感谢自己的。

六、云和本地,怎么选?
392315b3-923d-4610-ba10-1790b16dbafa.png

正确路径是:先云后本地。

云版把执行层流程跑通、数据模型验证OK之后,如果有合规要求再迁本地。底层模型一致,不用推倒重来。

这也是万界星空这类厂商在做的事:云版跑执行层闭环,行业模板(机加工/漆包线/化工/锂电)解决行业模型问题,本地部署解决数据主权问题。

七、给开发/集成商的6条建议

  1. 先画数据流,再拖页面——很多人一上来就画UI,后面接口全返工
  2. 接口先跑3个:工单下发、报工回写、物料消耗,其他后面再加
  3. PLC采集先跑1台设备,别一上来接整条线
  4. MES里别写PID控制逻辑,那是PLC的事
  5. ERP里别存工序级报工明细,那是MES的事
  6. 边缘侧必须能断网缓存,车间网络永远没你想的稳

八、一句话总结

云MES的价值不是"上云",而是:

用一套业务模型,把PLC的工业数据和ERP的计划数据接起来。

中小制造数字化,别先谈数字孪生,别先谈AI排产。先把这四件事做扎实:
• 工单下得来

• 报工报得准

• 设备状态看得见

• ERP账能对上

有了这个底座,后面接AI-APS、预测性维护、质量分析,才有数据可喂。

相关文章
|
7天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
6911 9
|
5天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1390 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
6天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
850 5
|
19天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
3433 10
|
13天前
|
缓存 IDE Java
【保姆级】Android Studio下载、安装和汉化教程(2026最新)
Android Studio 是 Google 官方推出的免费 Android 应用开发集成环境,基于 IntelliJ IDEA,内置模拟器、调试器、性能分析及 Compose 界面工具,功能全面,文档丰富,是安卓开发首选工具。(239字)
1509 1
|
18天前
|
IDE 开发工具
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
Qoder国际版上线全新内置大模型Sonus(/ˈsoʊnəs/),全球领先,专精超长任务执行与电脑操作(Computer Use)。配合Qoder桌面端0.2.3版本,可自主完成编程、金融建模、科研及表格制作等复杂工作。现全面支持Qoder全系产品,效率提升3.2倍。
1897 9
Qoder 上线 Sonus 模型,Computer Use 能力全面增强