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

LS PLC를 Modbus RTU로 수집해 MQTT로 발행하기

LS PLC를 Modbus RTU로 수집해 MQTT로 발행하기

Modbus RTU를 고르는 이유

LS XGT는 여러 프로토콜을 지원하지만, Modbus RTU는 그중 가장 널리 쓰이는 산업 표준입니다.

C-NET·F-NET은 LS 전용이라 LS PLC끼리는 편하지만, 다른 회사 장비가 섞이면 각각 다른 방식을 써야 합니다. Modbus RTU는 PLC·인버터·전력량계·유량계·온도조절기가 모두 같은 규칙을 쓰므로, 한 라인에 여러 제조사 장비를 섞어 물릴 수 있습니다.

C-NET · F-NETModbus RTU
지원 장비LS 전용제조사 무관
다른 장비와 혼재어려움가능
주소 체계LS 방식Modbus 표준
설정 항목국번·속도국번·속도·펑션 코드

펑션 코드를 먼저 확인하십시오

Modbus에서는 어느 영역을 읽느냐가 펑션 코드로 정해집니다.

펑션대상쓰기
01 · 05Coil (접점 출력)가능
02Discrete Input불가
03 · 06Holding Register가능
04Input Register불가

나중에 원격 제어를 붙일 생각이라면 읽기 전용 영역(02·04)에 값을 두지 마십시오. PLC 프로그램 설계 단계에서 Holding Register로 잡아 두셔야 합니다.

이 글은 Modbus RTU로 수집한 값을 MQTT로 발행하는 구성입니다.

Step 1. 준비물

브로커가 하나 필요합니다. HiveMQ나 윈도우 Mosquitto를 준비하시고, 확인용 MQTT Explorer도 설치해 두십시오.

Step 2. PLC 연결 및 Modbus 설정

LS PLC와 EASY-LINK를 RS-485로 연결하고 XG5000에서 Modbus RTU 설정을 잡습니다.

항목설정
통신 속도EASY-LINK와 동일
국번같은 라인의 다른 장비와 겹치지 않게
데이터 영역Holding Register 권장

같은 RS-485 라인에 여러 장비를 붙일 때 국번이 겹치면 두 장비가 동시에 응답해 통신이 깨집니다. 장비를 추가할 때 가장 먼저 확인할 항목입니다.

Step 3. EASY-LINK 설정

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

수집 채널은 Modbus RTU, 통신 속도·국번을 PLC와 맞추고 펑션 코드와 시작 주소·개수를 지정합니다.

Step 4. 발행 확인

MQTT Explorer로 토픽을 확인합니다.

잘 안 될 때 확인할 것

  1. 응답이 없다 — 국번·통신 속도·패리티·스톱비트 네 가지가 모두 일치해야 합니다. 하나만 달라도 무응답입니다.
  2. 값이 한 칸씩 밀린다 — 주소가 0번지 기준인지 1번지 기준인지 확인합니다.
  3. 여러 장비를 붙였더니 불안정하다 — 국번 중복이나 종단 저항 누락을 확인하십시오.
  4. 읽기는 되는데 나중에 쓰기가 안 된다 — 읽기 전용 영역(Input Register 등)에 값이 있습니다.
  5. 낮에만 끊긴다 — 인버터 등 대형 부하가 도는 시간대라면 노이즈 문제일 수 있습니다.

자주 묻는 질문

LS 전용 프로토콜과 무엇이 낫습니까? LS PLC만 있다면 C-NET이 간단합니다. 다른 제조사 장비가 섞여 있다면 Modbus RTU가 유리합니다.

이더넷으로도 됩니까? Modbus TCP를 참고하십시오.

저장까지 하려면? MySQL 저장을 참고하십시오.


도입을 검토하신다면

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

관련 글

← 목록으로 돌아가기