< 뒤로

Modbus 프로토콜: RTU, ASCII 및 TCP 통신의 기초

1. Modbus란 무엇이며 RS-485와 어떻게 다른가?

Modbus는 제어기와 장치 사이의 데이터 교환에 사용하는 응용 계층 메시징 프로토콜입니다. RS-485와 RS-232는 전기적 인터페이스를 규정합니다. Modbus RTU와 ASCII는 직렬 전송 모드이며, Modbus TCP는 TCP/IP를 통해 Modbus 메시지를 전송합니다. 따라서 RS-485 인터페이스가 있다는 사실만으로 해당 장치가 Modbus를 지원한다고 판단할 수는 없습니다.

유체 제어 시스템에서는 Modbus로 장치 상태를 읽거나 제어 매개변수를 전송할 수 있습니다. 프로토콜 지원 여부, 지원 기능과 레지스터 정의는 해당 제어기 모델의 통신 매뉴얼에서 확인해야 합니다. 인터페이스 지원 여부는 Foreach 제품과 구성별로 확인해야 합니다.

2. Modbus RTU, ASCII, TCP는 어떻게 다른가?

커넥터만 보고 통신 모드를 구분할 수는 없습니다. 직렬 통신에서는 양쪽의 전송 모드, 통신 속도와 문자 프레임 설정이 일치해야 합니다. TCP 통신에서는 네트워크 연결과 장치의 서비스 설정을 확인해야 합니다.

방식메시지 구조확인 항목
Modbus RTU장치 주소 + 기능 코드 + 데이터 + CRC직렬 통신 설정, 장치 주소와 프레임 간 시간 간격
Modbus ASCIILRC와 지정된 시작·종료 문자를 포함하는 ASCII 인코딩 메시지직렬 통신 설정, 인코딩과 LRC
Modbus TCPMBAP 헤더 + 기능 코드 + 데이터; RTU의 CRC는 추가하지 않음IP 주소, 포트, 트랜잭션 식별자와 장치 식별자(Unit Identifier)

3. 직렬 장치 주소와 요청·응답은 어떻게 동작하는가?

Modbus 직렬 통신에서 서버(슬레이브)의 개별 주소는 1~247입니다. 주소 0은 브로드캐스트용이며 248~255는 예약되어 있습니다. 클라이언트(마스터)가 유니캐스트 요청을 보내면 지정된 장치가 응답합니다. 브로드캐스트 쓰기 요청에는 응답을 반환하지 않습니다. 주소 필드가 8비트라고 해서 0~255의 모든 값을 개별 장치 주소로 사용할 수 있는 것은 아닙니다.

이 주소 지정 규칙은 직렬 통신에 적용됩니다. Modbus TCP의 MBAP 헤더에는 장치 식별자(Unit Identifier)가 포함됩니다. 게이트웨이가 메시지를 전달할 때 이 필드의 의미는 장치 구현에 따라 달라집니다. 모든 TCP 연결에 직렬 주소 규칙을 그대로 적용하지 말고 해당 장치의 매뉴얼을 확인해야 합니다.

4. Modbus 기능 코드와 레지스터 맵은 어떻게 함께 확인해야 하는가?

기능 코드는 데이터 종류와 읽기 또는 쓰기 동작을 지정합니다. 데이터 필드에는 해당 주소, 개수 또는 값이 포함됩니다. 두 장치가 모두 Modbus를 지원하더라도 레지스터 맵이 같다는 뜻은 아닙니다.

시운전 전에 매뉴얼의 레지스터 번호와 메시지에 기록되는 시작 주소 사이에 오프셋이 있는지 확인해야 합니다. 데이터 폭, 부호 유무, 스케일 계수, 단위와 여러 레지스터에 걸친 값의 워드 순서도 확인해야 합니다. 속도, 위치, 액체 부피는 서로 다른 물리량이므로 값을 서로 바꾸어 사용할 수 없습니다.

Modbus RTU와 ASCII의 직렬 유니캐스트 요청·응답 흐름, 메시지 필드와 주요 16진수 기능 코드
정상 응답을 반환하는 직렬 유니캐스트 통신과 주요 Modbus 기능 코드. RTU는 CRC, ASCII는 LRC를 사용합니다. 브로드캐스트 요청에는 응답하지 않습니다. TCP 형식은 위 표를 참고하십시오.
기능 코드(16진수)동작
01코일 읽기
02이산 입력 읽기
03홀딩 레지스터 읽기
04입력 레지스터 읽기
05단일 코일 쓰기
06단일 레지스터 쓰기
0F여러 코일 쓰기
10여러 레지스터 쓰기
그림은 정상 응답을 반환하는 직렬 유니캐스트 통신을 나타냅니다. 브로드캐스트 요청에는 응답하지 않습니다. 예외 응답에는 예외 기능 코드와 예외 코드가 사용되며, 이 그림에는 표시하지 않았습니다. TCP는 위 표의 MBAP 헤더 기반 형식을 사용합니다. 장치에서 지원하는 기능은 해당 통신 매뉴얼을 확인해야 합니다.

5. Modbus를 사용하는 유체 제어 장치는 어떻게 시운전하는가?

먼저 배선과 전원을 점검한 다음 장치 매뉴얼에 따라 통신 매개변수를 설정합니다. 이미 알고 있는 상태 값을 읽는 것부터 시작합니다. 응답의 장치 주소, 기능 코드와 데이터 의미를 확인한 뒤 허용된 매개변수 쓰기와 모션 명령을 시험합니다.

통신 성공, 명령 수락, 동작 완료와 실제 토출량의 적합 여부를 각각 검증해야 합니다. 쓰기 응답을 받았다고 해서 펌프 동작이 완료된 것은 아닙니다. 타임아웃이 발생하면 토출 명령을 다시 보내기 전에 장치 상태를 확인하여 같은 양이 두 번 토출되지 않도록 해야 합니다.

요청, 응답, 예외 코드와 타임아웃 발생 조건을 기록합니다. 문제 원인을 찾을 때는 리미트 신호, 원점 복귀, 밸브 상태와 동작 타이밍을 함께 점검합니다. 정확한 명령, 주소와 카운트 단위는 해당 장치의 통신 매뉴얼을 기준으로 확인합니다.

참고 자료

통신 설정과 동작 요구사항을 함께 확인하십시오

제어기 모델, 통신 매뉴얼, 레지스터 맵, 배선도와 필요한 동작 순서를 제공해 주십시오. 장치를 통합하기 전에 지원 인터페이스와 명령 단위를 확인해야 합니다.