公司推进MES系统过程中,发现MES原有的数据采集平台存在严重问题:配置流程繁琐、界面陈旧、维护成本高,产线操作人员使用体验极差。同时,工厂内多种工业设备(低温焊锡机、广播设备、温湿度计等)使用不同的通讯协议(Modbus TCP、TCP/Socket),缺乏统一的设备接入和数据管理平台。设备数据采集延迟在分钟级,异常发生后无法及时通知运维人员,导致产线停机响应慢。此外,MES、SAP、EHR等多套企业系统之间数据孤岛严重,部门信息、生产数据依赖人工导入,效率低且易出错。基于以上痛点,我自主发起OmniCore项目,目标是构建一套统一的企业级物联网数据采集与设备管理平台,实现多协议设备接入、秒级数据采集、异常实时告警、多系统数据互通,降低运维复杂度,提升生产数据的实时性与可靠性。
1.设备管理中心:支持车间→产线→工位三级分组管理,设备台账全生命周期维护,同型号设备支持模板一键应用配置。每台设备可配置多个数据测点(寄存器地址、数据类型、转换系数、单位),配置修改实时生效无需重启。采用工厂模式+策略模式实现多协议设备接入,新增通讯协议只需添加Handler实现类。
2.数据采集引擎:关键设备(焊锡机)秒级实时采集,非关键设备(温湿度计)通过XXL-Job定时采集,支持cron表达式自定义频率。采集数据通过RabbitMQ异步解耦,消费者批量写入数据库。支持数据补采和采集状态监控。
3.实时监控大屏:通过WebSocket实时推送设备在线状态、关键指标数据,支持设备详情仪表盘、24小时趋势折线图、车间维度看板。
4.告警中心:支持预警/告警/紧急三级告警,规则引擎支持阈值、连续超标、数据突变、设备离线等多种告警条件。告警通过系统消息+企业微信多通道通知,具备完整的确认→处理→关闭生命周期管理和统计分析功能。
5.远程控制:通过Modbus TCP写寄存器远程设置设备参数,具备ACK确认+超时重试+审批机制,Redis分布式锁保证设备级指令互斥。
6.权限管理:用户/角色/菜单三级RBAC,按钮级权限控制,数据权限隔离(不同车间看不同数据),全操作审计日志。
7.系统集成:对接MES双向数据同步、SAP成本数据传输、EHR组织架构自动同步、企业微信深度集成、泛微OA审批流程对接。
本项目由我自主发起并独立完成全流程开发(数据库设计、后端开发、前端开发、部署上线、持续维护)。
后端采用Java 21+Spring Boot 3.4+Spring Cloud Alibaba架构,Nacos做注册与配置中心,Sa-Token实现RBAC鉴权。数据层使用MyBatis-Plus+Dynamic Datasource实现MySQL与SQL Server双数据源动态切换。
设备通讯层基于Netty构建异步TCP长连接,1个Boss线程接收连接、4个Worker线程处理IO,自定义ModbusDecoder解决TCP粘包问题。Worker线程只做数据接收与解码,业务逻辑提交给JDK 21虚拟线程处理(发送MQ、更新Redis、调用企微API),避免Worker被IO阻塞。
采集数据通过RabbitMQ异步解耦,生产者confirm+队列持久化+消费者手动ACK三层保障消息不丢失。缓存采用JetCache二级架构(本地Caffeine+分布式Redis)。定时任务基于XXL-Job分布式调度。
前端采用Vue 3+TypeScript+Vite 5+Arco Design,WebSocket实现设备状态实时推送,动态路由实现角色级菜单权限。
采集数据按月分表(单表约2700万条),联合索引(device_id, collect_time)覆盖核心查询场景,历史查询自动降采样。部署采用Docker+Nginx蓝绿部署方案。
项目成果:荣获2025年度最佳新人奖,MES二期工程放弃原有数采平台转为基于OmniCore开发,设备数据采集延迟从分钟级降至秒级。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论