Files
MES/yawei-mes/.tasks/2025-12-13_v1.0.46_普罗生物_设备报警记录页面-LV.md
2026-04-02 10:39:03 +08:00

372 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 普罗生物MES报警页面 - LabVIEW对接
> 版本v1.0.46
> 日期2025-12-13
> 状态:需求分析
---
## 一、需求背景
建设基于参数判断的设备故障分析与预警系统实现LabVIEW数据采集端与MES系统的对接完成故障数据的记录、展示和趋势分析功能。
---
## 二、系统架构
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ LabVIEW │ │ 数据库 │ │ MES │
│ 数据采集端 │ ──▶ │ 故障记录表 │ ──▶ │ 报警页面 │
│ (报警运算) │ │ │ │ (读取展示) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
```
**数据流向:**
1. LabVIEW采集设备传感器数据
2. LabVIEW进行报警运算三次一致性确认
3. 超限数据写入数据库故障记录表
4. MES读取数据库并展示
---
## 三、数据库设计
### 3.1 故障记录表 (device_fault_record)
| 字段名 | 类型 | 说明 | 示例 | 来源 |
|--------|------|------|------|------|
| id | bigint | 主键ID | 1 | 自增 |
| device_name | varchar(100) | 设备名称 | 发酵罐1号 | LabVIEW |
| sensor_name | varchar(100) | 传感器名/通道 | 温度传感器-CH01 | LabVIEW |
| device_status | tinyint | 设备状态0-停机1-待机2-生产 | 2 | LabVIEW |
| nominal_value | decimal(10,2) | 标称值(标准/理想值) | 25.00 | LabVIEW |
| normal_min | decimal(10,2) | 正常范围下限(下限) | 20.00 | LabVIEW |
| normal_max | decimal(10,2) | 正常范围上限(上限) | 30.00 | LabVIEW |
| lower_lower_limit | decimal(10,2) | 下下限(严重超限下限) | 15.00 | LabVIEW |
| upper_upper_limit | decimal(10,2) | 上上限(严重超限上限) | 35.00 | LabVIEW |
| actual_value | decimal(10,2) | 实测值 | 35.50 | LabVIEW |
| deviation_rate | decimal(10,2) | 偏离度(%)MES计算 | 18.33 | MES计算 |
| fault_level | tinyint | 故障等级1-轻微2-一般3-严重 | 2 | LabVIEW |
| fault_tag | varchar(200) | 故障标注/描述 | 温度超上限 | LabVIEW |
| analysis_type | tinyint | 分析类型1-瞬态2-趋势 | 1 | LabVIEW |
| fault_time | datetime | 故障发生时间 | 2025-12-13 10:00:00 | LabVIEW |
| creator | varchar(64) | 创建者LabVIEW写入时可为系统 | labview | LabVIEW |
| create_time | datetime | 记录创建时间 | 2025-12-13 10:00:05 | LabVIEW |
| updater | varchar(64) | 更新者 | | MES |
| update_time | datetime | 更新时间 | | MES |
| deleted | bit | 是否删除 | 0 | 默认0 |
### 3.2 门限说明
```
门限层级(从内到外):
├── 标称值 (nominal_value):标准/理想值
├── 正常范围normal_min ~ normal_max一般报警
└── 严重范围lower_lower_limit ~ upper_upper_limit严重报警
故障等级判断:
- 实测值在 normal_min ~ normal_max 范围内:正常
- 实测值超出 normal 但在 upper_upper/lower_lower 范围内:一般故障
- 实测值超出 upper_upper_limit 或 lower_lower_limit严重故障
```
### 3.3 偏离度计算公式MES端计算
```
偏离度(%) = (实测值 - 门限值) / 门限值 × 100
其中门限值:
- 实测值 > 正常上限时,门限值 = 正常上限 (normal_max)
- 实测值 < 正常下限时,门限值 = 正常下限 (normal_min)
- 实测值在正常范围内时,门限值 = 标称值 (nominal_value)
```
---
## 四、MES功能设计
### 4.1 故障记录页面(含趋势分析)
**页面路径:** `/mes/device/fault-record`
**页面布局:**
```
┌─────────────────────────────────────────────────────────┐
│ 查询条件:设备名、传感器名、设备状态、故障等级、时间范围 │
├─────────────────────────────────────────────────────────┤
│ 趋势分析图表区域 │
│ (圆滑折线图,显示实测值走势和门限参考线) │
├─────────────────────────────────────────────────────────┤
│ 故障记录列表区域 │
│ (分页表格,展示故障详情) │
└─────────────────────────────────────────────────────────┘
```
**功能点:**
- [x] 列表展示故障记录
- [x] 支持分页查询
- [x] 支持条件筛选:设备名、传感器名、设备状态、故障等级、时间范围
- [x] 支持导出Excel
- [x] 趋势分析图表(圆滑折线图)
**列表字段:**
| 序号 | 字段 | 说明 |
|------|------|------|
| 1 | 设备名称 | device_name |
| 2 | 传感器/通道 | sensor_name |
| 3 | 设备状态 | 停机/待机/生产 |
| 4 | 标称值 | nominal_value |
| 5 | 正常范围 | normal_min ~ normal_max |
| 6 | 严重范围 | lower_lower_limit ~ upper_upper_limit |
| 7 | 实测值 | actual_value |
| 8 | 偏离度 | deviation_rate%MES计算 |
| 9 | 故障等级 | 轻微/一般/严重(带颜色标识) |
| 10 | 故障标注 | fault_tag |
| 11 | 故障时间 | fault_time |
### 4.2 趋势分析图表(集成在故障记录页面)
**图表类型:** 圆滑折线图smooth line chart
**功能点:**
- [x] 设备下拉选择
- [x] 传感器/通道下拉选择(联动设备)
- [x] 时间范围选择(按天)
- [x] 圆滑折线图展示趋势
- [x] 显示门限参考线
**图表设计:**
```
Y轴实测值
X轴时间按天聚合
曲线圆滑折线smooth: true
参考线:
- 上上限(红色虚线)
- 上限(橙色虚线)
- 标称值(绿色实线)
- 下限(橙色虚线)
- 下下限(红色虚线)
数据点:每日平均值/最大值/最小值
```
### 4.3 故障预测(二期)
基于趋势数据的二次分析:
- 线性回归预测
- 异常趋势识别
- 预警通知
---
## 五、接口设计
### 5.1 LabVIEW写入接口数据库直连
LabVIEW直接写入数据库表 `device_fault_record`,需提供:
- 数据库连接信息
- 表结构DDL脚本
### 5.2 MES读取接口
#### 5.2.1 故障记录分页查询
```
GET /admin-api/mes/device-fault-record/page
请求参数:
- deviceName: 设备名称(模糊查询)
- sensorName: 传感器名(模糊查询)
- deviceStatus: 设备状态
- faultLevel: 故障等级
- faultTimeStart: 故障时间开始
- faultTimeEnd: 故障时间结束
- pageNo: 页码
- pageSize: 每页条数
响应:
{
"code": 0,
"data": {
"list": [...],
"total": 100
}
}
```
#### 5.2.2 设备列表(下拉用)
```
GET /admin-api/mes/device-fault-record/device-list
响应:
{
"code": 0,
"data": ["发酵罐1号", "发酵罐2号", ...]
}
```
#### 5.2.3 传感器列表(下拉用,按设备筛选)
```
GET /admin-api/mes/device-fault-record/sensor-list
请求参数:
- deviceName: 设备名称
响应:
{
"code": 0,
"data": ["温度传感器-CH01", "压力传感器-CH02", ...]
}
```
#### 5.2.4 趋势数据查询
```
GET /admin-api/mes/device-fault-record/trend
请求参数:
- deviceName: 设备名称(必填)
- sensorName: 传感器名(必填)
- startDate: 开始日期yyyy-MM-dd
- endDate: 结束日期yyyy-MM-dd
响应:
{
"code": 0,
"data": {
"normalMin": 20.00,
"normalMax": 30.00,
"trendList": [
{
"date": "2025-12-01",
"avgValue": 25.5,
"maxValue": 28.0,
"minValue": 23.0,
"faultCount": 2
},
...
]
}
}
```
---
## 六、LabVIEW端说明
### 6.1 报警运算逻辑
```
三次一致性确认机制:
├── 采集周期10秒/次
├── 使用全局变量 + 移位寄存器
├── 连续3次超限才触发报警
└── 目的:抗干扰,避免误报
```
### 6.2 标准范围配置
- 存储位置:`.xls` 文件
- 便于现场升级和修订
- 包含字段:设备名、传感器名、正常下限、正常上限、故障等级规则
### 6.3 数据写入规范
LabVIEW写入数据库时需填写以下字段
- device_name必填
- sensor_name必填
- device_status必填
- normal_min必填
- normal_max必填
- actual_value必填
- deviation_rate必填需计算
- fault_level必填
- fault_tag选填
- analysis_type必填默认1-瞬态)
- fault_time必填
- creator固定为 'labview'
- create_time当前时间
- deleted固定为 0
- tenant_id固定为 1
---
## 七、开发任务清单
### 7.1 后端开发
| 序号 | 任务 | 优先级 | 状态 |
|------|------|--------|------|
| 1 | 创建数据库表 device_fault_record | P0 | 待开发 |
| 2 | 创建实体类 DeviceFaultRecordDO | P0 | 待开发 |
| 3 | 创建 Mapper 接口 | P0 | 待开发 |
| 4 | 创建 Service 层 | P0 | 待开发 |
| 5 | 创建 Controller 接口 | P0 | 待开发 |
| 6 | 趋势数据聚合查询 | P1 | 待开发 |
### 7.2 前端开发
| 序号 | 任务 | 优先级 | 状态 |
|------|------|--------|------|
| 1 | 故障记录列表页面 | P0 | 待开发 |
| 2 | 查询表单组件 | P0 | 待开发 |
| 3 | 趋势分析图表 | P1 | 待开发 |
| 4 | 导出功能 | P2 | 待开发 |
### 7.3 对接工作
| 序号 | 任务 | 负责方 | 状态 |
|------|------|--------|------|
| 1 | 提供数据库连接信息 | MES | 待提供 |
| 2 | 提供DDL脚本 | MES | 待提供 |
| 3 | LabVIEW数据写入测试 | LabVIEW | 待测试 |
| 4 | 联调验证 | 双方 | 待联调 |
---
## 八、后续规划YIOT升级FIIH
```
当前方案YIOT数据采集 → LabVIEW处理 → 数据库 → MES
升级方案FIIH内置门限 → UMS软件处理 → 数据库 → MES
```
升级后优势:
- 门限参数内置于采集设备
- 减少中间处理环节
- 普罗生物定制UMS软件直接处理
---
## 九、附录
### 9.1 设备状态枚举
```java
public enum DeviceStatusEnum {
SHUTDOWN(0, "停机"),
STANDBY(1, "待机"),
PRODUCTION(2, "生产");
}
```
### 9.2 故障等级枚举
```java
public enum FaultLevelEnum {
MINOR(1, "轻微"),
NORMAL(2, "一般"),
SEVERE(3, "严重");
}
```
### 9.3 分析类型枚举
```java
public enum AnalysisTypeEnum {
TRANSIENT(1, "瞬态"),
TREND(2, "趋势");
}
```