자동 전환 전 판단 근거 확보를 위한 로그만 추가. 분기/리턴/비트쓰기 무수정. - [Enter] 활성 레시피 페이지별 객체 수 1회 스캔 (빈 레이어 사전 경고) - [CheckPageNo] REQ 진입 시점 ON 여부 (레벨/엣지 전환 판단 근거) - [DoorCond] 출사 직전 Door 판정 기록 전용 - 차단하지 않음 - [사이클요약] 레시피/페이지/객체수/용접ms/GateON ms/PAGE_CMP/Resume 1줄 - [중알람] H알람 정지 대상 ID 불일치 경고 (StopSequence 호출은 그대로) Door 차단과 정지 ID 수정은 극성/알람목록 확인 후 별건으로 진행한다. 원복: 마커 [로그계측 2026-09-16] 전수 검색 후 삭제 (2파일 10곳).
48 lines
2.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|