From eba70a438066aec43e6f689dc3f6894ff2f39498 Mon Sep 17 00:00:00 2001 From: to3796zw Date: Fri, 19 Jun 2026 13:27:42 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20PTOP=20=EB=AC=B8=EC=84=9C=20=EC=B5=9C?= =?UTF-8?q?=EC=8B=A0=ED=99=94=20=EB=B0=8F=20Aurora=20=EB=A0=88=ED=8D=BC?= =?UTF-8?q?=EB=9F=B0=EC=8A=A4=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 실제 repo와 어긋난 상위 아키텍처 문서를 현행 구조로 정정. - 모듈명 ILSOS_PrismaticPTOP → ILSOS_PrismaticRD_PTOP 리네임 반영 - 삭제된 형제 모듈(Scanner/Gun/CleanLaser) 기술 정리 - PTOP 폴더구조·EquipDef ID·빌드 출력경로를 실제값으로 갱신 - architecture.md 200줄 이하로 슬림화(하네스 절 요약) - CLAUDE.md에 Aurora 레퍼런스 README @import 연결 Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 9 +++ docs/CODING_RULES.md | 2 +- docs/architecture.md | 120 +++++++++++-------------------------- docs/build-output.md | 15 +++-- docs/project-overview.md | 18 +++--- docs/ptop-architecture.md | 54 +++++++++-------- docs/solution-structure.md | 12 ++-- 7 files changed, 95 insertions(+), 135 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 151a569..b57fa3b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -5,6 +5,7 @@ 1. [프로젝트 문서](#1-프로젝트-문서) 2. [협업 규칙](#2-협업-규칙) 3. [PTOP 분석 하네스](#3-ptop-분석-하네스) +4. [Aurora 프레임워크 레퍼런스](#4-aurora-프레임워크-레퍼런스) --- @@ -25,3 +26,11 @@ ILSOS_PrismaticRD_PTOP(PtoP) 종합 분석 팀 구성 — 목표, 팀 구성, 호출 방법, 구성 요소, 변경 이력은 아래 문서 참고. @import ./docs/harness-ptop.md — PTOP 분석 하네스(팀 구성, 트리거, 구성 요소, 변경 이력) + +--- + +## 4. Aurora 프레임워크 레퍼런스 + +Aurora 2.0 개발 규칙·API·패턴을 토큰 최소로 찾기 위한 인덱스형 지식베이스. Aurora 관련 작업(디바이스·시퀀스·PLC·ViewModel·빌드) 시 아래 README의 라우팅 표를 먼저 본다. + +@import ./docs/Aurora에이전트레퍼런스모음/README.md — Aurora 레퍼런스 인덱스(라우팅 허브) → 01_concepts / 02_patterns / 03_gotchas … diff --git a/docs/CODING_RULES.md b/docs/CODING_RULES.md index 4cb8017..d22ab8d 100644 --- a/docs/CODING_RULES.md +++ b/docs/CODING_RULES.md @@ -62,7 +62,7 @@ file 파일경로.cs ## 3. 네이밍 컨벤션 ### 클래스/메서드 -- **PascalCase**: `SequenceManager`, `ProcessManager`, `SeqAutoRunPrismaticGunStageA` +- **PascalCase**: `SequenceManager`, `EquipmentSetup`, `SeqAutoRunPTOP` ### 필드/변수 - **private 필드**: `_camelCase` (언더스코어 접두사) diff --git a/docs/architecture.md b/docs/architecture.md index cd28d19..c4e6174 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -7,7 +7,7 @@ 1. [프로젝트 개요](#1-프로젝트-개요) 2. [솔루션 구조](#2-솔루션-구조) -3. [ILSOS_PrismaticPTOP 핵심 구조](#3-ilsos_prismaticptop-핵심-구조) +3. [ILSOS_PrismaticRD_PTOP 핵심 구조](#3-ilsos_prismaticrd_ptop-핵심-구조) 4. [AuroraDevices 모듈](#4-auroradevices-모듈) 5. [빌드 출력 경로](#5-빌드-출력-경로) 6. [PTOP 분석 하네스](#6-ptop-분석-하네스) @@ -36,15 +36,12 @@ - Simulation | x64 - UserDefineUnit | x64 -**주요 머신 모듈:** -- **ILSOS_PrismaticPTOP**: 현재 활성 모듈 (주요 개발 대상) -- **ILSOS_PrismaticScanner**: 참고 용도의 레거시 소스 -- ILSOS_PrismaticGun: 미사용 -- ILSOS_PrismaticCleanLaser: 미사용 +**머신 모듈:** +- **ILSOS_PrismaticRD_PTOP**: 현재 유일한 활성 머신 모듈 (주요 개발 대상) + - 과거 Scanner/Gun/CleanLaser 모듈은 제거됨 (솔루션에 csproj 없음) **주의사항:** -- WeldingComponents와 Aurora 관련 코드 수정 시 반드시 사전 승인 필요 -- 소스의 `config/` 디렉토리는 분석 시 참고할 것 +- WeldingComponents·External/Aurora 관련 코드 수정 시 반드시 사전 승인 필요 - 모든 파일 수정 시 `docs/CODING_RULES.md` 확인 필수 - 한글 포함 파일 작성/수정 시 UTF-8 인코딩 준수 @@ -59,10 +56,7 @@ ``` ILSOS_All.sln ├── Machines/ -│ ├── ILSOS_PrismaticPTOP/ ← 현재 활성 모듈 (3계층 아키텍처) -│ ├── ILSOS_PrismaticScanner/ ← 참고 대상 (레거시) -│ ├── ILSOS_PrismaticGun/ ← 미사용 -│ └── ILSOS_PrismaticCleanLaser/ ← 미사용 +│ └── ILSOS_PrismaticRD_PTOP/ ← 현재 유일한 활성 머신 모듈 (3계층 아키텍처) ├── AuroraDevices/ ← 하드웨어 디바이스 드라이버 (22개 프로젝트) ├── AuroraComponents/ ← WPF UI 공통 컴포넌트 ├── AuroraVision/ ← 비전 시스템 (MIL 기반) @@ -74,66 +68,54 @@ ILSOS_All.sln ### 주요 특징 -- **모듈화:** 각 머신 모듈은 독립적인 디바이스 제어 및 시퀀스 구현 +- **모듈화:** 머신 모듈은 독립적인 디바이스 제어 및 시퀀스 구현 - **공유 레이어:** AuroraDevices, AuroraComponents 등으로 코드 재사용 -- **표준 규칙:** WeldingComponents는 수정 불가 (승인 필수) -- **설정 참고:** 각 머신의 `config/` 디렉토리에서 설정 확인 가능 +- **표준 규칙:** WeldingComponents·External/Aurora는 수정 시 승인 필수 --- -## 3. ILSOS_PrismaticPTOP 핵심 구조 +## 3. ILSOS_PrismaticRD_PTOP 핵심 구조 > 원본: [`ptop-architecture.md`](./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 +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** | ACS, MassFlowMeterStageA/B, HeightSensor, AJIN | -| **MotorIds** | ALineX/Y/Z, BLineX/Y/Z | -| **RecipeIds** | StageAMainRecipe, StageBMainRecipe | -| **SequenceIds** | SeqLoad/Weld/Unload/HeightMeas × StageA/B | +| **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`](./ptop-architecture.md) ### 아키텍처 패턴 (3계층) ``` WPF UI Layer (Views/ + ViewModels) ↓ -Machine Logic Layer (EquipmentSetup + Sequences + Process) +Machine Logic Layer (EquipmentSetup + Sequences) ↓ Device Abstraction (AuroraDevices — 디바이스별 독립 모듈) ↓ Hardware Layer (ACS.SPiiPlusNET, Melsec, Serial/USB) ``` -**기술 스택:** -- **이벤트 기반:** System.Reactive (Rx.NET) -- **의존성 주입:** AuroraEnv 글로벌 환경 -- **메시지 큐:** String / Double / Int / JSON / LBAD 타입 +**기술 스택:** System.Reactive(Rx) · AuroraEnv DI · 메시지 큐(String/Double/Int/JSON/LBAD) --- @@ -172,16 +154,13 @@ AuroraDevices는 하드웨어 디바이스 제어를 담당하는 22개 프로 | 머신 모듈 | 출력 경로 | 상태 | |---------|---------|------| -| ILSOS_PrismaticPTOP | `_out_prismatic_ptop/` | 활성 | -| ILSOS_PrismaticScanner | `_out_prismatic_scanner/` | 참고 | -| ILSOS_PrismaticGun | `_out_prismatic_gun/` | 미사용 | -| ILSOS_PrismaticCleanLaser | `_out_prismatic_cleanlaser/` | 미사용 | +| ILSOS_PrismaticRD_PTOP | `Machines/_out_prismatic_rd_ptop/` | 활성 | ### 빌드 구성별 출력 -각 빌드 구성(Debug, Release, Simulation, UserDefineUnit)은 플랫폼(x64)별로 독립적인 출력 디렉토리 생성. - -예: `_out_prismatic_ptop/Debug/x64/`, `_out_prismatic_ptop/Release/x64/` +출력은 `구성-플랫폼` 하위 폴더로 분리 (csproj `OutputPath` 기준). +- `Machines/_out_prismatic_rd_ptop/x64-Debug/` ← Debug|x64 +- `Machines/_out_prismatic_rd_ptop/x64-Release/` ← Release|x64 (Simulation·UserDefineUnit도 Release 매핑) ### 주의사항 @@ -195,40 +174,13 @@ AuroraDevices는 하드웨어 디바이스 제어를 담당하는 22개 프로 > 원본: [`harness-ptop.md`](./harness-ptop.md) -### 목표 +ILSOS_PrismaticRD_PTOP의 아키텍처·구현·빌드를 종합 분석하는 에이전트 하네스. -ILSOS_PrismaticRD_PTOP(PtoP)의 3계층 아키텍처, 구현 상세, 빌드 최적화를 종합 분석하고 개선안 제시 +- **팀:** 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) -### 팀 구성 - -- **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` (분석 결과 저장) +> 세부 트리거·구성 요소·변경 이력은 원본 문서 참고. --- diff --git a/docs/build-output.md b/docs/build-output.md index 59dd825..e9f27f5 100644 --- a/docs/build-output.md +++ b/docs/build-output.md @@ -4,19 +4,18 @@ | 머신 모듈 | 출력 경로 | 상태 | |---------|---------|------| -| ILSOS_PrismaticPTOP | `_out_prismatic_ptop/` | 활성 | -| ILSOS_PrismaticScanner | `_out_prismatic_scanner/` | 참고 | -| ILSOS_PrismaticGun | `_out_prismatic_gun/` | 미사용 | -| ILSOS_PrismaticCleanLaser | `_out_prismatic_cleanlaser/` | 미사용 | +| ILSOS_PrismaticRD_PTOP | `Machines/_out_prismatic_rd_ptop/` | 활성 | + +> 과거 Scanner/Gun/CleanLaser 출력 디렉토리는 해당 모듈 제거로 더 이상 생성되지 않음. ## 빌드 구성별 출력 -각 빌드 구성(Debug, Release, Simulation, UserDefineUnit)은 플랫폼(x64)별로 독립적인 출력 디렉토리 생성. +출력 폴더는 `구성-플랫폼` 형식의 하위 디렉토리로 분리된다 (csproj `OutputPath` 기준). -예: `_out_prismatic_ptop/Debug/x64/`, `_out_prismatic_ptop/Release/x64/` +- `Machines/_out_prismatic_rd_ptop/x64-Debug/` ← Debug|x64 +- `Machines/_out_prismatic_rd_ptop/x64-Release/` ← Release|x64 (Simulation·UserDefineUnit도 Release로 매핑) ## 주의사항 - 빌드 출력 디렉토리는 `.gitignore`에 포함 -- 빌드 전 이전 출력물이 있으면 자동 정리 -- 각 머신 모듈은 독립적으로 빌드 가능 +- **솔루션(`ILSOS_All.sln`) 기준으로 빌드**해야 post-build xcopy의 `$(SolutionDir)`가 정의됨 (단독 csproj 빌드 시 `*Undefined*` 경로로 실패) diff --git a/docs/project-overview.md b/docs/project-overview.md index c9ae5dc..a5552b2 100644 --- a/docs/project-overview.md +++ b/docs/project-overview.md @@ -6,25 +6,23 @@ **플랫폼 및 기술:** - OS: Windows 10 / Windows 11 -- 프레임워크: .NET Framework 4.8.1 +- 프레임워크: .NET Framework 4.8.1 (C# 7.3) - IDE: Visual Studio 2022 - UI 프레임워크: WPF (Aurora 프레임워크 기반) +- 플랫폼: x64 전용 - 솔루션 파일: `ILSOS_All.sln` **빌드 구성:** - Debug | x64 - Release | x64 -- Simulation | x64 -- UserDefineUnit | x64 +- Simulation | x64 (Release 구성으로 매핑) +- UserDefineUnit | x64 (Release 구성으로 매핑) -**주요 머신 모듈:** -- **ILSOS_PrismaticPTOP**: 현재 활성 모듈 (주요 개발 대상) -- **ILSOS_PrismaticScanner**: 참고 용도의 레거시 소스 -- ILSOS_PrismaticGun: 미사용 -- ILSOS_PrismaticCleanLaser: 미사용 +**머신 모듈:** +- **ILSOS_PrismaticRD_PTOP**: 현재 유일한 활성 머신 모듈 (주요 개발 대상). `Machines/ILSOS_PrismaticRD_PTOP/` + - 과거 `ILSOS_PrismaticScanner/Gun/CleanLaser` 모듈은 제거됨 (현재 솔루션에 csproj 없음). **주의사항:** -- WeldingComponents와 Aurora 관련 코드 수정 시 반드시 사전 승인 필요 -- 소스의 `config/` 디렉토리는 분석 시 참고할 것 +- WeldingComponents·External/Aurora 관련 코드 수정 시 반드시 사전 승인 필요 - 모든 파일 수정 시 `docs/CODING_RULES.md` 확인 필수 - 한글 포함 파일 작성/수정 시 UTF-8 인코딩 준수 diff --git a/docs/ptop-architecture.md b/docs/ptop-architecture.md index ca1f825..a8daa39 100644 --- a/docs/ptop-architecture.md +++ b/docs/ptop-architecture.md @@ -1,44 +1,46 @@ -# ILSOS_PrismaticPTOP 핵심 구조 +# ILSOS_PrismaticRD_PTOP 핵심 구조 ## 폴더 구조 및 주요 컴포넌트 ``` -ILSOS_PrismaticPTOP/ -├── EquipDef.cs ← ID 상수 정의 (Device/Motor/Sequence/Recipe) -├── EquipmentSetup.cs ← 통합 제어 (초기화, 이벤트 구독, 시퀀스 시작) -├── Alarm/ ← 알람 코드 및 매니저 +ILSOS_PrismaticRD_PTOP/ +├── EquipDef.cs ← ID 상수 정의 (DeviceIds / SequenceIds / StreamMessageNames) +├── EquipmentSetup.cs ← 통합 제어 (디바이스·시퀀스 등록, 이벤트 구독) +├── Alarm/ ← AlarmCode_PTOP, AlarmManager_PTOP ├── Device/ -│ ├── ACS/ ← ACS 모션 제어 (X/Y축) -│ └── PLC/ ← PLC 통신 로직 -├── Models/ ← 장비 특화 모델 -├── Process/ ← ProcessManager, CellInfo, WeldingData -├── Recipes/ ← MainRecipe, RMSHandler +│ ├── IO/ ← PAIX_PTOP (디지털 IO) +│ └── PLC/ ← PLCControllerPTOP (Config / Address / Logic) +├── Models/ ← EquipmentSpecificModel_PTOP +├── Recipes/ ← RMSHandlerForPTOP ├── Sequences/ -│ ├── Monitoring/ ← 알람/상태 모니터링 시퀀스 -│ ├── SeqAutoRunPrismaticGunStageA/B.cs -│ └── SubSequence/ -│ ├── StageA/ ← Load, Weld, Unload, HeightMeas -│ └── StageB/ ← Load, Weld, Unload, HeightMeas -├── settings/ ← 세팅 정의 클래스 -├── Tools/ ← 공통 유틸리티 -└── Views/ ← WPF View/ViewModel +│ ├── SeqAutoRunPTOP.cs ← 자동운전 (현행 메인) +│ ├── SeqAutoRunComponentWeld.cs / SeqAutoRunPrismatic.cs +│ ├── SeqTestRun / SeqStreamTest / SeqEventQTest / SeqWaitWeldOrChangePage +│ ├── SequenceManager.cs / SequenceContextEx.cs +│ ├── Manual/ ← SeqComponentTeachingRun +│ └── Monitoring/ ← SeqAlarmMonitor, SeqStatusMonitor +├── Settings/ ← SettingUploadDataListForPTOP +└── Views/ + ├── Main/ ← UCMainAutoRun (+ ViewModel) + └── Model/ ← UCEquipmentSpecificEditor ``` ## 주요 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 | +| **DeviceIds** : CommonDeviceIds | `MassFlowMeter` (그 외 대부분 base `CommonDeviceIds` 상속) | +| **SequenceIds** : CommonSequenceIds | `SeqAutoRunPTOP`, `SeqAutoRunTDC`, `SeqAutoRunComponentWeld`, `SeqAlarmMonitor`, `SeqStatusMonitor`, `SeqTestRun`, `SeqStreamTest`, `SeqEventQTest` | +| **StreamMessageNames** | `MessageNameString/Double/Int/JSON/LBAD` | -## 아키텍처 패턴 +> 이 머신엔 `MotorIds`/`RecipeIds` 클래스가 없음 — 모터/레시피 ID는 base `Common*` 또는 레시피 매니저에서 관리. + +## 아키텍처 패턴 (3계층) ``` WPF UI Layer (Views/ + ViewModels) ↓ -Machine Logic Layer (EquipmentSetup + Sequences + Process) +Machine Logic Layer (EquipmentSetup + Sequences) ↓ Device Abstraction (AuroraDevices — 디바이스별 독립 모듈) ↓ @@ -49,3 +51,5 @@ Hardware Layer (ACS.SPiiPlusNET, Melsec, Serial/USB) - **이벤트 기반:** System.Reactive (Rx.NET) - **의존성 주입:** AuroraEnv 글로벌 환경 - **메시지 큐:** String / Double / Int / JSON / LBAD 타입 + +> Aurora 프레임워크 개념·패턴·함정 상세 → `docs/Aurora에이전트레퍼런스모음/` diff --git a/docs/solution-structure.md b/docs/solution-structure.md index ceaf14d..c0e954d 100644 --- a/docs/solution-structure.md +++ b/docs/solution-structure.md @@ -5,10 +5,7 @@ ``` ILSOS_All.sln ├── Machines/ -│ ├── ILSOS_PrismaticPTOP/ ← 현재 활성 모듈 (3계층 아키텍처) -│ ├── ILSOS_PrismaticScanner/ ← 참고 대상 (레거시) -│ ├── ILSOS_PrismaticGun/ ← 미사용 -│ └── ILSOS_PrismaticCleanLaser/ ← 미사용 +│ └── ILSOS_PrismaticRD_PTOP/ ← 현재 유일한 활성 머신 모듈 (3계층 아키텍처) ├── AuroraDevices/ ← 하드웨어 디바이스 드라이버 (22개 프로젝트) ├── AuroraComponents/ ← WPF UI 공통 컴포넌트 ├── AuroraVision/ ← 비전 시스템 (MIL 기반) @@ -18,9 +15,10 @@ ILSOS_All.sln └── External/ ← Aurora 프레임워크 바이너리 ``` +> 과거 `ILSOS_PrismaticScanner/Gun/CleanLaser` 머신 모듈은 제거됨 (솔루션에 csproj 없음). + ## 주요 특징 -- **모듈화:** 각 머신 모듈은 독립적인 디바이스 제어 및 시퀀스 구현 +- **모듈화:** 머신 모듈은 독립적인 디바이스 제어 및 시퀀스 구현 - **공유 레이어:** AuroraDevices, AuroraComponents 등으로 코드 재사용 -- **표준 규칙:** WeldingComponents는 수정 불가 (승인 필수) -- **설정 참고:** 각 머신의 `config/` 디렉토리에서 설정 확인 가능 +- **표준 규칙:** WeldingComponents·External/Aurora는 수정 시 승인 필수