Como usar o Shell de administração de ativos

Mar 04 2023
Um tutorial sobre como criar e interagir com gêmeos digitais usando o AASX Package Explorer e o AASX Server
No meu artigo “O que é um gêmeo digital?” Expliquei o conceito de tecnologia de gêmeos digitais. Este artigo é um tutorial sobre como realmente usar o gêmeo digital com o software de código aberto disponível.

No meu artigo “ O que é um gêmeo digital? ” Expliquei o conceito de tecnologia de gêmeos digitais.

Este artigo é um tutorial sobre como realmente usar o gêmeo digital com o software de código aberto disponível.

Especificamente, mostrarei como usar o Asset Administration Shell com software do repositório GitHub admin-shell-io da Industrial Digital Twin Association .

O que é um gêmeo digital?

Shell de administração de ativos

O Asset Administration Shell (AAS) é uma implementação de gêmeo digital para a Indústria 4.0. As especificações AAS são atualmente descritas em duas partes em [1] e [2]. Há também um padrão internacional em desenvolvimento como IEC 63278: Shell de administração de ativos para aplicações industriais .

A ideia por trás do AAS é que ele encapsula digitalmente um ativo. Juntos, o recurso e o shell de administração são chamados de componente da Indústria 4.0.

O AAS encapsula um ativo. Juntos, eles formam um componente da Indústria 4.0 [1]

Um metamodelo UML do AAS está documentado em [1]. Resumindo, no nível superior temos o AAS, que está associado a um ativo. No nível seguinte, temos vários submodelos, cada um contendo elementos de dados, por exemplo, variáveis ​​ou arquivos.

A documentação da API pode ser encontrada em [2]. Atualmente, apenas a API HTTP/REST está documentada. O suporte a MQTT e OPC UA está planejado para o futuro.

Explorador de pacotes AASX

O AASX Package Explorer é usado para criar e editar arquivos *.AASX.

O AASX Package Explorer de código aberto está disponível gratuitamente no GitHub , que fornece executáveis ​​para o Windows 10. Baixe e descompacte a versão mais recente, por exemplo, aasx-package-explorer.2023–02–03.alpha.zip e, em seguida, execute AasxPackageExplorer.exe .

Para ver um exemplo, vá para Arquivo → Abrir e abra content-for-demo/Example_AAS_ServoDCMotor_21.aasx. Isso abrirá o seguinte exemplo de AAS para um motor CC.

A GUI do Explorador de Pacotes AASX

No nível superior, está o ExampleMotor AAS. No próximo nível, existem quatro submodelos. Cada submodelo contém propriedades e seus valores.

Por exemplo, encontramos a constante MaxRotationSpeed ​​em TechnicalData . A variável RotationSpeed ​​está localizada em OperationalData .

Se quiser alterar valores ou adicionar novos submodelos ou propriedades, você deve habilitar a edição selecionando Workspace → Edit .

Servidor AASX

O servidor AASX fornece a API REST para interagir com nossos gêmeos digitais.

O software de código aberto está disponível gratuitamente no GitHub , onde estão disponíveis binários para Windows e Linux. Um contêiner do Docker também é fornecido.

No Windows, baixe e descompacte a versão mais recente, por exemplo, AasxServerWindows.2022–01–13.alpha.zip. Em seguida, execute startForDemo.bat.

Agora você deve ver a seguinte mensagem:

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...

OBTER Shells de administração de ativos disponíveis

Para verificar todos os arquivos *.aasx disponíveis no servidor, use

GET http://localhost:51310/server/listaas

Isso lhe dará a seguinte resposta:

{
    "aaslist": [
        "0 : ExampleMotor : [IRI] http://customer.com/aas/9175_7013_7091_9168 : aasxs\\Example_AAS_ServoDCMotor_21.aasx"
    ]
}

GET Elementos do Submodelo

Em seguida, vamos ler o RotationSpeed ​​atual com a seguinte solicitação HTTP:

GET http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements/RotationSpeed

ou

GET http://localhost:51310/aas/0/submodels/OperationalData/elements/RotationSpeed

Isso nos dará a resposta:

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

Agora, vamos alterar RotationSpeed ​​para um novo valor 1234com a seguinte requisição HTTP:

PUT http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements

com o Payload (Corpo) do elemconteúdo acima:

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

APAGAR Elementos do Submodelo

Por fim, podemos excluir a propriedade RotationSpeed ​​com a seguinte solicitação HTTP:

DELETE http://localhost:51310/aas/ExampleMotor/submodels/OperationalData/elements/RotationSpeed

Conclusão

Use o AASX Package Explorer para criar seu próprio gêmeo digital. O servidor AASX fornece uma API HTTP/REST com os comandos GET, PUT e DELETE.

As especificações AAS ainda estão em desenvolvimento. Portanto, o software AASX ainda está em alfa e sujeito a alterações.

O caso de uso abaixo mostra o que é atualmente possível. Por exemplo, medições em tempo real são enviadas da caixa de demonstração física para seu Shell de administração de ativos digital. Além disso, o AAS inclui documentos PDF e um modelo CAD 3D.

Caso de uso em tempo real do AAS [Fonte: Festo Demo Box]

Referências

[1] Platform Industry 4.0: Detalhes do Asset Administration Shell — Parte 1 (2022)

[2] Platform Industry 4.0: Detalhes do Asset Administration Shell — Parte 2 (2021)

Recursos adicionais

Codificação de nível

Obrigado por fazer parte da nossa comunidade! Antes de você ir:

  • Bata palmas para a história e siga o autor
  • Veja mais conteúdo na publicação Level Up Coding
  • Siga-nos: Twitter | Linkedin | Boletim de Notícias