hyuko

Modbus TCP 본문

프로토콜

Modbus TCP

hyuko12 2024. 7. 19. 09:11
728x90
반응형

1.  Modbus TCP 프로토콜 형태

1.1 Transaction ID

  - 0 부터 보낼 때 마다 1씩 증가

1.2 Protocol ID

  - 기본적으로는 0x0000으로 고정

1.3 Length

  - unit id + function code + data의 길이

1.4 unit id

  - 기기 번호

1.5 function code

  - 명령어 집합으로 8가지 존재

  - 기기의 메모리에서 값을 가져오거나 쓸 수 있게 하는 서비스

  - 실제로 function code는 1~127사이의 값을 사용하지만 TCP Port에서는 1,2,4,5,6,15,16 을 지원한다.

형태 메모리 이름 function code 디바이스
비트 Coil Read Discrete Inputs 02(0x02) Input, Output
비트 Coil Read Coil 01(0x01) Input, Output
비트 Coil Write Single Coil 05(0x05) Input, Output
비트 Coil Write Multiple Coils 15(0x0F) Input, Output
워드(16비트) Register Read Input Register 04(0x04) ADC, PWM
워드(16비트) Register Read Holding Registers 03(0x03) ADC, PWM
워드(16비트) Register Write Single Register 06(0x06) ADC, PWM
워드(16비트) Register Write Multiple Registers 16(0x10) ADC, PWM

 

1.6 data

  - 데이터 모델의 경우에는 입력과 출력 그리고 비트단위 접근과 워드단위 접근 기준으로 총 4가지로 존재

메모리 데이터모델 접근형태 읽기/쓰기 설명
Coil Discrete Input bit read 상위 장치에서 메모리 읽기 가능
Coil Coils bit read/write 상위 장치에서 메모리 읽고 쓰기가능
Register Input Registers 16bit (워드) read 상위 장치에서 메모리 읽기 가능
Register Holding Registers 16bit (워드) read/write 상위 장치에서 메모리 읽고 쓰기가능

 

- start address[2bytes]: 접근하려는 메모리의 시작번지 2byte로 표현된다, 상위 byte 우선 예를 들면 0x40001번지 접근시 0x40, 0x01이다.

- Length [2bytes]: 시작번지부터 값을 읽거나 쓸 길이를 나타냄

- byte count [1byte]: Request, Response에 따른 Data의 byte수를 나타낸다.

- data [N bytes]: Request, Response에 따른 메모리의 data 값

728x90
반응형

'프로토콜' 카테고리의 다른 글

MODUBS RTU  (0) 2024.07.19
Modbus 프로토콜  (0) 2024.07.19