写点什么

分享一个人开发一套 MES 系统的历程——智能制造实践者

  • 2025-08-13
    上海
  • 本文字数:1844 字

    阅读完需:约 6 分钟

一、项目背景与挑战

作为一名制造业信息化领域的独立开发者,我决定开发一套定制化的 MES(制造执行系统)系统,源于传统制造业面临的几个核心痛点:

  1. ​生产数据黑箱​​:车间生产进度依赖人工汇报,管理层无法实时掌握

  2. ​质量追溯困难​​:产品出现质量问题后,难以快速定位问题批次和原因

  3. ​设备利用率低​​:设备停机时间不透明,无法科学安排维护计划

  4. ​人工报工误差​​:计件工资计算经常出现争议,影响员工积极性

  5. ​物料追溯断层​​:无法精确追踪原材料到成品的完整流转过程

经过 6 个月的深入调研和 3 年的开发实施,最终完成了一套覆盖生产全流程的 MES 系统。以下是开发过程中的关键节点和经验分享。

二、系统架构设计

1. 分层架构设计

采用五层架构模式,确保系统灵活性和扩展性:

  • ​设备接入层​​:负责与 PLC、CNC、传感器等工业设备通信,支持 OPC UA、Modbus 等协议

  • ​数据采集层​​:实时采集设备状态、工艺参数、生产计数等数据

  • ​业务逻辑层​​:实现生产调度、质量管理、设备管理、人员绩效等核心业务

  • ​数据服务层​​:提供统一的数据访问接口,支持时序数据库和关系型数据库混合存储

  • ​应用表现层​​:Web 端+移动端+大屏看板多终端展示

2. 微服务架构实践

基于 Spring Cloud Alibaba 构建微服务体系:

  • ​生产执行服务​​:处理工单下发、报工、暂停、终止等核心流程

  • ​质量检验服务​​:实现首检、巡检、末检全流程管理

  • ​设备监控服务​​:实时采集设备 OEE 数据,预测性维护

  • ​物料追溯服务​​:构建从原材料到成品的完整追溯链

  • ​报表分析服务​​:生成各类生产绩效报表

三、关键技术实现

1. 工业设备接入方案

面对车间设备品牌杂、协议多的挑战,开发了通用设备接入框架:

// 设备通信抽象接口public interface DeviceConnector {    void connect(DeviceConfig config);    Object read(String address);    void write(String address, Object value);    void disconnect();}
// ModbusTCP实现public class ModbusTcpConnector implements DeviceConnector { // 具体实现...}
// OPC UA实现public class OpcUaConnector implements DeviceConnector { // 具体实现...}
复制代码

通过配置化方式实现不同设备的快速接入,新设备平均接入时间缩短到 2 小时。

2. 实时数据采集优化

针对高频数据采集场景(如温度曲线),采用特殊优化方案:

  1. 边缘计算节点进行数据预处理

  2. 采用时序数据库(InfluxDB)存储高频数据

  3. 对常规数据采用 MySQL 分表存储

  4. 建立数据分级机制,关键数据实时同步,次要数据批量同步

3. 生产追溯体系设计

实现完整的正向追溯和反向追溯功能:

原材料批次 → 生产工单 → 工序记录 → 质量检验 → 成品批次
复制代码

采用组合追溯码方案:

  • 原材料:供应商代码+到货日期+批次号

  • 半成品:工单号+工序号+生产日期

  • 成品:产品型号+生产批次+序列号


四、前端开发实践

1. 车间终端适配

针对车间环境特点做了特殊设计:

  • 高对比度界面:适应强光/弱光环境

  • 大按钮设计:方便戴手套操作

  • 离线模式:网络中断时本地缓存数据

  • 语音提示:关键操作语音反馈

2. 可视化看板

基于 ECharts 实现多维数据展示:

  • 实时设备状态监控(运行、停机、故障)

  • OEE(设备综合效率)趋势分析

  • 生产进度甘特图

  • 质量缺陷柏拉图

五、实施过程中的"翻车"现场

  1. ​设备通信灾难​

    场景:某 CNC 机床通信协议文档与实际不符

    后果:连续 3 天无法读取加工参数

    解决:通过抓包分析逆向工程协议,最终实现稳定通信

  2. ​并发性能瓶颈​

    场景:200 台设备同时上报数据时系统卡死

    排查:发现数据库连接池配置不足

    优化:调整连接池参数+引入消息队列缓冲

  3. ​数据精度问题​

    场景:温度传感器数据单位不一致(℃ vs ℉)

    后果:导致某批次产品热处理不合格

    改进:建立设备元数据管理系统,统一维护单位、精度等属性

六、经验与感悟

  1. ​车间需求比办公室需求更重要​​:最初设计的华丽报表无人问津,而工人提出的简单报工界面却成为核心功能

  2. ​可靠性优于先进性​​:在车间环境中,系统稳定运行比使用最新技术更重要

  3. ​渐进式实施是关键​​:从最痛点的工序开始试点,逐步扩展,比一次性全面上线成功率高

  4. ​现场支持不可或缺​​:在车间驻场调试的 1 个月,解决的问题比之前 3 个月都多

给后来者的建议

  1. 从一个小工序开始,哪怕只是实现设备数据采集+电子看板

  2. 重视车间人员的反馈,他们最清楚问题所在

  3. 建立数据字典,统一编码规则,这是追溯体系的基础

  4. 预留足够的扩展接口,未来会有无数系统想与 MES 集成

MES 系统的价值不在于技术有多先进,而在于能否真正解决生产现场的问题。一个好的 MES 系统,是在不断解决实际问题中迭代出来的。

用户头像

免费开源 MES 2023-07-06 加入

分享免费的MES开源代码、AI低代码云MES、AR数字孪生、商业开源MES 发布万界星空MES技术最新资讯,与你并肩探索云MES技术点滴 我们一起成长进步

评论

发布
暂无评论
分享一个人开发一套MES系统的历程——智能制造实践者_数字化_万界星空科技_InfoQ写作社区