7 Commits

Author SHA1 Message Date
to3796zw
d5fc47c549 Merge remote-tracking branch 'origin/field/ptop-1st' into field/ptop-1st 2026-06-21 09:22:38 +09:00
to3796zw
25edd79325 feat: Page Change bit로 Recipe+Page 전환 통합
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>
2026-06-21 00:04:35 +09:00
6c230f701d docs: Recipe/Page 통합 핸드셰이크 분석·작업지시서 추가 + 작업일지 갱신
- 분석(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>
2026-06-20 21:25:41 +09:00
to3796zw
bae5f4fe63 chore: PLC PC I/O Check 완료 및 중알람 인터락 원복
PLC-PC 간 I/O Check 완료에 따라 SeqComponentTeachingRun의
중알람(High) 인터락 차단 블록을 임시 우회에서 원복하고,
PLC DeviceMap CSV(M/D Device) 4종을 추가한다.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 19:36:15 +09:00
1d60d474b8 fix: 레시피 전환 시 Scout Field 이전 레시피 잔존(레시피축 stale) 수정
증상: 레시피 전환 후에도 이전 레시피의 Scout Field 영역이 그대로 적용됨.
원인: RecipeFieldScan(싱글톤)은 페이지명으로만 키잉되어 레시피 식별자가 없고,
ReloadRecipe에서 필드 재로드가 주석 처리됨. 또한 UpdateWeldingLinesRecipe →
콤보박스 SelectedIndexChanged → SaveAndLoadFieldScanFromLasaDb 경로가
WorkRecipeFile은 새 경로/싱글톤은 stale인 상태로 SaveFieldHelper를 호출해
이전 레시피 데이터를 새 레시피 FieldHelper.json에 덮어쓰는 손상까지 유발.

- 가드 플래그(_suppressPageFieldSync) 추가, 콤보박스 핸들러 저장 호출을 가드
- ReloadRecipe에서 UpdateWeldingLinesRecipe를 try/finally로 감싸 전환 중 저장 억제
- 로드 전용 LoadFieldScanFromLasaDb 추가, 전환 후 새 레시피 필드만 싱글톤에 로드
- 기존 소스는 삭제 없이 주석/가드로 보존
- 빌드 검증: MSBuild Debug|x64 솔루션 오류 0개, 현장 동작 확인 완료

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:40:47 +09:00
to3796zw
7fc11f2602 fix: AjinIO.IsConnected 반전 로직 정정
AxlGetBoardStatus가 SUCCESS일 때 미연결로 반환하던 반전 버그를
정정(실제 Ajin 연결 시 OnMonitoring 폴링이 스킵되던 원인).
연동해 OnMonitoring 미연결 가드를 앞으로 정리.
2026-06-20 10:14:18 +09:00
to3796zw
00cdd8ac9b fix: Axis Position Interlock 삭제, Theta 영어화
SequenceSetting의 Axis Position Interlock 속성 4개를 제거하고
(참조처 없음), LaserInterlock의 Head Theta DisplayName을 영어로
전환해 세팅 UI 표기를 정리. 빌드 검증 통과(오류 0).
2026-06-20 09:41:53 +09:00