建模进阶:动态建模


动态建模 允许你在不重新接入物理设备、不中断现有业务的情况下,灵活调整设备在云端的业务模型。

在实际项目中,你可能会遇到以下情况:

  • 跨部门数据共享难题:设备已经基于模型 A 接入,现在需要另一个模型 B 也能使用这台设备的数据。传统方式需要重复接入设备,成本高且管理复杂。

  • 设备接入后功能升级困难:设备已基于模型 C 接入后,需要添加一些设备专属的新测点,但又不想改动原模型。传统建模不支持换绑限制了交付,各领域不得不基于私有模型做接入,导致接入工艺复杂,维护成本高。


动态建模通过 模型加绑模型换绑 功能,解决了跨业务数据共享难、设备模型固化无法升级等痛点。

本文面向模型所有者和交付运维人员,介绍如何进行模型加绑和模型换绑,实现跨业务数据共享和设备功能无损升级。

前提条件


  • 模型所有者已拥有 EnOS 应用门户的开发者角色权限,并有权在分组内新建或编辑模型。如有需要,可联系 OU 管理员授权。

  • 交付/运维人员已拥有 EnOS 应用门户的开发者角色权限,有权访问设备和数据相关菜单。如有需要,可联系 OU 管理员授权。

  • 已准备源模型 ID、设备资产 ID 等关键信息。

场景 1:跨业务共享数据——模型加绑


当 A 业务部门已经基于模型 A 接入了一块电池设备,而 B 业务部门期望在自己的应用中也能使用这块电池的数据。下表展示这一场景中传统方案与动态建模方案的差异:


方案

实现方式

局限性与优势

传统建模

B 部门需基于自己的模型创建一个新设备,并自行开发数据转发工具,将电池设备的数据转发到 B 部门的设备上。

局限性:
1. 采样精度丢失:设备原始数据可能是秒级上报,转发工具处理后往往降为分钟级。
2. 存储成本高:同一份测点数据可能在时序数据库(TSDB)中存储了两份。
3. 历史数据缺失:B 部门的设备无法获取转发工具运行之前的历史测点数据。

动态建模
(模型加绑)

B 部门新建模型 B,配置模型 B 与模型 A 间的特性映射规则,并对电池设备进行 加绑。系统自动基于储能模型创建出一个新资产,并按规则自动转换测点。

优势:
1. 无采样降频:直接映射原始数据流,保持原有精度。
2. 降低存储成本:测点数据在 TSDB 中仅存储一份,通过逻辑映射共享。
3. 数据完整性:B 部门的新资产能够直接读取加绑操作执行前的所有历史数据。


模型加绑功能旨在解决一台物理设备的数据需要被多个业务部门以不同模型视角消费的问题。通过模型加绑,可以实现跨业务数据共享。

操作流程


下图介绍模型加绑的操作流程:


../_images/model_binding_process.png


  1. 定义跨模型规则:由模型所有者在目标模型中配置特性规则,让目标模型从源模型中获取数据。

  2. 加绑模型:为物理设备和目标模型建立关联。

  3. 配置数据流向(可选):根据业务需要,为目标模型配置数据归档和订阅任务。

  4. 验证数据:检查加绑后的实时数据、历史趋势、应用调用等是否正常。

模型架构


假设目标模型是模型 B,源模型是模型 A,加绑后的模型架构如下:


../_images/model_binding_archi.png


模型加绑操作不会影响原设备资产,新生成的设备资产是原设备的逻辑镜像,可独立应用于不同业务场景。

步骤 1:定义跨模型规则


操作人

操作位置

目标模型所有者

开发者控制台 > 模型管理


建立映射关系是模型加绑的前提。你需要在 EnOS 模型管理中配置特性规则,让目标模型(模型 B)从源模型(模型 A)中获取数据。

  1. 检查模型 B 的继承关系,确保模型 B 与模型 A 遵循 跨模型规则创建原则

  2. 在 EnOS 应用门户中,进入 开发者控制台 > 数据 > 模型管理 > 模型,打开模型 B 的配置页面。

  3. 选择右上角的 config 编辑,进入模型编辑状态。

  4. 进入 特性规则 配置页面,选择 新建跨模型规则

  5. 在弹窗中配置规则的 名称映射模型 选择模型 A。

    ../_images/model_binding_newrule.png
  6. 在特性规则列表,选择该规则对应的 config 配置,进入规则配置页面。

  7. 在规则配置页面,列表中展示模型 B 的所有属性和测点。选择对应的 config,可为属性或测点配置上行和下行表达式。更多信息,参见 特性规则创建说明

    例如:模型 A 的温度单位是摄氏度 (temp_c),模型 B 需要开尔文 (temp_k)。此时可配置上行表达式:temp_k = temp_c + 273.15

    ../_images/model_binding_expression.png
  8. 为所有属性和测点配置特性规则后,选择右下角的 发布,发布模型,完成模型配置。

步骤 2:为设备加绑模型


操作人

操作位置

交付/运维人员

开发者控制台 > 设备资产


配置好映射规则后,需要将物理设备与模型 B 关联起来。

  1. 在 EnOS 应用门户,进入 开发者控制台 > 设备 > 设备管理 > 设备资产

  2. 选择 新建模型变更任务,进入模型变更任务页面。

  3. 选择 变更类型模型加绑,配置任务信息:

    • 源模型:选择已接入设备的模型(模型 A)。

    • 目标模型:选择要加绑的新模型(模型 B)。只有当模型 B 中定义了与模型 A 的跨模型规则,此时才能选择模型 B。

    • 源产品/目标产品:根据设备实际归属进行选择。

    ../_images/model_binding_task.png
  4. 选择 下一步,进入 选择设备 页面,勾选需要加绑模型的设备。

  5. 选择 下一步,进入 属性配置 页面。系统将生成属性配置模板:

    • 模板内预填入设备基于模型 A 已配置的属性值。

    • 若模型 B 有新增或更新的静态属性,需在此步骤中补充或修改:选择 下载模板,更新模板后上传。

  6. 选择 完成,完成模型加绑。


完成后,设备资产 列表中将自动生成新的设备资产,默认命名规则为”原设备名-1”,可按需自定义资产名称。该新资产与原物理设备绑定,但关联模型 B。原设备资产保持不变,继续关联模型 A。

步骤 3(可选):配置数据流向


操作人

操作位置

交付/运维人员

开发者控制台 > 数据归档/数据订阅


新建的模型默认不会自动开启数据归档或订阅,可根据业务需求进行配置。

  • 数据归档

    • 适用场景:数据归档保证数据定期归档到更经济高效的存储中,便于后续趋势分析、故障回溯和审计。

    • 操作步骤:在 开发者控制台 > 数据 > 数据归档 中为模型 B 新建归档任务,确保新资产的数据被存储。更多信息,参见 配置归档任务

  • 数据订阅

    • 适用场景:数据订阅允许第三方系统或应用实时或近实时消费模型的数据,实现跨域共享与联动。

    • 操作步骤:在 开发者控制台 > 数据 > 数据订阅 中为模型 B 新建订阅任务。更多信息,参见 开发数据订阅任务

步骤 4:验证数据


操作人

操作位置

交付/运维人员

开发者控制台 > 设备资产/时序洞察


为确保模型加绑后的数据流向正确、映射规则生效,需按照以下步骤对数据进行验证:

  • 对比实时数据:在 开发者控制台 > 设备 > 设备管理 > 设备资产 中依次打开原设备资产和新设备资产的详情页,在 测点 标签页查看设备资产的最新数据值。如果在映射规则中配置了转换公式,数值不同符合预期(如 25℃ vs 298.15K)。更多信息,参见 查看设备数据

  • 检查历史趋势:在 开发者控制台 > 数据 > 时序洞察 页面,选择原设备资产和新设备资产,配置时间范围和测点,查看数值曲线是否重合。注意:系统根据从近到远的时间顺序基于映射规则计算出新设备资产的测点值,可能需要一段时间才能查看新设备资产的历史数据。

  • 验证应用调用(可选):若设备数据已在应用中投入使用,可前往应用查看原设备和新设备数据是否正常。

  • 验证命令下发(可选):对新设备资产下发一次测试命令,并确认命令已被转发到物理设备且设备返回了正确的回执。可以选择以下一种方式:

模型加绑最佳实践


  • 映射规则先行:在模型 B 中先完成并测试映射规则与转换公式。

  • 小范围灰度:先在 1–3 台设备试点,观察 1–2 小时再批量操作。

  • 验证清单:对比实时数据,核验公式转换,检查历史曲线连续性,确认必填静态属性已同步。

  • 按需归档/订阅:灰度期评估存储与带宽成本,决定是否开启数据归档或订阅。

  • 设备业务命名:为新资产采用可识别的命名规则,例如“原设备名-业务后缀”。如有需要,可使用 Update Device API 批量修改设备名。

  • 监控与回滚:为加绑后的模型和归档/订阅任务建立监控,在灰度期设置较敏感的告警阈值以便快速回滚或修复。

场景 2:设备功能升级——模型换绑


在项目交付初期,设备使用通用的公有模型(模型 C)接入。随着业务发展,部分设备扩展了新测点和功能。下表展示这一场景中传统方案与动态建模方案的差异:


方案

实现方式

局限性与优势

传统建模

设备接入后无法更换模型。为了保持未来扩点的灵活性,交付团队不得不在项目初期就规定所有设备必须使用私有模型接入。

局限性:
1. 交付工艺复杂:每个项目都要维护大量私有模型,增加了配置工作量。
2. 资源浪费:大量重复或微调的模型占用了云端的存储和计算资源。

动态建模
(模型换绑)

设备接入时先按 公有模型 快速接入。后续如果需要扩点,再利用 换绑 能力,将特定设备平滑切换到继承自公有模型的 私有子模型 上。

优势:
1. 数据连续性:保留设备的历史数据,确保数据连续性,实现无缝衔接。查询数据时感觉不到模型发生过变化。
2. 简化交付工艺:初期标准化接入,速度快,复杂度低。
3. 按需扩展:仅针对有需求的设备进行模型升级,减少系统中的模型总量,降低维护压力。

操作流程


下图介绍模型换绑的操作流程:


../_images/model_rebinding_process.png


  1. 创建子模型:由模型所有者基于通用模型创建专用子模型。

  2. 换绑模型:将设备绑定的模型变更为子模型。

  3. 边缘测点映射(可选):为新增测点配置边缘侧测点映射。

  4. 更新数据流向(可选):根据业务需要,更新数据归档和订阅任务。

  5. 验证数据:检查换绑后的实时数据和历史趋势等。

模型架构


假设原关联模型 C,现需要关联模型 D,换绑后的模型架构如下:


../_images/model_rebinding_archi.png


模型换绑基于继承关系平滑升级模型,在不中断数据连续性的同时,保持主模型的稳定性和差异化管控。

步骤 1:创建子模型


操作人

操作位置

模型 D 所有者

开发者控制台 > 模型管理


在换绑前,需在 EnOS 中创建专用子模型(模型 D)。

  1. 在 EnOS 应用门户中,进入 开发者控制台 > 数据 > 模型管理 > 模型

  2. 在模型列表中查找模型 C,选择模型 C 对应的 … > 继承

  3. 子模型将继承父模型的配置,可在弹窗中按需修改子模型的分组、标识符、名称等基本信息。

  4. 选择 配置模型,在子模型中新增需要的测点和属性。更多信息,参见 配置模型定义

  5. 配置后,选择右下角的 发布,发布模型,完成子模型配置。

步骤 2:为设备换绑模型


操作人

工具/位置

交付/运维人员

开发者控制台 > 设备连接与管理


创建模型 D 后,需要将升级设备关联的模型从模型 C 切换为模型 D。

  1. 在 EnOS 应用门户,进入 开发者控制台 > 设备 > 设备管理 > 设备资产

  2. 选择 新建模型变更任务,进入模型变更任务页面。

  3. 选择 变更类型模型换绑,配置任务信息:

    • 源模型:选择已接入设备的模型(模型 C)。

    • 目标模型:选择要换绑的新模型(模型 D)。列表中仅展示源模型的子模型。

    • 源产品/目标产品:根据设备实际归属进行选择。

    ../_images/model_rebinding_task.png
  4. 选择 下一步,进入 选择设备 页面,勾选需要换绑模型的设备。

  5. 选择 下一步,进入 属性配置 页面。系统将生成属性配置模板:

    • 模板内预填入设备基于模型 C 已配置的属性值。

    • 若模型 D 有新增或更新的静态属性,需在此步骤中补充或修改:选择 下载模板,更新模板后上传。

  6. 选择 完成,完成模型换绑。


完成后,设备的关联模型由模型 C 切换为模型 D,历史数据仍可访问,新测点开始接收数据。

步骤 3(可选):配置边缘侧测点映射


操作人

工具/位置

交付/运维人员

EnOS Edge


当模型 D 的新增测点需要由边缘网关采集或转换时,需要在边缘侧配置测点映射。若设备直连云端且已按模型 D 字段上报,可跳过此步骤。

需要配置边缘侧映射的典型场景如:

  • 新增的传感器通过网关接入,需将物理寄存器或节点映射到模型 D 测点。

  • 上报字段名、单位或量纲与模型 D 定义不一致,需在边缘侧做字段转换或计算。


若使用 EnOS Edge 边缘网关,可参考 EnOS Edge 接入教程 中的 配置接入模板以映射数据点 步骤,完成设备测点与模型测点之间的映射。

步骤 4(可选):更新数据流向


操作人

操作位置

交付/运维人员

开发者控制台 > 数据归档/数据订阅


根据业务需求,配置或调整模型 D 的数据归档或订阅策略。

  • 数据归档

    • 适用场景:数据归档保证数据定期归档到更经济高效的存储中,便于后续趋势分析、故障回溯和审计。

    • 操作步骤:在 开发者控制台 > 数据 > 数据归档 中为模型 D 新建归档任务。更多信息,参见 配置归档任务

  • 数据订阅

    • 适用场景:数据订阅允许第三方系统或应用实时或近实时消费模型的数据,实现跨域共享与联动。

    • 操作步骤:

      • 若换绑前的订阅任务是基于模型(模型 C)订阅的,系统将自动获取换绑后的模型数据,无需配置。

      • 若换绑前的订阅任务是按测点订阅的,且需要为新增测点配置订阅,需手动修改订阅任务,添加测点。

      更多信息,参见 开发数据订阅任务

步骤 5:验证数据


操作人

操作位置

交付/运维人员

开发者控制台 > 设备资产/时序洞察


为确保模型换绑后的数据流向正确、映射规则生效,需按照以下步骤对数据进行验证:

  • 检查实时数据:在 开发者控制台 > 设备 > 设备管理 > 设备资产 中打开设备资产的详情页,在 属性测点 标签页检查设备资产的最新数据值是否正常上报。更多信息,参见 查看设备数据

  • 检查历史趋势:在 开发者控制台 > 数据 > 时序洞察 页面,选择设备资产,配置时间范围和测点,查看换绑前的历史数据是否正常展示。

  • 验证应用调用(可选):若该设备数据已在应用中投入使用,可前往应用查看设备数据是否正常。

  • 验证命令下发(可选):对设备资产下发一次测试命令,并确认命令已被转发到物理设备且设备返回了正确的回执。可以选择以下一种方式:

模型换绑最佳实践


  1. 设计先行:进行子模型设计评审,确认字段一致性后再创建子模型。

  2. 灰度发布:先试点少量设备(1–3 台),观察 1–2 小时再批量执行。

  3. 边缘同步:若新增测点依赖网关采集,提前准备 Edge 配置、模板和下发窗口,避免云端换绑生效后数据上报缺口。

  4. 数据策略:换绑前确认归档、订阅、流转任务的覆盖范围,评估新增测点带来的存储与带宽成本,按需调整。

  5. 交接清单:由模型所有者与运维/交付人员共同维护待办清单,操作前逐项确认。

  6. 回滚预案:记录换绑前的资产属性及网关配置,必要时可快速回切至父模型或恢复旧映射,降低灰度失败风险。

常见问题


Q:换绑模型会导致设备历史数据丢失吗?

A:不会。模型换绑是基于继承关系的平滑升级,系统会自动关联该设备在原模型下的历史数据。从用户的角度,查询数据时感觉不到模型发生过变化,历史数据与当前数据无缝衔接。


Q:加绑模型生成的”新设备资产”会增加计费吗?

A:不会。EnOS 把原设备资产和加绑生成的“新设备资产”视作同一台物理设备的逻辑镜像,只是为了让不同模型/业务并行消费同一条数据链路,不会再占用额外的物理连接、消息配额或设备许可,因此在计费上仍按原始设备计量。


Q:加绑和换绑功能是否支持所有类型资产?

A:目前加绑和换绑功能仅支持设备资产(直接对应物理设备的资产),暂不支持逻辑资产。


Q:对加绑生成的新设备再执行换绑会发生什么?

A:在极少数场景下,如果对设备执行了”先加绑(生成新设备),再对新设备进行换绑”的操作链,可能会观察到新设备的实时数据流中断。建议避免对加绑生成的设备再次换绑。如业务确实需要此操作流程,请联系系统管理员协助处理。