본문으로 건너뛰기
블로그›2026. 8. 27.

F-NET 무선 수집값을 MySQL에 남기고 Node-RED로 집계하기

F-NET 무선 수집값을 MySQL에 남기고 Node-RED로 집계하기

쌓아 둔 값은 묻는 방법을 알아야 쓸모가 생깁니다. 테이블에 백만 행이 있어도 "지난주 평균이 얼마인가"에 답하지 못하면 그냥 용량입니다.

이 글은 F-NET으로 무선 수집해 MySQL에 저장한 값을 Node-RED에서 조회하고 집계하는 과정입니다.

무선 수집 데이터에는 구멍이 있습니다

먼저 알고 시작하실 것이 있습니다. 무선 구간이 끊긴 동안의 값은 테이블에 없습니다. 데이터베이스 직접 저장은 서버에 닿아야 기록되기 때문입니다.

이게 집계에 어떤 영향을 주는지 예를 들어 보겠습니다.

  • 평균 — 결측이 있어도 대체로 무난합니다.
  • 합계 — 위험합니다. 빠진 구간만큼 실제보다 작게 나옵니다.
  • 가동 시간 — 위험합니다. 통신이 끊긴 것을 설비 정지로 오해할 수 있습니다.

그래서 집계 쿼리를 만드실 때 행 개수를 함께 세어 보시길 권합니다. 기대한 개수보다 적으면 그 구간에 결측이 있다는 뜻입니다.

SELECT COUNT(*) FROM 테이블명 WHERE 시간컬럼 BETWEEN ... AND ...

Step 1. 준비

Node-RED 설치와 F-NET → MySQL 저장이 먼저입니다. Node-RED 팔레트에서 MySQL 노드를 추가해 두십시오.

Step 2. PLC 및 EASY-LINK 확인

F-NET 통신 속도·국번이 양쪽에서 같은지, 저장 테이블 이름이 무엇인지 확인합니다.

Step 3. Node-RED 조회 흐름

inject → MySQL → debug 로 시작합니다. 동작이 확인되면 쿼리를 목적에 맞게 바꿔 가시면 됩니다.

최근 값 확인:

SELECT * FROM 테이블명 ORDER BY id DESC LIMIT 10

시간 구간 집계:

SELECT AVG(값컬럼), MAX(값컬럼), MIN(값컬럼), COUNT(*)
FROM 테이블명 WHERE 시간컬럼 >= NOW() - INTERVAL 1 DAY

집계 쿼리는 테이블이 커질수록 느려집니다. 시간 컬럼에 인덱스가 걸려 있는지 반드시 확인하십시오. 없으면 전체를 훑습니다.

잘 안 될 때 확인할 것

  1. MySQL 노드가 없다 — 팔레트 관리에서 설치합니다.
  2. 접속 오류 — 호스트·포트·계정·DB명과 원격 접속 허용 여부를 확인합니다.
  3. 결과가 비어 있다 — 저장이 실제로 되고 있는지 HeidiSQL로 직접 확인하십시오.
  4. 집계 값이 이상하다 — 결측 구간을 의심하십시오. COUNT(*)를 함께 보면 바로 드러납니다.
  5. 쿼리가 오래 걸린다 — 인덱스와 LIMIT을 확인합니다.
  6. 시간이 안 맞는다 — 서버 시간대 설정을 확인합니다.

자주 묻는 질문

결측을 줄이려면? 무선 구간을 안정화하는 것이 우선입니다. 그래도 부족하면 현장에 저장 기능이 있는 EASY-LOGGER 구성을 검토하십시오.

C-NET 버전도 있습니까? C-NET MySQL Node-RED 조회에 정리해 두었습니다.

집계 결과를 정기적으로 받고 싶습니다. Node-RED에서 주기 트리거로 쿼리를 돌리고 메일로 보내는 흐름을 만드시면 됩니다.


도입을 검토하신다면

현장 조건에 맞는 모델 선정이나 프로토콜 적용 가능 여부가 궁금하시면 문의해 주세요. 사용 중인 PLC 기종과 수집하려는 데이터만 알려주시면 구성안을 잡아 드립니다.

관련 글

← 목록으로 돌아가기