LGES-OC5-PtoP-Welder/docs/architecture.md
NohDoyeon241104 de0c1c20df docs: Git 커밋 규칙 문서화 및 architecture.md 연결
External/Aurora/bin 커밋 예외, .gitignore 자체 커밋(-f) 규칙을 GIT_RULES.md로 정리하고 architecture.md에 @import 연결

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:26:51 +09:00

8.0 KiB
Raw Blame History

ILSOS 프로젝트 아키텍처

CLAUDE.md의 "프로젝트 문서" 섹션에서 import하던 개별 문서들을 통합한 아키텍처 문서입니다. 세부 내용은 각 원본 문서를 참고하세요.

목차

  1. 프로젝트 개요
  2. 솔루션 구조
  3. ILSOS_PrismaticPTOP 핵심 구조
  4. AuroraDevices 모듈
  5. 빌드 출력 경로
  6. PTOP 분석 하네스
  7. Git 커밋 규칙

1. 프로젝트 개요

원본: project-overview.md

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. 솔루션 구조

원본: solution-structure.md

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 핵심 구조

원본: ptop-architecture.md

폴더 구조 및 주요 컴포넌트

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 모듈

원본: aurora-devices.md

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 자체 커밋 규칙