LGES-OC5-PtoP-Welder/docs/architecture.md
NohDoyeon241104 15e5f5ba27 docs: 매뉴얼 화면 도식 분석·가접 용어 정리·SW Version 진척 반영
- 산출물 23. SW 점검결과 xlsx: SW Version 작업이력 추가(핸드셰이크/bit15 Resume/RecipeNo 등),
  IO List bit15 신규(M70515 PLC_WELD_READY_REQ / M70015 PC_WELD_READY_ACK)·rename 반영
- architecture.md §8 용어 정리(가접 용접 = Tack Welding) 추가
- docs/분석 2026/06/22: AuroraUIComponent 재사용 UC·메인 View 도식 분석
- 기타 산출물 문서(DR 회의록·SOP·ILSOSConfig 등) 및 작업일지 포함
- SeqAutoRunPTOP.cs: 기존 로컬 변경 포함

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 12:04:38 +09:00

8.2 KiB

ILSOS 프로젝트 아키텍처

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

목차

  1. 프로젝트 개요
  2. 솔루션 구조
  3. ILSOS_PrismaticRD_PTOP 핵심 구조
  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_PrismaticRD_PTOP: 현재 유일한 활성 머신 모듈 (주요 개발 대상)
    • 과거 Scanner/Gun/CleanLaser 모듈은 제거됨 (솔루션에 csproj 없음)

주의사항:

  • WeldingComponents·External/Aurora 관련 코드 수정 시 반드시 사전 승인 필요
  • 모든 파일 수정 시 docs/CODING_RULES.md 확인 필수
  • 한글 포함 파일 작성/수정 시 UTF-8 인코딩 준수

2. 솔루션 구조

원본: solution-structure.md

ILSOS_All.sln 구성

ILSOS_All.sln
├── Machines/
│   └── ILSOS_PrismaticRD_PTOP/     ← 현재 유일한 활성 머신 모듈 (3계층 아키텍처)
├── AuroraDevices/                 ← 하드웨어 디바이스 드라이버 (22개 프로젝트)
├── AuroraComponents/              ← WPF UI 공통 컴포넌트
├── AuroraVision/                  ← 비전 시스템 (MIL 기반)
├── WeldingComponents/             ← 용접 공통 기능
│   ├── WeldingCommon
│   └── LASAGUI
└── External/                      ← Aurora 프레임워크 바이너리

주요 특징

  • 모듈화: 머신 모듈은 독립적인 디바이스 제어 및 시퀀스 구현
  • 공유 레이어: AuroraDevices, AuroraComponents 등으로 코드 재사용
  • 표준 규칙: WeldingComponents·External/Aurora는 수정 시 승인 필수

3. ILSOS_PrismaticRD_PTOP 핵심 구조

원본: ptop-architecture.md

폴더 구조 및 주요 컴포넌트

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 클래스는 없음 (base Common*·레시피 매니저에서 관리). 상세 → 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 모듈

원본: 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_PrismaticRD_PTOP Machines/_out_prismatic_rd_ptop/ 활성

빌드 구성별 출력

출력은 구성-플랫폼 하위 폴더로 분리 (csproj OutputPath 기준).

  • Machines/_out_prismatic_rd_ptop/x64-Debug/ ← Debug|x64
  • Machines/_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 스킬
  • 구성: .ubisam_agent/agents/(3개), .ubisam_agent/skills/(4개: analyze-architecture·implementation, optimize-build, orchestrate-harness)

세부 트리거·구성 요소·변경 이력은 원본 문서 참고.


7. Git 커밋 규칙

@import ./GIT_RULES.md — bin 무시/예외(External/Aurora/bin), .gitignore 자체 커밋 규칙


8. 용어 정리 (UNICELL PTOP WELDER)

협력사: UBISAM / 프로젝트: UNICELL PTOP WELDING(약칭 PTOP)

가접 용접 (Tack Welding)

  • 정의: U-Frame 본(메인) 용접 전에, 팩 제품과 프레임 간 밀착이 안 된 자재를 먼저 붙여 고정하는 예비 용접.
  • 이유: 자재가 떠 있으면(밀착 불량) 본 용접 품질이 안 나오므로, Align → 가접으로 밀착 → 메인 용접 순서로 진행.
  • 방식: Dot(점) 또는 Short Line(짧은 선) 출사로 미리 몇 점 붙여 밀착.
  • 운용: 기존 AutoRun 시나리오엔 가접 시나리오가 없었어서 신규 추가됨. Manual 모드로 전환 후 Recipe 화면에서 직접 Scout Image 촬영 → 수동으로 가접(밀착) 용접 수행.
  • PLC 연동: 이를 위해 PLC와 협의하여 15번 bit(0x0F) 추가 — M70515 PLC_WELD_READY_REQ(Weld_01 Ready) / M70015 PC_WELD_READY_ACK. PLC ON 시 Recipe/Page 확인 팝업 + Auto→Manual + Resume 트리거. (기존 M70516/M70016은 ..._TRIGGER_*로 rename)
  • 레시피: PTOP는 레시피 21,22(가접용) 에 가접 용접용 시퀀스 수정이 들어감. (가변/가접은 레시피 추가로 처리, 시퀀스 본체 무수정 방침)
  • 연관 메모리: uframe-page5-gajeop-recipe, bit15-resume-feature, recipe-page-handshake-redesign