자산 관리 셸을 사용하는 방법

Mar 04 2023
AASX Package Explorer 및 AASX Server를 사용하여 디지털 트윈을 만들고 상호 작용하는 방법에 대한 자습서
내 기사 "디지털 트윈이란 무엇입니까?" 디지털 트윈 기술의 개념에 대해 설명드렸습니다. 이 기사는 사용 가능한 오픈 소스 소프트웨어와 함께 디지털 트윈을 실제로 사용하는 방법에 대한 자습서입니다.

내 기사 " 디지털 트윈이란 무엇입니까? ” 디지털 트윈 기술의 개념을 설명했다.

이 기사는 사용 가능한 오픈 소스 소프트웨어와 함께 디지털 트윈을 실제로 사용하는 방법에 대한 자습서입니다.

특히 Industrial Digital Twin Association의 admin-shell-io GitHub 리포지토리 의 소프트웨어와 함께 자산 관리 셸을 사용하는 방법을 보여드리겠습니다 .

디지털 트윈이란 무엇입니까?

자산 관리 쉘

AAS(자산 관리 셸)는 Industry 4.0을 위한 디지털 트윈 구현입니다. AAS 사양은 현재 [1]과 [2]의 두 부분으로 설명되어 있습니다. IEC 63278: 산업용 애플리케이션을 위한 자산 관리 셸로 개발 중인 국제 표준도 있습니다 .

AAS의 기본 아이디어는 자산을 디지털 방식으로 캡슐화한다는 것입니다. 자산 및 관리 쉘을 함께 인더스트리 4.0 구성 요소라고 합니다.

AAS는 자산을 캡슐화합니다. 이들은 함께 인더스트리 4.0 구성요소를 형성합니다 [1]

AAS의 UML 메타모델은 [1]에 문서화되어 있습니다. 즉, 최상위 수준에는 자산과 연결된 AAS가 있습니다. 다음 레벨에는 각각 데이터 요소(예: 변수 또는 파일)를 포함하는 여러 하위 모델이 있습니다.

API 문서는 [2]에서 찾을 수 있습니다. 현재 HTTP/REST API만 문서화되어 있습니다. MQTT 및 OPC UA 지원은 향후 계획되어 있습니다.

AASX 패키지 탐색기

AASX 패키지 탐색기는 *.AASX 파일을 만들고 편집하는 데 사용됩니다.

오픈 소스 AASX Package Explorer는 Windows 10용 실행 파일을 제공하는 GitHub 에서 무료로 사용할 수 있습니다 . 최신 버전(예: aasx-package-explorer.2023–02–03.alpha.zip )을 다운로드하고 압축을 푼 다음 AasxPackageExplorer.exe를 실행합니다. .

예제를 보려면 파일 → 열기 로 이동하여 content-for-demo/Example_AAS_ServoDCMotor_21.aasx를 엽니다. 그러면 DC 모터에 대한 다음 예제 AAS가 열립니다.

AASX 패키지 탐색기 GUI

최상위 수준에는 ExampleMotor AAS가 있습니다. 다음 레벨에는 4개의 하위 모델이 있습니다. 각 하위 모델에는 속성과 해당 값이 포함되어 있습니다.

예를 들어 TechnicalData 아래에서 상수 MaxRotationSpeed를 찾습니다 . RotationSpeed ​​변수는 OperationalData 아래에 있습니다 .

값을 변경하거나 새 하위 모델 또는 속성을 추가하려면 Workspace → Edit 를 선택하여 편집을 활성화해야 합니다 .

AASX 서버

AASX 서버는 디지털 트윈과 상호 작용할 수 있는 REST API를 제공합니다.

오픈 소스 소프트웨어는 Windows 및 Linux용 바이너리를 사용할 수 있는 GitHub 에서 무료로 사용할 수 있습니다. Docker 컨테이너도 제공됩니다.

Windows에서 최신 버전(예: AasxServerWindows.2022–01–13.alpha.zip)을 다운로드하고 압축을 풉니다. 그런 다음 startForDemo.bat를 실행합니다.

이제 다음 메시지가 표시됩니다.

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

사용 가능한 자산 관리 셸 가져오기

서버에서 사용 가능한 모든 *.aasx 파일을 확인하려면 다음을 사용하십시오.

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

이렇게 하면 다음과 같은 응답이 표시됩니다.

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

GET 하위 모델 요소

다음으로 다음 HTTP 요청을 사용하여 현재 RotationSpeed를 읽어 보겠습니다 .

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

또는

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

이것은 우리에게 응답을 줄 것입니다:

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

이제 다음 HTTP 요청을 사용하여 RotationSpeed를 새 값으로 변경해 보겠습니다 .1234

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

위 콘텐츠 의 페이로드(본문) elem:

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

하위 모델 요소 삭제

마지막으로 다음 HTTP 요청을 사용하여 RotationSpeed ​​속성을 삭제할 수 있습니다 .

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

결론

AASX Package Explorer를 사용하여 나만의 디지털 트윈을 만드십시오. AASX 서버는 GET, PUT 및 DELETE 명령과 함께 HTTP/REST API를 제공합니다.

AAS 사양은 아직 개발 중입니다. 따라서 AASX 소프트웨어는 아직 알파 버전이며 변경될 수 있습니다.

아래 사용 사례는 현재 가능한 것을 보여줍니다. 예를 들어 실제 데모 상자에서 디지털 자산 관리 셸로 실시간 측정값이 전송됩니다. 또한 AAS에는 PDF 문서와 3D CAD 모델이 포함되어 있습니다.

AAS의 실시간 사용 사례 [출처: Festo Demo Box]

참조

[1] Platform Industrie 4.0: 자산 관리 셸 세부 정보 - 1부 (2022)

[2] Platform Industrie 4.0: 자산 관리 셸 세부 정보 - 2부 (2021)

추가 리소스

레벨업 코딩

우리 커뮤니티의 일원이 되어 주셔서 감사합니다! 가기 전에:

  • 이야기에 박수치고 작가 팔로우
  • 레벨업 코딩 출판물 에서 더 많은 콘텐츠 보기
  • 팔로우: 트위터 | 링크드인 | 뉴스 레터