分享一个人开发一套 MES 系统的历程——智能制造实践者
一、项目背景与挑战
作为一名制造业信息化领域的独立开发者,我决定开发一套定制化的 MES(制造执行系统)系统,源于传统制造业面临的几个核心痛点:
生产数据黑箱:车间生产进度依赖人工汇报,管理层无法实时掌握
质量追溯困难:产品出现质量问题后,难以快速定位问题批次和原因
设备利用率低:设备停机时间不透明,无法科学安排维护计划
人工报工误差:计件工资计算经常出现争议,影响员工积极性
物料追溯断层:无法精确追踪原材料到成品的完整流转过程
经过 6 个月的深入调研和 3 年的开发实施,最终完成了一套覆盖生产全流程的 MES 系统。以下是开发过程中的关键节点和经验分享。
二、系统架构设计
1. 分层架构设计
采用五层架构模式,确保系统灵活性和扩展性:
设备接入层:负责与 PLC、CNC、传感器等工业设备通信,支持 OPC UA、Modbus 等协议
数据采集层:实时采集设备状态、工艺参数、生产计数等数据
业务逻辑层:实现生产调度、质量管理、设备管理、人员绩效等核心业务
数据服务层:提供统一的数据访问接口,支持时序数据库和关系型数据库混合存储
应用表现层:Web 端+移动端+大屏看板多终端展示
2. 微服务架构实践
基于 Spring Cloud Alibaba 构建微服务体系:
生产执行服务:处理工单下发、报工、暂停、终止等核心流程
质量检验服务:实现首检、巡检、末检全流程管理
设备监控服务:实时采集设备 OEE 数据,预测性维护
物料追溯服务:构建从原材料到成品的完整追溯链
报表分析服务:生成各类生产绩效报表
三、关键技术实现
1. 工业设备接入方案
面对车间设备品牌杂、协议多的挑战,开发了通用设备接入框架:
通过配置化方式实现不同设备的快速接入,新设备平均接入时间缩短到 2 小时。
2. 实时数据采集优化
针对高频数据采集场景(如温度曲线),采用特殊优化方案:
边缘计算节点进行数据预处理
采用时序数据库(InfluxDB)存储高频数据
对常规数据采用 MySQL 分表存储
建立数据分级机制,关键数据实时同步,次要数据批量同步
3. 生产追溯体系设计
实现完整的正向追溯和反向追溯功能:
采用组合追溯码方案:
原材料:供应商代码+到货日期+批次号
半成品:工单号+工序号+生产日期
成品:产品型号+生产批次+序列号

四、前端开发实践
1. 车间终端适配
针对车间环境特点做了特殊设计:
高对比度界面:适应强光/弱光环境
大按钮设计:方便戴手套操作
离线模式:网络中断时本地缓存数据
语音提示:关键操作语音反馈
2. 可视化看板
基于 ECharts 实现多维数据展示:
实时设备状态监控(运行、停机、故障)
OEE(设备综合效率)趋势分析
生产进度甘特图
质量缺陷柏拉图
五、实施过程中的"翻车"现场
设备通信灾难
场景:某 CNC 机床通信协议文档与实际不符
后果:连续 3 天无法读取加工参数
解决:通过抓包分析逆向工程协议,最终实现稳定通信
并发性能瓶颈
场景:200 台设备同时上报数据时系统卡死
排查:发现数据库连接池配置不足
优化:调整连接池参数+引入消息队列缓冲
数据精度问题
场景:温度传感器数据单位不一致(℃ vs ℉)
后果:导致某批次产品热处理不合格
改进:建立设备元数据管理系统,统一维护单位、精度等属性
六、经验与感悟
车间需求比办公室需求更重要:最初设计的华丽报表无人问津,而工人提出的简单报工界面却成为核心功能
可靠性优于先进性:在车间环境中,系统稳定运行比使用最新技术更重要
渐进式实施是关键:从最痛点的工序开始试点,逐步扩展,比一次性全面上线成功率高
现场支持不可或缺:在车间驻场调试的 1 个月,解决的问题比之前 3 个月都多
给后来者的建议
从一个小工序开始,哪怕只是实现设备数据采集+电子看板
重视车间人员的反馈,他们最清楚问题所在
建立数据字典,统一编码规则,这是追溯体系的基础
预留足够的扩展接口,未来会有无数系统想与 MES 集成
MES 系统的价值不在于技术有多先进,而在于能否真正解决生产现场的问题。一个好的 MES 系统,是在不断解决实际问题中迭代出来的。
评论