fix: 정지 시 PC_RECIPE_NO/PC_PAGE_NO 0 초기화 제거

PLC는 PC 에코 워드가 0이면 레이저 출사 신호를 내지 않는다(2026-08-20 PLC측 확정).
bit15 가접 운전은 페이지마다 정지하므로 OnSeqActionStop의 무조건 0 초기화가
페이지마다 0/0 창을 열었고, PC는 다음 PAGE_CHANGE_REQ를 받아야만 재에코한다.
0 초기화는 SeqStatusMonitor가 Auto OFF 시에만 담당하도록 일원화.
This commit is contained in:
노도연 2026-08-21 00:06:29 +09:00
parent 172a273b90
commit 83018da4ac

View File

@ -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