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

上篇《天车数字孪生系统技术深度解析》介绍了数字孪生的总体架构,其中反复提到一个词——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 NodeID PLC DB地址 数据类型 周期
TechnicalData.ratedCapacity Crane.Params.RatedCap DB100.DBD0 Real 启动时
TechnicalData.span Crane.Params.Span DB100.DBD4 Real 启动时
TechnicalData.workLevel Crane.Params.WorkLvl DB100.DBW8 Int 启动时
OperationalData.runningState Crane.Status.State DB200.DBX0.0 Word 100ms
OperationalData.currentLoad_pct Crane.Status.LoadPct DB200.DBD2 Real 100ms
OperationalData.hoistMotorCurrent_A Crane.Status.HoistCurrent DB200.DBD6 Real 100ms
OperationalData.motorTemp_Hoist_C Crane.Status.HoistTemp DB200.DBD10 Real 1s
OperationalData.vibration_HoistDrive_mms Crane.Status.HoistVib DB200.DBD14 Real 1s
Maintenance.lastInspectionDate Crane.Maint.LastInsp DB300.DBD0 Date 事件
Maintenance.remainingBrakePadLife_pct Crane.Maint.BrakePad DB300.DBD20 Real 事件
Environmental.ambientTemp_C Crane.Env.AmbTemp DB400.DBD0 Real 10s

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}/status GET 实时运行状态 300次/min
/api/v2/cranes/{id}/telemetry GET 遥测历史数据 30次/min
/api/v2/cranes/{id}/alarms GET 报警历史 30次/min
/api/v2/maintenance/records POST 添加维保记录 10次/min
/api/v2/statistics GET 统计报表 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
分享本页
返回顶部