# v0.1.529 — S0048/S0012 C6c-c TowerLamp base+offset 할당 (격리 모듈)

- 버전: v0.1.529
- 날짜: 2026-06-03
- 다운로드: [factory00-windows-x64-v0.1.529.zip](../../downloads/factory00-windows-x64-v0.1.529.zip) (170 MB)
- 캡처: [qa-screenshots/v0.1.529/](../../qa-screenshots/v0.1.529/)

---

## 핵심 변경
- 신규 `PlcTowerLampAssigner` — TowerLamp base+offset(Ch0=base, Ch1+=base+i 연속 Coil 블록) 특수 할당
  - 자동: 채널 수만큼 연속 빈 Coil 블록 탐색 → base 설정 + 채널 일괄 매핑
  - 수동: base 입력 → 블록[base..base+N-1] 충돌 검사. ModbusCoilBase = SSOT 역기록
- 일반 포트와 다른 주소 모델이라 **별도 모듈로 격리**(사용자 "문제 코드만 격리" 지시 실증) — UI·엔진 무참조
- `CanAssignPort(comp, port)` — TowerLamp는 Ch0(base)만 할당, Ch1+는 파생 표시. 일반 포트는 전부
- 뷰가 TowerLamp → _towerAssigner / 일반 → _assigner 라우팅. 일반 Assigner는 TowerLamp 방어 가드
## 모듈 구성 (5)
- PlcTabClassifier / PlcAddressAssigner / PortDragController / **PlcTowerLampAssigner** / PlcAddressMappingPanel(뷰)
## 영향 파일
- 신규: `Assets/Scripts/Plc/PlcTowerLampAssigner.cs`
- 수정: `PlcAddressAssigner.cs`(CanAssignPort+방어), `PlcAddressMappingPanel.cs`(라우팅+파생 라벨)
## S0048/S0012 진행
- C1~C6c-c 완료 — 4탭 에디터 + 드래그/수동 + 6컴포넌트 전부(TowerLamp 포함) 할당 + 영속. **S0012 핵심 spec 완결**
- 잔존: 충돌 모달(토스트로 처리됨)·DWord(포트 0건) 생략 / C4 switchover(비호환, 사용자 확인). 드래그·수동 UI = Stage 2
