리크 테스트 gui
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.
 
 
 
 
 

8.6 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를 메인 화면에 표시                                │
  │  · ID 읽기 실패 시: "ID 읽기 실패" 오류 출력 후       │
  │    "NG" 판정으로 DB 비동기 저장 및 조기 종료 (Skip)    │
  │    (DB 저장 실패 시 "DB 저장 실패" 문구 표시)          │
  └──────────────┬───────────────────────────────────────┘
                 ▼
  ┌──────────────────────────────────────────────────────┐
  │ 3단계: LEAK 시험 수행                                  │
  │  · "LEAK 시험중" 메시지 표시                          │
  │  · Sentinel C28 센서의 최종 결과(Auto Result) 대기     │
  │  · 최대 대기 시간: 30초                               │
  │  · 타임아웃 시: NG 판정 + "Sentinel C28 통신 타임아웃" │
  │    (DB 저장 실패 시 "DB 저장 실패" 문구 표시)          │
  └──────────────┬───────────────────────────────────────┘
                 ▼
  ┌──────────────────────────────────────────────────────┐
  │ 4단계: 판정                                           │
  │  · SPEC LL ≤ 측정값 ≤ SPEC UL → OK                   │
  │  · 범위 밖 → NG                                      │
  └──────────────┬───────────────────────────────────────┘
                 ▼
  ┌──────────────────────────────────────────────────────┐
  │ 5단계: SPEC 교차 검증                                  │
  │  · 프로그램 판정과 센서 자체 판정 비교                  │
  │  · 센서 판정 정규화: OK/A/P → Accept, NG/R/F → Reject │
  │  · 불일치 시: SpecMismatch = true → 팝업 경고          │
  └──────────────┬───────────────────────────────────────┘
                 ▼
  ┌──────────────────────────────────────────────────────┐
  │ 6단계: 결과 출력 및 저장                                │
  │  · CSV 로그 파일에 검사 데이터 기록                    │
  │  · MSSQL 중앙 데이터베이스 비동기 저장                  │
  │  · DB 저장 실패 시: 오류 메시지 칸에 "DB 저장 실패" 표시 │
  │  · DIO OK 또는 NG 출력 ON                             │
  │  · 메인 화면에 측정값, 판정 결과 표시                   │
  │  · "시험 완료" 메시지 표시                             │
  └──────────────────────────────────────────────────────┘
       │
       ▼
  세마포어 잠금 해제 → 대기 중인 다른 채널이 있으면 자동 시작

7.3 순차 실행 (세마포어 잠금)

좌/우 채널은 동시에 시험을 수행할 수 없습니다. 이는 하드웨어 통신 충돌을 방지하기 위함입니다.

상황 동작
한 채널만 시작 신호 즉시 시험 시작
양쪽 동시 시작 신호 먼저 잠금을 획득한 채널이 시험 진행, 다른 채널은 "대기중" 표시
시험 완료 후 대기 중인 채널이 자동으로 시험 시작 (350ms 안정화 대기 후)

참고: 하드웨어 통신 안정화를 위해, 이전 채널 시험 종료 후 350ms의 여유 시간이 자동으로 적용됩니다.

7.4 타임아웃 처리

Sentinel C28 센서에서 30초 이내에 응답이 없으면:

  1. "Sentinel C28 통신 타임아웃" 오류 메시지 표시 (DB 저장 실패 시 "DB 저장 실패"도 오류 메시지에 추가 표시)
  2. 해당 채널 DIO NG 출력 ON
  3. 측정값 0.0000, 판정 NG, 센서판정 T/O (Timeout)로 기록
  4. CSV 로그 파일 및 MSSQL 데이터베이스에 NG 결과 비동기 기록

7.5 C28 센서 결과 채널 라우팅

Sentinel C28 센서에서 수신한 데이터는 채널 번호(ChannelNo)로 구분됩니다:

채널 번호 대상
C01 또는 1 LEFT 채널
C02 또는 2 RIGHT 채널
채널 번호 없음 현재 활성화된(시험 중인) 채널로 자동 할당

7.6 ID 수동 테스트

하단 메뉴의 ID Test (L) 또는 ID Test (R) 버튼으로 DIO 시작 신호 없이 센서 ID 판독만 수행할 수 있습니다.

실행 흐름

  1. 세마포어 잠금 획득 (다른 채널 시험 중이면 대기)
  2. 결과 표시 초기화
  3. 500ms 대기 (UI 피드백용)
  4. "센서 정보 읽는 중" 메시지 표시
  5. 4251 보드를 통해 ZMDI 센서 ID 판독
  6. 성공 시: ID 표시 + "ID 테스트 완료"
  7. 실패 시: ID를 "-"로 표시 + "ID 테스트 실패"
  8. 세마포어 잠금 해제

용도: 설치 후 하드웨어 연결 상태 확인, 디버깅 시 활용합니다. LEAK 시험(3~6단계)은 수행하지 않습니다.

7.7 SPEC 교차 검증 및 판정 저장 기준

시험 과정에서 프로그램(UI) 판정과 C28 센서 자체의 판정이 불일치하는 경우, 데이터베이스 및 로그 저장의 기준은 다음과 같습니다.

저장 기준 요약

  • 최종 저장 판정 (Result): C28 센서 자체의 판정값과 무관하게, 항상 **프로그램(UI) 판정 기준(programJudgment)**으로 데이터베이스 및 로그에 저장됩니다.
  • 동작 예시: UI 상으로 합격(OK)이지만 C28 센서 자체적으로는 불합격(NG/R)인 경우, 최종 DB(Result 컬럼) 및 CSV 로그에는 **OK (합격)**로 저장됩니다.

교차 검증 실패 시의 동작 (Spec Mismatch)

  • 프로그램 판정과 센서 자체 판정이 다르면 specMismatch 플래그가 true로 설정됩니다.
  • 불일치 발생 시 콘솔 로그에 경고([TestProcess] {side} SPEC Mismatch!)를 출력하고 UI 완료 이벤트 인자로 전달되지만, DB에 저장되는 최종 판정 결과(Result)에는 영향을 미치지 않고 프로그램 판정값을 유지합니다.

← 이전: 측정 데이터 조회 | 다음: 로그 관리 →