1979년 Modicon 회사(Programmable Logic Controller 또는 PLC의 원래 제조업체)에서 산업용 제어 제품에 사용하기 위해 개발했습니다.
Modbus는 산업용 제어 장치 간에 프로세스 데이터를 교환하기 위해 특별히 설계된 프로토콜입니다.
1. Modbus
Modbus 표준은 물리적 네트워킹에 대한 세부 정보를 지정하지 않으므로 다양한 유형의 물리적 네트워크에 배포될 수 있습니다.
즉, Modbus는 주로 OSI 참조 모델의 레이어 7(소위 "애플리케이션 레이어")에 속하므로 EIA/TIA-232, EIA/TIA-485, 이더넷 및 Modicon에서 개발한 특수 토큰 전달 네트워크인 Modbus Plus를 포함한 모든 하위 수준 통신 프로토콜과 호환됩니다
Modbus 표준은 주로 다양한 Modbus 명령의 의미, 장치 내에 데이터를 배치하는 데 사용되는 주소 지정 체계 및 데이터 형식을 정의합니다. 이러한 Modbus 데이터 프레임은 직렬 형태로 직접 통신하거나, TCP 세그먼트 및 IP 패킷 및 이더넷 프레임에 "래핑"되거나, 한 장치에서 다른 장치로 데이터를 전송하는 데 필요한 모든 형태의 패킷 기반 프로토콜에 포함될 수 있습니다. 따라서 Modbus는 데이터가 전달되는 방식을 신경 쓰지 않고 데이터가 최종 장치에 의미하는 바만 신경 씁니다.
Modbus는 산업용 장치에서 데이터를 읽고 쓰기 위한 표준화된 디지털 코드 세트로 구성됩니다. Modbus 호환 산업용 장치는 이러한 코드를 이해하고 수신 시 적절하게 응답하도록 프로그래밍되었습니다.
가장 간단한 Modbus 코드는 PLC 입력 채널, PLC 출력 채널 또는 PLC 프로그램 내 상태 비트와 같은 장치 메모리의 단일 비트 데이터를 읽고 씁니다.
다른 Modbus 코드는 16비트 워드의 데이터에서 작동하며, 카운터 및 타이머 누적 값, 수학적 명령어에 대한 피연산자, 변환된 아날로그 신호 등을 읽고 쓰는 데 유용합니다.
Modbus의 초기 구현은 EIA/TIA-485를 네트워크 물리 계층으로 사용했으며, 이는 엄격하게 계층 1 프로토콜입니다. 이는 Modbus가 네트워크의 여러 장치와 통신을 협상하기 위해 채널 중재 체계를 지정해야 했음을 의미했습니다. 선택된 중재는 마스터/슬레이브였으며, 여기서 하나의 PLC는 마스터 Modbus 장치로 작동하고 다른 모든 장치는 Modbus 슬레이브로 작동했습니다.
2. Modbus 데이터 프레임
Modbus 통신 표준은 마스터 장치와 네트워크에 연결된 하나 이상의 슬레이브 장치 간에 데이터를 읽기(수신) 및 쓰기(전송)하기 위한 일련의 명령을 정의합니다.
이러한 각 명령은 Modbus 프레임의 기능 코드와 함께 지정된 마스터 및 슬레이브 장치의 내부 레지스터(데이터 소스 및 데이터 대상)의 주소와 함께 숫자 코드로 참조됩니다.
Modbus 표준에는 두 가지 형식이 지정되어 있습니다.
- 아스키
- RTU
이 두 모드의 차이점은 주소, 기능 코드, 데이터 및 오류 검사 비트가 표시되는 방식입니다.
1) Modbus ASCII 모드
Modbus ASCII 모드에서 모든 슬레이브 장치 주소, 기능 코드 및 데이터는 ASCII 문자(각각 7비트) 형태로 표시되며, 직렬 데이터 스트림을 가로채는 모든 터미널 프로그램(예: minicom, Hyperterminal, kermit 등)에서 직접 읽을 수 있습니다.
이를 통해 문제 해결이 더 쉬워집니다: Modbus 데이터 프레임을 사람이 읽을 수 있는 형태로 직접 볼 수 있습니다.
- Modbus는 원래 메시지를 디코딩하기 위해 ASCII 문자로 개발되었습니다.
- Modbus RTU 및 Modbus ASCII는 서로 호환되지 않는 두 가지 모드입니다.
- 가장 중요한 점은 Modbus RTU 장치가 Modbus ASCII 장치와 통신할 수 없다는 것입니다.
통신 프레임 구조:
바이트당 비트: 1 Start, 7 Bit, Even, 1 Stop
이름 | 길이 | 기능 |
시작 프레임 | 1 글자 | 콜론 ":"로 시작합니다. |
주소 필드 | 2 글자 | 논리 번호 |
기능 코드 | 2 글자 | 읽기 또는 쓰기 기능 |
데이터 | n 문자 | 데이터 + 길이는 메시지 유형에 따라 채워집니다. |
오류 검사 | 2 글자 | 오류 검사(LRC) |
엔드 프레임 | 2 글자 | CRLF |
2) Modbus RTU 모드
Modbus RTU 모드에서 모든 슬레이브 장치 주소, 기능 코드 및 데이터는 원시 바이너리 형식으로 표현됩니다. ASCII 및 RTU 모드에도 다양한 오류 검사 기술이 사용됩니다.
Modbus RTU는 RS485, RS422, RS232와 같은 직렬 통신을 통한 Modbus입니다.
Modbus는
1) RS232
2) RS485
3) RS422의 세 가지 전기 인터페이스 중 하나를 사용했습니다.
RS232
- RS232에서 간단한 포인트 투 포인트 배열
- 하나의 장치를 다른 장치에 연결하기만 하면 되고 두 장치 사이의 거리가 RS232보다 50피트 또는 15미터 미만인 경우 가장 적합한 작업을 수행합니다
RS485:
- 두 개 이상의 장치를 연결하고 거리가 50피트 이상인 경우 RS485 또는 RS422를 사용해야 합니다.
- 마스터는 여러 슬레이브 장치와 통신합니다. RS485는 지금까지 가장 많이 사용되며 4000피트 범위에서 최대 32개의 노드를 지원합니다.
- Modbus 메시지가 전송되는 속도는 전송 속도 또는 초당 비트로 알려져 있습니다. 네트워크의 모든 장치가 일반적으로 9600-19200이 사용되는 동일한 전송 속도를 사용하는지 확인합니다.
- Modbus에서 직렬 네트워크에는 슬레이브에 명령을 내리는 마스터 장치가 있습니다. 슬레이브는 마스터에서 명령을 사용하지 않는 한 정보를 전송하지 않습니다.
- 네트워크에 하나의 마스터만 있고 최대 247개의 슬레이브가 있으며 각각 고유한 슬레이브 ID 1 - 247을 가wlqslek
- RS485는 32개 이상의 노드를 구동할 수 없습니다. 여기서 마스터는 데이지 채널 방식으로 슬레이브 장치에 연결됩니다. Modbus는 링 토폴로지 또는 스타 토폴로지를 지원하지 않습니다.
두 프레임의 비교에서 볼 수 있듯이 ASCII 프레임은 RTU 프레임보다 거의 두 배의 비트 수가 필요하므로 주어진 데이터 속도(초당 비트 수)에서 Modbus ASCII가 Modbus RTU보다 느립니다.
"Data" 필드의 내용은 어떤 함수가 호출되는지, 프레임이 마스터 장치에서 송신되었는지 슬레이브 장치에서 송신되었는지에 따라 크게 달라집니다.
Modbus는 엄격하게 "레이어 7" 프로토콜이기 때문에 이러한 메시지 프레임은 일반적으로 하위 수준 프로토콜에 의해 지정된 다른 데이터 프레임 내에 포함됩니다.
예를 들어, Modbus TCP 표준은 개별 Modbus 데이터 프레임을 TCP/IP 세그먼트/패킷으로 캡슐화한 다음 (일반적으로) 이더넷 프레임 데이터 페이로드로 다시 캡슐화하여 대상 장치에 도착합니다.
Modbus가 이러한 고급 프로토콜이기 때문에 내재된 이러한 "다층" 접근 방식은 번거로워 보일 수 있지만 Modbus 프레임이 거의 모든 종류의 가상 및 물리적 네트워크 유형에서 통신될 수 있다는 점에서 뛰어난 유연성을 제공합니다.
또한 RTU 데이터 프레임은 기간(일시 중지)을 구분 기호로 사용하는 반면, ASCII 데이터 프레임은 총 3개의 ASCII 문자를 사용하여 각 프레임의 시작 및 중지를 표시하며 21비트가 추가됩니다. 그러나 이러한 추가 구분 비트는 실용적인 목적을 제공합니다:
'데이터계측분석 > 데이터통신 기술자료' 카테고리의 다른 글
HART 프로토콜의 이해 (0) | 2024.08.30 |
---|---|
디바이스넷 기능과 사양 (0) | 2024.08.13 |
시리얼통신 에러검사방법 및 알고리즘 (0) | 2024.07.27 |
TCP와 UDP의 개요와 차이점 (0) | 2024.07.24 |
인터넷 프로토콜(IP)의 기초 (0) | 2024.07.24 |