2. AAS基础

Asset Administration Shell(资产管理壳,简称AAS)是工业4.0参考架构模型(RAMI 4.0)中实现“资产数字化代理”的核心载体。它把一个物理或逻辑资产(设备、传感器、PLC、软件、甚至一条产线)封装成标准化的数字表示,使不同厂商、不同平台之间能够以统一语义交换信息。在互操作测试与平台集成中,AAS既是被测对象,也是集成接口的语义基础。

核心定义:AAS是资产的标准化数字孪生外壳,由唯一标识符、元模型约束的信息模型、可访问的接口(API)以及安全与生命周期管理机制共同构成。它不复制资产的全部内部实现,而是以“子模型”方式暴露与业务相关的属性、操作、事件和关系。

一、元模型与信息模型:从抽象规则到具体实例

AAS的元模型(Metamodel)定义了“可以描述什么”以及“如何描述”的抽象规则,它由IEC 63278系列标准规范。元模型中的核心元素包括:Asset(资产)、AssetAdministrationShell(壳本身)、Submodel(子模型)、SubmodelElement(子模型元素)、ConceptDescription(概念描述)以及Identifier(标识符)。元模型规定了这些元素之间的包含、引用和类型约束关系。

信息模型(Information Model)则是元模型在具体场景中的实例化。例如,一台电机的AAS信息模型可能包含“技术参数”子模型、“运行状态”子模型和“维护记录”子模型;每个子模型内又包含Property、Operation、Event等子模型元素。元模型是“语法”,信息模型是“语义内容”,二者共同保证AAS既可被机器解析,又可被业务理解。

AAS 元模型与信息模型结构关系 元模型定义规则 · 信息模型承载实例 · 标识符与命名空间保证全局唯一 Asset(资产) 电机 / 传感器 / PLC / 产线 AssetAdministrationShell 全局唯一标识符 · 描述 · 引用 idShort / id / administration Submodel(子模型) 技术参数 / 运行状态 / 维护记录 semanticId → ConceptDescription kind: Instance / Template Property valueType / value Operation input / output 变量 Event observed / payload ReferenceElement 指向其他元素 ConceptDescription IEC CDD 语义定义 · 数据规范 全局唯一 semanticId semanticId 引用 标识符(Identifier)与命名空间(Namespace) IRI(国际资源标识符) https://example.com/aas/motor-001 IRDI(国际注册数据标识符) 0173-1#02-AAA123#001 命名空间前缀映射 aas: → https://admin-shell.io/ 壳与资产 子模型 子模型元素 概念描述

二、标识符与命名空间:互操作的“身份证”与“地址系统”

AAS中每一个可被引用的对象都必须拥有全局唯一标识符。标准支持两类标识符:IRI(Internationalized Resource Identifier)和IRDI(International Registration Data Identifier)。IRI适合互联网环境,例如 https://example.com/aas/motor-001;IRDI则继承自IEC 61360体系,常用于工业标准数据字典,例如 0173-1#02-AAA123#001。

命名空间(Namespace)解决的是“同名不同物”和“同物不同名”的问题。通过为不同厂商、不同标准组织分配独立的命名空间前缀,AAS可以在全局范围内无歧义地引用概念描述。例如,aas: 映射到 https://admin-shell.io/,而某企业自定义的 myco: 映射到 https://mycompany.com/aas/ns/。在互操作测试中,命名空间冲突是导致语义解析失败的高频原因之一。

三、AAS信息模型的关键构成要素

元素 作用 互操作测试关注点
AssetAdministrationShell 壳的根对象,持有全局唯一id、资产引用和子模型引用 id是否唯一、assetRef是否可解析、子模型引用是否完整
Submodel 按主题组织的语义容器,如技术参数、运行状态 semanticId是否符合标准、kind是Instance还是Template
SubmodelElement 子模型内的具体数据或操作,如Property、Operation valueType是否匹配、idShort是否唯一、引用是否可达
ConceptDescription 为元素提供标准语义定义和数据规范 semanticId是否指向有效CDD、单位与数据类型是否一致
Identifier 全局唯一标识,支持IRI和IRDI两种形式 格式合法性、命名空间映射是否正确、是否重复

四、典型场景:电机AAS的建模与集成

假设某产线需要集成一台第三方电机。电机厂商提供其AAS包,包含:壳标识符 https://motor-vendor.com/aas/motor-42,子模型“技术参数”引用标准语义ID https://admin-shell.io/ZVEI/TechnicalData/Submodel/1/2,子模型元素“额定功率”的valueType为xs:double,单位为kW。平台集成时,测试人员需要验证:壳标识符是否与资产数据库一致、子模型语义ID是否可解析、属性值类型是否与平台数据模型匹配。若命名空间未正确注册,平台可能将“额定功率”解析为未知概念,导致集成失败。

实操建议:在AAS互操作测试中,优先检查标识符的全局唯一性和命名空间映射表。建议使用AASX Package Explorer或官方验证工具对AAS包进行静态校验,再进入平台集成联调。

五、常见误区与复盘

  • 误区一:把元模型当信息模型。元模型是规则,信息模型是实例。测试时不能只验证“结构合法”,还要验证“语义正确”。
  • 误区二:标识符只用idShort。idShort仅在子模型内局部唯一,不能替代全局标识符。跨系统引用必须使用IRI或IRDI。
  • 误区三:忽略命名空间版本。同一概念在不同版本中语义可能变化,命名空间应包含版本信息,如 .../1/2。
  • 误区四:子模型引用悬空。壳引用了子模型,但子模型未随包分发或URL不可达,导致集成时解析失败。
排障提示:当平台报“语义ID无法解析”时,按以下顺序排查:①检查semanticId字符串是否完整;②检查命名空间前缀是否在平台注册;③检查ConceptDescription是否随AAS包提供;④检查网络策略是否允许访问外部CDD仓库。
# AAS标识符与命名空间检查示例(伪代码)
shell_id = "https://motor-vendor.com/aas/motor-42"
assert is_valid_iri(shell_id)
assert shell_id not in existing_ids

ns_map = {
  "aas": "https://admin-shell.io/",
  "myco": "https://mycompany.com/aas/ns/"
}
semantic_id = "aas:ZVEI/TechnicalData/Submodel/1/2"
resolved = resolve_namespace(semantic_id, ns_map)
assert resolved is not None

理解AAS的定义、元模型、信息模型、标识符与命名空间,是后续进行AAS互操作测试和平台集成的先决条件。只有语义层对齐,接口层的数据交换才有意义。