# ILSOS_PrismaticPTOP 핵심 구조 ## 폴더 구조 및 주요 컴포넌트 ``` ILSOS_PrismaticPTOP/ ├── EquipDef.cs ← ID 상수 정의 (Device/Motor/Sequence/Recipe) ├── EquipmentSetup.cs ← 통합 제어 (초기화, 이벤트 구독, 시퀀스 시작) ├── Alarm/ ← 알람 코드 및 매니저 ├── Device/ │ ├── ACS/ ← ACS 모션 제어 (X/Y축) │ └── PLC/ ← PLC 통신 로직 ├── Models/ ← 장비 특화 모델 ├── Process/ ← ProcessManager, CellInfo, WeldingData ├── Recipes/ ← MainRecipe, RMSHandler ├── Sequences/ │ ├── Monitoring/ ← 알람/상태 모니터링 시퀀스 │ ├── SeqAutoRunPrismaticGunStageA/B.cs │ └── SubSequence/ │ ├── StageA/ ← Load, Weld, Unload, HeightMeas │ └── StageB/ ← Load, Weld, Unload, HeightMeas ├── settings/ ← 세팅 정의 클래스 ├── Tools/ ← 공통 유틸리티 └── Views/ ← WPF View/ViewModel ``` ## 주요 ID 정의 (EquipDef.cs) | 카테고리 | 예시 | |---------|------| | **DeviceIds** | ACS, MassFlowMeterStageA/B, HeightSensor, AJIN | | **MotorIds** | ALineX/Y/Z, BLineX/Y/Z | | **RecipeIds** | StageAMainRecipe, StageBMainRecipe | | **SequenceIds** | SeqLoad/Weld/Unload/HeightMeas × StageA/B | ## 아키텍처 패턴 ``` WPF UI Layer (Views/ + ViewModels) ↓ Machine Logic Layer (EquipmentSetup + Sequences + Process) ↓ Device Abstraction (AuroraDevices — 디바이스별 독립 모듈) ↓ Hardware Layer (ACS.SPiiPlusNET, Melsec, Serial/USB) ``` **기술 스택:** - **이벤트 기반:** System.Reactive (Rx.NET) - **의존성 주입:** AuroraEnv 글로벌 환경 - **메시지 큐:** String / Double / Int / JSON / LBAD 타입