- 분석 문서 4종 추가 (docs/분석/2026/06/19):
알람부 종합 / MX Component PLC 연결 / AjinIO.ReadDoBit / 가이드빔 TruPulse(ExtPilotOnOff 미구현)
- AjinIO.ReadDoBit(int): 스텁(return true) 유지 + 구현(ReadDiBit 패턴) 주석 보존
- SeqComponentTeachingRun: 중알람 인터락 임시 주석 (현장 PLC 미연결 우회, 추후 원복)
- 레시피 Guide Beam: DO 17 read/write + IsConnected 가드 주석 (필요시 주석 토글 운용)
- 작업일지 2026-06-19 정리
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
External/Aurora/bin 커밋 예외, .gitignore 자체 커밋(-f) 규칙을 GIT_RULES.md로 정리하고 architecture.md에 @import 연결
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
IO DI 경로는 IO_Board.json의 IOInterfaceMapDI 절대경로로 결정되며
IODevice.MappingDIO가 path-agnostic하게 그대로 읽음(소스 수정 불필요).
PTOP 전환 = config(IO_Board.json 경로) + DI/DO.csv 존재 + DataPath 확인.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
DA1/DA2 Voltage UniformGrid에 Visibility 바인딩(IsNoLaser, convTrueVisible) 추가.
Time이 Use Spot Time 체크 시 표시되듯, No Laser 체크 시에만 전압 표시.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Manual: IsNoLaser 추가, Laser On 직접 분기(Percent/Watt)의 LaserSignalOn을
if(!IsNoLaser)로 가드 → 체크 시 발진 없이 전압만 인가
- Manual XAML: Use Spot Time과 동일 ToggleSwitch 디자인의 'No Laser(전압만)' 토글 추가
(Timer Set: UseSpotTime → Time(체크시) → NoLaser → DA1/DA2 Voltage)
- Recipe(UCScannerObjectTeachingControlBox): NoLaser 완전 제거(원래 의도가 Manual),
PerformCmdLaserReadyCheck를 WriteDoBit(9/13,true)로 환원. DI 11&15 변경은 유지.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ed36f8d에서 분석 문서만 들어가, 실제 구현 소스를 함께 커밋.
- ScannerObj.GetAnalogOut(abstract) + RTC5/RTC6(n_get_value, signal=portNo+32)/Simul(0) + Scanner 파사드(-1)
- UCScannerLaserControlViewModel: AnalogOut1/2Voltage + ReadbackAnalogOut(raw/4095*10 V), Laser On 직접 분기 WriteDA 직후 호출
- UCScannerLaserControl.xaml: Control Setting에 DA1/DA2 Voltage [V] 표시
- 작업일지 13:55 기록
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Device 계층: ScannerObj.GetAnalogOut(abstract) + RTC5/RTC6(n_get_value, signal=portNo+32)
/Simul(0) override + Scanner 파사드(미활성 -1)
- UCScannerLaserControlViewModel: AnalogOut1/2Voltage + ReadbackAnalogOut(raw/4095*10 V),
Laser On 직접 분기 WriteDA 직후 호출
- UCScannerLaserControl.xaml: Control Setting에 DA1/DA2 Voltage [V] 읽기전용 표시
- LaserSignalOn 발사 동작 무변경. (AnalogOut1=33/AnalogOut2=34)
- 분석 문서 추가: Laser On 미출사 원인(122432)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
IO 결선 변경에 따라 Laser Ready 입력 판정을
ReadDI(12) && ReadDI(24) → ReadDI(11) && ReadDI(15)로 수정. 로직 동일.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
발진 Enable 실제 지점이 LaserSignalOn(RTC5)이 아니라 IO Control
DO9/DO13(Core/Ring Laser Control)임을 반영. IsNoLaser 채택 구현과
초기 LaserSignalOn 방식 원복 경위 기록.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 작업일지: 레이저 미발진 + Analog만 살려 Power Cal 파일 생성 가능 여부 요청 기록
- docs PLC 인터페이스 폴더 정리(구 _260617 폴더 → 신규 폴더로 이동)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- docs/작업일지: 06-17, 06-18 작업일지 추가 (조명 컨트롤러 연결, 현장 PC 원격 접속, 현장 소스 반영)
- docs/현장update파일: 현장 반영용 변경 파일(SequenceSetting.cs, UCScannerObjectTeachingControlBoxViewModel.cs) 및 README 정리
- docs/분석: 260617 분석 문서(Laser Ready DI 변경, Axis Position Interlock, PLC DeviceMap, EROOM Light RS232 등) 추가
- docs/architecture.md, CLAUDE.md, harness-ptop.md 갱신
- PLC 인터페이스 엑셀 및 기존파일비교 자료 추가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 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는
제거
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 예외 처리 추가.