본문으로 건너뛰기

AAS (IEC 63278) 개요

IEC 63278 Asset Administration Shell(AAS) 국제 표준과 Caffeine Framework의 통합을 소개합니다.


IEC 63278 표준이란?​

Asset Administration Shell(AAS) 은 Industry 4.0에서 물리적 자산(장비, 센서, 제품 등)을 디지털 세계에서 표현하기 위한 국제 표준입니다. IEC 63278 시리즈로 정의되며, 독일 Plattform Industrie 4.0에서 주도하고 있습니다.

핵심 목적​

  • 상호운용성(Interoperability): 제조사, 프로토콜, 시스템에 관계없이 자산 정보를 표준화된 형태로 교환
  • 디지털 트윈(Digital Twin): 물리적 자산의 디지털 표현을 수명 주기 전체에 걸쳐 관리
  • 의미적 식별(Semantic Identification): ECLASS, IEC CDD 등 국제 사전을 통해 데이터에 의미를 부여
  • 벤더 중립(Vendor Neutral): JSON, XML, AASX 등 개방형 포맷으로 데이터 교환

디지털 트윈과의 관계​

디지털 트윈은 물리적 자산의 가상 복제본이라는 포괄적 개념이고, AAS는 이를 표준화된 데이터 구조로 구현하는 구체적 방법론입니다. AAS는 디지털 트윈의 "봉투(Envelope)"로서, 자산의 정체성(Identity), 구조(Structure), 의미(Semantics)를 표준화합니다.


AAS 핵심 구조​

IEC 63278은 계층적 데이터 모델을 정의합니다. 모든 AAS는 다음 4가지 핵심 요소로 구성됩니다.

Shell (AssetAdministrationShell)​

AAS의 최상위 컨테이너입니다. 자산의 글로벌 고유 식별자(Global Asset ID) 와 메타데이터를 포함하며, 하나 이상의 Submodel을 참조합니다.

public interface IAssetAdministrationShell
{
string Id { get; }
string IdShort { get; }
AssetInformation AssetInformation { get; }
IReadOnlyList<ISubmodelReference> Submodels { get; }
}

Submodel​

자산의 특정 측면(Aspect)을 구조화된 데이터로 표현합니다. 예를 들어, Nameplate(명판)은 제조사 정보를, TechnicalData(기술 데이터)는 장비 사양을 담습니다.

public interface ISubmodel
{
string Id { get; }
string IdShort { get; }
SemanticId? SemanticId { get; }
IReadOnlyList<ISubmodelElement> SubmodelElements { get; }
}

SubmodelElement​

Submodel 내부의 개별 데이터 항목입니다. Property, SubmodelElementCollection, Blob, File 등 다양한 타입을 지원합니다.

ConceptDescription​

데이터 항목의 의미(Semantics) 를 정의합니다. ECLASS IRDI, IEC CDD 등 국제 사전의 개념을 참조하여 데이터의 정확한 의미를 전달합니다.


Caffeine과 AAS​

Caffeine Framework는 IEC 63278 AAS 표준을 네이티브로 통합하여, IIoT 엣지 플랫폼의 장비 데이터를 국제 표준 형태로 변환하고 교환할 수 있도록 지원합니다.

주요 기능​

기능설명
장비 매니페스트 → AAS 자동 변환기존 Caffeine 장비 정의를 AAS Shell로 변환
서브모델 자동 빌드태그 정의 기반으로 Nameplate, TechnicalData 등 자동 생성
IEC 63278-1 JSON 직렬화표준 호환 JSON 포맷으로 직렬화/역직렬화
AASX 패키지 지원AASX 파일 Import/Export
REST/gRPC APIAAS Repository, Registry API 제공
SemanticId 자동 매핑태그 타입에서 ECLASS IRDI 자동 결정
RAG 파이프라인 통합AAS 문서를 AI 기반 RAG로 검색/분석

활성화 방법​

// Program.cs
services.AddCaffeineAas()
.AddSubmodelProvider<NameplateSubmodelProvider>()
.AddSemanticIdMapper<EclassSemanticIdMapper>()
.WithAasxPackageSupport();

지원 Submodel 유형​

Caffeine은 IEC 63278 및 IDTA(Industrial Digital Twin Association) 표준 서브모델 템플릿을 기본 지원합니다.

SubmodelIDTA 번호설명자동 생성
NameplateIDTA 02006-2-0제조사, 모델명, 시리얼 번호 등 명판 정보O
TechnicalDataIDTA 02003-1-2장비 기술 사양 (최대 온도, 압력 등)O
OperationalDataIDTA 02016-1-0실시간 운영 데이터 (현재 온도, 압력, 유량)O
AlarmCondition-경보 조건 및 이력O
DocumentationIDTA 02004-1-2매뉴얼, 인증서 등 첨부 문서수동
MaintenanceHistory-유지보수 이력 및 예정 작업O

SemanticId 매핑​

Caffeine은 태그의 물리량 타입을 ECLASS IRDI(International Registration Data Identifier)로 자동 매핑합니다. 이를 통해 AAS 데이터의 의미를 국제적으로 통용되는 표준으로 전달합니다.

기본 매핑 테이블​

Caffeine 태그 타입ECLASS IRDI물리량단위
Temperature0173-1#02-AAI835#001온도degC
Pressure0173-1#02-AAI836#001압력Pa
Flow0173-1#02-AAI837#001유량L/min
Voltage0173-1#02-AAI838#001전압V
Current0173-1#02-AAI839#001전류A
Humidity0173-1#02-AAI840#001습도%RH
Speed0173-1#02-AAI841#001속도rpm
Position0173-1#02-AAI842#001위치mm
Weight0173-1#02-AAI843#001중량kg

커스텀 매핑​

기본 매핑 외에 자체 ECLASS 매핑을 추가할 수 있습니다.

public interface ISemanticIdMapper
{
SemanticId? Map(string tagType);
bool CanMap(string tagType);
}

여러 매퍼를 체이닝하여 우선순위 기반으로 매핑할 수 있습니다.

services.AddCaffeineAas()
.AddSemanticIdMapper<CustomSemanticIdMapper>() // 우선순위 1
.AddSemanticIdMapper<EclassSemanticIdMapper>(); // 우선순위 2 (폴백)

Graceful Degradation​

Caffeine의 AAS 기능은 선택적(Opt-in) 으로 설계되어 있습니다. AAS 모듈을 활성화하지 않아도 기존 태그 수집, 알람, 히스토리 등 모든 기능이 100% 정상 동작합니다.

동작 방식​

AAS 설정 상태태그 수집알람히스토리AAS APIAAS 변환
미활성화정상정상정상404 반환미동작
활성화정상정상정상정상정상
AAS 서비스 장애정상정상정상503 반환재시도
  • AAS 모듈이 등록되지 않은 경우, AAS 관련 API 엔드포인트는 404 Not Found를 반환합니다.
  • AAS 서비스에 일시적 장애가 발생해도 핵심 데이터 수집 파이프라인은 영향을 받지 않습니다.
  • AAS 변환 실패 시 원본 태그 데이터는 보존되며, 변환만 건너뜁니다.

아키텍처 레이어​

Caffeine AAS는 Clean Architecture 원칙에 따라 계층적으로 설계되어 있습니다.

레이어별 역할​

레이어프로젝트역할
CoreCaffeine.CoreAAS 관련 인터페이스 정의 (IAasRepository, ISubmodelProvider, ISemanticIdMapper 등)
DomainCaffeine.AasAAS 도메인 모델, 엔티티, 값 객체, 변환기 (Converter)
ApplicationCaffeine.Aas.RagRAG 파이프라인 (문서 인제스트, 벡터 검색, LLM 연동)
PresentationCaffeine.EngineREST/gRPC API 엔드포인트, AAS Controller

의존성 규칙​

  • Core: 어떤 외부 프로젝트도 참조하지 않음 (최하위 계층)
  • Aas: Core만 참조
  • Aas.Rag: Core + Aas 참조
  • Engine/Admin: 모든 계층 참조 가능 (Composition Root)

다음 단계​