Pont roulant AAS : des registres PLC au jumeau numérique

L'AAS (Asset Administration Shell) est la spécification centrale de données du jumeau numérique pour ponts roulants. Cet article détaille l'implémentation complète de la chaîne technique, du registre PLC Siemens à la plateforme de données du jumeau numérique. Il couvre la table de mapping OPC UA, une instance JSON AAS complète, la conception du pipeline de base de données temporelle et les API d'intégration MES/ERP — un manuel de référence technique directement exploitable.

Dans l'article précédent « Analyse technique approfondie du système de jumeau numérique pour ponts roulants », nous avons présenté l'architecture globale du jumeau numérique, où le terme AAS (Asset Administration Shell) revenait constamment. Cet article se concentre exclusivement sur le modèle de données AAS : adresses de registres PLC, mapping OPC UA, structure JSON AAS et déploiement en base de données temporelle — le tout pas à pas.

Si vous travaillez actuellement sur un projet de numérisation de pont roulant, cet article peut servir de manuel de référence technique.

Implémentation du modèle de données AAS pour pont roulant : architecture de mapping complète du registre PLC vers OPC UA, coquille d'actif AAS et plateforme de données
Chaîne complète du modèle de données AAS pour jumeau numérique : PLC Siemens S7 → Serveur OPC UA → Coquille d'actif AAS → Plateforme de données

I. Norme AAS et modélisation des données de pont roulant pont roulant

L'AAS est la spécification de données clé de l'Industrie 4.0 (IEC 63278). On peut la considérer comme la « carte d'identité numérique » de chaque équipement. Elle organise toutes les données du cycle de vie de l'équipement — paramètres de conception, état de fonctionnement, historique de maintenance, score de santé — dans une structure hiérarchique standardisée, lisible et modifiable par tout système (ERP, MES, SCADA, plateforme Cloud) de manière uniforme.

1.1 Niveaux de structure AAS

Crane_AAS(Coquille d)├── Asset Information(Informations sur l)│ ├── 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(Sous-module typeGroupe)│ ├── TechnicalData(Paramètres Techniques——Lecture seule,Fixe en usine)│ ├── OperationalData(données d'exploitation——Actualisation en temps réel,100msPériode)│ ├── Maintenance(Données de maintenance——Déclenchement par événement,Mise à jour lors de l)│ ├── HealthStatus(État de santé——AICalcul,Mise à jour périodique)│ └── EnvironmentalData(Données environnementales——Analyse auxiliaire)└── Views(Couche de visualisation) ├── OperatorView(Vue opérateur——État actuel+Alarme) ├── MaintenanceView(Vue maintenance——Durée de vie des pièces de rechange+plan de maintenance) ├── EngineerView(Vue ingénieur——Toutes les données brutes) └── ManagementView(Vue gestion——OEE+Rapport de consommation d)

L'avantage de cette conception hiérarchique est que chaque rôle n'accède qu'aux données dont il a besoin, tout en partageant le même modèle de données sous-jacent — aucune île d'information.

II. Mapping complet du PLC vers l'AAS

La théorie est suffisante — passons aux données d'ingénierie réelles. Voici le tableau de mapping complet des registres PLC vers l'AAS pour un pont roulant bipoutre de 32t de Kelude :

AAS (Asset Administration Shell)Sous-modèle·AttributOPC UA NodeIDPLC DBAdresseType de donnéesPériode
TechnicalData.ratedCapacityCrane.Params.RatedCapDB100.DBD0RealAu démarrage
TechnicalData.spanCrane.Params.SpanDB100.DBD4RealAu démarrage
TechnicalData.workLevelCrane.Params.WorkLvlDB100.DBW8IntAu démarrage
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Événement
Maintenance.remainingBrakePadLife_pctCrane.Maint.BrakePadDB300.DBD20RealÉvénement
Environmental.ambientTemp_CCrane.Env.AmbTempDB400.DBD0Real10s

2.1 Trois cycles d'acquisition de données

  • Niveau 100 ms (temps réel) : état de fonctionnement, courant, charge, position — ces données pilotent la synchronisation temps réel du moteur 3D ; un délai trop élevé provoque des saccades dans le modèle
  • Niveau 1 s (tendances) : température, valeur efficace des vibrations — utilisées pour l'analyse des tendances et la détermination des seuils d'alarme, sans nécessiter la fréquence de 100 ms
  • Déclenchement par événement (enregistrement) : historique de maintenance, journaux de défauts — mise à jour uniquement en cas de changement, sans occupation inutile de bande passante

III. Exemple complet de JSON AAS

Voici un exemple complet de JSON AAS pour un pont roulant bipoutre de 32 t, comprenant quatre sous-modèles : paramètres techniques, données d'exploitation, données de maintenance et données environnementales. Il peut être directement adapté à un projet réel en modifiant les valeurs des paramètres.

{ "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"} ] } ]}

IV. Conception de la base de données temporelle et pipeline de données

Une fois les données intégrées dans la structure AAS, elles doivent être stockées. Les données du pont roulant se caractérisent par un volume d'écriture élevé (une entrée toutes les 100 ms), un modèle de requête fixe (agrégation par plage temporelle) et une conservation à long terme (≥ 3 ans). Une base de données temporelle (InfluxDB / TimescaleDB) constitue le choix standard.

4.1 Stratégie de stockage hiérarchisé

Les solutions de stockage et les cycles de conservation pour les différents types de données sont les suivants :

Niveau de stockageDurée de rétentionGranularité dCapacité de stockage
Données brutes7Jour100ms≈1.2GB/Jour
Agrégation minute90Jour1min≈200MB/Jour
Agrégation horaire2Année1h≈35MB/Jour
Agrégation journalière10Année1d≈5MB/Jour

4.2 Exemple de requête continue (InfluxQL)

-- 1Agrégation par minute(Courant de levage)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-- Requête:Passé24Courant de pointe horaireSELECT 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)

V. Qualité des données : 5 problèmes fréquents et solutionsnts et solutions

Un modèle AAS aussi performant soit-il ne vaut rien si les données sous-jacentes sont inexactes : des données erronées en entrée produisent des résultats erronés en sortie. Sur le terrain industriel, les problèmes de qualité des données sont bien plus courants qu'on ne l'imagine — dérive des capteurs, interruptions de communication, gigue de balayage des automates, interférences de signaux. Voici les 5 types de problèmes de qualité des données que nous avons identifiés lors de nos projets, accompagnés de leurs stratégies de traitement :

Type de problèmeMéthode de détectionStratégie de traitement
Perte de données(Intervalle>2×Période)Contrôle de séquence temporelleRemplissage par interpolation linéaire,quality=1
Valeur aberrante(Taux de variation>5σ) hors plageSupérieurlimite inférieureValidationRejet+Alarme,quality=2
FixationValeur hors plage(Signal mort>30s)Taux de variationDétectionMarquer comme suspect+Détection,quality=3
Valeur aberrante(Taux de variation>5σ)Anomalie statistiqueDétectionRemplacement par filtre médian,quality=4
Anomalie dValidation dRefus d

Chaque point de données comporte un champ quality (0 à 192). L'application de niveau supérieur peut, lors de la lecture, décider de faire confiance ou non à ce point de données en fonction de cette valeur. 192 = bon, 0 = mauvais, les valeurs intermédiaires étant classées selon leur niveau de gravité.

Intégration MES/ERP : bonnes pratiques

Une fois le modèle AAS établi, les systèmes d'entreprise tels que MES, ERP et WMS peuvent lire et écrire les données du pont roulant via une interface REST API unifiée :

Toutes les API renvoient un format de réponse uniforme :

APIPoint dMéthodeDescriptionFréquenceLimite
/api/v2/cranes/{id}/statusGETÉtat de fonctionnement en temps réel300Fois/min
/api/v2/cranes/{id}/telemetryGETDonnées historiques de télémétrie30Fois/min
/api/v2/cranes/{id}/alarmsGETHistorique des alarmes30Fois/min
/api/v2/maintenance/recordsPOSTAjouter un enregistrement de maintenance10Fois/min
/api/v2/statisticsGETRapport statistique10Fois/min

Conclusion

Le modèle de données AAS n'a rien d'une théorie abstraite : c'est avant tout un ensemble de spécifications qui permet aux équipements et aux systèmes de parler le même langage. Sa mise en œuvre reste simple — il suffit de structurer les registres du PLC, de créer la table de correspondance OPC UA et de renseigner le modèle JSON AAS. Le reste n'est qu'une affaire de pipeline de données.

Nous avons ensuite publié la méthode d'étalonnage des paramètres du modèle de simulation du pont roulant, qui explique comment déduire les paramètres de simulation à partir des données mesurées et clarifie la procédure d'étalonnage des modèles cinématiques et dynamiques, ainsi que la solution d'optimisation du rendu temps réel en périphérie. Restez connectés.

Questions fréquentes

Q : Qu'est-ce que l'enveloppe AAS et à quoi sert-elle ?
A : L'AAS (Asset Administration Shell, ou enveloppe de gestion d'actifs) est une norme clé de l'Industrie 4.0 (IEC 63278). On peut la considérer comme la « pièce d'identité + le CV » d'un équipement dans le monde numérique. Elle regroupe l'ensemble des informations du cycle de vie d'un équipement — paramètres de conception, données d'exploitation en temps réel, historique de maintenance, état de santé, etc. — dans un format standardisé. Pour un pont roulant, une fois l'AAS en place, les systèmes ERP, MES, SCADA et la Plateforme Cloud peuvent lire et comprendre toutes les données du pont via une interface unique, sans avoir à intégrer séparément chaque système.
Q : À quels systèmes le modèle AAS de Kelude peut-il se connecter ?
A : Il prend actuellement en charge la connexion directe aux automates Siemens S7-1200/1500 (protocole OPC UA), aux automates Mitsubishi de la série Q (Modbus TCP), ainsi qu'aux interfaces standard MQTT/REST API. Côté backend, il peut s'interfacer avec la base de données temporelle InfluxDB, les files de messages Kafka et toute base de données SQL. La solution a déjà été déployée sur plusieurs sites, notamment des aciéries, des ports et des zones industrielles, avec un taux de connexion réussi de 100 %.
Q : Une machine ancienne sans interface PLC peut-elle être intégrée à un AAS ?
A : Oui. Pour les équipements anciens sans sortie de données PLC, deux solutions s'offrent à vous : la première consiste à installer un boîtier de collecte avec capteurs (module d'acquisition IO-Link ou 4-20 mA, environ 256 €/unité) qui convertit les signaux physiques en signaux numériques avant de les transmettre à l'AAS ; la seconde repose sur la saisie manuelle des données statiques (historique de maintenance, etc.), tandis que les données dynamiques sont obtenues via les capteurs ajoutés. Aucune de ces deux approches ne nécessite le remplacement de la machine entière.

Articles connexes

contact

contact us

phone:
+86 13903802779

mail:3915269@qq.com

Working hours: Monday to Friday

Wechat
Wechat
SHARE
TOP