본문으로 건너뛰기

값 하나가 화면까지 가는 길

센서 값 하나가 PLC 에서 화면까지 어떻게 오는지를 한 번에 봅니다. 각 단계를 «어떻게» 하는지는 링크된 문서에 있고, 이 페이지는 왜 그렇게 나뉘어 있는지를 설명합니다.

PLC · 센서
│ ① 읽는다 — 프로토콜 40여 종
▼
PlantPulse Edge (현장 게이트웨이)
│ ② 올린다 — 플랫폼 API (server.host / server.api_key)
▼
PlantPulse Platform (수집 · 모델 · 규칙)
│ ③ 저장한다
▼
DataLake (Aster TSDB · PostgreSQL · Kafka · RustFS)
│ ④ 읽는다
▼
화면 · 알람 · 분석 · AI

① 읽는다 — 엣지가 PLC 에게 말을 건다​

PLC 는 저마다 다른 말을 씁니다. Modbus · S7 · MELSEC · EtherNet/IP · OPC-UA … 엣지가 그 말을 대신 배웁니다 — 프로토콜 40여 종의 드라이버가 여기 있습니다.

엣지는 주기적으로 읽습니다(폴링). 「이 주소를, 이 주기로」를 정한 것이 태그입니다.

왜 플랫폼이 PLC 에 직접 붙지 않나

현장 네트워크는 대개 닫혀 있고, PLC 는 동시 접속을 몇 개밖에 못 받습니다. 게이트웨이가 현장에 하나 서서 PLC 에는 한 번만 묻고 위로는 모아서 보내는 편이, 서버가 PLC 마다 직접 붙는 것보다 안전하고 가볍습니다.

→ PLC 종류별 가이드 · 새 PLC 연결 추가

② 올린다 — 엣지가 플랫폼에게 보낸다​

엣지는 읽은 값을 플랫폼 API 로 올립니다. 주소와 인증은 app.properties 의 server.host · server.port · server.api_key 입니다.

통신이 끊기면 엣지가 자기 안에 쌓아 두었다가 복구된 뒤 한꺼번에 올립니다. 그래서 현장 회선이 잠깐 죽어도 값이 비지 않습니다 — 대신 그때 지각 데이터가 몰려 올라옵니다. 저장 계층이 그것을 따로 다루는 이유가 이것입니다(④).

Sparkplug B 로도 보낼 수 있습니다

표준 MQTT 기반 IIoT 규약이 필요한 현장에서는 sparkplug.enable 을 켭니다. 기본은 꺼져 있고, 플랫폼 API 경로가 기본값입니다.

→ PLC 한 대를 끝까지 연결하기 · app.properties 레퍼런스

③ 저장한다 — 플랫폼이 자리를 정한다​

올라온 값은 태그에 붙고, 태그는 설비에, 설비는 라인 · 구역 · 사이트 · 기업에 붙습니다. 이 나무가 «공장 모델» 입니다.

기업 ─ 사이트 ─ 구역 ─ 라인 ─ 설비 ─ 태그 ─ 값

🔴 모델이 먼저입니다. 값이 아무리 들어와도 붙을 자리가 없으면 화면에 뜨지 않습니다. 알람 · 지표 · 캔버스가 전부 이 나무에 매달리기 때문에, 처음에 이것부터 세웁니다.

→ 팩토리 관리 · 설비

④ 쌓인다 — 데이터레이크가 나눠 맡는다​

성격이 다른 데이터를 다른 저장소가 맡습니다. 하나로 뭉치면 어느 한쪽이 반드시 손해를 보기 때문입니다.

무엇어디왜
태그 값(시계열)Aster TSDB끝없이 쌓이고, 「한 태그의 한 기간」으로만 읽힌다
설비 · 사용자 · 설정PostgreSQL관계와 제약이 필요하다
현장에서 들어오는 흐름Kafka · MQTT순간 몰려도 흘려보내야 한다
파일 · 이미지 · 아카이브RustFS크고, 자주 안 읽는다

시계열은 오래될수록 압축되고, 보존 기간이 지나면 통째로 지워집니다. 질의는 그대로인데 저장만 줄어듭니다.

→ 데이터레이크 개요 · 시계열 데이터베이스

⑤ 쓰인다 — 화면 · 알람 · 분석​

같은 값이 여러 얼굴로 나옵니다.

하려는 일보는 곳
지금 값을 본다대시보드 · 데이터 포인트
이상하면 알림을 받는다알람 · CEP
직접 그린다캔버스
대량으로 분석한다Spark SQL
물어본다PlantPulse AI

어디가 막혔는지 찾을 때​

이 길을 거꾸로 짚으면 대개 빨리 찾습니다.

증상먼저 볼 곳
화면에 값이 없다③ 태그가 설비에 붙어 있나 → 데이터 포인트
플랫폼에 태그가 안 보인다② 엣지가 올리고 있나 → 연결 목록
엣지에도 값이 없다① PLC 를 읽고 있나 → 실시간 값 보기
과거만 비어 있다④ 보존 기간이 지났나 → pd retention

함께 보기​