핵심 미션
- AAS 표준 준수: Sequence Control 서브모델로 제조 시퀀스를 IDTA 표준에 맞게 정의
- 멀티 인터페이스: REST API, OPC-UA를 통한 다층 시스템 연동
- Legacy 마이그레이션: PLC 프로젝트(LS/Siemens/AB/Mitsubishi)를 파싱하여 AASX로 자동 전환
- 템플릿 라이브러리: 공법 템플릿 50+ 종을 활용한 재사용성 극대화 및 LLM 학습 데이터
- 디지털 트윈 대응: Project-System-Flow-Work-Call 계층구조의 그래프 기반 실행 모델
IDTA 02XXX-1-0 | Dualsoft | 2025-07-25 | Draft
- AAS 3.0 표준 준수 Sequence Control Submodel Template 정의서
- Project → System → Flow → Work → Call → ApiCall 계층 구조
- Element Hierarchy, Data Types, Validation Rules, Security Considerations 포함
- 클릭하여 상세 스펙 확인
AAS 구조 개요
| AAS 요소 | Sequence Control 매핑 | 설명 |
|---|---|---|
| AASX Package | ProjectShell | AAS 패키지 컨테이너 (Shell + Asset + Submodel) |
| Submodel | SequenceControlSubmodel | 시퀀스 제어 Submodel (Project SMC 포함) |
| SMC | Project, System, Flow, Work, Call, ApiDef, ApiCall, Arrow | 계층적 데이터 그룹화, 재귀적 SMC + Property 구조 |
| Property | Name, Guid, Status, FlowGuid, Period 등 | SMC 내부의 단일 속성 값 |
Semantic URL 패턴: https://dualsoft.com/aas/{category}/{element}
모든 Sequence Control 요소는 표준 Semantic URL을 사용하여 상호운용성을 보장합니다. (예: https://dualsoft.com/aas/unique/guid, https://dualsoft.com/aas/work/period)
AAS 표준 구조 + SequenceControl Submodel
기존 AAS 표준 Submodel(Nameplate, TechnicalData 등)과 함께 SequenceControl Submodel이 추가된 전체 구조입니다.
AssetAdministrationShell (KIA_Body_Welding_Line)
├── id: https://dualsoft.com/aas/shell/kia-body-01
├── idShort: KIA_Body_Welding_Line
├── AssetInformation
│ ├── globalAssetId: kia-body-welding-2025
│ └── assetKind: Instance
│
├── Submodels (참조 목록)
│ │
│ ├── Nameplate (IDTA 02006-2-0)
│ │ └── ManufacturerName, ProductDesignation, SerialNumber...
│ │
│ ├── TechnicalData (IDTA 02003-1-2)
│ │ └── GeneralInformation, TechnicalProperties...
│ │
│ ├── OperationalData (IDTA 02008-1-1)
│ │ └── OperatingHours, PowerConsumption, CycleCount...
│ │
│ ├── Documentation (IDTA 02004-1-2)
│ │ └── OperatingInstructions, Drawings, Certificates...
│ │
│ └── SequenceControl (IDTA 02XXX-1-0) ★ 신규
│ ├── semanticId: https://dualsoft.com/aas/submodel/sequenceControl
│ ├── kind: Instance
│ │
│ └── Project
│ ├── Name, Guid, Version, Author, DateTime
│ │
│ ├── ActiveSystems (직접 제어 시스템)
│ │ └── System (WeldingSystem_01)
│ │ ├── Name, Guid, EngineVersion, LangVersion
│ │ ├── Flows [ ]
│ │ │ └── Flow (MainProcess)
│ │ │ ├── Name, Guid
│ │ │ └── ButtonDefs, LampDefs, Conditions...
│ │ ├── Works [ ]
│ │ │ └── Work (LoadMaterial)
│ │ │ ├── Name, Guid, FlowGuid, NumRepeat
│ │ │ ├── Calls [ ]
│ │ │ │ └── Call (Step1)
│ │ │ │ ├── Name, Guid, Timeout
│ │ │ │ └── ApiCalls [ ]
│ │ │ │ └── ApiCall (Cylinder_Fwd)
│ │ │ │ ├── ApiDef (ref), InAddr, OutAddr
│ │ │ │ └── InSymbol, OutSymbol
│ │ │ └── Arrows (Work Level)
│ │ ├── ApiDefs [ ]
│ │ │ └── ApiDef (CylinderForward)
│ │ │ └── Name, Guid, IsPush
│ │ └── Arrows (System Level)
│ │
│ └── PassiveSystems (간접 제어/참조 시스템)
│ └── System [ ... ]
│
└── ConceptDescriptions (선택)
└── DataSpecification IEC 61360...
- Nameplate - 제조사/제품 정보
- TechnicalData - 기술 사양
- OperationalData - 운영 데이터
- Documentation - 문서/도면
- Project → System → Flow → Work → Call
- ApiDef/ApiCall - 디바이스 I/O 매핑
- Arrow - 그래프 기반 실행 흐름
- PLC Legacy → AAS 자동 변환
Sequence Control Submodel Template - 스키마 예제
1. Project (AAS) XML
AssetAdministrationShell 구조, Active/Passive Systems 포함
2. System (Submodel) JSON
SequenceControl Submodel, Flows/Works/ApiDefs 포함
3. Flow/Work XML
SubmodelElementCollection, Calls/Arrows 중첩 구조
4. ApiDef/ApiCall JSON
Device I/O 매핑, Input/Output, TopicIndex/IsTopicOrigin
6계층 데이터 모델 아키텍처
| 계층 | 설명 | 그래프 특성 | AAS 매핑 |
|---|---|---|---|
| 1. Project | 프로젝트 최상위 컨테이너, 다수의 System 포함 | N/A | AssetAdministrationShell |
| 2. System | 작업 흐름 그래프, Work 간 전역 연결 | Cyclic Graph 허용 | SMC |
| 3. Flow | 논리적 그룹 (공정 조작 단위), 버튼/램프/조건/액션 | N/A | SMC |
| 4. Work | 작업 실행 단위, Call 그래프 포함, 반복/타이밍 제어 | DAG (비순환 그래프) | SMC |
| 5. Call | Work 내부 순차 실행 단위, Status/Conditions 속성 포함 | Vertex (그래프 노드) | SMC |
| 6. ApiCall / ApiDef | SMC로 재귀적 구조, ValueSpec/IOTags Property 포함 | N/A | SMC |
Sequence Control 계층 구조
| 레벨 | 계층 | AAS 타입 | 주요 속성 | 연결 관계 |
|---|---|---|---|---|
| L0 | SUBMODEL | Submodel | SequenceControlSubmodel | Contains Project |
| L1 | PROJECT | SMC | Name, Guid, Systems[] | Contains Systems |
| L2 | SYSTEM | SMC | Flows[], Works[], ApiDefs[] | Contains Flows & Works |
| L3 | FLOW | SMC | ButtonDefs[], LampDefs[] | Groups Works |
| L4 | WORK | SMC | Motion, Script, Status4 | Arrow → Next Work |
| L5 | CALL | SMC | Status, Conditions (Property) | Arrow → Next Call |
| L6 | APICALL/APIDEF | SMC | ValueSpec, IOTags (Property) | ApiDef 참조 |
주요 REST API 엔드포인트
| Method | Endpoint | 설명 | 비고 |
|---|---|---|---|
| GET | /api/projects/{id} | Project 전체 메타데이터 조회 | AASX 구조 |
| POST | /api/flows | Flow 생성 (Graph/Work 포함) | Validation |
| PUT | /api/works/{id} | Work Step 수정, ApiCall 매핑 | Versioning |
| POST | /api/publish | AASX Packaging + OPC-UA 등록 | 자동 배포 |
| POST | /api/simulate | 시뮬레이션 실행 | Debug 지원 |
API Validation: 모든 REST API는 IDTA Sequence Control Submodel Template 스키마를 기반으로 요청/응답을 검증합니다.
Semantic URL 일치 여부, GUID 참조 유효성, 그래프 DAG/Cyclic 제약 조건을 자동으로 확인하여 데이터 무결성을 보장합니다.
POST /api/validate 엔드포인트를 통해 배포 전 사전 검증이 가능합니다.
거버넌스 & 품질 관리
| 영역 | 규칙 | 검증 방법 |
|---|---|---|
| 버전 관리 | Semantic Versioning (Major.Minor.Patch) | 자동 버전 증분, Change Log |
| 품질 게이트 | Graph/ApiCall/Safety/Semantic URL 검사 | 자동 Validation, CI/CD 통합 |
| 배포 자동화 | Publish API → AASX + OPC-UA + DS Pilot | Atomic Deployment, Rollback |
| 트레이서빌리티 | Author, DateTime, Provenance, Change History | Audit Log, Usage Statistics |