Modbus/Modbus TCP
HOME > TECHNOLOGIES > Modbus/Modbus TCP
introduction
Modbus TCP/IP (또한 Modbus-TCP)는 단순히 말해 Ethernet 상에서 실행되는 TCP 인터페이스를 가진 Modbus RTU 프로토콜입니다.
Modbus 메시지 구조는 데이터 전송 매체와는 독립적이며, 데이터를 구성하고 해석하기 위한 규칙을 정의하는 Application protocol 입니다.
TCP/IP
TCP (Transmission Control Protocol)는 전송 제어 프로토콜이고 IP(Internet Protocol )는 인터넷 프로토콜입니다.
이 2개의 프로토콜은 통상 함께 사용되며 인터넷상의 전송 프로토콜로 사용 됩니다.
Modbus 정보가 이 프로토콜을 사용하여 전송 될 때, 데이터는 TCP Layer 로 전달 되며 여기서 추가 정보가 첨부되어 IP Layer에 전달되게 됩니다.
그 후 IP는 데이터를 packet (or datagram) 에 포함시켜 전송하게 됩니다.
TCP는 Connection-Oriented 프로토콜이기 때문에 데이터를 전송하기 전에 Connection을 확립해야 합니다.
따라서, Master (또는 Modbus TCP의 Client)는 Slave (또는 Server)와의 Connection을 확립하고, Server는 Client로부터 Connection 확립을 기다리게 됩니다. 이렇게 Connection이 확립되면 Server는 Client가 Connection을 Close 할 때까지 Client의 Query( Request)에 응답합니다.
Modbus RTU over TCP
간단히 말해서, 이것은 Modbus RTU message 가 TCP / IP로 wrap 되어 전송되는 것을 말하며, serial lines 대신 network를 통해 전송되게 됩니다. Server에는 Slave ID 대신 IP 주소가 사용됩니다.
Modbus TCP
Schneider Automation에서 제공하는 “A Modbus Messaging Implementation Guide”에는 Modbus를 TCP / IP상에서 사용하기 위해 특별히 수정 된 프로토콜에 대한 개요가 나와 있습니다. 공식 Modbus 사양은 www.modbus.org/specs.php 에서 확인할 수 있습니다.
Modbus RTU와 Modbus TCP의 주요 차이점은 다음과 같습니다.
ADU & PDU
위에서 언급 한 Serial 와 Network connections 간의 주요 차이점 외에도 메시지 내용에도 몇 가지 차이점이 있습니다.
즉, Modbus TCP의 PDU (Protocol Data Unit )는 Modbus RTU 메시지의 첫 부분의 Slave ID와 끝 부분의 CRC를 제거한 것으로 구성 됩니다.
MBAP Header
또한, 위의 PDU에 MBAP 헤더 (Modbus Application Header)라고 하는 새로운 7 바이트 헤더가 메시지의 시작 부분에 추가되게 됩니다.
이 헤더는 다음과 같이 구성 됩니다.
- Transaction Identifier : Client가 각 Request마다 고유하게 식별하도록 설정 한 2 바이트. 이 바이트는 응답과 동일한 순서로 수신되지 않을 수
  있기 때문에 서버에 의해 Echo 됩니다.
- Protocol Identifier : Client가 설정 한 2 바이트, 항상 = 00 00
- Length : 뒤에 따라오는 메시지의 바이트 수를 나타내는 2 바이트
- Unit Identifier : Client가 serial line이나 다른 버스에 연결된 Remote slave를 식별하기 위해 설정하는 1 바이트 식별자로 Server에 의해
  Echo 됩니다.