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