자동화

다채널 계량기 실시간 데이터 수집 및 민감도 분석 시스템 구축

RS-232/485 시리얼 통신 기반 최대 20채널 산업용 계량기 데이터를 실시간 수집하고, 임계값 기반 민감도 변화 감지 및 사후 분석 보고서를 자동 생성하는 WPF 데스크톱 시스템을 구축했습니다.

2026.04
CHALLENGE

다채널 계량기의 고빈도 데이터 수집에서 UI 지연, 메모리 초과, 이상 변화 누락 위험이 있었습니다.

 현장에는 최대 20대의 산업용 저울이 각기 다른 시리얼 포트로 연결되어 있고, 각 장치가 초당 10회 이상의 무게 데이터를 송출합니다. 모든 채널의 데이터를 동시에 읽고, 화면에 표시하고, DB에 기록하는
  과정이 단일 흐름에서 처리되면 UI가 멈추거나 메모리가 누적되어 장시간 운용이 불가능합니다. 또한 무게의 급격한 변화(민감도 이벤트)를 실시간으로 감지하여 기록해야 하지만, 기존에는 수동으로 로그를
  확인하는 방식이어서 이상 변화 시점을 놓치는 경우가 빈번했습니다. 7종의 서로 다른 계량기 프로토콜을 단일 시스템에서 지원해야 하는 점도 기술적 난제였습니다.

SOLUTION

Producer-Consumer 패턴의 비동기 파이프라인과 링 버퍼 기반 민감도 감지 알고리즘으로 수집-기록-분석을 완전 분리했습니다.

시리얼 포트 수신부는 BlockingCollection 기반 Producer-Consumer 패턴으로 설계하여, 최고 우선순위 전용 스레드가 프레임을 파싱하고 UI 스레드에는 100ms 주기로 샘플링된 데이터만 전달합니다. 7종
  산업용 프로토콜(Format1~7)을 통합 파서(IndicatorStreamParser)가 자동 해석하며, 채널별 독립 구성으로 이기종 장비 혼용을 지원합니다.

  메모리 안정성을 위해 인메모리 버퍼 10,000건 도달 시 SQLite WAL 모드로 비동기 중간 저장 후 메모리를 해제하는 2단계 플러시 구조를 적용했습니다. 민감도 분석은 최근 10개 데이터를 유지하는 링 버퍼와
   상태 머신(정상/증가초과/감소초과)을 결합하여, 임계값 초과 시 전후 5개 컨텍스트 데이터와 함께 이벤트를 자동 기록합니다.

  보고서 화면은 6개 KPI 카드, 이벤트 목록 DataGrid, ScottPlot 기반 상세 차트로 구성된 대시보드를 제공하며, 기록 당시 임계값이 미설정된 세션도 사후 재분석(Post-hoc Analysis)으로 이벤트를 생성할 수
   있습니다. 인쇄 시에는 WPF DrawingVisual로 이벤트별 미니 차트를 렌더링하여 A4 보고서로 출력합니다. Windows 절전 방지(SetThreadExecutionState P/Invoke)와 시스템 절전/복귀 감지를 통해 장시간 무인
   운용 안정성도 확보했습니다.

RESULT

20채널 동시 수집, 10,000건 단위 자동 플러시, 임계값 기반 이벤트 감지가 통합된 운영 시스템을 구현했습니다.

도입 후 다음과 같은 성과를 달성했습니다:

  - 실시간 수집 안정성: Producer-Consumer 분리 구조로 초당 200회 이상의 데이터 유입에서도 UI 지연 없이 안정 운영
  - 메모리 안전성: 10,000건 자동 플러시 + 디스플레이 5,000건 상한으로 장시간(24시간+) 연속 기록 시에도 메모리 사용량 일정 유지
  - 민감도 자동 감지: 임계값 초과 이벤트를 전후 컨텍스트와 함께 자동 기록하여 수동 로그 확인 작업 제거
  - 사후 분석 지원: 기존 기록 데이터에 대해 임계값을 변경하여 재분석 가능, 과거 세션의 이상 변화 소급 추적 가능
  - 보고서 자동화: KPI 대시보드 + 이벤트 상세 차트 + A4 인쇄 보고서로 품질 관리 문서화 자동화
  - 7종 프로토콜 통합: 이기종 계량기를 단일 시스템에서 관리하여 설비 통합 운영 비용 절감