UCScannerLaserControl.xaml
아래는 XAML 기준 실제 배치입니다. Watt 패널은 Visibility="Collapsed" 라 화면에 안 나옵니다 — % 패널로만 진행합니다.
VisibleChanged 로 시작됩니다. 화면을 한 번도 안 열면
감시가 돌지 않습니다. (단, 이 작업 자체가 이 화면에서만 하는 것이라 실사용상 문제는 없습니다)
| # | 조작 | 기대 결과 | 판정 |
|---|---|---|---|
| T1 | 문을 연 채 [Laser On] (가장 안전한 첫 테스트) |
출사 안 됨 + 노란 경고 토스트Door Open 상태입니다. 문을 닫고 다시 시도하세요. |
차단 정상 출사 → §3 |
| T2 | 문 닫고 [Laser On] | 정상 출사 시작. 계속 출사 상태 유지 (자동 오프 없음) |
출사 정상 차단 → §3 |
| T3 | 출사 중에 문을 연다 ★ 이번 사고 시나리오 |
약 0.2초 내 강제 OFF + 빨간 토스트Door Open 감지 → 레이저를 강제 OFF 했습니다. |
OFF 정상 유지 → §3 |
| T4 | 문을 다시 닫는다 (아무것도 누르지 않음) |
자동 재출사 안 됨 — 의도된 동작 | 정지유지 |
| T5 | [Laser On] 다시 누름 | 정상 출사 재개 | 출사 |
| T6 | [Laser Off] 로 종료 | 출사 종료, 감시 래치 해제 | — |
로그에서 [DoorInterlock] 으로 검색하면 전부 나옵니다.
[DoorInterlock][ScannerLaserControl] Door OPEN 감지 → 이후 레이저 출사 차단 (PLC=True, IO_DI=True) [DoorInterlock] 출사 중 Door OPEN 감지 → 레이저 강제 OFF 실행 (직접 출사 중). PLC비트=True, IO접점=True, PLC연결=True, IO연결=True [DoorInterlock] 레이저 강제 OFF 완료. 재출사하려면 문을 닫고 Shot On 을 다시 누르십시오.
[DoorInterlock] ... (PLC=False, IO_DI=False)
PLC연결=False / IO연결=False 면 → 디바이스 미연결. 연결부터 확인문 닫힘 상태인데 → (PLC=True, IO_DI=True)
[DoorInterlock] 직접 출사 중... Door=CLOSE, DA1=1.000V, DA2=0.000V, PLC비트=False, IO접점=False, ...
| 경로 | 차단 시점 | 완전성 |
|---|---|---|
| 파워측정 직접 출사 (No Use Spot Time) |
출사 시작 전 + 출사 중 100ms 주기 | 즉시 |
| Teaching Run 시퀀스 | 시퀀스 진입 시 + 객체 사이사이 리스트 1개 실행 중에는 개입 불가 |
부분 |
| Auto 운전 | 이번 범위 아님 — SeqAutoRunPTOP 은 자체 ExecuteWelding 사용 |
미적용 |
AlarmManager.cs (PLC비트 OR IO접점 판정) ·
UCScannerLaserControlViewModel.cs (시작 게이트 + 출사 중 감시) ·
SeqComponentTeachingRun.cs (주석 처리됐던 차단 복구 + 출사 직전 게이트)UCMainAutoRunViewModel 399~431행 블록 주석) · 하드와이어 안전회로