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.
126 lines
7.7 KiB
126 lines
7.7 KiB
|
2 months ago
|
# 7. 자동 시험 프로세스
|
||
|
|
|
||
|
|
[← 메뉴얼 목차로 돌아가기](사용자_메뉴얼.md)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 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초 이내에 응답이 없으면:
|
||
|
|
|
||
|
|
1. "Sentinel C28 통신 타임아웃" 오류 메시지 표시
|
||
|
|
2. 해당 채널 DIO `NG` 출력 ON
|
||
|
|
3. 측정값 `0.0000`, 판정 `NG`, 센서판정 `T/O` (Timeout)로 기록
|
||
|
|
4. 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 판독만 수행할 수 있습니다.
|
||
|
|
|
||
|
|
### 실행 흐름
|
||
|
|
1. 세마포어 잠금 획득 (다른 채널 시험 중이면 대기)
|
||
|
|
2. 결과 표시 초기화
|
||
|
|
3. 500ms 대기 (UI 피드백용)
|
||
|
|
4. "센서 정보 읽는 중" 메시지 표시
|
||
|
|
5. 4251 보드를 통해 ZMDI 센서 ID 판독
|
||
|
|
6. 성공 시: ID / LOW ID 표시 + 불량 제품 필터링 확인 + "ID 테스트 완료"
|
||
|
|
7. 실패 시: ID를 "-"로 표시 + "ID 테스트 실패"
|
||
|
|
8. 세마포어 잠금 해제
|
||
|
|
|
||
|
|
> **용도**: 설치 후 하드웨어 연결 상태 확인, 디버깅 시 활용합니다. LEAK 시험(4~7단계)은 수행하지 않습니다.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
[← 이전: 측정 데이터 조회](07_데이터_조회.md) | [다음: 로그 관리 →](09_로그_관리.md)
|