2. 制造时序数据模型与元数据设计

制造时序数据建模的核心矛盾在于:设备产生的数据是“按时间连续到达的物理量”,而业务分析需要的是“按设备、产线、工厂、产品批次等维度可聚合、可追溯的结构化信息”。如果只把数据写成 (timestamp, value),后续做OEE、良率分析、能耗对标时就会陷入“知道数值却不知道它属于谁、装在哪、量纲是什么”的困境。因此,制造时序数据模型必须同时解决三件事:测点如何定义、设备如何分层、资产与标签如何组织,并在此基础上约定时间戳精度、数据质量标记和元数据管理方式。

测点模型:时序数据的最小语义单元

测点(Tag/Point)是采集系统能独立寻址的最小数据单元,它不等同于物理传感器。一个温度传感器可能对应多个测点(原始值、滤波值、报警状态),一个测点也可能由多个传感器融合计算得到。工程上通常用一张测点表描述其静态属性:

字段示例说明
point_idPT-3F-CNC01-SPINDLE-TEMP全局唯一测点编码
device_idCNC-3F-001所属设备
measure_typetemperature物理量类型
unit℃工程单位
data_typefloat32存储类型
sample_interval1000 ms标称采样周期
deadband0.5死区,变化小于该值不落库
precision0.1有效小数位

其中 deadband 与 sample_interval 直接决定存储量。以一条产线200个测点、1秒采样、每天运行20小时估算,原始点数约1440万/天;若对缓变量设置0.5℃死区,实测落库量常可降至30%~50%。这是示例估算,实际比例取决于工艺波动幅度。

设备层级模型与资产模型

制造现场的设备天然具有层级:企业 → 工厂 → 车间 → 产线 → 工位/设备 → 部件 → 测点。层级模型解决“数据从哪里来、属于哪条产线”的归属问题,常用父子关系表或路径编码表达,例如 F1/A2/L3/CNC01/SPINDLE。路径编码的优点是聚合查询快,缺点是设备搬迁后需要重写路径,因此更稳妥的做法是保留 parent_id 关系表,路径仅作为冗余索引。

资产模型则从“管理对象”视角描述设备:资产编号、型号、厂商、投产日期、保修状态、所属成本中心、关键备件清单。它与设备层级模型是多对一或交叉关系——同一台设备既是层级树上的节点,也是资产台账中的一条记录。二者通过 device_id 与 asset_id 的映射表关联,避免把管理属性硬编码进测点表。

制造时序数据模型:层级、资产与测点关联 设备层级模型 企业 Enterprise 工厂 Factory 车间 Workshop 产线 Line 设备 Device 部件 Component 测点 Point 资产模型 asset_id / 资产编号 型号 / 厂商 / 序列号 投产日期 / 保修状态 成本中心 / 责任人 关键备件清单 维护计划 / 点检记录 device_id ↔ asset_id 标签体系 工艺标签:车削/铣削/磨削 位置标签:3F-A区-东侧 状态标签:关键/备用 产品标签:A型/B型 质量标签:SPC监控点 能耗标签:高耗能设备 自定义标签:可扩展KV 测点/设备可挂载多个标签

标签体系:让数据可被业务检索

层级模型是“树”,标签体系是“网”。同一台设备可能同时属于“车削工艺”“A型产品专机”“高耗能设备”“SPC关键监控点”等多个业务视角。标签通常以键值对形式存储,如 process= turning、product= A、energy_level= high。设计时要注意:标签数量不宜无限膨胀,建议按域划分命名空间(process.*、location.*、quality.*),并限制单测点标签数在20个以内,否则查询时标签索引的维护成本会超过收益。

时间戳精度与数据质量标记

制造现场的时间戳有三个来源:设备PLC本地时钟、边缘网关接收时间、平台入库时间。三者可能相差数十毫秒到数秒。工程上建议统一以UTC毫秒级时间戳存储,同时保留 source_ts(设备时间)与 ingest_ts(入库时间)两个字段,便于排查时钟漂移。对于高频振动、电流波形等场景,精度需提升到微秒级,此时应使用 int64 纳秒时间戳,避免浮点精度丢失。

数据质量标记是时序数据可信度的“元数据”。常见标记包括:GOOD(正常)、BAD(传感器故障或超量程)、UNCERTAIN(通信抖动或校验失败)、STALE(超过3个采样周期未更新)、MANUAL(人工补录)。质量标记应随每个数据点或每个数据块存储,而不是事后推断。例如某测点连续5个周期值不变且质量标记为 STALE,则聚合计算时应剔除该段,而不是把它当作真实稳态值参与OEE统计。

元数据管理方案与案例

元数据管理建议采用“注册中心 + 缓存 + 版本化”三层结构。注册中心(如基于关系库或配置中心)保存测点、设备、资产、标签的权威定义;边缘侧缓存一份只读副本,断网时仍能按本地元数据打标;每次变更生成版本号,时序数据写入时记录 meta_version,保证历史数据可按当时定义解释。

示例:某机加工车间元数据注册片段
{
  "point_id": "PT-3F-CNC01-SPINDLE-TEMP",
  "device_id": "CNC-3F-001",
  "asset_id": "AST-CNC-2021-017",
  "measure_type": "temperature",
  "unit": "℃",
  "sample_interval_ms": 1000,
  "deadband": 0.5,
  "precision": 0.1,
  "tags": {
    "process": "turning",
    "location": "3F-A-east",
    "quality": "spc_monitor"
  },
  "meta_version": "v2024.06.1"
}

该片段中,deadband=0.5 表示温度变化小于0.5℃时不落库;precision=0.1 表示存储时保留一位小数;meta_version 用于追溯。若后续把采样周期从1000ms调整为500ms,只需发布新版本,历史数据仍按旧版本解释,避免“同一测点前后语义不一致”的隐性错误。

常见误区:把设备层级路径直接当作测点ID的一部分(如 F1_A2_L3_CNC01_TEMP)。一旦设备搬迁或产线重组,所有历史数据的ID语义都会失效。正确做法是测点ID保持稳定,层级关系通过 device_id 外键和关系表动态维护。

综上,制造时序数据模型的设计顺序应是:先定义稳定的测点ID与质量标记,再建立设备层级与资产映射,最后用标签体系补充业务维度。时间戳精度和元数据版本化贯穿始终,确保数据在“采集—存储—聚合—分析”全链路中语义一致、可追溯、可解释。