엣지가 값을 읽고 올리는 원리
게이트웨이가 하는 일은 결국 셋입니다 — 읽고 · 담고 · 올린다. 이 셋이 어떻게 맞물리는지 알면 「값이 안 보인다」를 어디서부터 봐야 할지가 정해집니다.
PLC ──① 읽는다──▶ 엣지 ──② 담는다──▶ 로컬 Cassandra (PE)
│
└──③ 올린다──▶ 상위 플랫폼
(전송 큐 → 막히면 디스크 큐)
연결 · 태그 — 무엇을 읽을지 정하는 두 층
| 무엇인가 | 예 | |
|---|---|---|
| 연결 | 어느 장비에, 어떤 프로토콜로 붙을지 | OPC_LS_XGI_0001 — LS, <PLC-IP>:2004 |
| 태그 | 그 장비의 «어느 주소»를 «얼마나 자주» 읽을지 | D0800, 1000ms |
연결 하나에 태그가 여럿 붙습니다. 주소를 아는 것이 절반이라, 프로토콜마다 주소 표기가 다릅니다 → PLC 주소 입력 레퍼런스.
① 읽는다 — 주기적으로 묻는다
엣지는 수집 주기마다 PLC 에게 묻습니다(폴링). 기본 1000ms 이고, 빠르게 변하는 값은
500, 느린 값은 5000 이 무난합니다.
주기를 짧게 하는 것은 공짜가 아닙니다
주기는 PLC 에 걸리는 부하입니다. 100ms 로 두면 초당 열 번 묻는 것이고, 태그가 수백 개면 PLC 가 먼저 지칩니다. 값이 실제로 그 속도로 변하는지 먼저 보십시오 — 1초에 한 번 바뀌는 값을 100ms 로 읽으면 같은 값을 아홉 번 더 받을 뿐입니다.
② 담는다 — 게이트웨이 안에 자기 저장소가 있다
엣지는 읽은 값을 로컬 Cassandra(127.0.0.1:9042, 키스페이스 PE)에 담습니다.
상위 플랫폼의 Cassandra(pp)와 다른 것입니다.
🔴 이것이 있어서 상위와 끊겨도 수집이 멈추지 않습니다. 현장 회선이 죽어도 게이트웨이는 혼자 계속 읽어 담고, 복구되면 밀린 것을 올립니다.
③ 올린다 — 전송 큐가 상태를 말해 준다
올릴 값은 전송 큐에 쌓였다가 나갑니다. 홈 화면의 대기 큐(queue_size)가 그 크기입니다.
| 큐 상태 | 뜻 |
|---|---|
| 0 ~ 수십 | 정상. 쌓이는 즉시 나가고 있습니다 |
| 계속 늘어남 | 외부 전송이 막혔습니다 — 상위 통신을 점검하십시오 |
디스크 큐(queue_disk_size)로 넘침 | 메모리 큐가 찼습니다. 오래 끊겨 있었다는 뜻입니다 |
「값이 안 올라간다」의 첫 확인 지점
대기 큐가 0 에 가까운데 플랫폼에 안 보이면 전송은 되고 있으니 플랫폼 쪽을 보십시오. 큐가 늘고 있으면 엣지에서 위로 가는 길이 막힌 것입니다.
어디가 막혔는지 찾을 때
| 증상 | 보는 순서 |
|---|---|
| 태그 값이 아예 없다 | ① PLC 에 닿나 — Test connection, ping |
| 값이 옛날 것에서 안 바뀐다 | ① 주소가 맞나 · 읽기 오류가 나나 |
| 엣지엔 있는데 플랫폼에 없다 | ③ 대기 큐가 늘고 있나 |
| 며칠 치가 한꺼번에 올라왔다 | ②③ 끊겼다 복구된 것입니다. 정상 동작입니다 |
함께 보기
- 값 하나가 화면까지 가는 길 — 플랫폼까지 포함한 전체 경로
- 드라이버 개요 — 프로토콜을 어떻게 구현했나
- PLC 한 대를 끝까지 연결하기