3. 子模型基础

在资产管理壳(Asset Administration Shell,AAS)中,子模型(Submodel)是承载资产语义信息的基本容器。如果说 AAS 是工业设备在数字世界中的“身份证+档案袋”,那么子模型就是档案袋中一份份结构化的专业档案:有的记录设备铭牌,有的描述技术参数,有的定义通信接口,有的承载运行状态。理解子模型的概念、类型、标识体系与挂载关系,是进行工业设备语义建模的核心起点。

一、子模型的概念:语义信息的结构化容器

子模型是一个独立可寻址的信息模型,由一组子模型元素(SubmodelElement)按层级组织而成。它不直接描述“资产本身是什么”,而是描述“关于资产的某一类语义”。例如,一个电机资产可以挂载“名称plate”“技术数据”“文档”“运行状态”等多个子模型,每个子模型只负责一个语义维度。

子模型的核心特征包括:

  • 独立标识:每个子模型拥有全局唯一的标识符,可被单独引用和交换。
  • 语义可解释:子模型元素通过 semanticId 指向标准语义定义,保证跨系统理解一致。
  • 可组合:多个子模型可挂载到同一个 AAS 上,形成完整的资产语义画像。
  • 可版本化:子模型可独立演进,不影响其他子模型。
子模型不是“AAS 的附属字段”,而是与 AAS 并列的一等公民。AAS 负责“身份与挂载”,子模型负责“语义与数据”,二者通过引用关系解耦。

二、子模型的类型:按语义与用途划分

在工业实践中,子模型可按语义用途分为若干典型类型。下表列出常见类型及其典型内容:

子模型类型 典型语义内容 常见模板/规范
Identification 资产标识、制造商、序列号 Identification 子模型模板
Nameplate 铭牌参数、额定值、认证信息 Nameplate 子模型模板
TechnicalData 技术属性、物理参数、性能指标 TechnicalData 子模型模板
Documentation 手册、图纸、证书等文档引用 Documentation 子模型模板
OperationalData 运行状态、测量值、报警 OperationalData 子模型模板
Interface 通信接口、协议、端点 Interface 子模型模板

此外,还有 Capability、BillOfMaterial、HandoverDocumentation 等面向特定场景的子模型。类型划分并非强制,但遵循标准模板能显著提升互操作性。

三、标识符体系:全局唯一与语义可追溯

子模型的标识符体系由两层构成:子模型标识符(Submodel ID)和语义标识符(semanticId)。前者用于定位子模型实例,后者用于说明子模型或元素的语义含义。

常见的标识符形式包括:

  • IRI:如 https://example.com/submodels/nameplate/12345,适合跨组织引用。
  • IRDI:如 0173-1#01-AHF578#001,常用于 ECLASS 等标准体系。
  • Custom:自定义 URI,适合企业内部临时建模。

语义标识符通常指向标准语义库,例如 IEC CDD、ECLASS 或企业语义字典。以下是一个子模型标识的 JSON 片段示例:

{
  "idShort": "Nameplate",
  "id": "https://example.com/sm/nameplate/001",
  "semanticId": {
    "type": "ExternalReference",
    "keys": [
      {
        "type": "GlobalReference",
        "value": "https://admin-shell.io/zvei/nameplate/1/0/Nameplate"
      }
    ]
  }
}
标识符一旦发布,不应随意变更。若语义调整,应通过版本号或新标识符表达,避免破坏已有引用。

四、与 AAS 的挂载关系:引用而非嵌套

AAS 与子模型之间通过引用(Reference)建立挂载关系。AAS 的 submodels 属性中存放的是子模型引用列表,而非子模型内容本身。这种设计实现了“身份”与“语义”的解耦,使子模型可独立存储、独立更新、独立交换。

挂载关系可概括为:

  • 一个 AAS 可挂载多个子模型,覆盖不同语义维度。
  • 一个子模型可被多个 AAS 引用,适用于通用模板或共享数据。
  • 子模型可独立于 AAS 存在,通过标识符直接访问。

下图展示了 AAS 与子模型之间的挂载关系及典型子模型类型:

AAS 与子模型挂载关系 Asset Administration Shell AAS(资产身份与挂载点) submodels 引用 Identification 标识与制造商信息 Nameplate 铭牌与额定参数 TechnicalData 技术属性与性能 OperationalData 运行状态与测量值 Documentation 手册与证书引用 子模型内部结构(以 Nameplate 为例) ManufacturerName SerialNumber YearOfConstruction RatedPower 每个 SubmodelElement 通过 semanticId 指向标准语义定义

五、常见子模型模板与建模误区

工业界已沉淀出一批可复用的子模型模板,例如 ZVEI 发布的 Nameplate、TechnicalData、HandoverDocumentation 等。使用模板时,应优先复用标准 semanticId,避免自造语义导致互操作失败。

常见误区一:把子模型当作 AAS 的“字段”直接嵌套,导致无法独立交换。误区二:忽略 semanticId,仅用 idShort 表达语义,跨系统时含义丢失。误区三:所有信息塞进一个子模型,失去模块化优势。误区四:标识符随意变更,破坏已有引用链。

正确的建模流程是:先明确资产需要哪些语义维度,再为每个维度选择或定义子模型模板,分配全局唯一标识符,最后通过引用挂载到 AAS。这样构建的语义模型既清晰又可扩展,为后续的工业设备语义互操作打下坚实基础。