대상 화면 Manual → Scanner → Manual Laser Power Control  ·  소스 UCScannerLaserControl.xaml
시작 전 필수

1. 화면 배치와 조작 위치

아래는 XAML 기준 실제 배치입니다. Watt 패널은 Visibility="Collapsed" 라 화면에 안 나옵니다 — % 패널로만 진행합니다.

Manual Laser Power Control
Control Setting
2Power #110%
Power #20%
Frequency1kHz
Pulse Width1000000us
Laser Shot Control
Timer Set
3연속출사로 전환
No Use Spot Time
Use Spot Time
← 이쪽이 자동 오프 없는 연속출사 (이번 사고 경로)
4실제 발진
Laser Fire
No Laser (전압만)
※ DA1/DA2 전압 표시는 No Laser 쪽일 때만 보임
Laser Shot Result
ListN/A
Repeat Count0
5Laser On
Laser Off
1 이 화면을 반드시 먼저 띄워야 합니다. 출사 중 Door 감시 타이머는 VisibleChanged 로 시작됩니다. 화면을 한 번도 안 열면 감시가 돌지 않습니다. (단, 이 작업 자체가 이 화면에서만 하는 것이라 실사용상 문제는 없습니다)

2. 검증 순서

#조작기대 결과판정
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] 로 종료 출사 종료, 감시 래치 해제 —

3. 로그 확인 — 극성 판별

로그에서 [DoorInterlock] 으로 검색하면 전부 나옵니다.

정상 (문 열림에서 True 가 하나라도 뜸)
[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 을 다시 누르십시오.
PLC / IO 둘 중 하나만 True 여도 정상 동작합니다(OR 판정). 어느 쪽이 False 인지는 알려주세요 — 배선/맵 확인 대상입니다.
이상 ①: 문 열었는데 둘 다 False → T1/T3 에서 차단이 안 됨
[DoorInterlock] ... (PLC=False, IO_DI=False)
이상 ②: 문 닫았는데 True → T2 에서 출사가 막힘 (반대 증상)
문 닫힘 상태인데 → (PLC=True, IO_DI=True)
극성 반대 확정입니다. 판정부 한 줄만 뒤집으면 되니 로그값 그대로 보내주세요.
롱텀 추적용 하트비트 — 출사 중에는 10초마다 아래가 남습니다. 1시간 출사 구간 로그 공백이 없어집니다.
[DoorInterlock] 직접 출사 중... Door=CLOSE, DA1=1.000V, DA2=0.000V, PLC비트=False, IO접점=False, ...

4. 이 인터락이 못 막는 구간

경로차단 시점완전성
파워측정 직접 출사
(No Use Spot Time)
출사 시작 전 + 출사 중 100ms 주기 즉시
Teaching Run 시퀀스 시퀀스 진입 시 + 객체 사이사이
리스트 1개 실행 중에는 개입 불가
부분
Auto 운전 이번 범위 아님 — SeqAutoRunPTOP 은 자체 ExecuteWelding 사용 미적용
본질적 한계 — 반드시 같이 보고할 것
이건 SW 방어이지 안전 인터락이 아닙니다. Door 감시가 UI 스레드 DispatcherTimer 기반이라 UI가 멈추면 감시도 같이 멈춥니다. Class 4 레이저 기준 최종 차단은 PLC / 하드와이어 안전회로로 별도 협의가 필요합니다.
변경 파일 3개 — AlarmManager.cs (PLC비트 OR IO접점 판정) · UCScannerLaserControlViewModel.cs (시작 게이트 + 출사 중 감시) · SeqComponentTeachingRun.cs (주석 처리됐던 차단 복구 + 출사 직전 게이트)
미결: EMO 차단 복구 · Auto 시작 게이트(UCMainAutoRunViewModel 399~431행 블록 주석) · 하드와이어 안전회로