当前位置: 首页 > news >正文

基于MQTT和Sparkplug B的UNS系统的元数据管理

一个基于 MQTT + Sparkplug BUNS(Unified Namespace)统一命名空间 要真正发挥作用,相关的元数据(metadata)管理系统 必须设计得清晰、层次化、且可自动维护。

我们可以从三个层面来分析和设计:


一、明确元数据(Metadata)的作用与范围

在 MQTT + Sparkplug B 的 UNS 中,元据数管理的核心目的是:

“让数据的语义、来源、结构、单位、质量状态等信息在全网内被一致地理解。”

因此元数据不仅是描述“名字”,更包括:

元数据类别说明典型来源
结构元数据设备层级、节点、群组、指标(Tag)层次Sparkplug B Topic 结构
语义元数据变量含义、单位、精度、工程上下限、类别工程数据库、ISA-95模型
状态元数据数据质量(Good/Bad)、时间戳、设备状态、触发类型Sparkplug payload + MQTT message header
上下文元数据设备所属生产线、工段、工厂、资产编号来自资产管理系统(AMS/EAM)或配置中心

二、MQTT Topic 层面的元数设计

Sparkplug B 已定义了严格的 Topic 结构:

spBv1.0/<Group_ID>/<Message_Type>/<Edge_Node_ID>/<Device_ID>

但这个结构只是通信语义的“骨架”。要让它成为 UNS 的“语义命名空间”,需要在此基础上拓展一层 命名规则元数据

推荐做法:

  1. 定义统一的命名空间映射规范

    • 例如:

      spBv1.0/SITE_A/DBIRTH/LINE1_ROBOT1/ARM_MOTOR
      

      其中:

      • SITE_A → 工厂

      • LINE1_ROBOT1 → 生产线 + 设备

      • ARM_MOTOR → 子模块(可对应资产清单)

  2. 在中央配置库维护Topic命名规则元数据

    • 建立一个 JSON/YAML 格式的命名空间注册表,例如:

      namespace:SITE_A:description: "Plant A Main Site"line:LINE1_ROBOT1:device:ARM_MOTOR:topic: "spBv1.0/SITE_A/LINE1_ROBOT1/ARM_MOTOR"tags:speed:unit: "rpm"datatype: "float"source: "PLC_Tag_101"torque:unit: "Nm"datatype: "float"source: "PLC_Tag_102"
      
  3. 命名空间注册表应可被MQTT Broker或UNS服务动态加载

    • 可以在 EMQX / HiveMQ 等 broker 的 retained message 中发布元数信息;

    • 或者在 UNS 管理端(例如 Node-RED、n8n、或自研配置中心)维护一套 Topic–元数据映射表 并对外提供 REST/GraphQL 接口。


三、Sparkplug B Payload 层面的元数管理

Sparkplug B payload 是二进制格式(ProtoBuf),其中的 Metric 结构支持元数据字段:

message Metric {string name = 1;DataType datatype = 2;bytes value = 3;MetaData metadata = 8;
}

MetaData 可包含:

  • units

  • description

  • displayName

  • format

  • engLow / engHigh

  • step

  • scaling

  • customMetaData

推荐策略:

  1. 在 DBIRTH 阶段完整发布元数据

    • DBIRTH 是“设备生存声明”,此时应携带完整的Metric元信息;

    • 订阅方可以自动注册这些信息形成 UNS 数据目录。

  2. 在 DDATA 阶段只发布实时值

    • 避免元数据重复传输;

    • 若元数据变化(例如单位变更),再通过重新发布 DBIRTH 事件。

  3. 可扩展自定义 MetaData

    • 例如增加:

      map<string, string> customMetaData = 9;
      

      用来携带 ISA-95 语义标签(如:EquipmentClass、ProcessSegmentID)。


四、元数据的集中管理与可视化机制

为避免多源定义混乱,应设置一个 UNS 元数管理中心,可以是:

  • 一个数据库(如 PostgreSQL + JSONB);

  • 一个轻量级服务(如 Flask / FastAPI);

  • 或者直接在 MQTT Broker 上发布元数Topic,如:

    $UNS/meta/<Group>/<Node>/<Device>
    

这些Topic可以存放元数据快照,供可视化和分析系统调用。

元数管理中心的功能:

功能描述
命名空间注册表定义和校验 Topic 命名规则
元数据存储从 DBIRTH 抽取的 Metric 元信息集中管理
版本与历史记录设备/变量的元数据变更历史
验证与一致性检查检测Topic命名、单位、数据类型是否与标准一致
可视化浏览提供UNS命名树视图(如:厂区 → 产线 → 设备 → 信号)

五、总结:UNS元数管理体系架构图

 ┌──────────────────────────────┐│         上层系统 (MES/BI/AI) │└──────────────┬───────────────┘│ 通过语义接口访问┌──────────────┴───────────────┐│     UNS 服务层(Metadata Registry) ││  • Topic规则管理                  ││  • Metric元数据提取/同步         ││  • 命名空间树结构维护            │└──────────────┬───────────────┘│ 订阅DBIRTH/DEATH┌──────────────┴───────────────┐│        MQTT Broker (EMQX等)    ││  • Sparkplug B协议管理          ││  • Retained Message元数缓存     │└──────────────┬───────────────┘│┌──────────────┴───────────────┐│   Edge Node / Device          ││  • 发布DBIRTH含Metric元数据    ││  • 定期发布DDATA实时值         │└──────────────────────────────┘

http://www.dtcms.com/a/574413.html

相关文章:

  • Origin将Y偏移图升级为3D瀑布图
  • 职业学院网站建设方案做网站怎么搭建环境
  • 网站副标题wordpresswordpress做个米表
  • 开淘宝店怎么做充值网站杭州巴顿品牌设计
  • 北京市城乡建设协会官方网站开发网站如何选需要
  • VASP 教程:使用 VASP 进行机器学习力场训练
  • 受限长度路径搜索算法
  • H265 vs AV1 vs H266 rdoq对比
  • 在Linux服务器上安装CVAT (Docker 28.5.1)
  • 四川学校网站建设农业公司网站建设
  • 网站建设报价购物凡科建站提示网站建设中
  • 基于STM32的多模态智能门锁系统设计与实现
  • 淮北网站建设如何提高 网站的点击量
  • OpenAI Agent 工具全面开发者指南——从 RAG 到 Computer Use —— 深入解析全新 Responses API
  • 国外文件传输网站新浪企业邮箱
  • 强制将析构函数放到类外定义
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P07-06 能力输入的回调
  • 中企动力做网站贵吗wordpress wp-cumulus
  • 网站没有备案信息该怎么做气象网站建设
  • 6 AutoGen 多 Agent 协作框架:构建智能团队协作系统
  • 昆明做商城网站多少钱网站统计功能设计
  • 优秀个人网站图片如何建立一个小程序的网站
  • 对比28种时间序列预测算法在某个数据集上的表现-全套源码
  • LibreTorrent 4.0.1 | 一款开源磁力软件,不限速,支持RSS
  • 电子商务网站建设与管理的总结做网站用哪种语言好
  • 阿里巴巴网站策划书全球速卖通网址
  • 电子商务网站建设风格seo优化公司
  • 营销网站建设资料扫码支付做进商城网站
  • 10.进程间通信(四)
  • STM32项目分享:智能书桌