|
|
# CNC机床数据采集系统 - 需求与设计文档
|
|
|
|
|
|
> 最后更新:2026-04-23
|
|
|
> 状态:设计中(数据库设计已确认,API/前端/采集服务待设计)
|
|
|
|
|
|
---
|
|
|
|
|
|
## 一、项目概述
|
|
|
|
|
|
本系统用于对多台不同品牌CNC机床进行统一化、分布式、自动化数据采集,实现设备状态监控、零件产量自动统计、加工过程分析、人员与设备绑定管理,并通过BI大屏实时展示生产数据。
|
|
|
|
|
|
系统本地IIS部署,MariaDB数据库(业务库+日志库双库分离),单角色管理模式。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 二、技术栈
|
|
|
|
|
|
| 层 | 技术 | 说明 |
|
|
|
|----|------|------|
|
|
|
| 前端 | Vue3 | 管理后台 + 大屏看板 |
|
|
|
| 后端 | ASP.NET Web API 2 (.NET Framework 4.5+) | REST API |
|
|
|
| 采集服务 | Windows Service (.NET Framework 4.5+) | 定时采集+数据处理 |
|
|
|
| 数据库 | MariaDB 10.6+ | 业务库 + 日志库 |
|
|
|
| 部署 | Windows Server + IIS | 局域网,同站点 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 三、系统架构
|
|
|
|
|
|
[见附图:架构图]
|
|
|
|
|
|
核心组件:
|
|
|
- Windows Service (CncCollector):定时拉取HTTP数据,字段映射解析,零件数增量计算,日终汇总,心跳上报
|
|
|
- MariaDB:业务库(cnc_business) + 日志库(cnc_log)
|
|
|
- IIS Web API 2:/api/admin/** Token认证,/api/screen/** 免认证
|
|
|
- Vue3前端:管理后台(/) + 大屏(/screen)
|
|
|
|
|
|
---
|
|
|
|
|
|
## 四、已确认的核心需求与决策
|
|
|
|
|
|
### 4.1 采集架构
|
|
|
|
|
|
| 决策 | 结论 |
|
|
|
|------|------|
|
|
|
| 采集模式 | 系统定时从一个HTTP地址拉取JSON数据(非直连机床) |
|
|
|
| 采集地址 | 多个采集地址,每个地址关联品牌+选择要采的机床列表,URL和间隔配在地址级 |
|
|
|
| 采集间隔 | 配置在采集地址级别,同地址统一间隔 |
|
|
|
| 采集并发 | 地址间并行,地址内串行 |
|
|
|
| Ping前置 | Ping通才采集,Ping结果=在线状态 |
|
|
|
| 采集失败 | 自动重试3次间隔30秒,连续5次失败记告警 |
|
|
|
| 采集认证 | HTTP采集地址无需认证 |
|
|
|
| 新设备发现 | 采集到未知device时记录告警,不自动创建 |
|
|
|
|
|
|
### 4.2 数据格式
|
|
|
|
|
|
| 决策 | 结论 |
|
|
|
|------|------|
|
|
|
| 顶层结构 | 所有品牌统一:JSON数组,每台设备含device、desc、tags |
|
|
|
| 字段定位 | 通过tags数组中id匹配定位关键字段 |
|
|
|
| 字段映射 | 管理后台可视化配置品牌字段映射,实时生效不改代码 |
|
|
|
| device映射 | 机床表配置device_code,采集时用device值匹配 |
|
|
|
| 原始数据 | 存原始JSON到日志库,解析后结构化数据存业务库 |
|
|
|
| 时间标准 | 以服务器时间为准,机床时间仅存为参考字段 |
|
|
|
| 数值处理 | 自动去除.00000尾缀,转换为数值/字符串 |
|
|
|
|
|
|
### 4.3 零件产量统计
|
|
|
|
|
|
| 决策 | 结论 |
|
|
|
|------|------|
|
|
|
| 零件识别 | NC程序名(Tag5)作为零件唯一识别 |
|
|
|
| 计数方式 | CNC切换加工零件时NC程序名变更+零件数清零 |
|
|
|
| 产量计算 | 程序切换时结账上一段零件数,新程序从0开始 |
|
|
|
| A-B-C-A-B | 同程序名多次出现,产量分段记录,日汇总时合并 |
|
|
|
| 手动清零 | 同程序下part_count下降视为手动清零,结账前值后从0重计 |
|
|
|
| 设备重启 | 确认不清零零件数 |
|
|
|
| 跨天处理 | 零点后数据归属第二天,有问题后台手工调 |
|
|
|
| 日终汇总 | 按自然天汇总,过0点后自动汇总前一天,汇总时间后台可配 |
|
|
|
| 未开机机床 | 日汇总插0产量记录 |
|
|
|
| 采集失败机床 | Ping通但采集失败标记数据缺失,前端显示-而非0 |
|
|
|
|
|
|
### 4.4 班次与工人
|
|
|
|
|
|
| 决策 | 结论 |
|
|
|
|------|------|
|
|
|
| 班次 | v1不支持班次,按自然天+固定绑定汇总 |
|
|
|
| 工人-机床 | 固定绑定,一台机床只绑一个工人 |
|
|
|
| 工人归属 | 工人不归属车间 |
|
|
|
|
|
|
### 4.5 管理与监控
|
|
|
|
|
|
| 决策 | 结论 |
|
|
|
|------|------|
|
|
|
| 采集服务通信 | 心跳写DB + 轻量HTTP管理API(启停控制) |
|
|
|
| 配置热更新 | 轮询DB(每30秒)+ 管理操作后API通知,双保险 |
|
|
|
| 采集服务自恢复 | 每个采集地址任务独立线程,崩了不影响其他,自动重启间隔递增 |
|
|
|
| DB断连处理 | 本地文件缓存+自动补写 |
|
|
|
| 采集服务API认证 | 加服务间API Key(配置文件中写死) |
|
|
|
| 手工调整产量 | 管理后台修正功能+审计日志 |
|
|
|
| 模板修改 | 不回溯历史数据,修改时弹提醒 |
|
|
|
|
|
|
### 4.6 前端与认证
|
|
|
|
|
|
| 决策 | 结论 |
|
|
|
|------|------|
|
|
|
| API认证 | /api/admin/** Token认证,/api/screen/** 免认证 |
|
|
|
| 管理后台 | PC端,Vue3 |
|
|
|
| 大屏 | Chrome无人值守,提供全屏按钮,免认证 |
|
|
|
| 大屏可配置 | 固定布局+卡片指标可配+筛选可配+图表类型可选 |
|
|
|
| Vue3部署 | 同IIS站点,无跨域问题 |
|
|
|
| Excel导出 | EPPlus |
|
|
|
|
|
|
### 4.7 系统运维
|
|
|
|
|
|
| 决策 | 结论 |
|
|
|
|------|------|
|
|
|
| 日志轮转 | 按日期切割,保留天数在管理后台配置 |
|
|
|
| DB备份 | 每日自动全量+binlog增量,保留30天,需检查binlog是否开启 |
|
|
|
| 分区维护 | 按月创建新分区+删除过期分区 |
|
|
|
| 品牌预置 | 预置FANUC品牌模板,其他手动添加 |
|
|
|
| 告警通知 | v1只做管理后台内告警列表+标记已处理,不做推送 |
|
|
|
| 机床停用 | 软删除(is_enabled),保留历史数据 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 五、待设计模块
|
|
|
|
|
|
> 以下模块尚未展开设计,待后续讨论确认:
|
|
|
|
|
|
- 5.1 API接口设计
|
|
|
- 5.2 采集服务核心逻辑设计
|
|
|
- 5.3 前端管理后台设计
|
|
|
- 5.4 大屏看板设计
|