2026-06-05 13:44:39 +09:00

135 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`를 먼저 확인**할 것.
특히 한글이 포함된 파일 생성/수정 시 인코딩 규칙을 따라야 함.