[비전실무 프로젝트 7편] PASS/FAIL 통계 프로그램 구축 방법 | 머신비전 검사 데이터를 활용한 실시간 품질 관리
머신비전 시스템은 제품을 PASS(양품) 또는 FAIL(불량) 로 판정하는 것이 기본 기능입니다. 하지만 실제 제조 현장에서는 검사 결과를 단순히 표시하는 것만으로는 충분하지 않습니다.
관리자는 다음과 같은 정보를 실시간으로 확인하기를 원합니다.
- 오늘 몇 개를 검사했는가?
- 불량률은 얼마나 되는가?
- 어떤 불량이 가장 많이 발생하는가?
- 어느 시간대에 불량이 집중되는가?
- 생산 목표를 달성하고 있는가?
이러한 정보를 한눈에 보여주는 것이 바로 PASS/FAIL 통계 프로그램입니다.
이번 글에서는 머신비전 검사 데이터를 활용한 실시간 통계 프로그램 설계 방법, 화면 구성, 데이터 관리, 실패 사례 및 실무 노하우를 자세히 알아보겠습니다.
PASS/FAIL 통계 프로그램이 필요한 이유
예를 들어 하루에 10만 개의 제품을 검사한다고 가정해 보겠습니다.
검사 프로그램에는 다음과 같은 결과만 표시됩니다.
PASS
PASS
PASS
FAIL
PASS
PASS
이 정보만으로는 전체 품질 상태를 파악하기 어렵습니다.
반면 통계 프로그램에서는 다음과 같이 확인할 수 있습니다.
| 항목 | 수량 |
| 총 검사 수 | 102,580 |
| PASS | 101,965 |
| FAIL | 615 |
| 양품률 | 99.40% |
| 불량률 | 0.60% |
관리자는 현재 생산 품질을 즉시 파악할 수 있습니다.
실시간 통계 화면 구성
머신비전 프로그램에서 많이 사용하는 구성입니다.
┌────────────────────────────┐
총 검사수 : 102580
PASS : 101965
FAIL : 615
양품률 : 99.40%
불량률 : 0.60%
현재 Tact Time : 182ms
목표 생산량 : 120000
달성률 : 85.5%
└────────────────────────────┘
작업자는 현재 생산 현황을 한눈에 확인할 수 있습니다.
반드시 표시해야 하는 항목
실무에서는 다음 정보를 기본으로 표시합니다.
| 항목 | 설명 |
| Total Count | 총 검사 수 |
| PASS Count | 양품 수 |
| FAIL Count | 불량 수 |
| Yield | 양품률 |
| NG Rate | 불량률 |
| Tact Time | 평균 검사 시간 |
| UPH | 시간당 생산량 |
| Recipe | 검사 모델 |
| LOT Number | 생산 LOT |
| Shift | 주·야간 작업 |
불량 유형별 통계
FAIL을 하나의 숫자로만 관리하면 개선이 어렵습니다.
예를 들어
| NG코드 | 내용 | 발생횟수 |
| NG-001 | Scratch | 152 |
| NG-002 | Crack | 81 |
| NG-003 | Missing | 45 |
| NG-004 | Position | 32 |
이처럼 원인별 통계를 관리하면 개선 방향을 쉽게 찾을 수 있습니다.
시간대별 통계
시간별 생산량을 관리하면 설비 상태를 쉽게 확인할 수 있습니다.
| 시간 | 검사수 | FAIL |
| 09:00 | 4,520 | 18 |
| 10:00 | 4,680 | 11 |
| 11:00 | 4,430 | 35 |
11시에 불량률이 급증했다면 작업 환경이나 설비 상태를 점검해야 합니다.
LOT별 통계
LOT별 품질 관리도 매우 중요합니다.
| LOT | PASS | FAIL | 불량율 |
| LOT001 | 9,980 | 20 | 0.20% |
| LOT002 | 9,945 | 55 | 0.55% |
| LOT003 | 9,995 | 5 | 0.05% |
LOT 단위 관리로 품질 문제를 빠르게 추적할 수 있습니다.
실시간 알람 기능
불량률이 일정 기준을 초과하면 즉시 알람을 발생시키는 것이 좋습니다.
예를 들어
불량률 > 2%
↓
경고 메시지
↓
부저 출력
↓
PLC 알람
↓
MES 이벤트 전송
이 기능은 대량 불량을 예방하는 데 효과적입니다.
데이터 저장 구조
통계 데이터는 데이터베이스(DB)에 저장하는 것이 일반적입니다.
예시 테이블
| Date | PASS | FAIL | Yield | LOT |
| 2026-07-11 | 100120 | 580 | 99.42 | LOT001 |
장기적인 품질 분석과 보고서 작성이 쉬워집니다.
생산 목표 관리
실시간 목표 대비 생산량도 함께 표시하면 관리 효율이 높아집니다.
예시
목표 생산량 : 120,000
현재 생산량 : 95,000
달성률 : 79.2%
남은 생산량 : 25,000
작업자는 생산 목표를 직관적으로 확인할 수 있습니다.
실패 사례
사례 1. 총 검사 수만 표시
한 공장에서는 총 검사 수만 표시하고 불량률은 계산하지 않았습니다.
생산량은 증가했지만 불량률도 함께 증가하고 있었으며, 이를 늦게 발견해 고객 클레임으로 이어졌습니다.
해결 방법
- 양품률(Yield)
- 불량률(NG Rate)
- 시간별 통계
를 함께 표시해야 합니다.
사례 2. 프로그램 재시작 시 통계 초기화
프로그램을 재실행하면 통계가 모두 초기화되어 하루 생산량을 확인할 수 없었습니다.
해결 방법
검사 결과를 DB 또는 CSV에 저장하고 프로그램 시작 시 누적 데이터를 다시 불러오도록 구현합니다.
사례 3. 불량 유형 미관리
FAIL 개수만 저장하고 불량 종류를 저장하지 않아 어떤 문제가 가장 많이 발생하는지 분석할 수 없었습니다.
해결 방법
NG Code를 함께 저장하여 유형별 통계를 제공합니다.
실무 노하우
프로젝트 경험상 가장 많이 사용하는 화면 구성은 다음과 같습니다.
생산 현황
────────────────────
Total : 102,580
PASS : 101,965
FAIL : 615
Yield : 99.40%
NG Rate : 0.60%
UPH : 2,150
Tact Time : 182ms
LOT : LOT001
Model : Connector_A
────────────────────
Top NG
Scratch : 152
Crack : 81
Missing : 45
이 화면만으로도 작업자와 관리자가 품질 상태를 빠르게 판단할 수 있습니다.
PASS/FAIL 통계 프로그램 개발 팁
프로그램을 개발할 때는 다음 사항을 고려하면 유지보수가 쉬워집니다.
- 통계 계산은 검사 로직과 분리하여 별도의 StatisticsManager 클래스로 구현합니다.
- UI는 일정 주기(예: 1초)로 갱신하여 화면 부하를 줄입니다.
- DB 저장은 비동기 처리하여 검사 속도에 영향을 주지 않도록 합니다.
- 날짜별, LOT별, 모델별 필터 기능을 제공하면 분석이 편리합니다.
- CSV 또는 Excel 내보내기 기능을 추가하면 보고서 작성 시간을 줄일 수 있습니다.
자주 묻는 질문(Q&A)
Q1. PASS/FAIL 통계는 메모리에만 저장해도 되나요?
아닙니다. 프로그램이 종료되면 데이터가 사라질 수 있으므로 DB나 CSV에 함께 저장하는 것이 좋습니다.
Q2. 불량률은 어떻게 계산하나요?
불량률은 FAIL 수 ÷ 총 검사 수 × 100(%) 으로 계산합니다.
Q3. 어떤 통계가 가장 중요한가요?
총 검사 수, PASS, FAIL, 양품률(Yield), 불량률(NG Rate), 시간당 생산량(UPH), Tact Time이 가장 기본적인 지표입니다.
Q4. AI 비전검사에서도 같은 방식으로 사용할 수 있나요?
네. AI 기반 검사에서도 PASS/FAIL뿐 아니라 AI Score, Confidence, 클래스별 통계를 함께 관리하면 더욱 효과적입니다.
Q5. 통계 데이터는 얼마나 보관해야 하나요?
기업 정책에 따라 다르지만 일반적으로 일별 데이터는 수년간 보관하고, 상세 검사 로그는 일정 기간 이후 백업하는 방식을 많이 사용합니다.
마무리
PASS/FAIL 통계 프로그램은 단순히 검사 결과를 집계하는 기능이 아니라 생산성 향상, 품질 개선, 공정 모니터링, 불량 예방을 위한 핵심 관리 도구입니다.
실무에서는 실시간 통계, 불량 유형 분석, LOT별 관리, 시간대별 추이, 목표 생산량 관리, 알람 기능을 함께 구현해야 효과적인 품질 관리 시스템을 구축할 수 있습니다.
다음 편에서는 **「8편 비전검사 프로그램 UI 설계 방법」**을 통해 작업자가 사용하기 쉬운 화면 구성, 메뉴 설계, 검사 화면 배치, 유지보수를 고려한 UI 설계 방법을 자세히 알아보겠습니다.