Cómo usar el shell de administración de activos
En mi artículo “¿ Qué es un gemelo digital? Expliqué el concepto de tecnología de gemelos digitales.
Este artículo es un tutorial sobre cómo usar realmente el gemelo digital con el software de código abierto disponible.
Específicamente, le mostraré cómo usar Asset Administration Shell con software del repositorio admin-shell-io GitHub de Industrial Digital Twin Association.
¿Qué es un gemelo digital?Shell de administración de activos
Asset Administration Shell (AAS) es una implementación de gemelos digitales para Industry 4.0. Las especificaciones AAS se describen actualmente en dos partes en [1] y [2]. También hay un estándar internacional en desarrollo como IEC 63278: Shell de administración de activos para aplicaciones industriales .
La idea detrás del AAS es que encapsula digitalmente un activo. Juntos, el shell de administración y el de activos se denominan componente de Industria 4.0.
En [1] se documenta un metamodelo UML del AAS. En definitiva, en el nivel superior tenemos el AAS, que está asociado a un activo. En el siguiente nivel, tenemos varios submodelos que contienen elementos de datos, por ejemplo, variables o archivos.
La documentación de la API se puede encontrar en [2]. Actualmente, solo se documenta la API HTTP/REST. La compatibilidad con MQTT y OPC UA está prevista para el futuro.
Explorador de paquetes AASX
El Explorador de paquetes AASX se utiliza para crear y editar archivos *.AASX.
El AASX Package Explorer de código abierto está disponible gratuitamente en GitHub , que proporciona ejecutables para Windows 10. Descargue y descomprima la última versión, por ejemplo, aasx-package-explorer.2023–02–03.alpha.zip , y luego ejecute AasxPackageExplorer.exe .
Para ver un ejemplo, vaya a Archivo → Abrir y abra content-for-demo/Example_AAS_ServoDCMotor_21.aasx. Esto abrirá el siguiente ejemplo de AAS para un motor de CC.
En el nivel superior, está el ExampleMotor AAS. En el siguiente nivel, hay cuatro submodelos. Cada submodelo contiene propiedades y sus valores.
Por ejemplo, encontramos la constante MaxRotationSpeed en TechnicalData . La variable RotationSpeed se encuentra en OperationalData .
Si desea cambiar valores o agregar nuevos submodelos o propiedades, debe habilitar la edición seleccionando Área de trabajo → Editar .
Servidor AASX
El servidor AASX proporciona la API REST para interactuar con nuestros gemelos digitales.
El software de código abierto está disponible gratuitamente en GitHub , donde se encuentran disponibles binarios para Windows y Linux. También se proporciona un contenedor Docker.
En Windows, descargue y descomprima la última versión, por ejemplo, AasxServerWindows.2022–01–13.alpha.zip. Luego, ejecute startForDemo.bat.
Ahora debería ver el siguiente mensaje:
C:\AasxServerWindows>AasxServerWindows.exe --rest --no-security --data-path aasxs
Serving the AASXs from: aasxs
Security 1 Startup - Server
Security 1.1 Load X509 Root Certificates into X509 Store Root
Loading aasxs\Example_AAS_ServoDCMotor_21.aasx...
Please wait for the servers to start...
Connect to REST by: localhost:51310
http://localhost:51310/
REST Server started.
Servers successfully started. Press Ctrl-C to exit...
OBTENER shells de administración de activos disponibles
Para verificar todos los archivos *.aasx disponibles en el servidor, use
GET http://localhost:51310/server/listaas
Esto le dará la siguiente respuesta:
{
"aaslist": [
"0 : ExampleMotor : [IRI] http://customer.com/aas/9175_7013_7091_9168 : aasxs\\Example_AAS_ServoDCMotor_21.aasx"
]
}
OBTENER elementos de submodelo
A continuación, leamos el RotationSpeed actual con la siguiente solicitud HTTP:
GET http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements/RotationSpeed
o
GET http://localhost:51310/aas/0/submodels/OperationalData/elements/RotationSpeed
Esto nos dará la respuesta:
{
"elem": {
"value": "4370",
"valueId": null,
"semanticId": {
"keys": [
{
"type": "ConceptDescription",
"local": true,
"value": "http://customer.com/cd//1/1/18EBD56F6B43D895",
"index": 0,
"idType": "IRI"
}
]
},
"constraints": [],
"hasDataSpecification": [],
"idShort": "RotationSpeed",
"category": "VARIABLE",
"modelType": {
"name": "Property"
},
"valueType": {
"dataObjectType": {
"name": "integer"
}
},
"kind": "Instance",
"descriptions": null
}, ...
}
GET http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements/RotationSpeed/value
{
"value": "4370"
}
Ahora, cambiemos RotationSpeed a un nuevo valor 1234con la siguiente solicitud HTTP:
PUT http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements
con la carga útil (cuerpo) del elemcontenido anterior:
{
"value": "1234",
"valueId": null,
"semanticId": {
"keys": [
{
"type": "ConceptDescription",
"local": true,
"value": "http://customer.com/cd//1/1/18EBD56F6B43D895",
"index": 0,
"idType": "IRI"
}
]
},
"constraints": [],
"hasDataSpecification": [],
"idShort": "RotationSpeed",
"category": "VARIABLE",
"modelType": {
"name": "Property"
},
"valueType": {
"dataObjectType": {
"name": "integer"
}
}
}
ELIMINAR elementos de submodelo
Por último, podemos eliminar la propiedad RotationSpeed con la siguiente solicitud HTTP:
DELETE http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements/RotationSpeed
Conclusión
Utilice el Explorador de paquetes AASX para crear su propio gemelo digital. El servidor AASX proporciona una API HTTP/REST con los comandos GET, PUT y DELETE.
Las especificaciones AAS todavía están en desarrollo. Por lo tanto, el software AASX todavía está en versión alfa y está sujeto a cambios.
El caso de uso a continuación muestra lo que es posible actualmente. Por ejemplo, las mediciones en tiempo real se envían desde la caja de demostración física a su shell de administración de activos digital. Además, el AAS incluye documentos PDF y un modelo CAD en 3D.
Referencias
[1] Platform Industrie 4.0: Detalles de Asset Administration Shell — Parte 1 (2022)
[2] Platform Industrie 4.0: Detalles de Asset Administration Shell — Parte 2 (2021)
Recursos adicionales
Codificación de nivel superior
¡Gracias por ser parte de nuestra comunidad! Antes de que te vayas:
- Aplaude la historia y sigue al autor
- Ver más contenido en la publicación Level Up Coding
- Síguenos: Twitter | LinkedIn | Boletin informativo

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































