# ILSOS_PrismaticRD_PTOP 핵심 구조 ## 폴더 구조 및 주요 컴포넌트 ``` ILSOS_PrismaticRD_PTOP/ ├── EquipDef.cs ← ID 상수 정의 (DeviceIds / SequenceIds / StreamMessageNames) ├── EquipmentSetup.cs ← 통합 제어 (디바이스·시퀀스 등록, 이벤트 구독) ├── Alarm/ ← AlarmCode_PTOP, AlarmManager_PTOP ├── Device/ │ ├── IO/ ← PAIX_PTOP (디지털 IO) │ └── PLC/ ← PLCControllerPTOP (Config / Address / Logic) ├── Models/ ← EquipmentSpecificModel_PTOP ├── Recipes/ ← RMSHandlerForPTOP ├── Sequences/ │ ├── SeqAutoRunPTOP.cs ← 자동운전 (현행 메인) │ ├── SeqAutoRunComponentWeld.cs / SeqAutoRunPrismatic.cs │ ├── SeqTestRun / SeqStreamTest / SeqEventQTest / SeqWaitWeldOrChangePage │ ├── SequenceManager.cs / SequenceContextEx.cs │ ├── Manual/ ← SeqComponentTeachingRun │ └── Monitoring/ ← SeqAlarmMonitor, SeqStatusMonitor ├── Settings/ ← SettingUploadDataListForPTOP └── Views/ ├── Main/ ← UCMainAutoRun (+ ViewModel) └── Model/ ← UCEquipmentSpecificEditor ``` ## 주요 ID 정의 (EquipDef.cs) | 클래스 | 멤버 (발췌) | |---------|------| | **DeviceIds** : CommonDeviceIds | `MassFlowMeter` (그 외 대부분 base `CommonDeviceIds` 상속) | | **SequenceIds** : CommonSequenceIds | `SeqAutoRunPTOP`, `SeqAutoRunTDC`, `SeqAutoRunComponentWeld`, `SeqAlarmMonitor`, `SeqStatusMonitor`, `SeqTestRun`, `SeqStreamTest`, `SeqEventQTest` | | **StreamMessageNames** | `MessageNameString/Double/Int/JSON/LBAD` | > 이 머신엔 `MotorIds`/`RecipeIds` 클래스가 없음 — 모터/레시피 ID는 base `Common*` 또는 레시피 매니저에서 관리. ## 아키텍처 패턴 (3계층) ``` WPF UI Layer (Views/ + ViewModels) ↓ Machine Logic Layer (EquipmentSetup + Sequences) ↓ Device Abstraction (AuroraDevices — 디바이스별 독립 모듈) ↓ Hardware Layer (ACS.SPiiPlusNET, Melsec, Serial/USB) ``` **기술 스택:** - **이벤트 기반:** System.Reactive (Rx.NET) - **의존성 주입:** AuroraEnv 글로벌 환경 - **메시지 큐:** String / Double / Int / JSON / LBAD 타입 > Aurora 프레임워크 개념·패턴·함정 상세 → `docs/Aurora에이전트레퍼런스모음/`