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

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

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

Modbus TCP를 고르는 이유

LS XGT는 Modbus RTU·TCP·C-NET·F-NET을 지원합니다. 이 중 Modbus TCP는 이더넷 위에서 동작합니다.

시리얼 (C-NET·F-NET·Modbus RTU)Modbus TCP
배선RS-485 포설기존 랜 사용
속도통신 속도에 제약상대적으로 빠름
거리제한적네트워크가 닿는 곳까지
노이즈전력선 근처에서 취약상대적으로 강함
필요한 것국번·통신 속도IP·포트·유닛 ID

랜이 이미 들어와 있는 설비라면 Modbus TCP가 가장 손이 덜 갑니다. 국번과 통신 속도를 맞출 필요 없이 IP만 알면 됩니다.

주의할 점은 유닛 ID입니다. Modbus TCP에도 유닛 ID가 있는데, 시리얼의 국번과 달리 대개 1로 고정해 씁니다. 장비에 따라 다른 값을 요구하기도 하니 문서를 확인하십시오.

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

Step 1. 준비물

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

Step 2. PLC Modbus TCP 설정

XG5000에서 PLC의 IP와 Modbus TCP 서버 설정을 잡습니다. 여기서 지정한 IP를 EASY-LINK에 그대로 넣습니다.

읽어올 영역이 Holding Register인지 Input Register인지 확인하십시오. Input Register는 읽기 전용이라 나중에 쓰기를 붙일 수 없습니다.

Step 3. EASY-LINK 설정

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

수집 채널에는 Modbus TCP를 선택하고 PLC의 IP·포트·유닛 ID, 그리고 시작 주소와 개수를 지정합니다.

Step 4. 발행 확인

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

잘 안 될 때 확인할 것

  1. 연결이 안 된다 — PLC IP로 ping이 가는지 먼저 확인합니다. 여기서 막히면 네트워크 문제입니다.
  2. 연결은 되는데 응답이 없다 — 유닛 ID를 확인하십시오. 대개 1이지만 다른 값을 요구하는 장비도 있습니다.
  3. 값이 한 칸씩 밀린다 — 주소가 0번지 기준인지 1번지 기준인지 확인합니다.
  4. 브로커에 안 붙는다 — 주소·포트·계정, Client ID 중복을 확인합니다.
  5. 값이 이상한 숫자다 — 데이터 타입(WORD/FLOAT/DWORD)을 확인합니다.

자주 묻는 질문

시리얼 방식과 무엇이 낫습니까? 랜이 있으면 Modbus TCP, 없으면 C-NET이나 F-NET입니다.

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


도입을 검토하신다면

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

관련 글

← 목록으로 돌아가기