Brückenkran AAS-Datenmodell: Siemens PLC bis Digitaler Zwilling
Der AAS (Asset Administration Shell) ist die zentrale Datenspezifikation für den Digitalen Zwilling von Brückenkranen. Dieser Artikel liefert die vollständige technische Umsetzung von den Siemens-PLC-Registern bis zur Digitalisierungs-Datenplattform. Inklusive OPC-UA-Mapping-Tabelle, vollständigem AAS-JSON-Instanzbeispiel, Design der Zeitreihendatenbank-Pipeline sowie MES/ERP-Integrations-API – direkt als technisches Referenzhandbuch nutzbar.
Im vorherigen Beitrag „Digitaler Zwilling für Brückenkrane – technische Tiefenanalyse“ wurde die Gesamtarchitektur des Digitalen Zwillings vorgestellt, wobei der Begriff AAS (Asset Administration Shell) wiederholt auftauchte. Dieser Artikel widmet sich nun ausschließlich dem AAS-Datenmodell – von der PLC-Registeradresse über das OPC-UA-Mapping bis hin zur AAS-JSON-Struktur und der Implementierung in einer Zeitreihendatenbank.
Wenn Sie aktuell an einem Digitalisierungsprojekt für Brückenkrane arbeiten, können Sie diesen Beitrag direkt als technisches Referenzhandbuch verwenden.

AAS-Norm und Datenmodellierung für Brückenkrane
Der AAS ist die zentrale Datenspezifikation von Industrie 4.0 (IEC 63278) und lässt sich als „digitaler Ausweis“ jedes Geräts verstehen. Er organisiert sämtliche Daten über den gesamten Lebenszyklus einer Anlage – Konstruktionsparameter, Betriebszustände, Wartungsprotokolle, Gesundheitsbewertungen – in einer standardisierten, hierarchischen Struktur. Dadurch kann jedes System (ERP, MES, SCADA, Cloud-Plattform) einheitlich auf diese Daten zugreifen und sie beschreiben.
1.1 Hierarchie der AAS-Struktur
Crane_AAS(Anlagenhülle)├── Asset Information(Anlageninformation)│ ├── SerialNumber: "KELAND-CR-24001"│ ├── Manufacturer: "Kelude"│ ├── Model Type: "QD-32/5t-22.5m-A7"│ ├── ProductionDate: "2024-06-15"│ └── TechnicalData: {Span:22.5m, SWL:32t, HoistSpeed:6m/min}├── Submodels(Teilmodellgruppe)│ ├── TechnicalData(Technische Parameter——Nur-Lesen,Werksseitig festgelegt)│ ├── OperationalData(Betriebsdaten——Echtzeitaktualisierung,100msZyklus)│ ├── Maintenance(Wartungsdaten——Ereignisgesteuert,Aktualisierung bei Inspektion)│ ├── HealthStatus(Gesundheitszustand——AIBerechnung,Regelmäßige Aktualisierung)│ └── EnvironmentalData(Umgebungsdaten——Unterstützende Analyse)└── Views(Ansichtsebene) ├── OperatorView(Bedienpersonal-Ansicht——Aktueller Zustand+Alarm) ├── MaintenanceView(Wartungsansicht——Ersatzteil-Lebensdauer+Wartungsplan) ├── EngineerView(Ingenieuransicht——Alle Rohdaten) └── ManagementView(Verwaltungsansicht——OEE+Energieverbrauchsbericht)
Der Vorteil dieser hierarchischen Struktur liegt darin, dass verschiedene Rollen nur die für sie relevanten Daten sehen, während das zugrunde liegende Datenmodell einheitlich bleibt – es entstehen keine Informationsinseln.
Vollständiges Mapping von der PLC zum AAS
Nach der Theorie folgt nun die praktische Umsetzung mit echten Projektdaten. Die folgende Tabelle zeigt das vollständige Mapping von den PLC-Registern zum AAS für einen 32-t-Zweiträger-Brückenkran von Kelude:
| AAS-Untermodell·Attribut | OPC UA NodeID | PLC DBAdresse | Datentyp | Zyklus |
|---|---|---|---|---|
| TechnicalData.ratedCapacity | Crane.Params.RatedCap | DB100.DBD0 | Real | Beim Start |
| TechnicalData.span | Crane.Params.Span | DB100.DBD4 | Real | Beim Start |
| TechnicalData.workLevel | Crane.Params.WorkLvl | DB100.DBW8 | Int | Beim Start |
| 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 | Ereignis |
| Maintenance.remainingBrakePadLife_pct | Crane.Maint.BrakePad | DB300.DBD20 | Real | Ereignis |
| Environmental.ambientTemp_C | Crane.Env.AmbTemp | DB400.DBD0 | Real | 10s |
2.1 Drei Datenerfassungszyklen
- 100-ms-Ebene (Echtzeit): Betriebszustand, Strom, Tragfähigkeit, Position – diese Daten steuern die Echtzeit-Synchronisation der 3D-Engine; bei zu hoher Latenz ruckelt das Modell.
- 1-s-Ebene (Trend): Temperatur, Schwingungseffektivwert – für Trendanalysen und Schwellwertprüfungen; 100 ms sind hier nicht erforderlich.
- Ereignisgesteuert (Protokoll): Wartungsprotokolle, Störungslogs – Aktualisierung nur bei Änderungen, spart Bandbreite.
Vollständiges AAS-JSON-Beispiel
Nachfolgend finden Sie das vollständige AAS-JSON einer 32-t-Zweiträger-Brückenkrans mit vier Submodellen: Technische Parameter, Betriebsdaten, Wartungsdaten und Umweltdaten. Die Struktur kann direkt in Projekte übernommen werden – nur die Parameterwerte müssen angepasst werden.
{ "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": "Kelude"}, {"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", "value Type": "xs:int", "unit": "t"}, {"idShort": "span", "value": "22.5", "value Type": "xs:double", "unit": "m"}, {"idShort": "workLevel", "value": "A6", "value Type": "xs:string"}, {"idShort": "hoistingHeight", "value": "16", "value Type": "xs:double", "unit": "m"}, {"idShort": "hoistSpeed", "value": "0.8-8.0", "value Type": "xs:string", "unit": "m/min"}, {"idShort": "totalWeight", "value": 38500, "value Type": "xs:int", "unit": "kg"}, {"idShort": "powerSupply", "value": "AC380V 50Hz 3-phase", "value Type": "xs:string"} ] }, { "id": "https://kurude-crane.com/aas/CR-2024-001/sm/operational-data", "idShort": "OperationalData", "submodelElements": [ {"idShort": "runningState", "value": "running", "value Type": "xs:string"}, {"idShort": "currentLoad_pct", "value": 42.5, "value Type": "xs:double"}, {"idShort": "totalRuntime_h", "value": 28650, "value Type": "xs:double"}, {"idShort": "cycleCount", "value": 12580, "value Type": "xs:int"}, {"idShort": "energyConsumption_kWh", "value": 186500, "value Type": "xs:double"}, {"idShort": "hoistMotorCurrent_A", "value": 45.2, "value Type": "xs:double"}, {"idShort": "motorTemp_Hoist_C", "value": 62.5, "value Type": "xs:double"}, {"idShort": "vibration_HoistDrive_mms", "value": 2.8, "value Type": "xs:double"}, {"idShort": "brakeWear_pct", "value": 35.0, "value Type": "xs:double"} ] }, { "id": "https://kurude-crane.com/aas/CR-2024-001/sm/maintenance", "idShort": "Maintenance", "submodelElements": [ {"idShort": "lastInspectionDate", "value": "2025-03-15", "value Type": "xs:date"}, {"idShort": "remainingBrakePadLife_pct", "value": 65.0, "value Type": "xs:double"}, {"idShort": "remainingWireRopeLife_pct", "value": 72.0, "value Type": "xs:double"}, {"idShort": "remainingWheelLife_pct", "value": 82.0, "value Type": "xs:double"}, {"idShort": "mtbf_h", "value": 9548, "value Type": "xs:double"}, {"idShort": "mttr_h", "value": 2.5, "value Type": "xs:double"} ] }, { "id": "https://kurude-crane.com/aas/CR-2024-001/sm/environmental", "idShort": "EnvironmentalData", "submodelElements": [ {"idShort": "ambientTemp_C", "value": 28.0, "value Type": "xs:double"}, {"idShort": "ambientHumidity_pct", "value": 55.0, "value Type": "xs:double"}, {"idShort": "noiseLevel_dBA", "value": 78.5, "value Type": "xs:double"} ] } ]}Zeitreihendatenbank und Datenpipeline
Nach der Integration in die AAS-Struktur müssen die Daten gespeichert werden. Die Besonderheiten der Brückenkran-Daten sind hohe Schreiblasten (100 ms pro Datensatz), feste Abfragemuster (Aggregation nach Zeitbereichen) und eine langfristige Speicherung (≥ 3 Jahre). Zeitreihendatenbanken (InfluxDB / TimescaleDB) sind hier die Standardwahl.
4.1 Gestaffelte Speicherstrategie
Die Speicherlösungen und Zyklusauslegungen für die verschiedenen Datentypen sind wie folgt definiert:
| Speicherebene | Vorhaltezeit | Abtastgranularität | Speicherkapazität |
|---|---|---|---|
| Rohdaten | 7Tag | 100ms | ≈1.2GB/Tag |
| Minutenaggregation | 90Tag | 1min | ≈200MB/Tag |
| Stundenaggregation | 2Jahr | 1h | ≈35MB/Tag |
| Tagesaggregation | 10Jahr | 1d | ≈5MB/Tag |
4.2 Beispiel für kontinuierliche Abfragen (InfluxQL)
-- 1Minutenaggregation(Heben-Strom)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-- Abfrage:Vergangenheit24Stunden-SpitzenstromSELECT 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)5. Datenqualität in der industriellen Praxis
Ein noch so gut modelliertes AAS nützt nichts, wenn die zugrunde liegenden Daten ungenau sind – Garbage in, garbage out. In der industriellen Praxis sind Datenqualitätsprobleme weit verbreiteter als allgemein angenommen: Sensor-Drift, Kommunikationsausfälle, PLC-Taktjitter und Signalstörungen. Im Folgenden haben wir fünf typische Datenqualitätsprobleme aus unserer Projekterfahrung zusammengefasst und geeignete Gegenmaßnahmen beschrieben:
| Problemtyp | Erkennungsmethode | Verarbeitungsstrategie |
|---|---|---|
| Datenverlust(Lücke>2×Zyklus) | Zeitfolgeprüfung | Lineare Interpolationsfüllung,quality=1 |
| Grenzwertüberschreitung | Obere/untere Grenzwertprüfung | Verwerfen+Alarm,quality=2 |
| BefestigungGrenzwertüberschreitung(Totsignal>30s) | Änderungsratenerkennung | Als verdächtig markieren+Erfassung,quality=3 |
| Sprunghafter Wert(Änderungsrate>5σ) | Statistische Anomalieerkennung | Medianfilter-Ersetzung,quality=4 |
| Zeitstempelanomalie | Zeitstempelvalidierung | Schreibverweigerung |
Jeder Datenpunkt enthält ein Qualitätsfeld (0–192), anhand dessen die übergeordnete Anwendung beim Auslesen entscheiden kann, ob der Datenpunkt vertrauenswürdig ist. 192 = gut, 0 = schlecht, die Zwischenwerte sind nach Schweregrad gestaffelt.
MES/ERP-Anbindung in der Praxis
Nach dem Aufbau des AAS-Modells können Unternehmenssysteme wie MES, ERP und WMS über die einheitliche REST-API-Schnittstelle auf die Brückenkran-Daten zugreifen:
Alle APIs liefern ein einheitliches Antwortformat:
| APIEndpunkt | Methode | Beschreibung | FrequenzEinschränkung |
|---|---|---|---|
| /api/v2/cranes/{id}/status | GET | Echtzeitbetriebszustand | 300Mal/min |
| /api/v2/cranes/{id}/telemetry | GET | Telemetriehistorische Daten | 30Mal/min |
| /api/v2/cranes/{id}/alarms | GET | Alarmhistorie | 30Mal/min |
| /api/v2/maintenance/records | POST | Wartungsprotokoll hinzufügen | 10Mal/min |
| /api/v2/statistics | GET | Statistikbericht | 10Mal/min |
Fazit und Ausblick
Das AAS-Datenmodell ist keine abstrakte Theorie, sondern eine praxisnahe Spezifikation, die es Geräten und Systemen ermöglicht, „eine gemeinsame Sprache“ zu sprechen. Die Implementierung ist unkompliziert: Sobald die PLC-Registeradressen strukturiert, die OPC-UA-Mapping-Tabelle erstellt und die AAS-JSON-Vorlage ausgefüllt sind, übernimmt die Dateninfrastruktur den Rest.
Im Anschluss daran haben wir den Beitrag „Kalibrierungsmethode für Parameter von Brückenkran-Simulationsmodellen“ veröffentlicht, der die Ableitung von Simulationsparametern aus Messdaten und den Kalibrierungsprozess für kinematische und dynamische Modelle detailliert erläutert. Ebenfalls verfügbar ist unser Artikel zur Optimierung der Echtzeit-Rendering am Edge. Wir freuen uns auf Ihr Interesse.