diff --git a/Machines/ILSOS_PrismaticRD_PTOP/Sequences/SeqAutoRunPTOP.cs b/Machines/ILSOS_PrismaticRD_PTOP/Sequences/SeqAutoRunPTOP.cs index a0b6e7c..cf946d0 100644 --- a/Machines/ILSOS_PrismaticRD_PTOP/Sequences/SeqAutoRunPTOP.cs +++ b/Machines/ILSOS_PrismaticRD_PTOP/Sequences/SeqAutoRunPTOP.cs @@ -1651,10 +1651,18 @@ namespace ILSOS_PrismaticRD_PTOP.Sequences } #endregion - #region 260811 정지 시 에코 워드 0 초기화 (원복 시 이 region 삭제) - _PLC.WriteWord(eWordOutput.PC_RECIPE_NO, 0); - _PLC.WriteWord(eWordOutput.PC_PAGE_NO, 0); - Log.I($"[OnSeqActionStop] 에코 워드 0 초기화 (PC_RECIPE_NO/PC_PAGE_NO)"); + #region 260820 260811 초기화 제거 (원복: 아래 3줄 주석을 풀면 260811 무조건판으로 돌아간다) + // PLC측 확정(2026-08-20): PLC 는 PC 에코 워드가 0이면 레이저 출사 신호를 내지 않는다. + // 그런데 bit15 가접 운전은 페이지마다 정지하므로, 여기서 0을 쓰면 페이지마다 0/0 창이 열린다. + // PC 는 다음 PLC_PAGE_CHANGE_REQ 를 받아야만 재에코하므로(CheckPageNo) 그 창 동안 PLC 는 + // 유효값을 못 본다 — 2026-08-20 로그에서 15 사이클 전부 이 경로를 탔다. + // 0 초기화는 SeqStatusMonitor.UpdateStatus() 가 Auto OFF 시에만 담당한다(위 260806 주석과 동일 규칙). + // 여기서 중복으로 쓰면 bit15 Resume 이 의존하는 보존값도 함께 깨진다. + // ※ 남은 창: SeqStatusMonitor 는 Auto OFF 하강엣지에 0을 쓰고 끝이라, Auto 복귀 후 첫 REQ 까지 + // 0/0 이 latch 된다(2026-08-20 10:24:47~10:43:17). 그 구간 재에코는 별건으로 검토한다. + //_PLC.WriteWord(eWordOutput.PC_RECIPE_NO, 0); + //_PLC.WriteWord(eWordOutput.PC_PAGE_NO, 0); + //Log.I($"[OnSeqActionStop] 에코 워드 0 초기화 (PC_RECIPE_NO/PC_PAGE_NO)"); #endregion