- SKILL.md: C항목 2.설계 PPTX를 한 줄 실행 명령으로 교체, 불변규칙에 pptx 재생산 추가
- 06-procedure.md: xlsx 재생산과 동등한 pptx 재생산 절차 섹션 추가
- 09-pptx-integration.md: 자동 재생산(build_02설계_pptx.py)과 수동 절차를 구분 기재
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
[SW Version 시트]
- 점검 내용과 점검 결과 사이에 '요청자', '작업자' 2개 컬럼 삽입
- 표 스타일·상단 요약 병합셀 위치 보정(제목 B1:I2 확장, 라벨/날짜 정렬)
[Gantt 시트 신규]
- 프로젝트 6단계 일정 간트차트(타임라인 2026-05~08 일 단위)
- 월/주/일 3행 헤더를 일 날짜 기반 수식으로 자동 생성
- 막대는 조건부서식으로 시작일~종료일 구간을 상태색 자동 채움
(날짜만 입력/수정하면 막대 자동 갱신, 미정 단계는 공백)
- 단계 반영: 제작 2026-05-01~06-30 진행완료(오창공장 이전 전 완료),
셋업 미정(7/15 이후 오창공장), 양산·CS 미정
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Laser On Display 타이밍을 맞추기 위해 PC_WELD_BUSY bit
기록 위치 변경 (SeqAutoRunPTOP)
- 레시피 Scanner Cam 팝업(WDScannerCamMotion)을 직접 실행
모드(publishMode:false)로 변경하고, 창 표시 시 모니터
타이머/Limit 초기화를 호출해 모션 미동작·좌표 0 고정 해소
- 작업일지 2026-06-26 추가, Laser Interface 문서 갱신
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Use Interlock ON 시 ① 안전구역 게이트(기존) 유지 + ② 레시피별 방향 차단(신규). Recipe 폴더의 Recipe_Laser_Interlock.json(Front/Down 0/1)에 저장하고, 경로는 FieldHelper.json과 동일 소스(DB.Dao.SystemRecipe.WorkRecipeFile) 사용. Auto/Manual 양쪽 적용(Manual은 ①+② 신규), VM 체크박스는 레시피 전환 시 Background 우선순위 재로드로 stale 방지.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
각도에 따라 발진 위치가 달라져, Front/Down angle 평균을 임계값으로
Front/Down offset을 자동 선택해 적용(자동·수동 발진 공통).
- LaserInterlock: Horizontal/Vertical → Front/Down angle 로 변경
- SystemParameter: CellCenterOffset X/Y → Front/Down offset X/Y (4개)
- LaserAngleOffsetSelector 헬퍼 신규 + 선택값 LOG
- PLC 미연결 시 Front offset fallback
주의: 설정 프로퍼티명 변경으로 기존 저장값 자동 이관 안 됨(재입력 필요)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FieldHelper.json 페이지별 저장 구조와 Run Scout Normal 읽기 경로,
FileName(표시용) vs FieldScans(스캔 입력용) 구분 정리.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Auto(SeqAutoRunPTOP)가 CellMeasureCenterOffset을 0으로 넘겨
매뉴얼(SeqComponentTeachingRun)과 발진 위치가 어긋남.
매뉴얼과 동일 수식(CellPosMeasureCenterOffset + CellCenterOffset)
으로 변경하여 자동/매뉴얼 발진 위치 정합.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- UCScannerObjectTeachingControlBox.xaml: Scout Normal 실행 줄을 2열에서 3열로
재구성, 너비 1*/1.3*/1*로 Run 강조. Run Scout Normal 버튼을 Run으로 변경,
1열에 Field 버튼 신규 추가.
- VM: 매뉴얼 화면과 동일한 WDSelectScoutField 팝업을 띄우는
CMD_ShowSelectFieldWindow 이식. 저장은 팝업 VM에서 자체 처리하므로
비전 이벤트 구독(SAVE_CHILD_IMAGE_SETTING)은 제외.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 레시피 컨트롤박스에 'Scanner Cam' 버튼 추가 → 카메라+모션 창 Show/Hide 토글
- WDScannerCamMotion: 전용 displayType(Machine_C) 카메라뷰 + 매뉴얼 UCScannerMotion 재사용
- UCScannerMotionViewModel: publish/execute 모드 분리
- 레시피(publish): 입력값을 EVENT_SCANNER_COMMAND_MOVE 로 발행
- 매뉴얼(execute): 이벤트 구독해 동일 메소드로 실제 스캐너 이동(인터락 그대로 재사용)
- Move/Jog/Home 메소드를 인자형으로 리팩터해 UI·이벤트 경로가 같은 본체 공유
- 분석 문서 추가(docs/분석/2026/06/23)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Auto(SeqAutoRunPTOP.ExecuteWelding)가 발진 직전 보정테이블을 선택하지
않아 직전 상태로 발진 → 매뉴얼과 위치 어긋남. ExecuteList 직전
SelectCorrectionTable(1) 명시 추가(장비측 보정도 테이블 1 기준 정합).
2026-06-23 작업일지 추가.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 현재 코드 기준 노드 흐름·PLC 핸드셰이크·레이저 발진 구간 정리
- M70509(Scout, 9번) 분기 특성, 정지/Resume 처리 포함
- 현장 레이저 발진·Scout 이미지 촬영 정상 확인
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
용접 전/후 Scout 기능이 원격(4f03a0a, M70509 기반)에서 재작업되어
로컬 Scout 구현(SEQ_PRE_SCOUT_*, M70009/M70010)과 충돌.
가장 최근 커밋 4f03a0a 기준으로 아래 4파일 전부 원격 버전 채택:
- Doc/ILSOSConfig/PLC_DeviceMap_Bit_Input_M_Device.csv
- Machines/ILSOS_PrismaticRD_PTOP/Device/PLC/PLCController.Address.cs
- Machines/ILSOS_PrismaticRD_PTOP/Sequences/SeqAutoRunPTOP.cs
- WeldingComponents/WeldingCommon/Sequences/Main/SeqScoutNormal.cs
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
M70509(Scout Enable) 상시 ON 시, 용접 트리거(M70516) 감지 후 pre scout,
발진 완료 후 완료비트 송신 전 post scout 수행(각각 SeqScoutNormal 재사용,
0.1초 후 진행). M70509 OFF면 기존과 동일하게 용접만.
- eBitInput 0x09: PLC_RECIPE_CHANGE_REQ(미사용) → PLC_SCOUT_ENABLE 재정의
- 용접 완료비트(ACK off/BUSY off/COMPLETE on)를 WriteWeldComplete 노드로
분리해 post scout 뒤에 송신
- 이미지 파일명 접미어: {기존}_auto_{recipeNo}_{pageNo}_{pre|post}.PNG
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
기존: PreScoutDone/PostScoutDone에서 Complete를 ON으로 래치만 함.
CheckCycleStop이 항상 CheckPageNo로 루프백 → WriteCompletionPLCBit
(RestoreDeviceStatus) 미도달이라 정상 운전 중 OFF되지 않고 정지까지 ON 유지.
변경: PulseScoutCompleteBit로 ON→400ms 유지→OFF 고정 펄스.
시간값은 SCOUT_COMPLETE_PULSE_MS 상수로 관리.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 산출물 23. SW 점검결과 xlsx: SW Version 작업이력 추가(핸드셰이크/bit15 Resume/RecipeNo 등),
IO List bit15 신규(M70515 PLC_WELD_READY_REQ / M70015 PC_WELD_READY_ACK)·rename 반영
- architecture.md §8 용어 정리(가접 용접 = Tack Welding) 추가
- docs/분석 2026/06/22: AuroraUIComponent 재사용 UC·메인 View 도식 분석
- 기타 산출물 문서(DR 회의록·SOP·ILSOSConfig 등) 및 작업일지 포함
- SeqAutoRunPTOP.cs: 기존 로컬 변경 포함
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- CheckPageNoComp: PC_PAGE_NO 에코값과 현재 PLC_PAGE_NO 비교해
일치 시 PC_PAGE_CHANGE_COMPLETE=true, 불일치 시 false (기존 무조건 false)
→ 동일 Recipe/Page 반복 시 완료 ACK 전달
- SeqStatusMonitor: PLC/PC Auto State OFF 에지 감시 →
PC_RECIPE_NO/PC_PAGE_NO 0 초기화. 단 PC Auto OFF는
M70515(Weld_01 Ready) 살아있으면 보존(Resume 시나리오)
- ExecuteWelding: 완료비트 송신 간 딜레이 5→50ms 여유 확보
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- CheckRecipeNoComp: 동일레시피 시 PLC_RECIPE_NO 재폴링(늦은 갱신 대응),
recipe==null(0/미등록) 널 가드 추가, 에코는 활성 레시피 기준으로 null-safe 처리
- OnSeqActionStop: PC_ERROR_CODE 0 쓰기 삭제(WriteDWord가 인접 PC_PAGE_NO까지
0으로 덮던 버그 해소) → 정지 시 에코워드 보존
- CheckInitCondition: ResumeMode 핸드셰이크 스킵 제거(옵션A) → bit15 후 PLC가
주는 새 Recipe/Page를 정상 핸드셰이크로 처리. Resume 주석/로그도 정정
- 빌드 0오류
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- D70002(PC_RECIPE_NO): 동일 레시피여도 매 핸드셰이크 에코 유지
- 정지 시 에코워드(Page/Recipe No) 0 초기화 제거(보존)
- bit15 Manual 전환 시 레시피 활성화+로드, bit15 ON 중 AUTO_REQ 자동시작 무시
- [AutoRun Resume] PC bit15(0x0F) 1초 펄스 OFF
- 양극(P) 미사용: PC_AUTO_STATUS_P/양극 용접 핸드셰이크 제거, 용접 응답 음극 통일
- 공유 eCommon READY(0x0F) 제거(PTOP enum은 유지)
- SeqAutoRunPTOP 로그 설명형 개편(노드 Start/End 제거)
- 빌드 0오류. Recipe/Page 수정분은 현장 미적용(추후 검증 예정)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PLC가 Page Change bit(0x08) 하나만 트리거로 보내면 Recipe No와
Page No를 함께 읽어 Recipe를 먼저 전환한 뒤 Page를 전환하도록 변경.
Recipe Change bit(0x09)는 트리거로 미사용(enum 정의는 보존).
- CheckRecipeNo Decision 제거, 흐름 재배선(CheckPageNo→Recipe→Page)
- Recipe No 1회 읽기, 0/음수/미등록/동일이면 전환 생략(정지 안 함)
- 실제 전환 시 ActivateRecipe 후 Dispatcher.Invoke(OnActiveReloaded)로
Model.Layers 동기 갱신 + 페이지 검증/레이어 선택을 UI 스레드 직렬화
(ActivateRecipe-Layers 비동기 race 차단)
- PC_RECIPE_CHANGE_COMPLETE 미사용 처리, PC_RECIPE_NO 에코는 유지
VS Rebuild(Debug|x64) EXITCODE=0 확인.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 분석(191351): 동시수신 대응 단일 PAGE 게이트 핸드셰이크 확정안(8장)
+ ActivateRecipe→Layers 비동기 2-홉 race 분석, 대응안 A/B/C
- 작업지시서(2026_06_21): 4노드→1노드 통합 구현 절차/검증/완료기준
- 작업일지: 19:xx 분석 + 일일요약 추가 (원격 PLC PC I/O Check 섹션 병합)
- 소스 미수정 (문서만)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
현장 PLC 미연결로 임시 주석 처리했던 CheckCondition_Interlock()의
High(중대) 알람 인터락 블록을 원복. 현장 PLC 연결 완료에 따라 정상 동작.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>