모드버스 TCP/IP 통신
본문 바로가기
통신

모드버스 TCP/IP 통신

by 124578 2020. 8. 31.

1. 정의

 - 모드버스는 크게 세 종류가 있는데, 모드버스 시리얼(Modbus Serial), 모드버스 플러스(Modbus Plus) 그리고 모드버스 TCP/IP(Modbus TCP/IP)이다. 오늘날 이더넷 상에서 운용되는 TCP/IP를 이용한 모드버스의 진화가 모드버스 TCP/IP라고 할 수 있다. TCP/IP가 개방된 표준이기 때문에 모드버스 TCP/IP는 진정한 필드버스의 개방된 표준이라고 할 수 있다. 모드버스 TCP/IP는 디바이스 사이의 정보 교환, 모니터링, 분산형 I/O를 관리하기 위하여 광범위하게 사용된다.

-출처: Hello T 산업경제

 

2. 프로토콜 프레임 구조

 

Modebus TCP 프레임 구조

    1) Transaction ID (byte0~1)

        쿼리 및 응답에 대한 작업의 순서 번호를 나타내며 마스터에 의해 설정된다.

    

    2) Protocol ID (byte2~3)

        프로토콜의 ID를 나타내며 0x0000으로 고정값이다.

 

    3) Length(byte4~5)

       Length 바이티 이후 부터 해당프레임의 마지막 길이까지를 나타낸다.

    

    4) Unit ID(byte 6)

      Unit ID를 나타낸다.

    

    5) FC(byte 7)

      Mode Bus TCP 함수 코드를 나타낸다.

 

     01 READ COIL STATUS : 비트단위 출력포트 상태 읽기
     02 READ INPUT STATUS :  비트단위 입력포트 상태 읽기
     03 READ HOLDING REGISTERS : Read the binary contents of holding registers in the slave.
     04 READ INPUT REGISTERS :  입력 레지스터 읽기 요청
     05 WRITE SINGLE COIL :  Writes a single coil to either ON or OFF
     06 WRITE SINGLE REGISTER : Writes a value into a single holding register.
     15 WRITE MULTIPLE COILS :  Writes each coil in a sequence of coils to either ON or OFF.
     16 WRITE MULTIPLE REGISTERS:  Writes values into a sequence of holding registers

   

    6) Data(byte 8)

      함수코드에 따른 데이터를 나타낸다.

 

 

3. ModeBus RTU(Remote Terminal Unit) 

 - ModeBus RTU는 시리얼 통신 규격상의 마스터 슬레이브 통신 프로토콜 이라면, ModeBus TCP/IP는 Modbus RTU message 가 TCP / IP로 wrap 되어 전송되는 것을 말하며, serial lines 대신 network를 통해 전송되게 됩니다. Server에는 Slave ID 대신 IP 주소가 사용됩니다.

 

Modebus Tcp/IP 와 ModeBus RTU 프로토콜 비교

 

 

 

   Modebus RTU 통신과 비교해서 Modebus TCP/IP통신은 앞부분에 7byte MBAP Header가 첨두에 부여되는 형태가 된다. Modebus RTU 통신의 대표적인 하드웨어 프로토콜 방신은 RS485, RS422방식이 있다.

 

    

4. ModeBus Tcp/IP 통신 방식

 통신방식은 아스키 전송방식과 Hex 전송 방식이 있다.

 

 예>

 

Function 01 (01hex) Read Coils

슬레이브의 이산신호 상태를 읽어들인다.

 

요청

 

요청메시지는 슬레이브에서 읽어들일 이산신호의 시작번지와 개수정보를 전달한다.

슬레이브 주소 4번에서 10~22(Coil11 to 23)을 읽어들이는 요청을 하는 메시지 예제이다.

 

Field Name hex ASCII Characters
MBAP Header
Function 01 0 1
Starting Address Hi 00 0 0
Starting Address Lo 0A 0 A
Quantity of Coils Hi 00 0 0
Quantity of Coils Lo 0D 0 D
CRC Check Lo DD LRC (E 4)
CRC Check Hi 98  
Trailer None CR LF
Total Bytes 8 17

 

 

응답

요청메시지의 응답:

Field Name hex ASCII Characters
MBAP Header
Function 01 0 1
Byte Count 02 0 2
Data (Coils 7...10) 0A 0 A
Data (Coils 27...20) 11 1 1
CRC Check Lo B3 LRC (D E)
Error Check Hi 50 None
Trailer None CR LF
Total Bytes 7 15

 

댓글


TOP

TEL. 02.1234.5678 / 경기 성남시 분당구 판교역로