본문으로 건너뛰기

엣지가 값을 읽고 올리는 원리

게이트웨이가 하는 일은 결국 셋입니다 — 읽고 · 담고 · 올린다. 이 셋이 어떻게 맞물리는지 알면 「값이 안 보인다」를 어디서부터 봐야 할지가 정해집니다.

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
값이 옛날 것에서 안 바뀐다① 주소가 맞나 · 읽기 오류가 나나
엣지엔 있는데 플랫폼에 없다③ 대기 큐가 늘고 있나
며칠 치가 한꺼번에 올라왔다②③ 끊겼다 복구된 것입니다. 정상 동작입니다

함께 보기​