Модель данных AAS для мостового крана: от PLC до цифрового двойника
AAS (Asset Administration Shell) — ключевая спецификация данных для цифрового двойника мостового крана. В статье представлено полное инженерное решение сквозного контура: от регистров PLC Siemens до платформы данных цифрового двойника. Описаны карты сопоставления OPC UA, полный JSON-экземпляр AAS, проектирование конвейера временных рядов и API-интеграция с MES/ERP. Материал может использоваться как технический справочник.
В предыдущей статье «Технический анализ системы цифрового двойника мостового крана» рассматривалась общая архитектура цифрового двойника, где неоднократно упоминался термин AAS (Asset Administration Shell). В этой статье мы детально разберём модель данных AAS: от адресов регистров PLC до сопоставления OPC UA, структуры JSON 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: карта регистров
Переходим от теории к практическим инженерным данным. Ниже представлена полная карта сопоставления регистров PLC с AAS для двухбалочного мостового крана грузоподъёмностью 32 т производства Келуде Тяжёлая Промышленность:
| 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 Три цикла сбора данных
- Уровень 100 мс (реального времени): рабочий статус, ток, грузоподъёмность, положение — эти данные управляют синхронизацией положения в реальном времени в 3D-движке; при задержках модель начинает «подтормаживать».
- Уровень 1 с (трендовый): температура, среднеквадратичное значение вибрации — используются для анализа трендов и пороговых значений сигнализации, частота 100 мс здесь не требуется.
- Событийный (журнальный): записи техобслуживания, журналы отказов — обновление только при изменениях, не нагружает канал передачи данных.
Полный пример AAS JSON
Ниже приведён полный AAS JSON для двухбалочного мостового крана грузоподъёмностью 32 т. Он включает четыре подмодели: технические параметры, эксплуатационные данные, данные техобслуживания и данные об окружающей среде. Структуру можно напрямую использовать в реальных проектах, изменив лишь значения параметров.
{ "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, необходимо обеспечить их хранение. Данные мостового крана характеризуются высокой интенсивностью записи (запись каждые 100 мс), фиксированными шаблонами запросов (агрегация по временным диапазонам) и длительным сроком хранения (≥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, неточные данные на нижнем уровне — это принцип «мусор на входе, мусор на выходе». Проблемы качества данных на промышленных объектах встречаются гораздо чаще, чем принято считать: дрейф датчиков, сбои связи, дрожание сканирования ПЛК, помехи сигнала. Ниже — пять типов проблем качества данных и стратегии их решения, обобщённые из нашей инженерной практики:
| тип проблемы | Обнаружениеметод | стратегия обработки |
|---|---|---|
| потеря данных(пропуск>2×период) | проверка временного ряда | заполнение линейной интерполяцией,quality=1 |
| значение вне диапазона | верхнийнижний пределпроверка | отбрасывание+аварийный сигнал,quality=2 |
| Креплениезначение вне диапазона(мёртвый сигнал>30s) | скорость измененияОбнаружение | пометка как сомнительное+Контроль,quality=3 |
| скачкообразное значение(скорость изменения>5σ) | статистическая аномалияОбнаружение | замена медианным фильтром,quality=4 |
| аномалия временной метки | проверка временной метки | отказ записи |
Каждая точка данных содержит поле quality (0–192), по которому верхнеуровневое приложение определяет степень доверия к значению: 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 — это не абстрактная теория, а практичный стандарт, позволяющий оборудованию и системам общаться на «одном языке». Внедрение не требует сложных процедур: достаточно упорядочить адреса регистров ПЛК, создать карту соответствия OPC UA и заполнить шаблон JSON AAS — остальное возьмут на себя каналы передачи данных.
В продолжение темы рекомендуем ознакомиться со статьей «Методика калибровки параметров имитационной модели мостового крана», где подробно описан процесс калибровки кинематической и динамической моделей на основе экспериментальных данных, а также с материалом «Оптимизация рендеринга в реальном времени на периферийных устройствах». Следите за обновлениями.