一、项目背景与挑战
作为一名制造业信息化领域的独立开发者,我决定开发一套定制化的MES(制造执行系统)系统,源于传统制造业面临的几个核心痛点:
- 生产数据黑箱:车间生产进度依赖人工汇报,管理层无法实时掌握
- 质量追溯困难:产品出现质量问题后,难以快速定位问题批次和原因
- 设备利用率低:设备停机时间不透明,无法科学安排维护计划
- 人工报工误差:计件工资计算经常出现争议,影响员工积极性
- 物料追溯断层:无法精确追踪原材料到成品的完整流转过程
经过6个月的深入调研和3年的开发实施,最终完成了一套覆盖生产全流程的MES系统。以下是开发过程中的关键节点和经验分享。
二、系统架构设计
- 分层架构设计
采用五层架构模式,确保系统灵活性和扩展性:
• 设备接入层:负责与PLC、CNC、传感器等工业设备通信,支持OPC UA、Modbus等协议
• 数据采集层:实时采集设备状态、工艺参数、生产计数等数据
• 业务逻辑层:实现生产调度、质量管理、设备管理、人员绩效等核心业务
• 数据服务层:提供统一的数据访问接口,支持时序数据库和关系型数据库混合存储
• 应用表现层:Web端+移动端+大屏看板多终端展示
- 微服务架构实践
基于Spring Cloud Alibaba构建微服务体系:
• 生产执行服务:处理工单下发、报工、暂停、终止等核心流程
• 质量检验服务:实现首检、巡检、末检全流程管理
• 设备监控服务:实时采集设备OEE数据,预测性维护
• 物料追溯服务:构建从原材料到成品的完整追溯链
• 报表分析服务:生成各类生产绩效报表
三、关键技术实现
- 工业设备接入方案
面对车间设备品牌杂、协议多的挑战,开发了通用设备接入框架: // 设备通信抽象接口 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小时。
- 实时数据采集优化
针对高频数据采集场景(如温度曲线),采用特殊优化方案:
边缘计算节点进行数据预处理
采用时序数据库(InfluxDB)存储高频数据
对常规数据采用MySQL分表存储
建立数据分级机制,关键数据实时同步,次要数据批量同步
生产追溯体系设计
实现完整的正向追溯和反向追溯功能:
原材料批次 → 生产工单 → 工序记录 → 质量检验 → 成品批次
采用组合追溯码方案: • 原材料:供应商代码+到货日期+批次号
• 半成品:工单号+工序号+生产日期
• 成品:产品型号+生产批次+序列号
四、前端开发实践
- 车间终端适配
针对车间环境特点做了特殊设计: • 高对比度界面:适应强光/弱光环境
• 大按钮设计:方便戴手套操作
• 离线模式:网络中断时本地缓存数据
• 语音提示:关键操作语音反馈
- 可视化看板
基于ECharts实现多维数据展示: • 实时设备状态监控(运行、停机、故障)
• OEE(设备综合效率)趋势分析
• 生产进度甘特图
• 质量缺陷柏拉图
五、实施过程中的"翻车"现场
设备通信灾难 • 场景:某CNC机床通信协议文档与实际不符
• 后果:连续3天无法读取加工参数
• 解决:通过抓包分析逆向工程协议,最终实现稳定通信
并发性能瓶颈 • 场景:200台设备同时上报数据时系统卡死
• 排查:发现数据库连接池配置不足
• 优化:调整连接池参数+引入消息队列缓冲
数据精度问题 • 场景:温度传感器数据单位不一致(℃ vs ℉)
• 后果:导致某批次产品热处理不合格
• 改进:建立设备元数据管理系统,统一维护单位、精度等属性
六、经验与感悟
车间需求比办公室需求更重要:最初设计的华丽报表无人问津,而工人提出的简单报工界面却成为核心功能
可靠性优于先进性:在车间环境中,系统稳定运行比使用最新技术更重要
渐进式实施是关键:从最痛点的工序开始试点,逐步扩展,比一次性全面上线成功率高
现场支持不可或缺:在车间驻场调试的1个月,解决的问题比之前3个月都多
给后来者的建议
- 从一个小工序开始,哪怕只是实现设备数据采集+电子看板
- 重视车间人员的反馈,他们最清楚问题所在
- 建立数据字典,统一编码规则,这是追溯体系的基础
- 预留足够的扩展接口,未来会有无数系统想与MES集成
MES系统的价值不在于技术有多先进,而在于能否真正解决生产现场的问题。一个好的MES系统,是在不断解决实际问题中迭代出来的。