恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
【MES学习笔记系列】04 - MES 技术架构设计
首页
资讯中心
/
【MES学习笔记系列】04 - MES 技术架构设计
【MES学习笔记系列】04 - MES 技术架构设计
发布时间:2026/8/5 9:38:15
目标读者系统架构师、技术负责人、高级开发工程师阅读时间约 30 分钟前置知识微服务基本概念、Spring Boot 基础一、架构总览1.1 分层架构MES 系统采用典型的三层架构兼顾传统的水平分层和微服务时代垂直切割的灵活性1.2 关键设计原则原则说明高内聚低耦合每个微服务只负责一个业务领域DDD 限界上下文无状态设计应用服务无状态状态存于 Redis/数据库方便水平扩展异步解耦非实时业务通过消息队列异步处理独立部署每个微服务可独立构建、部署、扩缩容容错设计熔断Sentinel、降级、重试防止级联故障二、云原生与微服务架构2.1 微服务拆分策略基于 DDD领域驱动设计的限界上下文进行服务拆分微服务限界上下文核心聚合根数据存储mes-order工单管理WorkOrderMySQLmes-execution生产执行ProductionRecordMySQLmes-quality质量管理InspectionTaskMySQLmes-equipment设备管理Machine, MaintenanceMySQLmes-material物料管理MaterialLot, InventoryMySQLmes-schedule排程引擎SchedulePlanMySQLmes-collection数据采集DeviceDataPointInfluxDB/MySQLmes-report报表分析ReportTemplateMySQL 只读副本mes-system系统管理User, Role, PermissionMySQLmes-gatewayAPI 网关——2.2 服务通信通信方式适用场景技术选型同步 REST查询类、事务性操作Feign / OpenFeign异步消息事件通知、数据同步RocketMQ / RabbitMQgRPC高性能、流式调用Spring gRPC StarterWebSocket实时看板推送Spring WebSocket2.3 服务治理三、技术选型3.1 推荐技术栈主力方案Java层级技术版本选择理由后端框架Spring Boot3.x生态完善、国内 MES 主流微服务治理Spring Cloud Alibaba2023.xNacos 注册发现 配置、Sentinel 限流ORMMyBatis Plus3.5灵活 SQL、代码生成消息队列RocketMQ5.x延迟消息、事务消息、阿里系生态缓存Redis7.x高频数据缓存、分布式锁前端框架Vue 3 Element Plus3.4组件丰富、中文生态好关系数据库MySQL / PostgreSQL8.0 / 15主数据存储时序数据库InfluxDB / TimescaleDB2.x / 2.x设备采集的时序数据对象存储MinIO最新附件、eSOP 文件存储容器化Docker K8s24 / 1.28编排、弹性伸缩CI/CDGitLab CI / Jenkins最新自动化构建部署监控Prometheus Grafana最新指标采集与可视化日志ELK (Elasticsearch Logstash Kibana)8.x集中日志管理与检索3.2 备选方案对比组件方案 A推荐方案 B适用场景后端语言Java Spring Boot.NET Core / Python.NET 适合 Windows 生态工厂Python 适合轻量项目消息队列RocketMQRabbitMQ / KafkaRabbitMQ 适合中小规模Kafka 适合大数据量流处理前端Vue 3React Ant DesignReact 适合国际化团队数据库MySQLPostgreSQL需要 JSONB 高级特性选 PG服务治理Spring CloudIstio K8s多语言微服务网格3.3 Java vs .NET Core 对比维度Java / Spring Boot.NET Core微服务生态Spring Cloud 全家桶成熟Steeltoe OcelotOPC UA 库Eclipse MiloOPC UA .NET Standard部署环境Linux 为主Windows 兼容性更好国内招聘岗位多传统制造业 .NET 岗位多选型建议新项目首选与微软生态紧耦合的工厂四、系统集成方案4.1 集成全景图4.2 ERP 集成接口方向数据内容频率生产计划同步ERP → MES计划单号、产品、数量、交期日/即时报工回传MES → ERP良品数、不良品数、工时实时物料消耗回传MES → ERP原材料消耗数量、批次工单完工时入库通知MES → ERP成品完工入库信息实时基础数据同步ERP → MES物料主数据、BOM、客户信息日4.3 WMS 集成接口方向说明送料指令MES → WMS工单开工时生成送料单发料确认WMS → MESWMS 完成拣货发料后通知 MES完工入库MES → WMS成品完工请求入库库存查询MES → WMS实时获取物料可用量4.4 SCADA/PLC 集成协议适用场景MES 角色OPC UA主流设备、CNC 机床、PLC客户端订阅数据 调用方法Modbus TCP老旧设备、仪表客户端读保持寄存器MQTT边缘传感器、IoT 网关Broker接收数据MTConnectCNC 机床客户端接收标准化数据五、接口设计5.1 RESTful API 规范URL 设计GET /api/v1/work-orders # 工单列表 GET /api/v1/work-orders/{id} # 工单详情 POST /api/v1/work-orders # 创建工单 PUT /api/v1/work-orders/{id} # 更新工单 POST /api/v1/work-orders/{id}/start # 开工 POST /api/v1/work-orders/{id}/complete # 完工统一响应格式json{ code: 200, message: success, data: { orderId: WO-20260729-001, productName: 产品A, status: IN_PRODUCTION }, timestamp: 1753700000 }5.2 OPC UA 数据模型Root └── Objects └── Factory └── Line1 └── Machine-001 ├── Status (Variable: Running) ├── Temperature (Variable: 85.6) ├── Speed (Variable: 1200) ├── Alarm (Variable: false) └── Methods ├── Start() ├── Stop() └── SetSpeed(int rpm)5.3 MQTT Topic 设计Topic说明QoSmes/{factory}/{line}/device/status设备状态上报1mes/{factory}/{line}/device/data工艺参数上报1mes/{factory}/{line}/device/alarm设备报警2mes/{factory}/{line}/cmd/recipe配方下发指令2mes/{factory}/{line}/cmd/adjust参数调整指令2六、安全架构6.1 安全分层层面措施技术传输安全TLS 1.3 加密Nginx SSL 终结认证JWT OAuth 2.0Spring Security授权RBAC 角色权限 数据权限自研权限中间件审计操作日志全量记录AOP ELK数据安全敏感字段加密存储AES-256 / SM4API 安全请求签名 防重放时间戳 Nonce6.2 权限模型用户 (User) │ ├── 角色 (Role): 生产经理 / 操作员 / 质检员 / 设备工程师 │ │ │ └── 功能权限: 工单管理 / 质量检验 / 设备管理 ... │ └── 数据权限: 只能看到所属产线 / 车间的数据七、高可用与灾备设计能力方案应用高可用多副本 K8s 自动重启 HPA 自动扩缩数据库高可用MySQL 主从复制 读写分离消息队列高可用RocketMQ Dledger 主备缓存高可用Redis 哨兵 / Cluster异地灾备数据库异地同步、每日备份灰度发布K8s Ingress 按权重引流