7.3 KiB
7.3 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 — PTOP 기준
Release|x64로 매핑(ILSOS_All.sln:413-416). 별도 바이너리가 아니다 (§5 참조)
머신 모듈:
- ILSOS_PrismaticRD_PTOP: 현재 유일한 활성 머신 모듈 (주요 개발 대상)
- 과거 Scanner/Gun/CleanLaser 모듈은 제거됨 (솔루션에 csproj 없음)
주의사항:
- WeldingComponents·External/Aurora 관련 코드 수정 시 반드시 사전 승인 필요
- 모든 파일 수정 시
docs/CODING_RULES.md확인 필수 - 한글 포함 파일 작성/수정 시 UTF-8 인코딩 준수
2. 솔루션 구조
ILSOS_All.sln 구성
ILSOS_All.sln
├── Machines/
│ └── ILSOS_PrismaticRD_PTOP/ ← 현재 유일한 활성 머신 모듈 (3계층 아키텍처)
├── AuroraDevices/ ← 하드웨어 디바이스 드라이버 (sln 등록 20개 / 디스크 22개)
├── AuroraComponents/ ← WPF UI 공통 컴포넌트
├── AuroraVision/ ← 비전 시스템 (MIL 기반)
├── WeldingComponents/ ← 용접 공통 기능
│ ├── WeldingCommon
│ └── LASAGUI
└── External/ ← Aurora 프레임워크 바이너리
주요 특징
- 모듈화: 머신 모듈은 독립적인 디바이스 제어 및 시퀀스 구현
- 공유 레이어: AuroraDevices, AuroraComponents 등으로 코드 재사용
- 표준 규칙: WeldingComponents·External/Aurora는 수정 시 승인 필수
3. ILSOS_PrismaticRD_PTOP 핵심 구조
폴더 구조 및 주요 컴포넌트
ILSOS_PrismaticRD_PTOP/
├── EquipDef.cs ← ID 상수 (DeviceIds / SequenceIds / StreamMessageNames)
├── EquipmentSetup.cs ← 디바이스·시퀀스 등록, 이벤트 구독
├── Alarm/ ← AlarmCode_PTOP, AlarmManager_PTOP
├── Device/{IO,PLC}/ ← PAIX_PTOP(IO), PLCControllerPTOP(PLC)
├── Models/ ← EquipmentSpecificModel_PTOP
├── Recipes/ ← RMSHandlerForPTOP
├── Sequences/ ← SeqAutoRunPTOP(메인) 외 + Manual/, Monitoring/
├── Settings/ ← SettingUploadDataListForPTOP
└── Views/{Main,Model}/ ← WPF View/ViewModel
주요 ID 정의 (EquipDef.cs)
| 클래스 | 멤버 (발췌) |
|---|---|
| DeviceIds : CommonDeviceIds | MassFlowMeter (그 외 base 상속) |
| SequenceIds : CommonSequenceIds | SeqAutoRunPTOP, SeqAutoRunTDC, SeqAutoRunComponentWeld, SeqAlarmMonitor, SeqStatusMonitor, SeqTestRun, SeqStreamTest, SeqEventQTest |
| StreamMessageNames | MessageNameString/Double/Int/JSON/LBAD |
MotorIds/RecipeIds클래스는 없음 (baseCommon*·레시피 매니저에서 관리). 상세 →ptop-architecture.md
아키텍처 패턴 (3계층)
WPF UI Layer (Views/ + ViewModels)
↓
Machine Logic Layer (EquipmentSetup + Sequences)
↓
Device Abstraction (AuroraDevices — 디바이스별 독립 모듈)
↓
Hardware Layer (ACS.SPiiPlusNET, Melsec, Serial/USB)
기술 스택: System.Reactive(Rx) · AuroraEnv DI · 메시지 큐(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_PrismaticRD_PTOP | Machines/_out_prismatic_rd_ptop/ |
활성 |
빌드 구성별 출력
출력은 구성-플랫폼 하위 폴더로 분리 (csproj OutputPath 기준).
Machines/_out_prismatic_rd_ptop/x64-Debug/← Debug|x64Machines/_out_prismatic_rd_ptop/x64-Release/← Release|x64 (Simulation·UserDefineUnit도 Release 매핑)
주의사항
- 빌드 출력 디렉토리는
.gitignore에 포함 - 빌드 전 이전 출력물이 있으면 자동 정리
- 각 머신 모듈은 독립적으로 빌드 가능
6. PTOP 분석 하네스
원본:
harness-ptop.md
ILSOS_PrismaticRD_PTOP의 아키텍처·구현·빌드를 종합 분석하는 에이전트 하네스.
- 팀:
ptop-lead/ptop-developer/build-devops-engineer - 트리거: "PTOP 전체 분석", "PTOP 빌드 최적화" 등 →
orchestrate-ptop-harness스킬 - 구성:
.claude/agents/(PTOP 팀 3개 / 저장소 전체 6개),.claude/skills/(PTOP 하네스 4개: analyze-ptop-architecture·-implementation, optimize-ptop-build, orchestrate-ptop-harness)
2026-08-03에
.ubisam_agent/→.claude/로 이전. Claude Code는.claude/만 로딩한다.
Ubisam 산출물 하네스는 harness-ubisam.md 참고.
세부 트리거·구성 요소·변경 이력은 원본 문서 참고.
7. Git 커밋 규칙
@./GIT_RULES.md
8. 용어 정리 (UNICELL PTOP WELDER)
@./용어정리.md