본문 바로가기
돈버는정보 돈버는정보

Modbus RTU·Modbus TCP 차이|RS-485와 Ethernet 통신 방식 해석

읽는 시간 약 11분

산업용 PLC, 인버터, 온도조절기, 센서 등의 통신 사양을 보면 Modbus RTU, Modbus TCP라는 표현을 자주 볼 수 있습니다.

둘 다 Modbus 프로토콜을 사용하지만 데이터를 전달하는 통신망과 메시지 구조에 차이가 있습니다.

가장 간단하게 보면

Modbus RTU = 주로 RS-485 같은 시리얼 통신에서 사용

Modbus TCP = Ethernet과 TCP/IP 네트워크에서 사용

으로 이해할 수 있습니다.

Modbus란?

Modbus는 산업용 장비 사이에서 데이터를 주고받기 위해 만들어진 통신 프로토콜입니다.

PLC와 인버터, 센서, HMI, 계측기 등 서로 다른 장비 사이에서

상태값 읽기
센서 데이터 확인
레지스터 읽기
설정값 쓰기
장비 제어

등에 널리 사용됩니다.

Modbus에서는 Function Code를 이용해 어떤 데이터를 읽거나 쓸 것인지 지정합니다.

예를 들어

01 = Read Coils

03 = Read Holding Registers

04 = Read Input Registers

06 = Write Single Register

같은 방식입니다.

Modbus RTU·TCP 기본 차이

구분Modbus RTUModbus TCP
대표 통신망RS-485·RS-232Ethernet
전송방식SerialTCP/IP
장비 식별Slave/Server AddressIP Address + Unit ID
오류검사CRC-16TCP/IP 계층 사용
대표 포트없음TCP 502
배선2선·4선 등Ethernet 케이블
대표 환경현장 센서·인버터PLC·SCADA·네트워크 시스템

핵심은 같은 Modbus 데이터를 사용하면서도 어떤 방식으로 전송하느냐가 다르다는 점입니다.

Modbus RTU란?

Modbus RTU는 산업현장에서 오래 사용된 시리얼 통신방식입니다.

대표적으로 RS-485와 함께 사용됩니다.

여러 장비를 하나의 버스에 연결할 수 있기 때문에

PLC
인버터
전력계
온도조절기
산업용 센서

등에서 많이 볼 수 있습니다.

RTU 프레임은 기본적으로

Address + Function Code + Data + CRC

형태로 구성됩니다.

여기서 Address는 어느 장비와 통신할지를 지정하고 CRC는 데이터 전송 중 오류가 발생했는지 확인하는 역할을 합니다.

RTU의 CRC는 무엇일까?

Modbus RTU는 메시지 끝에 **16bit CRC(Cyclic Redundancy Check)**를 추가합니다.

송신장비가 메시지를 이용해 CRC 값을 계산하고 수신장비도 동일하게 계산합니다.

두 결과가 다르면 전송 중 데이터가 손상된 것으로 판단할 수 있습니다.

따라서 RTU 프레임에서는 CRC가 매우 중요한 역할을 합니다.

RTU에서는 통신속도도 맞춰야 한다

RS-485 기반 Modbus RTU에서는 연결된 장비들의 시리얼 설정을 맞춰야 합니다.

대표적으로

Baud Rate

Data Bit

Parity

Stop Bit

을 설정합니다.

예를 들어

9600 / 8 / Even / 1

또는

19200 / 8 / None / 2

와 같은 설정을 사용할 수 있습니다.

통신속도나 패리티가 서로 다르면 장비가 같은 선에 연결되어 있어도 정상적인 통신이 어렵습니다.

t3.5는 무엇일까?

Modbus RTU에서는 메시지의 시작과 끝을 구분하기 위해 문자 사이의 시간 간격을 이용합니다.

특히 프레임과 프레임 사이에는 최소 **3.5 Character Time(t3.5)**의 무통신 구간이 사용됩니다.

즉 Ethernet처럼 패킷 구조만으로 메시지를 구분하는 것이 아니라 시리얼 통신의 시간조건도 중요하다는 특징이 있습니다.

Modbus TCP란?

Modbus TCP는 기존 Modbus 메시지를 Ethernet의 TCP/IP 네트워크에서 사용할 수 있도록 만든 방식입니다.

장비는 Ethernet 케이블을 통해 연결되며 각각 IP 주소를 가질 수 있습니다.

대표적으로

PLC
산업용 PC
SCADA 서버
HMI
Ethernet I/O
게이트웨이

사이의 통신에 사용됩니다.

Modbus TCP에서는 일반적으로 TCP Port 502를 사용합니다.

Modbus TCP에는 CRC가 없을까?

Modbus TCP 메시지에는 RTU 프레임에서 사용하는 별도의 Modbus CRC 필드가 없습니다.

대신 TCP/IP와 Ethernet 계층에서 데이터 전송과 오류검사를 처리합니다.

Modbus TCP 메시지는 앞부분에 MBAP Header가 추가됩니다.

MBAP는

Modbus Application Protocol Header

의 약자로 Transaction Identifier, Protocol Identifier, Length, Unit Identifier 등의 정보를 포함합니다.

그 뒤에 Function Code와 Data가 들어갑니다.

RTU와 TCP는 Function Code가 다를까?

기본적인 Modbus Application Protocol의 Function Code는 동일하게 사용할 수 있습니다.

예를 들어

03 Read Holding Registers

라는 기능은 RTU에서도 사용하고 TCP에서도 사용할 수 있습니다.

즉

무엇을 읽고 쓸 것인가 = Modbus Application Protocol

어떻게 전달할 것인가 = RTU 또는 TCP

라고 구분하면 이해하기 쉽습니다.

RTU 주소와 TCP IP 주소 차이

Modbus RTU에서는 일반적으로 시리얼 버스에 연결된 장비마다 주소를 설정합니다.

예를 들어

PLC → Client

인버터 1 → Address 1

인버터 2 → Address 2

전력계 → Address 3

처럼 구성할 수 있습니다.

반면 Modbus TCP에서는 네트워크 장비마다

192.168.0.10

192.168.0.11

같은 IP 주소를 이용해 장비를 구분합니다.

TCP/IP와 시리얼 Modbus를 연결하는 게이트웨이에서는 Unit Identifier가 시리얼측 장비를 식별하는 데 사용될 수 있습니다.

Modbus TCP가 RTU보다 항상 빠를까?

Ethernet은 RS-485보다 높은 데이터 전송속도를 제공하는 경우가 많기 때문에 일반적으로 더 많은 데이터를 빠르게 처리할 수 있습니다.

하지만 실제 Modbus 통신속도는

장비 처리속도
요청 주기
레지스터 개수
네트워크 상태
장비 응답시간

등에도 영향을 받습니다.

따라서 Ethernet을 사용한다고 해서 실제 제어응답이 무조건 빠르다고 단순하게 판단할 수는 없습니다.

Modbus RTU와 TCP를 서로 연결할 수 있을까?

가능합니다.

산업현장에서는 Modbus TCP ↔ Modbus RTU Gateway를 많이 사용합니다.

예를 들어

SCADA → Ethernet → Modbus TCP/RTU Gateway → RS-485 → 인버터

형태로 구성할 수 있습니다.

이렇게 하면 기존 RS-485 장비를 교체하지 않고도 Ethernet 기반 시스템과 연결할 수 있습니다.

실제 사양은 어떻게 읽을까?

장비 사양에

Protocol: Modbus RTU

Interface: RS-485

Baud Rate: 9600~115200bps

라고 적혀 있다면 RS-485 시리얼 통신으로 Modbus RTU를 사용하는 장비라는 의미입니다.

반대로

Protocol: Modbus TCP

Interface: Ethernet 10/100BASE-T

Port: 502

라고 적혀 있다면 Ethernet TCP/IP 기반으로 Modbus 통신을 사용하는 장비입니다.

여기서 중요한 점은 RS-485와 Modbus RTU가 같은 뜻은 아니라는 것입니다.

RS-485는 전기적 통신 인터페이스이고 Modbus RTU는 그 위에서 사용하는 프로토콜입니다.

정리

Modbus RTU와 Modbus TCP는 같은 Modbus Application Protocol을 기반으로 하지만 데이터를 전달하는 방식이 다릅니다.

Modbus RTU = 주로 RS-485 시리얼 통신

Modbus TCP = Ethernet·TCP/IP 통신

RTU는

Address + Function + Data + CRC

구조를 사용하고,

TCP는

MBAP Header + Function + Data

구조를 사용합니다.

따라서 장비 사양을 확인할 때는 단순히 Modbus 지원만 보지 말고

RTU·TCP 구분 → RS-485·Ethernet 인터페이스 → 주소·IP 설정 → Baud Rate 또는 TCP Port → Function Code

순서로 확인하는 것이 중요합니다.

참고자료

  • Modbus Organization – MODBUS Application Protocol Specification V1.1b3: Modbus가 응용계층의 Client/Server 메시징 프로토콜이며 Function Code를 이용해 요청·응답을 처리하는 구조를 설명합니다. Modbus Organization
  • Modbus Organization – MODBUS over Serial Line Specification and Implementation Guide V1.02: Modbus RTU의 프레임 구조, CRC-16, 시리얼 설정 및 t3.5 프레임 간격을 규정합니다. Modbus Organization
  • Modbus Organization – MODBUS Messaging on TCP/IP Implementation Guide V1.0b: Modbus TCP의 Client/Server 구조, MBAP Header와 TCP/IP 통신방식을 설명합니다. Modbus Organization
  • Modbus Organization – Modbus Specifications: Modbus TCP 및 신규 시리얼 Modbus 구현에 사용할 공식 규격과 구현 가이드를 제공합니다. Modbus Organization
moneytoday
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.