나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2026-02-01 17:27:29

Modbus

1. 개요2. 모드 버스3. Modbus RTU
3.1. Function 코드
3.1.1. Function 코드 예시3.1.2. 테스트 베드
4. 관련 문서

1. 개요

모드^버스(Modbus) 모드^버스 「001」 『정보·통신』 공장 기반 제품들 사이에 정보를 교환하기 위하여 1978년에 개발된 통신 규약. 데이터 교환 및 피엘시(PLC) 시스템들 사이의 통신 정보를 위한 표준이다. (우리말샘)
지금은 저렴한 마이크로컨트롤러(MCU)끼리에서도 구동가능하다.

2. 모드 버스

기원: Modicon (1979)
현재 관리: Modbus Organization
라이선스: ❌ 없음
로열티: ❌ 없음
명시적 선언: “royalty-free, open protocol”
모드버스(Modbus)는 이처럼 의도적으로 개방되고 누구나 구현 가능하도록 개발되었다. 말이 “의도적으로 풀어놓은 산업 규칙”이지 AT 명령어처럼 사실상 표준이다. 간단하게는 8비트 MCUUART통신으로 RS-485선만 깔아주면 TCP/IP에 접근해서 인터넷도 가능하다.

3. Modbus RTU

Modbus RTU 프로토콜 예시
[ Slave ID ][ Function 코드 ] (Byte Count) [ Data ][ CRC ][1]

TCP/IP에 접근하기 위해서는 Modbus RTU를 Modbus TCP와 호환시켜야한다.[2]
따라서 Modbus RTU와 Modbus TCP는 동일한 Modbus 응용 계층을 공유하며, 전송 계층이 다른 두 구현으로 이해해볼수있다.

3.1. Function 코드

범위 의미
0x01 ~ 0x7F 정상 Function Code
0x80 ~ 0xFF 예외 응답 (Error)
0x00 미정의 / 사용 안 함

3.1.1. Function 코드 예시

쓰기 명령 (예: 0x06), Byte Count 필요 없음
[ Slave ID ] [ Function Code ] [ Addr Hi ] [ Addr Lo ] [ Data Hi ] [ Data Lo ] [ CRC ]

예외 응답(Exception Response)
[ Slave ID ] [ Function Code | 0x80 ] [ Exception Code ] [ CRC ]

3.1.2. 테스트 베드

테스트^베드(test bed) 「002」 『정보·통신』 시스템 컴포넌트나 시스템을 테스트하기 위하여 필요한 시뮬레이터, 인스트루먼테이션(instrumentation) 도구들, 다른 지원 소프트웨어와 하드웨어 따위를 가진 테스트 환경.(우리말샘)
예전에는 고가의 장비들이 이를 수행했었다.

4. 관련 문서


[1] \[고정 프레임\] , (Function Code별 가변 프레임)[2] 먼저 Modbus TCP 프레임 구조로 변환해야 하는데 이를 재구성하고 게이트웨이도 필요하다.