中小厂云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、预测性维护、质量分析,才有数据可喂。

相关文章
|
1天前
|
数据可视化 安全 数据挖掘
从入门到精通:零基础也能上手的数据可视化软件推荐
阿里云瓴羊Quick BI是一款零代码、拖拽式数据可视化工具,支持Excel上传、多源连接与50+图表类型。内置智能小Q可自然语言交互分析,提供个人版至专业版多档选择,30天免费试用。企业级安全与十亿级数据秒级响应,助力业务人员快速构建数据看板。
|
1天前
|
人工智能 架构师 安全
Salesforce 2026云栖大会活动回顾 | 从“会用 AI”到“把工作交给 AI”
云栖大会期间,Salesforce、阿里云以及蔡司光学、施乐辉、建霖家居等企业嘉宾齐聚现场,从 AI 发展趋势、人机协作方式,到销售、服务、生命科学、汽车和企业全球化,共同探讨 AI 如何真正走进业务。
|
2天前
|
前端开发 C++ 开发者
2026年VSCode多窗口切换你还在用鼠标?试试这个一秒切换技巧
2026年,VS Code的`Switch Window`(Ctrl+Shift+P → 输入切换窗口)已成键盘流开发者的“呼吸级”功能:2秒内无缝跳转多窗口,终端、光标、编辑状态全保留。回溯2016年,这曾是靠鼠标或Alt+Tab硬找的痛点。如今它被设为快捷键(如Ctrl+Alt+W),成为每日高频刚需——切换,从不重置。
|
5月前
|
人工智能 Linux API
阿里云轻量应用服务器、本地零基础部署OpenClaw保姆级完整图文教程
2026年,OpenClaw(原Clawdbot)已成为AI自动化助手领域的主流开源框架,凭借本地优先、数据可控、跨平台兼容的核心优势,深受个人与团队青睐。无需深厚技术基础,通过阿里云轻量服务器可实现一键云端部署,保障7×24小时稳定运行;本地也能快速适配MacOS、Linux、Windows11三大系统,满足隐私与离线需求。本文基于2026年最新版本,全程提供可直接复制的代码命令,从阿里云轻量服务器部署、本地多系统安装、阿里云千问与免费Coding Plan大模型API配置,到常见问题排查,形成完整闭环,助力零基础用户快速搭建专属智能自动化助手。
626 3
|
前端开发 JavaScript 小程序
Taro框架使用canvas生成图片-附带源码和效果
Taro框架使用canvas生成图片-附带源码和效果
1548 0
Taro框架使用canvas生成图片-附带源码和效果
|
2天前
|
存储 人工智能 自然语言处理
千问办公官网入口链接在哪?2026年最新QwenWork测评、千问办公怎么样?一文看懂
千问办公(QwenWork)是阿里云推出的AI智能办公平台,提供网页端和阿里云官网双入口。支持PPT/Word/Excel生成、多模态处理、网页全栈搭建、钉钉深度集成等6大核心能力。个人版免费可用,高级版198元/月;企业版198元/人/月。新用户注册即赠2000积分。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
257 0
|
1月前
|
自然语言处理 前端开发 数据挖掘
最新版通义千问(Qwen3.8-Max-Preview)功能介绍
通义千问Qwen3.8-Max-Preview是通义千问团队推出的旗舰级大模型预览版,以2.4万亿参数规模、第三代MoE混合专家架构为核心,实现了原生多模态处理、百万级超长上下文、双推理模式、全栈代码工程、多智能体协作等突破性能力,在复杂推理、专业开发、长文档处理、多模态融合等场景实现跨越式升级,成为面向企业级与开发者的高性能基座模型。本文将从核心架构、基础能力、专业场景功能、技术优势、接入配置与实战应用等维度,全面解析Qwen3.8-Max-Preview的完整功能体系,帮助用户快速掌握其核心价值与使用方法。
395 2
|
2月前
|
人工智能 弹性计算 自然语言处理
零代码建站 + 全链路运营!阿里云万小智 AI 员工,10 分钟搞定品牌官网
万小智是阿里云推出的AI建站平台,基于通义大模型,集成AI建站、创意配图、智能客服、SEO内容四大能力,10分钟极速上线品牌官网;预置多行业模板,支持对话式编辑;深度整合阿里云安全与算力,备案发布一站式完成,小微企业建站更省时、省力、更安心。
|
3月前
|
人工智能 弹性计算 开发者
2026年阿里云618年中大促“AI加速季,智惠生产力”活动攻略详解
2026阿里云618大促(6.1–6.30)开启!主题“AI加速季,智惠生产力”,云服务器低至38元/年,Qwen3.7五折,满减券至高减1728元,首月0元AI产品、免费调用、百万Token补贴同步放送!
807 0