값 하나가 화면까지 가는 길
센서 값 하나가 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 마다 직접 붙는 것보다 안전하고 가볍습니다.
② 올린다 — 엣지가 플랫폼에게 보낸다
엣지는 읽은 값을 플랫폼 API 로 올립니다. 주소와 인증은 app.properties 의
server.host · server.port · server.api_key 입니다.
통신이 끊기면 엣지가 자기 안에 쌓아 두었다가 복구된 뒤 한꺼번에 올립니다. 그래서 현장 회선이 잠깐 죽어도 값이 비지 않습니다 — 대신 그때 지각 데이터가 몰려 올라옵니다. 저장 계층이 그것을 따로 다루는 이유가 이것입니다(④).
표준 MQTT 기반 IIoT 규약이 필요한 현장에서는 sparkplug.enable 을 켭니다. 기본은 꺼져
있고, 플랫폼 API 경로가 기본값입니다.
→ PLC 한 대를 끝까지 연결하기 · app.properties 레퍼런스
③ 저장한다 — 플랫폼이 자리를 정한다
올라온 값은 태그에 붙고, 태그는 설비에, 설비는 라인 · 구역 · 사이트 · 기업에 붙습니다. 이 나무가 «공장 모델» 입니다.
기업 ─ 사이트 ─ 구역 ─ 라인 ─ 설비 ─ 태그 ─ 값
🔴 모델이 먼저입니다. 값이 아무리 들어와도 붙을 자리가 없으면 화면에 뜨지 않습니다. 알람 · 지표 · 캔버스가 전부 이 나무에 매달리기 때문에, 처음에 이것부터 세웁니다.
④ 쌓인다 — 데이터레이크가 나눠 맡는다
성격이 다른 데이터를 다른 저장소가 맡습니다. 하나로 뭉치면 어느 한쪽이 반드시 손해를 보기 때문입니다.
| 무엇 | 어디 | 왜 |
|---|---|---|
| 태그 값(시계열) | Aster TSDB | 끝없이 쌓이고, 「한 태그의 한 기간」으로만 읽힌다 |
| 설비 · 사용자 · 설정 | PostgreSQL | 관계와 제약이 필요하다 |
| 현장에서 들어오는 흐름 | Kafka · MQTT | 순간 몰려도 흘려보내야 한다 |
| 파일 · 이미지 · 아카이브 | RustFS | 크고, 자주 안 읽는다 |
시계열은 오래될수록 압축되고, 보존 기간이 지나면 통째로 지워집니다. 질의는 그대로인데 저장만 줄어듭니다.
→ 데이터레이크 개요 · 시계열 데이터베이스
⑤ 쓰인다 — 화면 · 알람 · 분석
같은 값이 여러 얼굴로 나옵니다.
| 하려는 일 | 보는 곳 |
|---|---|
| 지금 값을 본다 | 대시보드 · 데이터 포인트 |
| 이상하면 알림을 받는다 | 알람 · CEP |
| 직접 그린다 | 캔버스 |
| 대량으로 분석한다 | Spark SQL |
| 물어본다 | PlantPulse AI |
어디가 막혔는지 찾을 때
이 길을 거꾸로 짚으면 대개 빨리 찾습니다.
| 증상 | 먼저 볼 곳 |
|---|---|
| 화면에 값이 없다 | ③ 태그가 설비에 붙어 있나 → 데이터 포인트 |
| 플랫폼에 태그가 안 보인다 | ② 엣지가 올리고 있나 → 연결 목록 |
| 엣지에도 값이 없다 | ① PLC 를 읽고 있나 → 실시간 값 보기 |
| 과거만 비어 있다 | ④ 보존 기간이 지났나 → pd retention |
함께 보기
- 전체 메뉴 구조와 운영 흐름도 — 화면 단위의 흐름
- 첫 설비 데이터를 화면에 띄우기 — 이 길을 직접 한 번