单元一:设计模型


解决方案专家需要首先根据业务需求,设计资产模型、测点的映射关系和数据流,确保数据结构支持监控和分析需求。

任务 1:设计资产模型


通过 需求分析 - 资产层级结构 可知,共有 5 种类型的资产,可先确定需要建 5 个模型。

其中只有电表和水表会直接上送数据,其余资产数据均这些数据计算得来。因此需要为工厂、产线和工艺设备模型的测点配置计算公式,将电表和水表的数据转换成各层级的数据。EnOS 中,这类计算公式称为 特性规则

另外,电表和水表用于监控各节点的数据,可视为这一节点的组件。在 EnOS 中,这类设备可开放为 组件,方便多次复用和统一维护。


在 EnOS 模型管理中准备以下 5 个模型:

模型名称

属性

测点

用途

工厂

  • 编码(code):工厂唯一标识,字符串
    - 名称(name):工厂名称,字符串

  • 总电量(total_energy):总电表的日累计净电量,单位 kWh,测点类型 AI,数据类型 float
    - 实时功率(total_power):总电表的瞬时功率,单位 kW,测点类型 AI,数据类型 float
    - 总用水量(total_flow):总水表的日累计用水量,单位 m³,测点类型 AI,数据类型 float
    - 实时用水量(total_instantaneous_flow):总水表的瞬时流量,单位 m³/h,测点类型 AI,数据类型 float

作为资产树的顶层节点,汇总整个工厂的能源和水资源消耗数据,数据通过总电表和总水表统计而得,用于全局能源和水资源管理。

产线

  • 编码(code):产线唯一标识,字符串
    - 名称(name):产线名称,字符串

  • 总电量(total_energy):产线级电表日累计净电量,单位 kWh,测点类型 AI,数据类型 float
    - 实时功率(total_power):产线级电表瞬时功率,单位 kW,测点类型 AI,数据类型 float
    - 总用水量(total_flow):产线级水表日累计用水量,单位 m³,测点类型 AI,数据类型 float
    - 实时用水量(total_instantaneous_flow):产线级水表瞬时流量,单位 m³/h,测点类型 AI,数据类型 float

分析产线的能源和水资源消耗效率,用于产线性能评估和节能节水改进。

工艺设备

  • 编码(code):工艺设备的唯一标识,字符串
    - 名称(name):设备名称,字符串
    - 类型(type):工艺类型,如切割或焊接,字符串
    - 设备型号(model):设备型号,字符串

  • 总电量(total_energy):设备级电表日累计净电量,单位 kWh,测点类型 AI,数据类型 float
    - 实时功率(total_power):设备级电表瞬时功率,单位 kW,测点类型 AI,数据类型 float
    - 总用水量(total_flow):设备级水表日累计用水量,单位 m³,测点类型 AI,数据类型 float
    - 实时用水量(total_instantaneous_flow):设备级水表瞬时流量,单位 m³/h,测点类型 AI,数据类型 float

监控单个设备的能源和水资源消耗,用于设备维护和能效分析。

电表

  • 编码(code):电表的唯一标识,字符串
    - 名称(name):电表名称,字符串
    - 电表最大表读数(electric_max_reading):电表最大读数值,浮点数
    - 电表最大斜率(electric_max_slope):电表最大变化率,浮点数
    - CT/PT 变比(ct_pt_ratio):电流/电压互感器变比,浮点数

  • 正向有功读数(forward_active_energy):日累计电量,单位 kWh,测点类型 PI,数据类型 float
    - 功率(power):瞬时功率,单位 kW,测点类型 AI,数据类型 float

采集和记录电能消耗数据,支持电量和功率监控,超出最大读数或斜率时触发告警,用于数据校验和异常检测。

水表

  • 水表最大表读数(water_max_reading):水表最大读数值,浮点数
    - 水表最大斜率(water_max_slope):水表最大变化率,浮点数

  • 累计流量(cumulative_flow):日累计用水量,单位 m³,测点类型 PI,数据类型 float
    - 瞬时流量(instantaneous_flow):瞬时用水量,单位 m³/h,测点类型 AI,数据类型 float

采集和记录水资源消耗数据,支持累计和瞬时流量监控,超出最大读数或斜率时触发告警,用于水资源管理和异常检测。

任务 2:设计映射关系


基于 需求分析 - 资产层级结构,需在上述模型中为测点配置特性规则,定义各层级资产测点的计算公式。

假设与前提


  • 原始数据:

    • 电表:forward_active_energy(kWh,累积电量,PI 类型),power(kW,瞬时功率,AI 类型),每 1 分钟采样。

    • 水表:cumulative_flow(m³,累积流量,PI 类型),instantaneous_flow(m³/h,瞬时流量,AI 类型),每 1 分钟采样。

  • 时间窗口:5 分钟窗口。

  • 模型层级:每一层资产(如工厂的 total_energy)等同于同一层级的组件测点(如工厂级电表的 forward_active_energy)。

特性规则


工厂模型

测点

表达式

total_energy (kWh)

="meter_e.forward_active_energy"

total_power (kW)

="meter_e.power"

total_flow (m³)

="meter_w.cumulative_flow"

total_instantaneous_flow (m³/h)

="meter_w.instantaneous_flow")

产线模型

测点

表达式

line_energy (kWh)

="meter_e.forward_active_energy"

line_power (kW)

="meter_e.power"

line_flow (m³)

="meter_w.cumulative_flow"

line_instantaneous_flow (m³/h)

="meter_w.instantaneous_flow"

工艺设备模型

测点

表达式

equip_energy (kWh)

="meter_e.forward_active_energy"

equip_power (kW)

="meter_e.power"

equip_flow (m³)

="meter_w.cumulative_flow"

equip_instantaneous_flow (m³/h)

="meter_w.instantaneous_flow"

电表:meter_e

测点

表达式

forward_active_energy (kWh)

SUM(CASE WHEN timestamp = MAX(timestamp) THEN "meter_e.forward_active_energy" WHEN timestamp = MIN(timestamp) THEN -"meter_e.forward_active_energy" ELSE 0 END)

power (kW)

AVG("meter_e.power")

水表:meter_w

测点

表达式

cumulative_flow (m³)

SUM(CASE WHEN timestamp = MAX(timestamp) THEN "meter_w.cumulative_flow" WHEN timestamp = MIN(timestamp) THEN -"meter_w.cumulative_flow" ELSE 0 END)

instantaneous_flow (m³/h)

AVG("meter_w.instantaneous_flow")

任务 3:设计数据流


  • 设备接入:电表和水表通过 MQTT 协议接入 EnOS 设备连接与管理。

  • 数据存储:测点数据存储至时序数据库(TSDB),1 分钟采样。

  • 数据处理:通过特性规则计算电量、功率和流量,聚合至逻辑资产(如工厂总用电量)。

  • 数据展示:通过数字孪生可视化展示 TSDB 数据,通过统一监测构建资产数据查询页面。


../_images/dataflow.png