数字孪生为什么需要统一资产语义:BaSyx与AAS打通PLM、制造和运维

摘要:AAS不是三维模型,而是工业资产的标准化信息结构与访问契约。本文解析Eclipse BaSyx Python SDK、子模型、AASX、Repository、Registry与Discovery如何连接PLM、MES和设备运维。

AAS资产管理壳连接PLM制造与设备运维 ## 导语

资产管理壳(Asset Administration Shell,AAS)常被笼统地译成“工业数字孪生”,也因此被误解为一种三维模型格式、设备可视化软件,甚至是轻量版 PLM。更准确地说,AAS 是一套面向资产的、机器可读的标准化信息模型与服务接口:它规定如何给资产分配稳定标识,如何把铭牌、技术数据、文档、运行状态、能力、碳足迹等信息组织成可互操作的子模型,以及应用如何查找和访问这些信息。

Eclipse BaSyx Python SDK 则把这套规范落到 Python 对象、JSON/XML/AASX 适配器、存储后端、合规检查器和 HTTP 服务上。它适合数据转换、AAS 生成、验证、轻量服务和工业集成原型,但并不等于一套开箱即用的企业数字孪生平台。理解这条边界,是判断 AAS 产业价值的起点。

一、AAS 为什么不是三维模型

IDTA 的快速入门材料把数字孪生定义为资产的数字化表征,并称 AAS 是这种表征的标准化形式;Part 1 则明确其核心是用技术无关的 UML 定义“结构视图”的元模型。这里的关键词是信息结构与语义,而不是几何表达。

一台电机的 AAS 可以包含制造商、序列号、额定功率、维护文档、能效等级、当前状态和服务端点;它也可以通过 File 等子模型元素引用 STEP、JT、PDF、图片或其他文件。但 AAS 规范本身不定义 B-Rep、网格、装配约束、渲染材质,也不负责三维轻量化、碰撞检查或仿真求解。CAD/PLM 中的三维模型是被管理或被引用的资产信息之一,不是 AAS 本体。

因此,AAS 与三维数字孪生并非竞争关系。三维模型擅长回答“长什么样、如何装配”,AAS 更擅长回答“它是谁、有哪些标准化属性、信息在哪里、其他系统怎样读取”。在工业集成中,后者经常比画面更稀缺:同一设备在 PLM、ERP、MES、SCADA 和设备台账里往往拥有不同主键、字段名和数据责任人,AAS试图提供跨系统可交换的公共语法和语义锚点。

二、元模型、子模型与语义:AAS 的真正骨架

AAS 元模型可以理解为“描述资产信息模型的模型”。AssetAdministrationShell 代表某个资产的管理壳,AssetInformation 描述其对应资产及全局资产标识,AAS 再通过引用关联一个或多个 Submodel。子模型按业务或技术视角分组,例如数字铭牌、技术数据、文档、碳足迹、交接文档或能力描述。IDTA 也明确指出:子模型构成 AAS 的内容,描述资产的内容性或功能性方面。

子模型内部由 PropertyMultiLanguagePropertyRangeFileBlobReferenceElementRelationshipElementEntityOperation、集合与列表等元素组成。idShort 便于在局部路径中定位,真正实现跨企业一致理解的关键则是 semanticIdConceptDescription 以及 ECLASS、IEC CDD 等外部词典引用。只把数据库字段改写成 JSON,并不会自动产生互操作性;如果“额定功率”在供应商 A 中指输入功率,在工厂 B 中指轴输出功率,即使字段同名,仍然不能安全消费。

子模型模板的意义正在于约束结构、基数、数据类型和语义引用,使不同厂商对同一用例形成相近表达。企业可以扩展模板,但扩展越随意,跨组织复用价值越低。AAS 项目的主要工作量通常不在 Python 类实例化,而在标识规则、语义映射、模板治理和数据责任划分。

三、JSON、XML 与 AASX:在线接口和离线交付的不同形态

AAS 不是绑定单一序列化格式的标准。IDTA Part 1 提供并维护 JSON、XML、RDF 等映射与模式;BaSyx Python SDK 当前稳定功能包括 AAS Python 对象与 JSON/XML 的双向序列化。JSON 更自然地进入 REST API、Web 应用和文档数据库,XML 则仍适合既有工业工具链、模式校验和企业间文件交换。

AASX 是另一层概念:它是 IDTA Part 5 定义的 AAS 包交换格式,是基于开放打包约定的容器,可把 AAS 环境的 JSON 或 XML 表达与缩略图、手册、证书、图纸等辅助文件一起交付。可以把它类比为“带关系和内容类型约定的工业数据包”,而不是新的建模语言。BaSyx SDK 支持 AASX 读写,2.1.0 还增加了缩略图加载和保存方面的改进。

工程上应区分两种路径:供应商交付、归档、离线审查适合 AASX;持续更新和跨应用查询适合 Repository API。把不断变化的运行数据反复打成 AASX,或把一个 AASX 文件直接当作高并发在线数据库,都不是理想设计。AASX 解决可携带交付,API 解决可访问服务,两者互补而非替代。

四、Repository、Registry、Discovery:存、登记、反查不是一回事

AAS 基础设施中最容易混淆的是三个角色。

Repository 存放并提供 AAS、子模型或概念描述的实际内容,客户端在这里执行读取、创建、更新和删除等操作。Registry 存放描述符:某个 AAS 或子模型的标识、端点及必要元数据,作用类似服务目录,而不是业务数据仓库。Discovery 保存资产标识与 AAS 标识之间的键值关联,解决“我只有设备二维码、序列号或全局资产 ID,怎样找到它的 AAS”这一反向查找问题。

IDTA 快速入门指南给出的典型消费链路是:先从二维码、RFID、固件或资产数据库获得资产标识;经 Discovery 得到 AAS ID;再从 Registry 取得包含端点的 AAS Descriptor;最后访问 Repository 获取 AAS 和子模型内容。大型企业若把三者合并成一个数据库表,短期可运行,却会模糊数据内容、路由元数据和身份映射的生命周期,后续跨工厂、跨供应链扩展会变得困难。

BaSyx Python 2.1.0 的重要变化正是:服务器除 AAS Repository、Submodel Repository 外,开始提供 AAS Registry、Submodel Registry 和 Discovery 接口,并可作为独立 Docker 服务运行。这使 Python 实现从“文件与对象工具箱”向最小 AAS 基础设施迈进一步。

五、BaSyx Python SDK 目前到底支持什么

截至 2026 年 8 月 10 日,GitHub 最新正式版为 2.1.0,发布于 2026 年 7 月 16 日。项目特别提醒:SDK 自身版本号与 AAS 规范版本相互独立。2.1.0 声明支持的组合是:Part 1 元模型 v3.1.2,JSON Schema/XSD v3.1.2,Part 2 API v3.1.1,Part 3a IEC 61360 数据规范 v3.1.1,Part 5 AASX v3.1。与此同时,IDTA 已在 2026 年 7 月发布元模型和 API v3.2.0,因此不能因为安装了“最新版 SDK”就默认已支持“最新版规范”。采购或验收时必须锁定 SDK、元模型、模式、API 和子模型模板的版本矩阵。

SDK 包含 modeladapterbackendutilexamples 等模块,可在内存中构造和遍历 AAS 对象,解析或生成 JSON/XML/AASX。存储层提供对象存储抽象和 CouchDB 支持;2.1.0 将 CouchDBObjectStore 等旧名称标记为弃用,推荐使用 CouchDBIdentifiableStore 等新接口。CouchDB 与 JSON 文档形态相配,适合原型、转换服务和中等规模资产对象持久化,但事务边界、并发控制、索引、权限、备份和高可用仍需项目自行设计,不能由“支持 CouchDB”推导出企业级运行保证。

独立合规工具可按官方模式创建示例 JSON/XML/AASX,检查 JSON/XML 是否符合模式、文件是否可读,并比较包内 AAS 元素。这里也有两条重要边界:第一,工具按已安装 SDK 所实现的元模型版本检查,依赖版本若未显式升级,可能静默使用旧 SDK;第二,模式合规不等于业务语义正确。它能发现结构和类型错误,却不能证明单位、语义 ID、数据来源、模板适配和业务规则都正确。

AAS通过Repository、Registry和Discovery连接PLM、制造执行、设备台账与维修服务
AAS工业数字线程:统一标识与标准语义,让工程数据沿资产全生命周期流动

六、怎样连接 PLM、MES、设备台账与数字线程

AAS 最有价值的部署方式通常不是复制一切,而是建立“稳定标识+标准语义+可解析引用”。在 PLM 侧,可由产品型号、物料、序列化实例和文档对象生成技术数据、文档或铭牌子模型,并保留源对象链接;在 MES 侧,可暴露工位、设备能力、生产批次或状态摘要;设备台账负责安装位置、资产编号、维护责任和在役状态;实时高频数据则继续留在 OPC UA、MQTT、时序数据库或边缘平台中,AAS保存访问端点、变量语义和必要快照。

这样形成的数字线程不是把所有记录搬进一个“超级壳”,而是让工程定义、采购交付、制造执行、现场实例和服务历史围绕可追踪标识连接起来。一个可行的最小闭环是:PLM 发布型号级 AAS 或子模型模板;序列化生产时创建实例级 AAS;MES/设备台账补充生产与安装身份;Registry 登记其服务端点;Discovery 维护资产 ID 到 AAS ID 的映射;下游质量、维护和碳核算应用按权限读取所需子模型。

落地时应明确每个字段的权威源。额定参数通常来自 PLM 或供应商交付,实时状态来自设备或数据平台,安装位置来自 EAM/设备台账,工单结果来自 MES/EAM。AAS 可以聚合或引用,但不应无原则地成为另一套人工维护的主数据孤岛。同步最好采用事件驱动或可重放的增量管道,并保留源系统 ID、版本、时间戳和映射规则,才能真正支撑追溯。

七、实施边界与产业判断

BaSyx Python SDK 的优势是门槛低、Python 数据生态丰富、序列化与验证链路完整,适合 ETL、供应商 AASX 验收、模板实例生成、数据质量流水线和轻量微服务。其 MIT 许可证也利于企业集成。但官方服务器 README 同样列出了现实限制:部分序列化/描述路由、value/path/PATCH 路由和 Operation 调用尚未实现;本地文件持久化不保存补充文件;直接脱离 Docker 运行仅建议调试。它不应未经安全、性能和运维评估就被视为生产平台成品。

更广义地看,AAS 也不会替代 PLM、MES、EAM、SCADA、时序数据库、三维引擎或消息总线。它提供的是这些系统之间面向资产的标准化契约。AAS 项目失败往往不是因为缺一个序列化库,而是因为试图一次覆盖全厂、没有选择成熟子模型模板、标识体系不稳定、语义治理无人负责,或把数据复制当成数字线程。

产业上,AAS 的短期突破口更可能出现在边界清晰的跨组织场景:数字铭牌、技术数据交付、文档交接、数字产品护照、设备能力描述和供应商包验证。企业内部若已有成熟 API 和主数据平台,AAS 的价值在于对外标准化与跨域语义,而非推倒重来。值得关注的是,IDTA 规范已经进入 3.2 线,BaSyx Python 2.1.0 刚完成 3.1 线升级,版本跟随速度、模板成熟度和不同实现间的互操作测试,将比“是否能生成一个 AASX”更能决定产业采用。

结论

AAS 应被理解为工业资产的标准化信息外壳和访问契约,而不是三维模型,也不是万能数字孪生数据库。Eclipse BaSyx Python SDK 已经覆盖从元模型对象、JSON/XML/AASX、CouchDB 后端、合规检查到 Repository/Registry/Discovery 服务的关键开发链路,是进入 AAS 生态的一把实用工具。

但真正的实施成果取决于规范版本锁定、子模型模板选择、语义与标识治理、源系统责任、服务发现、安全运维和互操作验证。合理的起点不是“为所有设备建壳”,而是选择一个跨系统确有摩擦的用例,用一个官方或行业认可的子模型完成从源数据、验证、登记、发现到消费的闭环,再逐步扩展。AAS 的长期价值,不在于再造一个平台,而在于让工业数字线程拥有可交换、可发现、可验证的公共语言。

参考资料

  1. Eclipse BaSyx Python SDK 项目 README:https://github.com/eclipse-basyx/basyx-python-sdk
  2. BaSyx Python SDK 2.1.0 Release Notes:https://github.com/eclipse-basyx/basyx-python-sdk/releases/tag/2.1.0
  3. BaSyx Python SDK SDK README:https://github.com/eclipse-basyx/basyx-python-sdk/blob/main/sdk/README.md
  4. BaSyx Python HTTP Server README:https://github.com/eclipse-basyx/basyx-python-sdk/blob/main/server/README.md
  5. BaSyx AAS Compliance Tool README:https://github.com/eclipse-basyx/basyx-python-sdk/blob/main/compliance_tool/README.md
  6. IDTA,AAS Part 1: Metamodel v3.1.2:https://industrialdigitaltwin.io/aas-specifications/IDTA-01001/v3.1.2/index.html
  7. IDTA,AAS Part 2: API v3.1.1:https://industrialdigitaltwin.org/en/wp-content/uploads/sites/2/2025/08/IDTA-01002-3-1-1_AAS-Specification_Part2_API.pdf
  8. IDTA,AAS Part 5: Package File Format (AASX) v3.1:https://industrialdigitaltwin.io/aas-specifications/IDTA-01005/v3.1/index.html
  9. IDTA,AAS Quick Start Guide:https://industrialdigitaltwin.org/wp-content/uploads/2025/07/IDTA_AAS-Quick-Start-Guide.pdf
  10. IDTA,Registered AAS Submodel Templates:https://industrialdigitaltwin.org/en/content-hub/submodels
  11. IDTA 元模型规范 v3.2.0 发布:https://github.com/admin-shell-io/aas-specs-metamodel/releases/tag/v3.2.0
  12. IDTA API 规范 v3.2.0 发布:https://github.com/admin-shell-io/aas-specs-api/releases/tag/v3.2.0
分享到