NohDoyeon241104 dc012d9313 feat: 자동운전 관측용 로그계측 추가 (동작 무변경)
자동 전환 전 판단 근거 확보를 위한 로그만 추가. 분기/리턴/비트쓰기 무수정.

- [Enter] 활성 레시피 페이지별 객체 수 1회 스캔 (빈 레이어 사전 경고)

- [CheckPageNo] REQ 진입 시점 ON 여부 (레벨/엣지 전환 판단 근거)

- [DoorCond] 출사 직전 Door 판정 기록 전용 - 차단하지 않음

- [사이클요약] 레시피/페이지/객체수/용접ms/GateON ms/PAGE_CMP/Resume 1줄

- [중알람] H알람 정지 대상 ID 불일치 경고 (StopSequence 호출은 그대로)

Door 차단과 정지 ID 수정은 극성/알람목록 확인 후 별건으로 진행한다. 원복: 마커 [로그계측 2026-09-16] 전수 검색 후 삭제 (2파일 10곳).
2026-09-16 16:21:16 +09:00

48 lines
2.2 KiB
C#

using Aurora;
using Aurora.Api;
using Aurora.Framework.Alarm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WeldingCommon.Alarm;
namespace ILSOS_PrismaticRD_PTOP.Alarm
{
public class AlarmManager_PTOP : AlarmManager
{
// [로그계측 2026-09-16] 기반 클래스의 AlarmLog 는 private 이라 파생 클래스에서 쓸 수 없어 별도로 둔다.
// (원복: 아래 region 과 함께 이 필드도 삭제)
private static readonly Logger AlarmLogPTOP = new Logger("ALARM");
public AlarmManager_PTOP(IAuroraEnvironment aurora) : base(aurora)
{
}
public static void StopSequenceByAlarm(int code)
{
AlarmDescription alarm = _Instance._AlarmService.GetAlarmDescription(code);
// High Alarm 은 Sequence 정지
if (alarm.Level == AlarmLevel.H) {
#region [로그계측 2026-09-16] 정지 대상 ID 불일치 경고 (원복: 이 region 삭제)
// 아래 StopSequence 의 대상은 SeqAutoRun(구 Prismatic)인데, 실제 운전 중인 것은
// SeqAutoRunPTOP 이다 (EquipmentSetup.cs:218 vs :225 / UCMainAutoRunViewModel.cs:101, 365).
// → H 알람이 떠도 자동운전은 멈추지 않는다.
// 식별자 1개 교체로 해결되지만, 지금까지 안 멈추던 것이 멈추기 시작하면 오정지로 라인이 설 수
// 있고 IO 알람이 무력화(ISSUE-260828-03)되어 실제 발생 H 알람 목록이 확인되지 않았다.
// 그래서 동작은 그대로 두고, 어떤 H 알람이 실제로 뜨는지 목록만 먼저 확보한다. (ISSUE-260828-02)
AlarmLogPTOP.W($"[로그계측][중알람] H 알람 발생 - Code:{code}, Name:{alarm.Name} → " +
$"StopSequence 대상이 '{SequenceIds.SeqAutoRun}' 이라 " +
$"실제 운전 중인 '{SequenceIds.SeqAutoRunPTOP}' 는 정지하지 않는다 " +
$"(ISSUE-260828-02 / 현재 동작 무변경)");
#endregion
StopSequence(SequenceIds.SeqAutoRun);
}
}
}
}