You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7.7 KiB
7.7 KiB
7. 자동 시험 프로세스
7.1 개요
자동 시험은 DIO 시작 신호(LEFT_START 또는 RIGHT_START)에 의해 트리거되며, 7단계로 진행됩니다. 좌/우 채널은 각각 독립적인 백그라운드 스레드에서 실행되지만, 세마포어 잠금을 통해 동시 실행은 방지됩니다.
7.2 전체 프로세스 흐름도
DIO 시작 신호 감지 (LEFT_START 또는 RIGHT_START: OFF→ON)
│
▼
세마포어 잠금 대기 ──(잠금 불가)──→ "대기중" 메시지 표시
│ │
│ (잠금 획득) │ (다른 채널 완료 후 자동 진행)
▼ ▼
┌──────────────────────────────────────────────────────┐
│ 1단계: 시험 시작 │
│ · OK/NG DIO 출력 초기화 (OFF) │
│ · 메인 화면 결과 표시 초기화 │
│ · 시작 시간 갱신 │
│ · C28 LEAK 센서 수신 이벤트 초기화 │
└──────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────┐
│ 2단계: 센서 정보 읽기 │
│ · 4251 보드를 통해 ZMDI 센서에서 제품 ID 판독 │
│ · ID / LOW ID를 메인 화면에 표시 │
│ · 읽기 실패해도 빈 데이터("-")로 계속 진행 │
└──────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────┐
│ 3단계: 불량 제품 필터링 │
│ · 센서의 PrevResult 값 확인 │
│ · PrevResult = "F" → 정상 (다음 단계로 진행) │
│ · PrevResult ≠ "F" → "불량 제품 투입" 오류 → 시험 중단│
└──────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────┐
│ 4단계: LEAK 시험 수행 │
│ · "LEAK 시험중" 메시지 표시 │
│ · Sentinel C28 센서의 최종 결과(Auto Result) 대기 │
│ · 최대 대기 시간: 30초 │
│ · 타임아웃 시: NG 판정 + "Sentinel C28 통신 타임아웃" │
└──────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────┐
│ 5단계: 판정 │
│ · SPEC LL ≤ 측정값 ≤ SPEC UL → OK │
│ · 범위 밖 → NG │
└──────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────┐
│ 6단계: SPEC 교차 검증 │
│ · 프로그램 판정과 센서 자체 판정 비교 │
│ · 센서 판정 정규화: OK/A/P → Accept, NG/R/F → Reject │
│ · 불일치 시: SpecMismatch = true → 팝업 경고 │
└──────────────┬───────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────┐
│ 7단계: 결과 출력 │
│ · CSV 로그 파일에 검사 데이터 기록 │
│ · DIO OK 또는 NG 출력 ON │
│ · 메인 화면에 측정값, 판정 결과 표시 │
│ · "시험 완료" 메시지 표시 │
└──────────────────────────────────────────────────────┘
│
▼
세마포어 잠금 해제 → 대기 중인 다른 채널이 있으면 자동 시작
7.3 순차 실행 (세마포어 잠금)
좌/우 채널은 동시에 시험을 수행할 수 없습니다. 이는 하드웨어 통신 충돌을 방지하기 위함입니다.
| 상황 | 동작 |
|---|---|
| 한 채널만 시작 신호 | 즉시 시험 시작 |
| 양쪽 동시 시작 신호 | 먼저 잠금을 획득한 채널이 시험 진행, 다른 채널은 "대기중" 표시 |
| 시험 완료 후 | 대기 중인 채널이 자동으로 시험 시작 (350ms 안정화 대기 후) |
참고: 하드웨어 통신 안정화를 위해, 이전 채널 시험 종료 후 350ms의 여유 시간이 자동으로 적용됩니다.
7.4 타임아웃 처리
Sentinel C28 센서에서 30초 이내에 응답이 없으면:
- "Sentinel C28 통신 타임아웃" 오류 메시지 표시
- 해당 채널 DIO
NG출력 ON - 측정값
0.0000, 판정NG, 센서판정T/O(Timeout)로 기록 - CSV 로그 파일에도 NG로 기록
7.5 C28 센서 결과 채널 라우팅
Sentinel C28 센서에서 수신한 데이터는 채널 번호(ChannelNo)로 구분됩니다:
| 채널 번호 | 대상 |
|---|---|
C01 또는 1 |
LEFT 채널 |
C02 또는 2 |
RIGHT 채널 |
| 채널 번호 없음 | 현재 활성화된(시험 중인) 채널로 자동 할당 |
7.6 ID 수동 테스트
하단 메뉴의 ID Test (L) 또는 ID Test (R) 버튼으로 DIO 시작 신호 없이 센서 ID 판독만 수행할 수 있습니다.
실행 흐름
- 세마포어 잠금 획득 (다른 채널 시험 중이면 대기)
- 결과 표시 초기화
- 500ms 대기 (UI 피드백용)
- "센서 정보 읽는 중" 메시지 표시
- 4251 보드를 통해 ZMDI 센서 ID 판독
- 성공 시: ID / LOW ID 표시 + 불량 제품 필터링 확인 + "ID 테스트 완료"
- 실패 시: ID를 "-"로 표시 + "ID 테스트 실패"
- 세마포어 잠금 해제
용도: 설치 후 하드웨어 연결 상태 확인, 디버깅 시 활용합니다. LEAK 시험(4~7단계)은 수행하지 않습니다.