NohDoyeon241104 354cc29f83 fix: Recipe 탭 DI 읽기 실패 해결 (ERROR CODE:3102)
PTOP 변경 과정에서 Recipe 탭 진입 시 IO Device DI 읽기 실패로 시스템 크래시 발생.

  근본 원인:
  - DI 24가 PTOP 하드웨어에 미정의됨
  - UCScannerObjectTeachingControlBoxViewModel에서 DI 9, 24를 함께 읽으려고 시도
  - 범위 초과 오류(ERROR CODE:3102) 발생

  변경사항:
  - DI 24 읽기 제거 (Scanner 레거시 코드, PTOP에 불필요)
  - DI 9 읽기만 수행하도록 변경
  - try-catch 예외 처리 추가로 안정성 개선
  - 오류 발생 시 에러 로깅

  Fixes: Recipe 탭 시스템 셧다운

  또는 더 간단하게:

  fix: Recipe 탭 DI 읽기 오류 해결

  DI 24가 PTOP에 미정의되어 OnMonitoring에서 범위 초과 에러 발생.
  DI 9만 읽도록 수정하고 try-catch 예외 처리 추가.
2026-06-16 15:00:25 +09:00

6.0 KiB
Raw Blame History

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


하네스: ILSOS_PrismaticRD_PTOP 분석 팀

목표: 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|developer}.md, .ubisam_agent/agents/build-devops-engineer.md
  • Skills: .ubisam_agent/skills/analyze-ptop-{architecture|implementation}/SKILL.md, .ubisam_agent/skills/optimize-ptop-build/SKILL.md, .ubisam_agent/skills/orchestrate-ptop-harness/SKILL.md
  • Workspace: _workspace/0X_*.md (분석 결과)

변경 이력:

날짜 변경 내용 대상 사유
2026-06-16 초기 구성: PTOP 분석 팀 구축 agents/, skills/ ILSOS_PrismaticRD_PTOP이 핵심 활성 모듈, 종합 분석 필요