# ILSOS 프로젝트 — Claude 초기 컨텍스트 ## 프로젝트 개요 **OC5 PilotLine RectangleTypeWelder** — 각형 배터리 용접 자동화 시스템 - **플랫폼**: Windows 10, .NET Framework 4.8.1, Visual Studio 2022 - **UI 프레임워크**: WPF (Aurora 프레임워크 기반) - **솔루션 파일**: `ILSOS_All.sln` - **빌드 구성**: Debug|x64 / Release|x64 / Simulation|x64 / UserDefineUnit|x64 --- ## 머신 모듈 (Machines/) ### ILSOS_PrismaticGun - **레이저는 고정**, 스테이지(Stage A / Stage B)가 이동하면서 용접 - 레이저 하나를 **Stage A ↔ Stage B 간 스위칭**하여 용접 진행 - 모션 제어: **ACS (X/Y축)** + **Ajin (Z축)** 혼합 구성 - PLC: Mitsubishi PLC 통신 - 시퀀스 구조: `Sequences/SubSequence/StageA/` + `Sequences/SubSequence/StageB/` 이원화 ### ILSOS_PrismaticScanner - **레이저 스캐너**를 통해 용접 진행 - 레이저 인터페이스 모듈이 PrismaticGun과 다름 (`AuroraLaserScanner`) - 단일 스테이지 구조 ### ILSOS_PrismaticCleanLaser - **CleanLaser** 인터페이스 모듈 사용 (PrismaticScanner과도 다름) - 파일 구조는 PrismaticScanner와 유사하나 레이저 디바이스 인터페이스가 상이함 - 단일 스테이지 구조 --- ## 전체 솔루션 구조 ``` ILSOS_All.sln ├── Machines/ │ ├── ILSOS_PrismaticGun/ ← 레이저 고정, 스테이지 이동 용접 (Stage A/B) │ ├── ILSOS_PrismaticScanner/ ← 스캐너 레이저 용접 │ └── ILSOS_PrismaticCleanLaser/ ← 클린 레이저 용접 ├── AuroraDevices/ ← 하드웨어 디바이스 드라이버 (22개 프로젝트) ├── AuroraComponents/ ← WPF UI 공통 컴포넌트 ├── AuroraVision/ ← 비전 시스템 (MIL 기반) ├── WeldingComponents/ ← 용접 공통 기능 (WeldingCommon, LASAGUI) └── External/ ← Aurora 프레임워크 바이너리 ``` --- ## 주요 AuroraDevices 목록 | 프로젝트 | 역할 | |---------|------| | AuroraACS | ACS SPiiPlus 모션 컨트롤러 | | AuroraLaser | 레이저 제어 (Gun 타입) | | AuroraLaserScanner | 레이저 스캐너 제어 | | AuroraPLC | PLC 통신 (Mitsubishi Melsec) | | AuroraIO | 디지털 I/O | | AuroraHeightSensor | 높이 센서 (Keyence) | | AuroraCellTracker | 팰릿/셀 추적 시스템 | | AuroraChiller | 냉각 장치 제어 | | AuroraOCT | OCT 스캐너 (Trumpf) | | AuroraMotionBoard | 모션 보드 (Ajin) | | AuroraDeviceCommon | 디바이스 공통 기본 클래스 | --- ## ILSOS_PrismaticGun 핵심 구조 ### 폴더 구조 ``` ILSOS_PrismaticGun/ ├── 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 (Stage A) │ └── StageB/ ← Load, Weld, Unload, HeightMeas (Stage B) ├── 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 타입 --- ## 빌드 출력 경로 | 머신 | 출력 경로 | |------|---------| | ILSOS_PrismaticGun | `_out_prismatic_gun/` | | ILSOS_PrismaticScanner | `_out_prismatic_scanner/` | | ILSOS_PrismaticCleanLaser | `_out_prismatic_cleanlaser/` | --- ## 코딩 규칙 파일 수정 시 **반드시 `docs/CODING_RULES.md`를 먼저 확인**할 것. 특히 한글이 포함된 파일 생성/수정 시 인코딩 규칙을 따라야 함.