External/Aurora/bin 커밋 예외, .gitignore 자체 커밋(-f) 규칙을 GIT_RULES.md로 정리하고 architecture.md에 @import 연결 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8.0 KiB
8.0 KiB
ILSOS 프로젝트 아키텍처
CLAUDE.md의 "프로젝트 문서" 섹션에서 import하던 개별 문서들을 통합한 아키텍처 문서입니다. 세부 내용은 각 원본 문서를 참고하세요.
목차
1. 프로젝트 개요
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. 솔루션 구조
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 핵심 구조
폴더 구조 및 주요 컴포넌트
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 모듈
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
머신별 빌드 디렉토리
| 머신 모듈 | 출력 경로 | 상태 |
|---|---|---|
| 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
목표
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(분석 결과 저장)
7. Git 커밋 규칙
@import ./GIT_RULES.md — bin 무시/예외(External/Aurora/bin), .gitignore 자체 커밋 규칙