C-NET 수집 데이터를 MySQL에 저장하고 Node-RED로 조회하기

EASY-LINK가 보낸 값은 전용 도구로도 볼 수 있습니다. 다만 보는 것과 쓰는 것은 다릅니다. 값을 조건에 따라 걸러 내거나, 단위를 바꾸거나, 여러 값을 합쳐 계산하려면 별도의 도구가 필요합니다.
Node-RED는 그 자리를 채웁니다. 블록을 선으로 잇는 방식이라 코드를 쓰지 않고도 흐름을 만들 수 있고, 값이 어떻게 흘러가는지 눈으로 확인됩니다.
이 글은 C-NET으로 수집해 MySQL에 저장한 값을 Node-RED에서 꺼내 쓰는 과정입니다.
MQTT 방식과 무엇이 다른가
MQTT는 값이 올 때 흐름이 시작됩니다. 데이터베이스는 반대로 내가 물어봐야 값이 나옵니다.
| MQTT in | 데이터베이스 조회 | |
|---|---|---|
| 흐름 시작 | 값이 발행될 때 | 내가 요청할 때 |
| 얻는 값 | 지금 값 하나 | 과거 구간 전체 |
| 적합한 용도 | 실시간 알림 | 추이·집계·보고서 |
그래서 이 구성은 "지금 어떤가"보다 "그동안 어땠나"에 답할 때 쓰입니다. 일별 평균, 최댓값, 가동 시간 같은 것들입니다.
Step 1. 준비
Node-RED와 MySQL이 준비돼 있어야 합니다. 설치는 Node-RED 설치 방법, 저장 설정은 C-NET → MySQL 저장을 참고하십시오.
Node-RED에서 MySQL을 쓰려면 팔레트에서 MySQL 노드를 추가해야 합니다. 기본 설치에는 들어 있지 않습니다.



Step 2. PLC 및 EASY-LINK 확인


C-NET 통신 속도·국번이 양쪽에서 같은지 확인합니다.


저장 대상 테이블 이름을 정확히 적어 두십시오. 쿼리에 그대로 들어갑니다.
Step 3. Node-RED 플로우 구성

inject → MySQL → debug 순으로 잇습니다.
- inject — 조회를 시작하는 방아쇠입니다. 주기를 지정하면 자동 반복됩니다.
- MySQL — 접속 정보(호스트·포트·계정·DB명)를 입력합니다.
- debug — 결과를 눈으로 확인합니다.
쿼리는 다음과 같은 형태입니다.
SELECT * FROM 테이블명 ORDER BY id DESC LIMIT 10
LIMIT을 크게 잡으면 매번 많은 행을 읽어 옵니다. 최근 값만 보실 거라면 10~50이면 충분하고, 추이 그래프를 그릴 때만 늘리십시오.


배포하면 지정한 주기마다 조회가 돌아갑니다.



잘 안 될 때 확인할 것
- MySQL 노드가 안 보인다 — 팔레트 관리에서 노드를 설치하셔야 합니다.
- 접속 오류 — 호스트·포트·계정·DB명을 확인합니다. 원격 접속이 허용돼 있는지도 보십시오.
- 테이블이 없다는 오류 — 이름 오타이거나 EASY-LINK가 아직 한 행도 넣지 않았습니다.
- 결과가 비어 있다 — 저장이 실제로 되고 있는지 HeidiSQL로 직접 조회해 확인하십시오.
- 점점 느려진다 — 테이블이 커졌는데 시간 컬럼에 인덱스가 없을 가능성이 큽니다.
자주 묻는 질문
실시간으로도 보고 싶습니다. MQTT 발행을 병행하시면 실시간과 이력을 함께 가져갈 수 있습니다.
F-NET 버전도 있습니까? F-NET MySQL Node-RED 조회에 정리해 두었습니다.
보고서를 자동으로 만들고 싶습니다. 조회 결과를 가공해 메일로 보내는 흐름을 만들 수 있습니다. 공장 유틸리티 SCADA 적용사례에 실제 구성을 소개했습니다.
도입을 검토하신다면
현장 조건에 맞는 모델 선정이나 프로토콜 적용 가능 여부가 궁금하시면 문의해 주세요. 사용 중인 PLC 기종과 수집하려는 데이터만 알려주시면 구성안을 잡아 드립니다.
- 제품 라인업 살펴보기 — EASY-LOGGER · EASY-LINK · EASY-RELAY · EASY-TEMP
- 도입 문의
- 기술 블로그 전체 글