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

11 KiB
Raw Blame History

普罗生物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

页面布局:

┌─────────────────────────────────────────────────────────┐
│  查询条件:设备名、传感器名、设备状态、故障等级、时间范围  │
├─────────────────────────────────────────────────────────┤
│                    趋势分析图表区域                       │
│         (圆滑折线图,显示实测值走势和门限参考线)          │
├─────────────────────────────────────────────────────────┤
│                    故障记录列表区域                       │
│              (分页表格,展示故障详情)                    │
└─────────────────────────────────────────────────────────┘

功能点:

  • 列表展示故障记录
  • 支持分页查询
  • 支持条件筛选:设备名、传感器名、设备状态、故障等级、时间范围
  • 支持导出Excel
  • 趋势分析图表(圆滑折线图)

列表字段:

序号 字段 说明
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

功能点:

  • 设备下拉选择
  • 传感器/通道下拉选择(联动设备)
  • 时间范围选择(按天)
  • 圆滑折线图展示趋势
  • 显示门限参考线

图表设计:

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 设备状态枚举

public enum DeviceStatusEnum {
    SHUTDOWN(0, "停机"),
    STANDBY(1, "待机"),
    PRODUCTION(2, "生产");
}

9.2 故障等级枚举

public enum FaultLevelEnum {
    MINOR(1, "轻微"),
    NORMAL(2, "一般"),
    SEVERE(3, "严重");
}

9.3 分析类型枚举

public enum AnalysisTypeEnum {
    TRANSIENT(1, "瞬态"),
    TREND(2, "趋势");
}