Modbus 배경 지식
Modbus는 장비의 값을 읽고 쓰는 요청·응답(request/response) 방식의 응용 계층 프로토콜입니다. 1979년 Modicon PLC용으로 만들어졌고, 지금은 Modbus Organization이 명세를 공개 관리합니다. PLC, 인버터, 전력계, 센서 게이트웨이처럼 많은 산업 장비가 Modbus를 지원합니다.
Modbus는 단순합니다. 클라이언트가 기능 코드(function code)와 주소, 수량을 보내면 서버가 자신의 데이터 모델을 읽거나 바꾼 뒤 응답합니다. 장비 상태 모델이나 이벤트 보고 같은 상위 개념은 없습니다. 어떤 주소에 어떤 값이 있는지, 얼마나 자주 읽을지는 장비 매뉴얼과 애플리케이션이 정합니다.
클라이언트와 서버
섹션 제목: “클라이언트와 서버”Modbus 통신에는 두 역할이 있습니다.
| 역할 | 하는 일 | 직렬 명세의 옛 이름 |
|---|---|---|
| 클라이언트(client) | 요청을 보내고 응답을 기다립니다. 보통 HMI, SCADA, PC 애플리케이션입니다. | 마스터(master) |
| 서버(server) | 요청을 받아 데이터 모델을 처리하고 응답합니다. 보통 PLC나 계측기입니다. | 슬레이브(slave) |
통신은 항상 클라이언트가 시작합니다. 서버는 요청 없이 먼저 데이터를 보내지 않습니다.
클라이언트 서버 | 요청: 기능 코드 03, 주소 0, 수량 1 | | ------------------------------------------> | 보유 레지스터 0을 읽음 | | | 응답: 기능 코드 03, 바이트 수 2, 값 0x002A | | <------------------------------------------ |표준 문서
섹션 제목: “표준 문서”Modbus 명세는 응용 프로토콜과 전송 방식별 문서로 나뉩니다. 이 문서의 배경 지식 페이지는 다음 공식 명세를 근거로 합니다. 명세 원문은 Modbus Organization 웹사이트에서 받을 수 있습니다.
| 명세 | 다루는 내용 | 관련 페이지 |
|---|---|---|
| MODBUS Application Protocol Specification V1.1b3 | 데이터 모델, PDU, 기능 코드, 예외 응답 | 데이터 모델과 주소, PDU, ADU와 기능 코드 |
| MODBUS Messaging on TCP/IP Implementation Guide V1.0b | MBAP 헤더, 유닛 식별자, TCP 연결 관리 | Modbus TCP |
| MODBUS over Serial Line Specification and Implementation Guide V1.02 | RTU·ASCII 프레임, CRC·LRC, 문자 간격, 패리티, RS-485 | 직렬 회선: RTU와 ASCII |
| MODBUS/TCP Security Protocol Specification | TLS, 인증서, 역할 기반 권한 | Modbus/TCP Security |
이 문서는 명세의 절 번호를 함께 적습니다. 명세 본문은 옮겨 싣지 않으며, 설명과 예시는 PDComm이 작성한 것입니다.
읽는 순서
섹션 제목: “읽는 순서”- 데이터 모델과 주소: 네 가지 데이터 테이블과 0 기반 주소를 익힙니다.
- PDU, ADU와 기능 코드: 요청과 응답의 바이트 구조, 기능 코드, 예외 응답을 익힙니다.
- 사용할 전송 방식을 고릅니다.
- 이더넷: Modbus TCP
- RS-232/RS-485: 직렬 회선: RTU와 ASCII
- 암호화와 인증이 필요하면: Modbus/TCP Security
- PDComm Modbus 지원 기능: PDComm이 지원하는 전송, 기능 코드, 보안과 엔드포인트 동작을 확인합니다.
바로 실행해 보려면 빠른 시작부터 따라 해도 됩니다. 각 튜토리얼은 시작 전에 필요한 배경 지식 페이지를 안내합니다.