스마트팩토리 설비 모니터링
설비 신호를 실시간으로 받아 가동·이상 상태를 한 화면에서 보게 했습니다.

- 개발 기간
- 약 5개월
- 투입 인원
- 4명
- 지원 플랫폼
- 웹 · 서버
- 수집 대상
- 설비 PLC 신호
배경
설비에 이상이 생겨도 현장 작업자가 눈으로 확인하기 전까지는 아무도 몰랐다. 설비 신호는 PLC에 남아 있었지만 그걸 모아서 보는 화면이 없었다.
구현 범위
- 설비 신호 실시간 수집
- 가동·정지·이상 상태 표시
- 설비별 이력 조회
- 이상 발생 알림
- 설비 그룹별 대시보드
기술 선택
그 상황에서 무엇을 왜 골랐는지HTTP 폴링 대신 MQTT로 설비 신호 수집
설비 PLC가 초당 수백 건 단위로 신호를 밀어올리는데, 일정 주기로 상태를 물어보는 폴링 방식으로는 주기 사이에 발생한 신호가 그대로 유실됐다. 브로커를 두고 설비가 신호를 발행하는 방식으로 바꿔 유실 없이 순서대로 받을 수 있게 했다.
Azure 상에서 수집과 처리를 분리해 구성
신호 수집이 잠깐 밀리더라도 화면 조회까지 함께 느려지면 현장 대응이 늦어진다. 수집 파이프라인과 조회용 데이터를 분리해, 한쪽이 지연되어도 다른 쪽 화면은 계속 볼 수 있게 했다.
기술 과제
문제
설비 종류마다 신호 규격이 달라, 같은 가동 중 상태라도 표현하는 값이 제각각이었다.
접근
설비 종류별 신호를 공통 상태값으로 매핑하는 규칙을 따로 관리하고, 신규 설비가 추가되면 매핑 규칙만 등록하도록 구조를 나눴다.
결과
화면에서는 설비 종류와 무관하게 동일한 기준으로 가동·정지·이상 상태를 볼 수 있게 됐다.
문제
네트워크가 잠깐 끊기면 그 사이 설비 신호가 전달되지 않아, 실제로는 정상인데 화면에는 정지로 보이는 경우가 있었다.
접근
MQTT의 QoS 1 설정으로 최소 한 번은 전달을 보장하고, 일정 시간 신호가 없을 때만 이상으로 표시하도록 판단 기준에 유예 시간을 뒀다.
결과
순간적인 네트워크 단절이 설비 이상으로 잘못 표시되는 경우가 줄었다.
이관과 운영
현장 관리자용 대시보드 사용 가이드와 설비 신호 매핑 등록 방법을 문서로 남겼다. 소스코드와 배포 구성을 인계하고, 신규 설비 유형 추가는 별도 유지보수로 지원했다.