You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

9.2 KiB

CNC机床数据采集分析系统 - 完整需求规格说明书


一、项目概述

本系统用于对多台不同品牌CNC机床进行统一化、分布式、自动化数据采集实现设备状态监控、零件产量自动统计、加工过程分析、人员与设备绑定管理并通过BI大屏实时展示生产数据。

系统基于 .NET 8.0 Web API 开发本地IIS部署MariaDB数据库单角色权限管理。

二、总体约束

  1. 开发框架

    • 前端Vue.js

    • 后端:.NET 8.0 Web API

    • 数据库MariaDB 10.6+(本地部署,双库分离)

    • 部署Windows Server + IIS

  2. 权限模式

    • 单角色管理模式,无需多角色、分级权限控制
  3. 数据特性

    • CNC接口仅返回实时数据无历史数据

    • 采集间隔远小于程序切换间隔,确保程序切换可被捕获

    • 产量统计依赖前后两次采集数据差分计算

  4. 真实数据格式约束(发那科标准)

    • 采集返回为JSON数组包含多台设备数据

    • 每台设备结构:devicedesctags数组

    • 数据项包含:iddescqualityvaluetime

    • 关键字段通过id匹配如Tag5、Tag8、_io_status

    • 每次采集time时间戳自动更新

    • 产量、程序名、状态均在tags数组内,无顶层字段

三、核心功能模块

1. CNC品牌模板配置系统

  1. 支持多品牌CNC发那科、三菱、西门子、新代、广数等统一接入

  2. 适配发那科JSON结构

    • 设备列表为JSON数组

    • 数据存储在tags数组中

    • 通过id定位关键字段

  3. 提供JSON字段映射模板将不同品牌原始字段映射为系统标准字段

  4. 后台可可视化配置:

    • NC程序名匹配tags.id=Tag5value

    • 加工累计数量:匹配tags.id=Tag8value

    • 设备状态:匹配tags.id=_io_statusvalue

    • 运行状态:匹配tags.id=Tag9value

    • 主轴/进给/负载/时间等扩展字段自动解析

  5. 模板支持新增、编辑、删除、启用/禁用

  6. 模板修改后无需重新编译发布,实时生效

  7. 支持字段类型转换、数值清洗、去尾缀处理

2. 分布式设备数据采集架构

  1. 每台CNC独立配置

    • IP地址用于Ping检测

    • HTTP采集接口地址

    • 采集间隔(秒)

    • 绑定品牌模板

    • 设备可用/不可用状态

  2. 采集触发规则:

    • 设备必须Ping通

    • 设备状态必须为可用

    • 两者同时满足才执行采集

  3. 不采集场景:

    • Ping失败

    • 设备标记为不可用

    • 采集任务暂停/手动关闭

  4. 采集机制:

    • 定时轮询采集

    • 采集失败自动重试3次每次间隔30秒

    • 连续5次采集失败记录异常日志不改变设备在线状态

    • 网络恢复后自动恢复采集

  5. 数据解析规则(发那科专用):

    • tags数组遍历,按id匹配关键字段

    • 自动提取device设备编号、desc设备描述

    • 自动提取采集时间time作为时间戳

    • 自动去除.00000尾缀,转换为数值/字符串

3. 零件产量自动统计(核心)

3.1 基础规则

  • 以NC程序名Tag5.value作为零件唯一识别依据

  • 按自然日00:0023:59统计产量

  • 支持跨天加班时段归属配置

3.2 关键字段来源发那科JSON

  • NC程序名tags.id=Tag5 → value

  • 当前加工累计数:tags.id=Tag8 → value

  • 设备标识:device字段

  • 采集时间各tag自带time字段

3.3 关键约束

  • CNC接口只能获取当前累计值无历史数据

  • 采集间隔 < 程序切换间隔,确保程序变更必被捕获

  • 仅程序切换会重置计数起点,设备重启不重置

  • 每次切换程序(包括切回旧程序)均视为新加工开始

3.4 差分统计逻辑

  1. 同一程序连续加工

本次产量 = MAX(0, 当前累计数 上次累计数)

  1. 程序切换A → B

程序A当日产量锁定不再变化程序B以当前累计数为新起点

  1. 切回历史程序B → A

视为程序A重新开始增量累加到当日总产量

  1. 跨天处理

0点自动重置新日期以首次采集累计值为起点

  1. 异常值保护

累计数跳变、负数、突变过大时自动忽略并告警

4. 统计规则动态配置

  1. 后台可配置统计指标、计算公式、分组维度

  2. 支持自定义统计字段:

    • 产量Tag8

    • 运行时间Tag23

    • 切削时间Tag24

    • 循环时间Tag25

    • 主轴负载、倍率、速度等

  3. 支持自定义表达式/简单公式计算

  4. 支持分组维度设备、员工、日期、NC程序

  5. 配置实时生效,无需修改代码

5. 设备状态监控体系

  1. 在线/离线状态

    • 仅由Ping结果判断

    • 与HTTP采集成功与否无关

  2. 可用性状态

    • 可用/不可用(人工设置)

    • 不可用设备不参与采集

  3. 运行状态来源(发那科)

    • 设备状态:_io_status.value

    • 运行状态:Tag9.value

    • 操作模式:Tag11.value

    • 加工状态:Tag26.value

  4. 展示项

    • 在线/离线、可用/不可用

    • 当前NC程序

    • 当日产量

    • 最后采集时间、距离上次采集时长

6. 数据存储与清理策略

  1. 双数据库架构同一MariaDB实例

    • 业务库:设备、员工、模板、产量、配置

    • 日志库原始采集JSON、系统日志、异常日志

  2. 每次采集:

    • 原始JSON完整存入日志库

    • 解析后结构化数据存入业务库

  3. 自动清理机制:

    • 后台配置日志保留天数

    • 每日自动清理过期日志

    • 业务统计数据永久保留

  4. 数据安全:

    • 采集记录可追溯审计

    • 支持原始数据回放校验

7. 后台管理系统功能

7.1 设备管理

  • 设备增删改查、批量导入/导出

  • 按状态筛选(在线/离线/可用/不可用)

  • 绑定品牌模板、配置采集间隔/Ping间隔

  • 查看采集历史与异常记录

7.2 CNC品牌模板管理

  • 模板增删改查

  • JSON路径可视化配置支持tags数组、id匹配

  • 关键字段指定NC程序名、计数、状态等

  • 模板复制、数值清洗规则配置

7.3 员工与设备分配

  • 员工信息管理

  • 员工与机床绑定默认23台/人,可调整)

  • 绑定记录可追溯、可修改

  • 按员工查看负责设备与产量

7.4 统计规则配置

  • 自定义统计指标

  • 计算公式配置

  • 分组条件配置

  • 统计周期配置

7.5 系统全局配置

  • Ping检测间隔

  • 采集重试次数与间隔

  • 日志保留天数

  • BI大屏刷新频率

  • 系统默认参数

7.6 数据查询与导出

  • 多维度产量查询(设备/员工/日期/程序)

  • 原始采集JSON查看

  • 系统日志、异常日志查询

  • 数据导出Excel

7.7 告警管理

  • 采集失败告警

  • 设备长时间离线告警

  • 产量异常跳变告警

  • 告警列表与标记已处理

8. BI数据大屏

  1. 实时可视化展示

  2. 支持后台自定义展示指标

  3. 支持图表:折线图、柱状图、饼图、设备状态卡片

  4. 刷新频率后台可配置

  5. 支持全屏展示

  6. 支持按车间/班组筛选视图

9. 容错与稳定性机制

  • HTTP采集失败重试3次间隔30秒

  • 连续5次采集失败仅记录日志

  • 网络中断恢复后自动接续采集

  • 设备重启不影响产量统计连续性

  • 数据库异常自动重试

  • 采集服务异常自动记录

四、非功能需求

  1. 性能

    • 单服务器支持 ≥ 100台CNC同时采集

    • 采集响应延迟 < 3秒

    • 大屏刷新无卡顿

  2. 可靠性

    • 7×24小时稳定运行

    • 日志不丢失

    • 产量统计100%可追溯

  3. 可维护性

    • 所有配置页面化,无需改代码

    • 日志清晰,便于排查

    • 代码规范、注释完整

  4. 兼容性

    • 兼容主流品牌CNC HTTP/JSON接口

    • 支持IE11 / Edge / Chrome

五、数据库设计要点

业务库cnc_business

  • 品牌模板表JSON路径、tags匹配规则

  • 设备信息表

  • 员工信息表

  • 员工-设备绑定表

  • 产量日统计表

  • 采集快照表(差分计算用)

  • 系统配置表

  • 告警记录表

日志库cnc_log

  • 原始采集JSON表完整tags结构

  • 系统操作日志表

  • 采集异常日志表

  • 自动清理事件任务

索引优化

  • 设备ID + 时间 联合索引

  • 日期 + 设备 + 程序 联合索引

  • 日志表按时间分区

六、接口与采集规范(发那科标准)

  1. 接口返回格式JSON数组

  2. 设备结构:devicedesctags

  3. 数据项:iddescqualityvaluetime

  4. 关键字段匹配按id精确匹配

  5. 数值处理:自动去除.00000尾缀

  6. 采集失败返回空值,不抛异常

  7. 所有采集行为必须记录日志

七、交付物

  1. 需求规格说明书(本文档)

  2. 数据库设计文档

  3. 后台管理系统

  4. BI数据大屏

  5. Windows采集服务