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

MODBUS RTU를 MQTT로 양방향 연동하기: 읽기 전용에서 원격 제어까지

MODBUS RTU를 MQTT로 양방향 연동하기: 읽기 전용에서 원격 제어까지

MODBUS RTU 장비의 값을 서버로 올리는 일은 어렵지 않습니다. 정작 까다로운 쪽은 반대 방향입니다. 값을 보는 것까지는 되는데, 설정 하나를 바꾸려면 결국 현장에 사람이 가야 하는 구성이 많습니다.

새벽에 알람을 받고 차를 몰고 나가 버튼 하나 누르고 돌아오는 일이 반복된다면, 그 구성은 절반만 완성된 것입니다.

EASY-LINK PRO는 MODBUS RTU/TCP를 1초 내 400 Word 속도로 읽고 쓰는 양방향 통신을 지원합니다. 쓰기 명령은 큐 방식으로 처리해 네트워크 지연이나 일시 장애가 있어도 명령이 유실되지 않습니다.

기존 EASY-LINK MB와 PRO 모델은 읽기만 지원했으나, 펌웨어 업데이트로 SubTopic이 추가되어 양방향 통신이 가능해졌습니다. 쓰고 계신 장비가 구형이라면 펌웨어 업데이트를 먼저 진행하십시오.

쓰기를 붙이기 전에 정할 것

원격 쓰기는 편리한 만큼 위험도 함께 들어옵니다. 설정에 들어가기 전에 아래를 먼저 정하시기 바랍니다.

  • 무엇을 쓸 수 있게 할 것인가 — 설정값(설정 온도, 목표 유량)까지만 열고, 기동/정지 같은 동작 명령은 별도 검토하십시오.
  • 범위 제한 — 게이트웨이가 아니라 장비 쪽에서 상하한을 걸어 두는 편이 안전합니다. 통신으로 들어온 값이 곧바로 설비를 움직이지 않게 하십시오.
  • 통신 두절 시 동작 — 명령이 끊기면 마지막 값을 유지할지, 안전 상태로 돌아갈지 미리 정해야 합니다.
  • 누가 쓸 수 있는가 — 브로커에 계정을 걸고, 쓰기 토픽은 권한을 분리하십시오.

Step 1. MQTT 토픽 설정

EASY-LINK MQTT 프로토콜 및 토픽 설정 화면

통신 프로토콜에서 MQTT를 선택하고 PubTopic과 SubTopic을 입력합니다.

  • PubTopic — 장비에서 읽은 값을 내보내는 토픽
  • SubTopic — 외부에서 받은 값을 장비에 쓰는 토픽

두 토픽을 반드시 다르게 두십시오. 같게 두면 발행한 값을 스스로 구독해 다시 쓰는 순환이 생깁니다. 초기에는 정상처럼 보이다가 값이 미세하게 흔들리기 시작하는데, 원인 추적이 매우 어렵습니다.

토픽 이름은 처음에 규칙을 정해 두시는 편이 좋습니다. 공장/라인/장비/항목 같은 계층 구조로 잡으면 구독 측에서 와일드카드로 묶기 쉽고, 장비가 늘어도 규칙이 무너지지 않습니다.

Step 2. MODBUS RTU 설정

MODBUS RTU 채널 및 프로토콜 설정 화면

RS-485와 RS-232 중 연결할 방식을 선택합니다.

각 채널은 독립적으로 구동합니다. 채널마다 MODBUS RTU / TCP / C-NET / F-NET / MC3C / MC3E 중 서로 다른 프로토콜을 쓸 수 있습니다. 미쓰비시 PLC와 Modbus 센서를 한 대에서 동시에 수집하는 구성이 가능한 이유입니다.

예제에서는 CH1에 MODBUS 펑션 03 (Holding Register) 을 선택했습니다.

펑션 코드를 고르는 기준

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

쓰기가 필요한 값이라면 읽기 전용 영역(02, 04)에 두면 안 됩니다. 설계 단계에서 Holding Register나 Coil로 잡아 두셔야 나중에 원격 제어를 붙일 수 있습니다.

이미 만들어진 장비라면 선택지가 없습니다. 장비 문서에서 해당 값이 어느 영역에 있는지 확인하시고, 읽기 전용이라면 제조사에 문의하셔야 합니다.

채널별 주소 및 데이터 타입 설정

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

MQTT 발행 데이터 확인 화면

MQTT 구독을 통한 원격 쓰기 확인

발행이 정상인 것을 확인한 뒤 쓰기를 시험하십시오. 시험은 설비 동작에 영향이 없는 주소부터 시작하시기 바랍니다.

동작 영상

MODBUS TO MQTT 양방향 읽기·쓰기 시연

MQTT 대시보드 연동 시연

잘 안 될 때 확인할 것

  1. 응답이 없다 — 국번, Baudrate, 패리티, 스톱비트 네 가지가 장비 설정과 모두 일치해야 합니다. 하나만 달라도 무응답입니다. 장비 문서의 기본값과 실제 설정이 다른 경우가 흔하니 장비 화면에서 직접 확인하십시오.
  2. 값이 한 칸씩 밀린다 — 장비 문서의 주소가 1번지 기준인지 0번지 기준인지 확인합니다.
  3. 읽기는 되는데 쓰기가 안 된다 — 해당 주소가 읽기 전용 영역인지 확인합니다.
  4. 소수점 값이 이상하다 — FLOAT는 WORD 두 개를 이어 붙인 형식입니다. 데이터 타입과 워드 순서(Endian) 설정을 확인하십시오.
  5. 여러 장비를 붙였더니 불안정하다 — 같은 RS-485 라인에서 국번이 겹쳤거나, 종단 저항이 빠졌을 수 있습니다.
  6. 낮에만 끊긴다 — 인버터나 대형 부하가 도는 시간대라면 노이즈 문제일 가능성이 큽니다. 통신선 경로와 실드 접지를 확인하십시오.

자주 묻는 질문

RS-485 한 라인에 몇 대까지 붙일 수 있습니까? 규격상으로는 여러 대가 가능하지만, 실제로는 전체 주기가 감당되는 선에서 정하셔야 합니다. 대수가 늘면 한 바퀴 도는 시간이 그만큼 길어집니다.

MODBUS TCP 장비도 됩니까? 됩니다. 채널마다 프로토콜을 따로 고를 수 있으므로 RTU 장비와 TCP 장비를 함께 구성할 수 있습니다.

쓰기 명령이 실제로 반영됐는지 확인하려면? 쓴 값을 다시 읽어 발행하도록 구성하시면 됩니다. 명령과 결과를 함께 보면 원격에서도 반영 여부를 검증할 수 있습니다.


도입을 검토하신다면

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

관련 글

← 목록으로 돌아가기