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

LS PLC C-NET으로 수집한 데이터를 MQTT로 발행하기

LS PLC C-NET으로 수집한 데이터를 MQTT로 발행하기

LS XGT 시리즈 PLC는 Modbus RTU·TCP·C-NET·F-NET을 지원하고, EASY-LINK는 이 중 MODBUS RTU·C-NET·F-NET을 지원합니다. 어느 것을 고르느냐에 따라 배선과 설정 난이도가 꽤 달라집니다.

이 글은 C-NET으로 수집한 값을 MQTT로 내보내는 구성입니다.

C-NET을 고르는 이유

LS XGT 시리즈에서 C-NET은 CPU에 내장된 시리얼 통신입니다. 통신 모듈을 따로 사거나 슬롯을 비워 둘 필요가 없어, 이미 설치돼 돌아가는 설비에 뒤늦게 데이터 수집을 붙일 때 부담이 가장 적습니다.

대신 시리얼이라 속도와 거리에 제약이 있고, 전력선 근처를 지나가면 노이즈를 탑니다. 통신선은 인버터·마그넷과 최대한 떨어뜨려 포설하시고, 거리가 길면 종단 저항을 확인하십시오.

MQTT로 보내면 무엇이 달라지나

같은 데이터를 MySQL이나 API로 보낼 수도 있습니다. 성격이 이렇게 다릅니다.

MQTTMySQL 직접 저장HTTP API
전달 속도즉시조회해야 확인요청할 때만
받는 곳 여러 개쉬움어려움어려움
이력 보관별도 구성기본 제공서버가 결정
방화벽아웃바운드만DB 포트 개방아웃바운드만

여러 곳이 같은 값을 동시에 봐야 한다면 MQTT가 맞습니다. 대시보드·알림·저장을 각각 구독으로 붙일 수 있고, 수신처가 늘어도 PLC 쪽 부하는 그대로입니다. 값을 쌓아 두고 나중에 분석하는 것이 목적이라면 MySQL 저장 쪽이 간단합니다.

Step 1. 준비물 — 브로커와 확인 도구

MQTT는 브로커를 거쳐 주고받는 구조라 반드시 브로커가 하나 있어야 합니다.

그리고 값이 실제로 올라오는지 눈으로 볼 도구가 필요합니다. MQTT Explorer를 설치해 두시면 설정이 맞는지 바로 확인됩니다. 이 도구 없이 진행하면 안 될 때 어디가 문제인지 짐작만 하게 됩니다.

Step 2. PLC 연결 및 파라미터 설정

LS PLC와 EASY-LINK를 RS-485 케이블로 연결합니다.

LS PLC 전용 툴인 XG5000으로 기본 네트워크 파라미터를 수정합니다. 예제 기준 설정은 다음과 같습니다.

항목설정비고
통신 속도9600자유롭게 정하되 EASY-LINK와 같게
국번1자유롭게 정하되 EASY-LINK와 같게
채널채널2RS-232는 채널1, RS-485는 채널2
동작 모드XGT 서버이 값이어야 외부에서 읽을 수 있음

통신 속도와 국번은 PLC와 EASY-LINK 양쪽이 같아야 합니다. 하나만 달라도 무응답이고 오류 메시지가 없어, 현장에서 원인을 찾는 데 가장 오래 걸리는 지점입니다. 설정을 종이에 적어 두고 양쪽에 같은 값을 넣으십시오.

Step 3. EASY-LINK 설정

EASY-LINK가 아직 네트워크에 붙어 있지 않다면 초기 WiFi 설정을 먼저 진행하십시오. 설정 화면 사용법은 EASYLINK 웹 페이지 설정 방법에 정리해 두었습니다.

통신 프로토콜에서 MQTT를 선택하고 브로커 주소와 발행 토픽을 입력합니다.

수집 채널에는 C-NET을 선택하고, PLC에 설정한 것과 같은 통신 속도·국번을 넣습니다. 그다음 읽어올 디바이스의 시작 주소와 개수를 지정합니다.

필요한 범위만 읽으십시오. 넓게 잡으면 한 주기가 길어지고 정작 중요한 값이 늦게 올라옵니다.

데이터 타입은 PLC가 실제로 담고 있는 형식과 맞춰야 합니다. FLOAT로 저장된 값을 WORD로 읽으면 앞쪽 절반만 읽어 정수로 해석하므로, 오류 없이 엉뚱한 숫자가 나옵니다.

Step 4. 발행 확인

MQTT Explorer로 브로커에 접속해 설정한 토픽을 확인합니다. 값이 주기적으로 갱신되면 정상입니다.

여기까지 확인되면 이 값을 대시보드로 보내든, 데이터베이스에 넣든, 알림을 걸든 원하는 대로 붙이실 수 있습니다.

잘 안 될 때 확인할 것

  1. 아무 값도 안 온다 — 통신 속도·국번이 양쪽에서 같은지 먼저 봅니다. 그다음 RS-485 극성(+/−)이 바뀌지 않았는지 확인합니다.
  2. 채널을 잘못 잡았다 — RS-232로 연결했으면 채널1, RS-485면 채널2입니다. 케이블과 설정이 어긋나면 통신이 열리지 않습니다.
  3. 동작 모드가 XGT 서버인지 — 이 값이 아니면 EASY-LINK가 읽을 수 없습니다.
  4. 브로커에 안 붙는다 — 주소·포트·계정을 확인합니다. 같은 클라이언트 ID를 쓰는 장비가 둘이면 서로를 밀어냅니다.
  5. 토픽에 아무것도 안 뜬다 — MQTT 토픽은 대소문자를 구분합니다. 발행 측과 구독 측 문자열이 정확히 같아야 합니다.
  6. 값이 이상한 숫자다 — 데이터 타입(WORD/FLOAT/DWORD)이 PLC 실제 저장 형식과 맞는지 확인합니다.
  7. 간헐적으로 끊긴다 — 통신선 경로에 인버터나 대형 부하가 있는지, 종단 저항이 빠지지 않았는지 확인합니다.

자주 묻는 질문

PLC 프로그램을 고쳐야 합니까? 읽기만 한다면 고치지 않습니다. 통신 파라미터만 설정합니다.

같은 라인에 PLC를 여러 대 붙일 수 있습니까? 국번을 다르게 주면 가능합니다. 다만 순차적으로 읽으므로 대수가 늘면 한 바퀴 도는 시간도 늘어납니다.

C-NET 대신 F-NET을 쓰면 뭐가 다릅니까? F-NET은 별도 통신 모듈이 필요한 대신 구성이 더 유연합니다. F-NET으로 MQTT 발행하기에서 다뤘습니다.


도입을 검토하신다면

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

관련 글

← 목록으로 돌아가기