天车AAS数据模型完整工程实现:从西门子PLC寄存器到数字孪生数据中台

AAS(Asset Administration Shell)是天车数字孪生的核心数据规范,本文完整实现了从西门子PLC寄存器到数字孪生数据中台的全链路工程方案。涵盖OPC UA映射表、完整AAS JSON实例、时序数据库管道设计以及MES/ERP集成API,可直接作为技术参考手册使用。

上篇《天车数字孪生系统技术深度解析》介绍了数字孪生的总体架构,其中反复提到一个词——AAS(Asset Administration Shell,资产管理壳)。这篇就专门把AAS数据模型拆开来讲,从PLC寄存器地址到OPC UA映射、再到AAS JSON结构和时序数据库落地,一步到位。

如果你手头正在做天车数字化项目,这篇文章可以直接当技术参考手册用。

天车AAS数据模型工程实现:PLC寄存器到OPC UA到AAS资产壳到数据中台完整映射架构图
AAS数字孪生数据模型完整链路:西门子S7 PLC OPC UA Server AAS资产壳 数据中台

一、AAS标准与天车数据建模

AAS是工业4.0的核心数据规范(IEC 63278),你可以把它理解成每台设备的”数字身份证”。它把设备全生命周期的所有数据——设计参数、运行状态、维保记录、健康评分——组织成标准化的分层结构,任何系统(ERP、MES、SCADA、云平台)都能用统一的方式读写。

1.1 AAS结构层次

Crane_AAS(资产壳)├── Asset Information(资产信息)│ ├── SerialNumber: "KELAND-CR-24001"│ ├── Manufacturer: "克鲁德重工"│ ├── ModelType: "QD-32/5t-22.5m-A7"│ ├── ProductionDate: "2024-06-15"│ └── TechnicalData: {Span:22.5m, SWL:32t, HoistSpeed:6m/min}├── Submodels(子模型组)│ ├── TechnicalData(技术参数——只读,设备出厂即固定)│ ├── OperationalData(运行数据——实时刷新,100ms周期)│ ├── Maintenance(维保数据——事件触发,检修时更新)│ ├── HealthStatus(健康状态——AI计算,定期更新)│ └── EnvironmentalData(环境数据——辅助分析)└── Views(视图层) ├── OperatorView(操作员视图——当前状态+报警) ├── MaintenanceView(维护视图——备件寿命+维保计划) ├── EngineerView(工程师视图——全部原始数据) └── ManagementView(管理视图——OEE+能耗报表)

这个分层设计的好处是:不同角色只看自己需要的数据,底层数据模型是同一套,不存在信息孤岛。

二、PLC到AAS的完整映射

理论说完了,直接上实际工程数据。以下是克鲁德重工一台32t双梁桥式天车的PLC寄存器到AAS的完整映射表:

AAS子模型·属性OPC UA NodeIDPLC DB地址数据类型周期
TechnicalData.ratedCapacityCrane.Params.RatedCapDB100.DBD0Real启动时
TechnicalData.spanCrane.Params.SpanDB100.DBD4Real启动时
TechnicalData.workLevelCrane.Params.WorkLvlDB100.DBW8Int启动时
OperationalData.runningStateCrane.Status.StateDB200.DBX0.0Word100ms
OperationalData.currentLoad_pctCrane.Status.LoadPctDB200.DBD2Real100ms
OperationalData.hoistMotorCurrent_ACrane.Status.HoistCurrentDB200.DBD6Real100ms
OperationalData.motorTemp_Hoist_CCrane.Status.HoistTempDB200.DBD10Real1s
OperationalData.vibration_HoistDrive_mmsCrane.Status.HoistVibDB200.DBD14Real1s
Maintenance.lastInspectionDateCrane.Maint.LastInspDB300.DBD0Date事件
Maintenance.remainingBrakePadLife_pctCrane.Maint.BrakePadDB300.DBD20Real事件
Environmental.ambientTemp_CCrane.Env.AmbTempDB400.DBD0Real10s

2.1 三种数据采集周期

  • 100ms级(实时类):运行状态、电流、载重、位置——这些数据驱动3D引擎的实时姿态同步,延迟高了模型就卡顿
  • 1s级(趋势类):温度、振动有效值——用于趋势分析和报警阈值判断,不需要100ms那么快
  • 事件触发(记录类):维保记录、故障日志——有变化才更新,不占带宽

三、AAS JSON完整实例

以下是一台32t双梁桥式天车的完整AAS JSON,包含4个子模型:技术参数、运行数据、维保数据、环境数据。可以直接套用到实际项目中修改参数值即可使用。

{ "administration": { "version": "3.0", "revision": "RC02", "id": "https://kurude-crane.com/aas/CR-2024-001", "idShort": "Crane32t_AAS" }, "assetInformation": { "assetKind": "Instance", "globalAssetId": "https://kurude-crane.com/asset/crane-32t-2024-001", "specificAssetId": [ {"name": "serialNumber", "value": "CRN-2024-001"}, {"name": "manufacturer", "value": "克鲁德重工"}, {"name": "manufacturingDate", "value": "2024-03-15"} ] }, "submodels": [ { "id": "https://kurude-crane.com/aas/CR-2024-001/sm/technical-data", "idShort": "TechnicalData", "semanticId": "https://admin-shell.io/IDT/TechnicalData/3/0", "submodelElements": [ {"idShort": "ratedCapacity", "value": "32", "valueType": "xs:int", "unit": "t"}, {"idShort": "span", "value": "22.5", "valueType": "xs:double", "unit": "m"}, {"idShort": "workLevel", "value": "A6", "valueType": "xs:string"}, {"idShort": "hoistingHeight", "value": "16", "valueType": "xs:double", "unit": "m"}, {"idShort": "hoistSpeed", "value": "0.8-8.0", "valueType": "xs:string", "unit": "m/min"}, {"idShort": "totalWeight", "value": 38500, "valueType": "xs:int", "unit": "kg"}, {"idShort": "powerSupply", "value": "AC380V 50Hz 3-phase", "valueType": "xs:string"} ] }, { "id": "https://kurude-crane.com/aas/CR-2024-001/sm/operational-data", "idShort": "OperationalData", "submodelElements": [ {"idShort": "runningState", "value": "running", "valueType": "xs:string"}, {"idShort": "currentLoad_pct", "value": 42.5, "valueType": "xs:double"}, {"idShort": "totalRuntime_h", "value": 28650, "valueType": "xs:double"}, {"idShort": "cycleCount", "value": 12580, "valueType": "xs:int"}, {"idShort": "energyConsumption_kWh", "value": 186500, "valueType": "xs:double"}, {"idShort": "hoistMotorCurrent_A", "value": 45.2, "valueType": "xs:double"}, {"idShort": "motorTemp_Hoist_C", "value": 62.5, "valueType": "xs:double"}, {"idShort": "vibration_HoistDrive_mms", "value": 2.8, "valueType": "xs:double"}, {"idShort": "brakeWear_pct", "value": 35.0, "valueType": "xs:double"} ] }, { "id": "https://kurude-crane.com/aas/CR-2024-001/sm/maintenance", "idShort": "Maintenance", "submodelElements": [ {"idShort": "lastInspectionDate", "value": "2025-03-15", "valueType": "xs:date"}, {"idShort": "remainingBrakePadLife_pct", "value": 65.0, "valueType": "xs:double"}, {"idShort": "remainingWireRopeLife_pct", "value": 72.0, "valueType": "xs:double"}, {"idShort": "remainingWheelLife_pct", "value": 82.0, "valueType": "xs:double"}, {"idShort": "mtbf_h", "value": 9548, "valueType": "xs:double"}, {"idShort": "mttr_h", "value": 2.5, "valueType": "xs:double"} ] }, { "id": "https://kurude-crane.com/aas/CR-2024-001/sm/environmental", "idShort": "EnvironmentalData", "submodelElements": [ {"idShort": "ambientTemp_C", "value": 28.0, "valueType": "xs:double"}, {"idShort": "ambientHumidity_pct", "value": 55.0, "valueType": "xs:double"}, {"idShort": "noiseLevel_dBA", "value": 78.5, "valueType": "xs:double"} ] } ]}

四、时序数据库设计与数据管道

数据进了AAS结构之后,需要有地方存下来。天车数据的特点是写入量大(100ms/条)、查询模式固定(按时间范围聚合)、需要长时间保存(≥3年)。时序数据库(InfluxDB / TimescaleDB)是标准选择。

4.1 分级存储策略

不同数据类型的存储方案和周期设计如下:

存储层级保留时间采样粒度存储容量
原始数据7天100ms≈1.2GB/天
分钟聚合90天1min≈200MB/天
小时聚合2年1h≈35MB/天
天聚合10年1d≈5MB/天

4.2 连续查询示例(InfluxQL)

-- 1分钟聚合(起升电流)CREATE CONTINUOUS QUERY "cq_1min_hoist_current" ON "crane_db"RESAMPLE EVERY 1m FOR 1hBEGIN SELECT mean("value") AS "mean_hoist_current", max("value") AS "max_hoist_current", min("value") AS "min_hoist_current" INTO "crane_1min"."autogen"."hoist_current_agg" FROM "crane_realtime"."autogen"."hoist_current" GROUP BY time(1m), "crane_id"END-- 查询:过去24小时峰值电流SELECT max("max_hoist_current") AS "peak_current"FROM "crane_1min"."autogen"."hoist_current_agg"WHERE "crane_id" = CRN-2024-001 AND time >= now() - 24hGROUP BY time(1h)

五、数据质量保障

AAS模型再漂亮,底层数据不准就是垃圾进垃圾出。工业现场的数据质量问题远比你想象的常见——传感器漂移、通信中断、PLC扫描抖动、信号干扰。以下是我们工程实践中总结的5种数据质量问题及处理策略:

问题类型检测方法处理策略
数据丢失(间隙>2×周期)时序检查线性插值填充,quality=1
超范围值上下限校验丢弃+告警,quality=2
固定值(死信号>30s)变化率检测标记可疑+监测,quality=3
突变值(变化率>5σ)统计异常检测中值滤波替换,quality=4
时间戳异常时间戳校验拒绝写入

每个数据点都带一个quality字段(0~192),上层应用读取时可以根据quality决定是否信任这个数据点。192=good,0=bad,中间值根据严重程度分级。

六、MES/ERP集成实践

AAS模型建好之后,MES、ERP、WMS等企业系统通过统一REST API接口即可读写天车数据:

所有API返回统一格式:

API端点方法说明频率限制
/api/v2/cranes/{id}/statusGET实时运行状态300次/min
/api/v2/cranes/{id}/telemetryGET遥测历史数据30次/min
/api/v2/cranes/{id}/alarmsGET报警历史30次/min
/api/v2/maintenance/recordsPOST添加维保记录10次/min
/api/v2/statisticsGET统计报表10次/min
{ "code": 200, "message": "success", "data": { /* 响应数据 */ }, "timestamp": "2026-06-21T14:00:00.000Z", "requestId": "req-001-abc-xyz"}

结语

AAS数据模型不是什么高深的理论,它就是一套让设备和系统说”同一种语言”的规范。实施起来也不复杂——PLC寄存器地址整理好、OPC UA映射表建好、AAS JSON模板填好,剩下的就是数据管道的事情了。

随后写了《天车仿真模型参数标定方法》,从实测数据反推仿真参数,把运动学/动力学模型的标定流程讲清楚,以及边缘端实时渲染优化方案。敬请关注。

常见问题

问:AAS资产管理壳到底是什么?有什么用?
答:AAS(Asset Administration Shell,资产管理壳)是工业4.0核心标准(IEC 63278),可以理解为一台设备在数字世界的“身份证+简历”。它把设备的设计参数、实时运行数据、维保记录、健康状态等全生命周期信息统一成标准格式。对天车来说,有了AAS之后,ERP、MES、SCADA、云平台都可以用同一套接口读取和理解天车的所有数据,不需要反复对接不同系统。
问:克鲁德重工的AAS模型能对接哪些系统?
答:目前支持直接对接西门子S7-1200/1500系列PLC(OPC UA协议)、三菱Q系列(Modbus TCP)、以及标准MQTT/REST API接口。后端可对接InfluxDB时序库、Kafka消息队列和任意SQL数据库。已经在钢铁厂、港口、园区等多个项目落地,对接成功率100%。
问:老设备没有PLC数据接口能做AAS吗?
答:可以。对没有PLC数据输出的老设备,有两种方案:一是加装传感器采集盒(IO-Link或4-20mA采集模块,约2000元/台),将物理信号转为数字信号后接入AAS;二是人工录入维保记录等静态数据,动态数据部分从加装传感器获取。两种方案都不需要更换整机。

相关信息

contact

contact us

phone:
+86 13903802779

mail:3915269@qq.com

Working hours: Monday to Friday

Wechat
Wechat
SHARE
TOP