Modbus RTU 대 Modbus TCP/IP

Modbus RTU와 Modbus TCP/IP의 본질은 Modbus 프로토콜이며, 모두 Modbus 레지스터 주소로 데이터를 교환합니다. 하지만 그 둘의 차이점은 무엇일까요? 오늘은 다음과 같은 측면에서 논의해 보겠습니다.

 

1. 개념

 

Modbus 는 표준 산업용 제어 데이터 교환 프로토콜로, RTU, ASCII 및 TCP/IP에서 프로토콜 데이터의 상호 전송에 사용할 수 있습니다. RTU (Remote Terminal Unit)는 RS-485와 같은 직렬 통신을 통해 바이너리 형태로 데이터를 직접 전송하여 높은 효율성과 낮은 오버헤드를 제공합니다. ASCII 모드는 각 데이터 바이트를 두 개의 ASCII 문자로 변환하여 사람이 읽기 쉽도록 하지만 효율성이 떨어집니다. 반면 Modbus TCP는 TCP/IP 네트워크를 통해 전송하기 위해 Modbus 프로토콜 데이터를 TCP 패킷에 포함합니다.

 

2. 통신 모드

 

이더넷과 해당 통신 모드는 Modbus TCP입니다. 유선 RS-232, RS-422, RS-485, 광섬유, 무선 등 다양한 매체를 활용할 수 있는 비동기 직렬 전송은 Modbus RTU 또는 Modbus ASCII에 해당합니다. Modicon의 독점 시스템에서 사용되는 고속 토큰 전달 네트워크는 Modbus PLUS에 해당합니다.

 

3. 프로토콜 캡슐화

 

Modbus RTU 프로토콜과 비교했을 때, Modbus TCP 프로토콜은 RTU 프로토콜에 MBAP (Modbus Application Protocol) 헤더를 추가합니다. TCP는 신뢰할 수 있는 연결 서비스를 기반으로 하기 때문에 RTU에서 오류 감지를 위해 사용되는 CRC 검사 코드는 Modbus TCP에서 더 이상 필요하지 않습니다. 따라서 Modbus TCP에는 CRC 검사 코드가 포함되지 않습니다.

 

이 차이점을 설명하는 일반적인 방법은 Modbus TCP가 기본적으로 Modbus RTU 프로토콜이며, 앞에 MBAP 헤더가 추가되어 있고 끝부분에서 두 개의 CRC 검사 코드 바이트가 제거되었다는 것입니다 .

 

4. 커뮤니케이션에서의 역할

 

Modbus RTU 프로토콜은 RS-232 및 RS-485와 같은 직렬 통신 채널을 통해 컨트롤러 간 및 컨트롤러와 다른 장치 간의 통신을 용이하게 합니다. 단거리에서 중거리에 걸쳐 안정적이고 효율적인 통신이 필요한 산업 환경에서 널리 사용됩니다.

 

반면, Modbus TCP 프로토콜은 이더넷 네트워크를 통한 통신에 사용됩니다. Modbus 프로토콜 데이터를 TCP/IP 패킷 내에 캡슐화하여 장치가 로컬 영역 네트워크(LAN) 또는 광역 네트워크(WAN)를 통해 통신할 수 있도록 합니다. Modbus TCP는 애플리케이션 계층에서 작동하여 TCP/IP 스택의 안정적인 전송 기능을 활용 합니다 .

 

5. 전송

 

Modbus RTU 프로토콜 의 적용은 전송 거리가 짧고 속도가 느리기 때문에 제한적입니다. 일반적으로 Modbus RTU는 통신 거리가 수백 미터를 넘지 않고 속도 요구 사항이 적당하며 일반적인 보드 속도가 9600~115200bps인 환경에서 사용됩니다. 이러한 제한에도 불구하고 Modbus RTU는 산업용 제어 시스템에서 단순성, 신뢰성 및 비용 효율성으로 인해 여전히 인기가 있습니다.

 

반면, Modbus TCP 프로토콜은 긴 전송 거리와 높은 전송 속도에 대한 기능 때문에 널리 사용됩니다. 이더넷 및 TCP/IP 프로토콜을 활용하는 Modbus TCP는 라우터와 스위치를 사용할 때 효과적으로 무제한으로 훨씬 더 먼 거리에서 데이터를 전송할 수 있으며, 종종 초당 수백 메가비트(Mbps)에 도달하는 훨씬 더 빠른 속도로 데이터를 전송할 수 있습니다. 이러한 장점으로 인해 Modbus TCP는 고대역폭과 광범위한 통신 네트워크가 필요한 애플리케이션에 적합합니다.

 

6. 응용 프로그램

 

Modbus RTU 프로토콜은 주로 전기 자동화 및 프로세스 제어에 사용되며 일반적으로 RS-232 또는 RS-485 통신 인터페이스를 채택합니다. 이러한 인터페이스는 산업 환경에서 널리 사용되어 신뢰할 수 있는 단거리 통신을 제공합니다.

 

Modbus TCP 프로토콜은 주로 인터넷이나 인트라넷에서 사용됩니다. 이더넷과 TCP/IP 네트워크를 활용하여 로컬 에어리어 네트워크(LAN) 또는 광역 네트워크(WAN)를 통한 장치 간 통신을 용이하게 하므로 고대역폭과 장거리 통신이 필요한 애플리케이션에 적합합니다.

 

참고하기 좋은 문서

https://www.wevolver.com/article/modbus-rtu-vs-tcp

 

Modbus RTU vs TCP: A Comprehensive Comparison of Industrial Protocols

Modbus protocols are essential components in the realm of industrial automation and control systems. Designed in 1979 by Modicon (now Schneider Electric), Modbus was developed as a way to enable communication between Programmable Logic Controllers (PLCs) a

www.wevolver.com

 

728x90

'일기 > 개발일기' 카테고리의 다른 글

SNMP Trap과 Polling  (1) 2024.10.25
SNMP 개념과 사용시기 통신 방식  (0) 2024.10.24
[241021] FMS와 스위치  (1) 2024.10.21
[241016] Modbus RTU 통신 프로토콜 - 해석방법  (1) 2024.10.16
[241015] 모드버스 RTU와 TCP  (0) 2024.10.15

FMS (Client) ↔ 스위치(Server)

  1. FMS는 지금까지 메뉴얼을 보고 설치했으니, 리눅스만 실행하면 자동으로 FMS가 실행됨
  2. UR-2000 스위치을 메뉴얼 보고 공부함. 모드버스 RTU와 모드버스 TCP 프로토콜 공부.
    1. 다른 노트북으로 LAN을 연결해서 IP세팅함
    2. 메인 노트북으로 WAN 연결하여 사용
  3. 온습도계 Device ID와 기타설정을 한 후, 데이터 케이블로 UR-2000과 연결
    1. RS486 MODBUS RTU 통신
    2. DTools를 통해 RTU와 TCP 패킷의 구조를 공부함
  4. FMS서버에서 설비추가를 통해 IP와 Port, Device ID를 설정하면 데이터 통신 시작
    1. 온습도계 2개 추가 연결
    2. DI 및 TCP통신하는 도어센서와 연기센서 추가 연결

 

Modbus RTU와 TCP 공부하는데 많은 도움이 된 게시물

https://caniro.tistory.com/5

 

Modbus Protocol

Modbus Protocol Modicon이라는 회사에서 만든 직렬 통신 프로토콜이다. 공장 자동화에 사용되는 PLC(Programmable Logic Controller)의 통신을 위해 만들어졌다. 용어 프로토콜 사람이 소통하려면 소통하고자

caniro.tistory.com

 

728x90
Req:RTU Equip[(EHT-RC)] Send 8 bytes[01 03 00 01 00 02 95 CB]
Res:RTU Equip[(EHT-RC)] Recv(1.3) 9 bytes[01 03 04 00 FD 01 D5 AB CC]

 

Req에서 01은 디바이스 ID (또는 Slave ID) , 03은 명령(읽기), 00 01은 시작 레지스터 주소(1:온도, 2:습도) , 00 02 개수

Res에서 01은 디바이스 ID, 03은 명령, 04는 뒤에 가져온 바이트 수(4바이트), 00FD 온도, 01 D5 습도 (나머진 CRC)

 

00 FD 01 D5는 총 4바이트로 봅니다. 응답 메시지에서 04는 뒤에 오는 데이터의 바이트 수를 의미합니다.

 

한 개의 16진수 값(예: 00)은 4비트입니다.

따라서 두 자리의 16진수 값(예: 00 또는 FF)은 8비트이며, 이는 1바이트(0~255)에 해당합니다.

따라서 00과 같은 값은 1바이트에 해당하며, 00 FD 01 D5는 총 4바이트가 됩니다.

1바이트는 8비트이고, 32비트는 4바이트입니다.

728x90

'일기 > 개발일기' 카테고리의 다른 글

[241022] Modbus RTU vs Modbus TCP/IP  (1) 2024.10.22
[241021] FMS와 스위치  (1) 2024.10.21
[241015] 모드버스 RTU와 TCP  (0) 2024.10.15
[241014] RS-485 Modbus RTU 통신  (1) 2024.10.14
[241008] Next.js와 nextAuth 자동화 기능  (1) 2024.10.08

RS486 Modbus RTU

  • RS485: RS485는 Recommended Standard 485의 약자로, 산업용 통신 표준입니다. 이 표준은 다중 드롭 네트워크에서 최대 32개의 장치가 하나의 버스에서 통신할 수 있도록 합니다. (N:N 통신)
  • Modbus: Modbus는 산업용 전자 장치 간의 통신을 위한 프로토콜입니다. Modbus는 마스터-슬레이브 구조를 사용하며, 데이터 전송을 위해 다양한 물리적 매체(RS485, RS232, TCP/IP 등)를 지원합니다
  • RTU (Remote Terminal Unit): RTU는 Modbus 프로토콜의 전송 모드 중 하나로, Remote Terminal Unit의 약자입니다. RTU 모드는 이진수 형식으로 데이터를 전송하며, 주로 RS485와 같은 직렬 통신에서 사용.
  • TCP/IP (Transmission Control Protocol/Internet Protocol): TCP/IP는 인터넷과 같은 네트워크에서 데이터를 전송하기 위한 프로토콜 스택입니다. Modbus TCP/IP는 이 프로토콜 스택을 사용하여 이더넷 네트워크를 통해 데이터를 전송합니다.

RTU와 TCP/IP의 차이점

  • 물리적 계층
    • RTU는 RS485 또는 RS232와 같은 직렬 통신
    • TCP/IP는 이더넷 네트워크
  • 데이터 전송 형식
    • RTU는 데이터를 이진 형식으로 전송
    • TCP/IP는 데이터를 ASCII 형식으로 인코딩하여 전송
  • 속도와 유연성
    • RTU는 구현이 더 간단하고 비용이 적음
    • TCP/IP는 기존의 이더넷 네트워크를 사용하기 때문에 더 빠르고 유연
  • 주소 지정
    • RTU는 각 장치에 노드 번호를 할당
    • TCP/IP는 각 장치에 IP 주소를 할당

TCP/IP


패킷 전송 방식: 데이터는 패킷이라는 작은 조각으로 나뉘어 전송되며, 네트워크 경로를 효율적으로 이용합니다. 이 때문에 데이터 충돌이 최소화되고, 각 패킷이 최적의 경로를 선택해 전달될 수 있습니다.

에러 제어: TCP/IP는 데이터 전송 중 발생할 수 있는 오류를 감지하고 수정하는 기능을 내장하고 있어, 데이터 손실이 거의 없습니다.

라우팅 기능: 네트워크 내 여러 경로를 통해 데이터를 전송할 수 있어, 특정 경로에 문제가 생겨도 대체 경로로 데이터를 전송할 수 있습니다. 이는 네트워크 안정성을 높이는 데 크게 기여합니다.

멀티태스킹: 여러 장치가 동시에 통신할 수 있는 능력이 뛰어나며, 대규모 데이터 전송 환경에 최적화되어 있습니다. 예를 들어, 수백 대의 센서가 데이터를 동시에 전송하더라도 네트워크가 효율적으로 처리할 수 있습니다.

확장성: 새로운 장치를 네트워크에 쉽게 추가할 수 있어, 네트워크의 크기를 유연하게 확장할 수 있습니다.

 

RTU

직렬 통신 방식: RTU는 직렬 통신 방식으로 데이터를 전송하는데, 이는 한 번에 하나의 데이터 스트림만 전송할 수 있어, 대규모 데이터 전송에 비효율적입니다.

낮은 처리 능력: 직렬 통신은 TCP/IP에 비해 데이터 전송 속도가 느립니다. 이는 많은 양의 데이터를 빠르게 전송해야 하는 환경에서는 큰 단점이 됩니다.

오류 처리의 한계: RTU는 기본적으로 오류 감지 및 수정 기능이 부족하며, 수동으로 오류를 처리해야 하는 경우가 많아 데이터 신뢰성이 떨어질 수 있습니다.

확장성 부족: 네트워크에 새로운 장치를 추가하는 과정이 복잡하고, 물리적인 배선 변경이 필요할 수 있습니다. 이는 대규모 네트워크에서는 큰 문제가 될 수 있습니다.

이러한 이유들 때문에 TCP/IP가 대규모 데이터 관리와 네트워크 확장성에서 더 유리하며,

RTU는 소규모 단순 통신 환경에 더 적합합니다.

728x90

+ Recent posts