NohDoyeon241104 3fc3789bfa 추가된 파일:
- docs/project-overview.md — 프로젝트
  개요
  - docs/solution-structure.md — 솔루션
  구조
  - docs/ptop-architecture.md — PTOP
  아키텍처
  - docs/aurora-devices.md — Aurora
  디바이스 목록
  - docs/build-output.md — 빌드 출력 경로
  - docs/harness-ptop.md — PTOP 하네스
  구성

  수정된 파일:
  → CLAUDE.md — 기존 내용을 6개 문서로
  분리, @import 방식으로 변경
  → .gitignore — .claude/ 추가

  삭제된 파일:
  - _기존md파일/ 디렉토리 (원본)

  제안 커밋 메시지:
  docs: CLAUDE.md를 주제별 문서로 분리 및
  @import 방식으로 재구성

  - 프로젝트 개요, 솔루션 구조, PTOP
  아키텍처, 디바이스 목록, 빌드 경로,
  하네스 구성을 별도 문서로 분리
  - 각 문서는 200줄 이하로 규칙 5번 준수
  - CLAUDE.md에서 @import로 참조하는
  라이브러리 형태로 변경 (규칙 6번 준수)
  형태로 변경 (규칙 6번 준수)
  - .gitignore에 .claude/ 추가, .ubisam_agent는
  제거
2026-06-16 17:28:03 +09:00

6.8 KiB

name description
analyze-ptop-architecture ILSOS_PrismaticRD_PTOP의 3계층 아키텍처(UI → Machine Logic → Device)를 분석하고 검증. EquipDef.cs, EquipmentSetup.cs, Sequences/, Device/ 폴더의 관계를 맵핑하고 Rx.NET 이벤트 흐름을 추적. 디바이스 스택(PLC, Laser, OCT, CellTracker) 통합 여부 검증. PTOP 아키텍처를 이해하거나 설계해야 할 때, "PTOP 아키텍처 분석", "PTOP 구조 검토", "PTOP 전체 흐름 파악" 요청 시 반드시 이 스킬을 사용.

Analyze PTOP Architecture Skill

목표

ILSOS_PrismaticRD_PTOP의 3계층 아키텍처 전체 그림을 명확히 파악하고 문서화한다.

분석 단계

1단계: EquipDef.cs & EquipmentSetup.cs 분석

EquipDef.cs에서 수집할 항목:

  • CommonDeviceIds 상속 항목 (MassFlowMeter 등)
  • CommonSequenceIds 상속 항목 (SeqStreamTest, SeqEventQTest, SeqTestRun, SeqAutoRunComponentWeld, SeqAlarmMonitor, SeqStatusMonitor, SeqAutoRunPTOP)
  • 커스텀 DeviceIds, SequenceIds, MotorIds

EquipmentSetup.cs에서 수집할 항목:

  • GetEquipmentName() → 장비명 확인 ("ILSOS PrismaticRD_PTOP")
  • BuildMainStatusView() → 표시되는 디바이스 (CellTracker, OCT)
  • OnSetAlarm() 로직 → 알람 처리
  • OnStartUp() 로직 → 초기화 순서
  • SequenceBuilder 선언 → 실제 빌드되는 시퀀스
    • _SeqAutoRunPrismaticScanner_Builder
    • _SeqAutoRunComponentWeld_Builder
    • _SeqTestRun_Builder
    • _SeqAlarmMonitor_Builder
    • _SeqAutoRunPTOP_Builder ← 메인 시퀀스 (260605)

출력: _workspace/01a_equipdef_analysis.md

2단계: Sequences/ 폴더 구조 분석

주요 파일들:

Sequences/
├── SeqAutoRunPTOP.cs           ← 메인 (분석 우선순위 1)
├── SeqAutoRunPrismaticScanner.cs
├── SeqAutoRunComponentWeld.cs
├── SeqTestRun.cs
├── SeqStreamTest.cs
├── SeqEventQTest.cs
├── SequenceContextEx.cs        ← 컨텍스트 정의
├── SequenceManager.cs          ← 시퀀스 관리
├── Monitoring/
│   ├── SeqAlarmMonitor.cs
│   └── SeqStatusMonitor.cs
└── Manual/
    └── SeqComponentTeachingRun.cs

각 시퀀스 분석 항목:

  • 용도 (주 시퀀스? 테스트? 모니터링?)
  • 상태 머신 정의 (시작, 대기, 실행, 완료, 에러)
  • 타이밍 (예상 소요시간)
  • 호출하는 디바이스 목록
  • 의존성 (다른 시퀀스에 의존하는가?)

특히 SeqAutoRunPTOP.cs:

  • 상태 다이어그램 작성
  • 각 상태에서 호출되는 디바이스/API 추적
  • 타임아웃/재시도 로직

출력: _workspace/01b_sequences_analysis.md

3단계: Device/ 폴더 분석

파일 구조:

Device/
├── PLC/
│   ├── PLCController.Config.cs    ← PLC 주소 맵핑
│   ├── PLCController.Logic.cs     ← 읽기/쓰기 로직
│   └── PLCController.Address.cs   ← 신호 상수
└── IO/
    └── PAIX_PrismaticScanner.cs   ← IO 제어

PLC 분석:

  • 사용되는 주소 범위 (예: M0M100, D0D500)
  • 주요 신호 목록 (Ready, Setup, Error, etc.)
  • 읽기 주기, 쓰기 주기
  • 타임아웃 설정

IO 분석:

  • 입력 신호 (센서, 스위치)
  • 출력 신호 (제어 신호)
  • 각 신호의 의미

출력: _workspace/01c_device_analysis.md

4단계: Rx.NET 이벤트 흐름 분석

수집할 정보:

  • System.Reactive 사용 패턴 (Observable, Subject, etc.)
  • 메시지 타입 (String/Double/Int/JSON/LBAD)
  • 구독자 목록 (누가 어떤 메시지를 구독?)
  • 백프레셔/에러 처리

파이프라인 예시:

[PLC Status] Observable
  ├─→ Filter(Ready == true)
  ├─→ Select(x => new LaserCommand())
  └─→ Subscribe(Laser.Execute())

출력: _workspace/01d_rxnet_analysis.md

5단계: 외부 디바이스 통합 검증

검증 대상:

  • PLC (Mitsubishi)
  • Laser (AuroraLaser)
  • OCT Scanner (AuroraOCT)
  • CellTracker (AuroraCellTracker)
  • IO (PAIX)

각 디바이스마다:

  • 초기화 시점
  • 활성화 조건
  • 사용 방식 (동기/비동기)
  • 에러 처리
  • 정상 종료 절차

출력: _workspace/01e_device_integration.md

통합 산출물

최종 보고서: _workspace/01_ptop_architecture.md

# ILSOS_PrismaticRD_PTOP 아키텍처 검토 보고서

## 1. 3계층 아키텍처

┌──────────────────────────────┐ │ WPF UI Layer │ │ (Views/, ViewModels/) │ └──────────────┬───────────────┘ ↓ ┌──────────────────────────────┐ │ Machine Logic Layer │ │ (EquipmentSetup, Sequences) │ └──────────────┬───────────────┘ ↓ ┌──────────────────────────────┐ │ Device Abstraction │ │ (AuroraDevices) │ └──────────────┬───────────────┘ ↓ ┌──────────────────────────────┐ │ Hardware Layer │ │ (PLC, Laser, OCT, etc.) │ └──────────────────────────────┘


## 2. 핵심 컴포넌트

### EquipDef & EquipmentSetup
- [EquipDef 매핑 표]
- [빌드되는 시퀀스 목록]

### Sequences
- [시퀀스 관계도]
- [SeqAutoRunPTOP 상태 머신]

### Device
- [PLC 신호 맵핑]
- [IO 신호 맵핑]

## 3. Rx.NET 이벤트 흐름

[파이프라인 다이어그램]

## 4. 발견 사항 & 개선 사항

| 우선순위 | 항목 | 현황 | 개선안 |
|---------|------|------|--------|
| P0 | | | |
| P1 | | | |

입력 조건

사용자가 다음과 같이 요청할 때:

  • "PTOP 아키텍처 분석해줘"
  • "PTOP 전체 구조 파악"
  • "SeqAutoRunPTOP이 어떻게 동작하는지 분석"
  • "PTOP에서 PLC, Laser, OCT가 어떻게 연결되어있는지"
  • "PTOP 3계층 아키텍처 검증"

출력 결과

  • 5개 상세 분석 문서 (_workspace/01a~01e_*.md)
  • 통합 보고서 (_workspace/01_ptop_architecture.md)
  • 다이어그램 (3계층, 상태 머신, 이벤트 흐름)

주의사항

  1. 코드 읽기 능력이 중요 — C#, WPF, Rx.NET 이해 필수
  2. 불명확한 부분은 기록 — "이 부분은 왜 이렇게?"라는 질문을 명시
  3. Namespace 혼동 주의 — ILSOS_PrismaticRD_PTOP의 코드가 ILSOS_PrismaticScanner 네임스페이스 사용
  4. 260605 변경 이후 상태 파악 — SeqAutoRunPTOP이 최신 메인 시퀀스
  5. 한글 주석 인코딩 — CODING_RULES.md 확인