본문 바로가기
PLC

모드버스(ModBus) 프로토콜(Protocol)

by 배굿맨 2022. 11. 17.

PLC 장치들과 통신을 위해서 만들어졌다. 즉, 이 프로토콜은 마스터 장치와 슬레이브 장치와의 통신을 담당한다. 보통 HMI 장치는 마스터역할을 하고, 센서값을 읽고 액추에이터를 구동하는 것은 슬레이브 장치(PLC)로 구성된다.

 

모드버스 프로토콜은 아래에 정의되어 있다.

https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf

 

구글 검색했더니 아래내용을 정리할 수 있었다.

 

1. 모드버스 프로토콜은 MODBUS RTU, MODBUS ASCII, MODBUS TCP 등등 많은 형제 프로토콜을 낳았으나 원조는 MODBUS RTU이다.

 

2. PLC처럼 Bit 접근과 Word 데이타 접근을 위해서 메모리 블록을 만들었다.

 

 

그림1 데이타블록 및 명령어

명령어만을 보면 어떤 주소(어떤 블록)을 사용하는지 알 수 있다.

 

3. 읽기만 가능한 비트 및 워드영역이 있고 읽기/쓰기가 가능한 비트 및 워드영역이 있다.

그림 2. 데이타 모델

I.O system에서 접근하는 메모리는 Read-Only이다. PLC의 P메모리는 센서값을 읽고(Discrete Inputs), 액추에이터를 작동(Coils)하는 장치이다. (LS PLC XBCDR20E에서 P00~P11는 Input Port로 사용하고 P40~P47은 Output Port로 사용하고 있다.)

또한 I.O system에서 접근하는 메모리는 워드단위로 사용될 수 있다. 단순히 ON/OFF 가 아닌 물리량, 문자 등도 PLC에 추가 장착하는 카드를 통해서 송/수신 할 수 있다. 그래서 Input Registers라는 것이 필요하다.

 

4. 패킷과 마스터/슬레이브

 

패킷형태 : 국번-CODE-길이-데이타-CRC

 

국번 : 장치번호이다. PLC를 설정하면 항상 장치번호를 셋팅하게 된다.

CODE : <그림1>에서 말하는 명령어이다.

길이 : 데이타의 워드 갯수이다.

데이타 : 주소, 불린, 물리량, 숫자, 문자 일 수 도 있다.

 CRC : 체크섬이며 자동 계산된다.

 

예) 마스터 -> 슬레이브 요청

01-04-1-0-CRC

1번 슬레이브 장치야, Input Register의 0번지 에서 1워드 만큼 나한테 보내!

슬레이브->마스터 응답

XX-YY-2-1234-CRC

XX번 슬레이브 장치야, 값은 1234야. 알아서 잘 써.

(XX와 YY는 본인이 몰라서 ... 그러나 결론은 마스터와 슬레이브는 서로 다른 프로세스를 가지고 동작한다. 하나는 모드버스 마스터이고 다른 하나는 모드버스 슬레이브여야 한다.)

 

 

 

'PLC' 카테고리의 다른 글

PLC 표준언어  (0) 2022.11.28
PLC란?  (0) 2022.11.28
EasyBuilder Pro의 매크로  (0) 2022.11.15
EasyBuilder Pro의 전역 화면전환 기능  (0) 2022.11.15
PLC의 COM(공통단자)의 의미  (3) 2022.11.14