# ILSOS 프로젝트 아키텍처 > CLAUDE.md의 "프로젝트 문서" 섹션에서 import하던 개별 문서들을 통합한 아키텍처 문서입니다. > 세부 내용은 각 원본 문서를 참고하세요. ## 목차 1. [프로젝트 개요](#1-프로젝트-개요) 2. [솔루션 구조](#2-솔루션-구조) 3. [ILSOS_PrismaticPTOP 핵심 구조](#3-ilsos_prismaticptop-핵심-구조) 4. [AuroraDevices 모듈](#4-auroradevices-모듈) 5. [빌드 출력 경로](#5-빌드-출력-경로) 6. [PTOP 분석 하네스](#6-ptop-분석-하네스) --- ## 1. 프로젝트 개요 > 원본: [`project-overview.md`](./project-overview.md) ### ILSOS - OC5 PilotLine RectangleTypeWelder **목표:** 각형 배터리 용접 자동화 시스템 **플랫폼 및 기술:** - OS: Windows 10 / Windows 11 - 프레임워크: .NET Framework 4.8.1 - IDE: Visual Studio 2022 - UI 프레임워크: WPF (Aurora 프레임워크 기반) - 솔루션 파일: `ILSOS_All.sln` **빌드 구성:** - Debug | x64 - Release | x64 - Simulation | x64 - UserDefineUnit | x64 **주요 머신 모듈:** - **ILSOS_PrismaticPTOP**: 현재 활성 모듈 (주요 개발 대상) - **ILSOS_PrismaticScanner**: 참고 용도의 레거시 소스 - ILSOS_PrismaticGun: 미사용 - ILSOS_PrismaticCleanLaser: 미사용 **주의사항:** - WeldingComponents와 Aurora 관련 코드 수정 시 반드시 사전 승인 필요 - 소스의 `config/` 디렉토리는 분석 시 참고할 것 - 모든 파일 수정 시 `docs/CODING_RULES.md` 확인 필수 - 한글 포함 파일 작성/수정 시 UTF-8 인코딩 준수 --- ## 2. 솔루션 구조 > 원본: [`solution-structure.md`](./solution-structure.md) ### ILSOS_All.sln 구성 ``` ILSOS_All.sln ├── Machines/ │ ├── ILSOS_PrismaticPTOP/ ← 현재 활성 모듈 (3계층 아키텍처) │ ├── ILSOS_PrismaticScanner/ ← 참고 대상 (레거시) │ ├── ILSOS_PrismaticGun/ ← 미사용 │ └── ILSOS_PrismaticCleanLaser/ ← 미사용 ├── AuroraDevices/ ← 하드웨어 디바이스 드라이버 (22개 프로젝트) ├── AuroraComponents/ ← WPF UI 공통 컴포넌트 ├── AuroraVision/ ← 비전 시스템 (MIL 기반) ├── WeldingComponents/ ← 용접 공통 기능 │ ├── WeldingCommon │ └── LASAGUI └── External/ ← Aurora 프레임워크 바이너리 ``` ### 주요 특징 - **모듈화:** 각 머신 모듈은 독립적인 디바이스 제어 및 시퀀스 구현 - **공유 레이어:** AuroraDevices, AuroraComponents 등으로 코드 재사용 - **표준 규칙:** WeldingComponents는 수정 불가 (승인 필수) - **설정 참고:** 각 머신의 `config/` 디렉토리에서 설정 확인 가능 --- ## 3. ILSOS_PrismaticPTOP 핵심 구조 > 원본: [`ptop-architecture.md`](./ptop-architecture.md) ### 폴더 구조 및 주요 컴포넌트 ``` 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 | ### 아키텍처 패턴 (3계층) ``` 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 타입 --- ## 4. AuroraDevices 모듈 > 원본: [`aurora-devices.md`](./aurora-devices.md) AuroraDevices는 하드웨어 디바이스 제어를 담당하는 22개 프로젝트 모음입니다. | 프로젝트 | 역할 | 비고 | |---------|------|------| | AuroraDeviceCommon | 디바이스 공통 기본 클래스 | 모든 디바이스 상속 | | AuroraACS | ACS SPiiPlus 모션 컨트롤러 | X/Y축 모션 제어 | | AuroraMotionBoard | Ajin 모션 보드 | Z축 모션 제어 | | AuroraLaser | 레이저 제어 (Gun 타입) | 고정 레이저 | | AuroraLaserScanner | 레이저 스캐너 제어 | 동적 스캐닝 | | AuroraPLC | Mitsubishi Melsec PLC 통신 | 외부 신호 제어 | | AuroraIO | 디지털 I/O | 입출력 신호 | | AuroraHeightSensor | Keyence 높이 센서 | 높이 측정 | | AuroraCellTracker | 팰릿/셀 추적 시스템 | 셀 인식 및 위치 추적 | | AuroraChiller | 냉각 장치 | 온도 제어 | | AuroraOCT | Trumpf OCT 스캐너 | 옵티컬 측정 | **설계 원칙:** - 각 디바이스는 독립적인 제어 로직 구현 - 통합 제어는 머신 모듈의 EquipmentSetup에서 담당 - 의존성 주입(DI) 패턴으로 느슨한 결합 유지 --- ## 5. 빌드 출력 경로 > 원본: [`build-output.md`](./build-output.md) ### 머신별 빌드 디렉토리 | 머신 모듈 | 출력 경로 | 상태 | |---------|---------|------| | ILSOS_PrismaticPTOP | `_out_prismatic_ptop/` | 활성 | | ILSOS_PrismaticScanner | `_out_prismatic_scanner/` | 참고 | | ILSOS_PrismaticGun | `_out_prismatic_gun/` | 미사용 | | ILSOS_PrismaticCleanLaser | `_out_prismatic_cleanlaser/` | 미사용 | ### 빌드 구성별 출력 각 빌드 구성(Debug, Release, Simulation, UserDefineUnit)은 플랫폼(x64)별로 독립적인 출력 디렉토리 생성. 예: `_out_prismatic_ptop/Debug/x64/`, `_out_prismatic_ptop/Release/x64/` ### 주의사항 - 빌드 출력 디렉토리는 `.gitignore`에 포함 - 빌드 전 이전 출력물이 있으면 자동 정리 - 각 머신 모듈은 독립적으로 빌드 가능 --- ## 6. PTOP 분석 하네스 > 원본: [`harness-ptop.md`](./harness-ptop.md) ### 목표 ILSOS_PrismaticRD_PTOP(PtoP)의 3계층 아키텍처, 구현 상세, 빌드 최적화를 종합 분석하고 개선안 제시 ### 팀 구성 - **PTOP Lead**: 아키텍처 리더 - **PTOP Developer**: 구현 전문가 - **Build/DevOps Engineer**: 빌드 최적화 담당 ### 호출 방법 다음 요청 시 `/orchestrate-ptop-harness` 스킬 사용: - "PTOP 프로젝트 전체 분석" - "PTOP 아키텍처와 구현 분석" - "PTOP 상태 점검" - "PTOP 빌드 최적화" - "PTOP 팀 조율" ### 구성 요소 **Agents:** - `.ubisam_agent/agents/ptop-lead.md` - `.ubisam_agent/agents/ptop-developer.md` - `.ubisam_agent/agents/build-devops-engineer.md` **Skills:** - `.ubisam_agent/skills/analyze-ptop-architecture/SKILL.md` - `.ubisam_agent/skills/analyze-ptop-implementation/SKILL.md` - `.ubisam_agent/skills/optimize-ptop-build/SKILL.md` - `.ubisam_agent/skills/orchestrate-ptop-harness/SKILL.md` **Workspace:** - `_workspace/0X_*.md` (분석 결과 저장)