Innovate With Data

데이터로 더 큰 가치를 제공합니다.

공장 자동화/통신

MODBUS 통신 알아보자 (2) - MODBUS 방식, 데이터 모델

데이터위자드 2024. 4. 7. 22:36
반응형

MODBUS 통신 알아보자 (2) - MODBUS 방식, 데이터 모델

MODBUS 통신의 방식과 데이터 모델에 대해서 알아보겠습니다.

 
 
 안녕하세요? 데이터위자드입니다. 
 
 지난 포스팅에서 MODBUS 통신의 역사와 특징에 대해서 전반적으로 알아보는 시간을 가졌습니다. 오늘은 모드버스 통신의 방식과 모드버스 통신의 데이터 형식에 대해서 알아보겠습니다.
 
  * 모드버스 통신의 역사와 특징에 대한 내용은 이전 포스팅을 참조해 주세요. 😄 
 
 

 

MODBUS 통신 알아보자 (1) - MODBUS 구조,역사, 특징

MODBUS 통신은 거의 모든 산업현장에서 빠지지 않는 통신 방식입니다. 안녕하세요? 데이터위자드입니다. 이번 시간에는 지난 포스팅에 이어 MODBUS 통신에 대해서 더 자세히 알아보도록 하겠습니다

datawizard.co.kr

 
 
먼저, 모드버스 통신의 방식입니다. 이전 포스팅에서 살짝 말씀드렸던 거 같은데요.
 
모드버스에는 크게 3가지 방식이 있습니다.
 
 

  1. ASCII

  2. Remote Terminal Unti (RTU)

  3. TCP/IP

 
 
모드버스 통신의 방식이라고 표현했는데, 정확한 명칭은 Modbus 통신의 Application Data Unit(이하 ADU)라고 합니다.
모드버스 통신에서 Master와 Slave 간에 통신을 어떠한 방식으로 할 것이냐를 말하는 것이지요.
 
아래 그림을 보시면 이해하는데 도움이 되실 겁니다.
 
 
 

MODBUS communication stack @ modbus organization
MODBUS communication stack @ modbus organization

 
 
참고로 Master & Slave는 모드버스 통신뿐만 아니라 여타 다른 필드버스 방식에서도 나오는 개념인데, 일반적으로 통신이라는 범주에서 말하는 Server & Client라는 개념과 유사하다고 보시면 되겠습니다.
 

Client는 정보를 요청(Response)하고 서버(Slave)는 이에 응답(Response) 합니다.
Client는 정보를 요청(Response)하고 서버(Slave)는 이에 응답(Response) 합니다.

 
 

MODBUS master도 slave에 정보를 요청하고 slave는 이에 응답합니다.
MODBUS master도 slave에 정보를 요청하고 slave는 이에 응답합니다.

 
 
(정확히는 Server&Client와 Master/Slave는 다르다고 볼 수 있겠습니다. )
 
 
 
여하튼 각설하고 위에 언급한 방식의 차이는,
 MODBUS 통신이라는 큰 틀 안에서도 ASCII로 말할 거냐? TCP/IP나 RTU로 말한 거냐?라는 문제라고 보는데
 
 

ASCII는 8bit의 문자형으로 통신하는 방식. 실제 문자(a, b, c와 같은 string)에 대한 정보를 서로 주고받음

 
 

0 혹은 1(Boolean), 정수형(Interger), 실수형(Float or Real)으로 보내되 TCP/IP로 보내냐? RTU로 보내냐?

 
 
ASCII 같은 경우는, 8 bit의 문자형을 통신 모듈 상호 간에 보내는 방식이다 보니, 저는 개인적으로 공장 자동화 업무를 하면서 한 번도 사용해 보지 않은 방식이긴 합니다.
 
더불어 굳이 ASCII 방식을 사용하지 않더라도, RTU나 TCP/IP로 가져온 데이터를 PLC나 DCS에서 String으로 변환해 주는 로직을 거치면 문자형 바꿀 수 있기 때문에 더욱이 사용해 본 적이 없는 방식이긴 합니다. (다만, PC나 Terminal과 같은 여타 다른 통신 개체와의 연결 시 ASCII 방식이 더 효율적일 수 있을 거 같습니다. 변환해 주는 로직이 필요 없으니...)
 
 
또한, RTU나 TCP/IP의 경우는 Serial 통신(RS-232, RS-485) 통신으로 할 것이냐, Ethernet과 같은 랜선으로 통신할 것이냐의 물리적인 차이도 존재합니다.
 
정리하자면, 
 

방식 기준 통신 방식 물리적 연결
ASCII 문자(8 bit String) Serial 통신(RS-232, 485 등)
RTU Bool & Word
TCP/IP Bool & Word Ethernet(RJ-45)

 
 
으로 분류할 수 있겠습니다.
 
 

RS-232 통신 Connector, 현장에서 자주 보셨으리라 생각됩니다. @ wikipedia commons

 
 
 

MODBUS의 데이터 모델을 알아보자.

 
 
다음으로 모드버스 통신의 데이터 모델을 알아보겠습니다. (앞서 ASCII 방식은 8bit 문자 코드로 소통한다고 하였고 이는 논외로 하겠습니다.)
 
 

모드버스 데이터 모델 @wikipedia

 
 
MODBUS는 4가지 데이터 모델이 있는데,
 
 

  1. Coil (Discrete output) : PLC의 출력 접점의 기능

  2. Discrete Input : PLC의 입력 기능

  3. Input Register : PLC에서 정수형(Interger)을 읽는 기능

  4. Holding Register : PLC에서 정수형을 읽거나 쓰는 기능

 
와 같습니다.
 
Modbus 통신의 태생이 Modicon PLC에 통신 기능을 부여하기 위해 처음 개발 되었기 때문에 아무래도 PLC에서 연산되는 기능을 수행하기 위한 데이터 모델이 기본이 된다고 하겠습니다.
 
 

PLC ladder에서 Discrete input(왼쪽)과 Coil(오른쪽)의 모습 @Wikipedia Commons
PLC ladder에서 Discrete input(왼쪽)과 Coil(오른쪽)의 모습 @Wikipedia Commons

 
 
 
여기서 의문이 드는데요.
 

정수형만 있으면 소수점 값이 있는 실수형(Real 혹은 Float) Type은 어떻게 처리하지?

 
 
결론은, 16 bit 데이터를 두 개 합쳐서 32bit 부동소수점(Float) 방식으로 처리합니다.
 
각 PLC 모듈마다 해당 기능을 구현하는 Function block이나 Method가 지원되기 때문에 이를 활용하시면 되겠습니다. (당연히 반대편 Slave 모듈에서도 그에 맞춰 address mapping 작업을 해줘야겠지요.)
 
 

신나는 Address mapping 작업
신나는 Address mapping 작업

 
 

마치며,

 
 
 이번 포스팅에서는 모드버스 통신의 구조와 데이터 모델에 대해서 짧게 알아보는 시간을 가졌습니다. 정리하자면 다음과 같겠습니다.
 

모드버스 통신의 구조

 

방식 기준 통신 방식 물리적 연결
ASCII 문자(8 bit String) Serial 통신(RS-232, 485 등)
RTU Bool & Word
TCP/IP Bool & Word Ethernet(RJ-45)

 
 
 

모드버스 통신의 데이터 모델

 

모드버스 데이터 모델 @wikipedia
모드버스 데이터 모델 @wikipedia

 
 
이전 포스팅에서 모드버스 통신의 특징에 대해서 설명하면서 언급하긴 하였지만, 모드버스 통신이라는 것이 현장에서 널리 사용되는 부분이 있다손 치더라도 End-user가 그 안에 전문적인 내용까지 속속들이 알기는 어려운 것이 사실입니다.
 
앞으로도 차근차근 하니씩 이야기를 풀어나가 보려고 합니다. 독자분들께서도 평소 궁금하셨던 사항이나 난해한 부분이 있다면 메일이나 댓글로 문의하시면, 해당 내용을 포함하여 이야기를 더 이어나가 보도록 하겠습니다.
 
 
(* 모드버스와 필드버스에 대해서 더 자세히 알고 싶으시면 아래 글들을 참조해 주세요.)
 
 

 

'공장 자동화/통신' 카테고리의 글 목록

현장 자동화 라인의 공정개선 / 유지보수 / 프로젝트 관리 업무에 도움을 드립니다. 📧 simo@datawizard.co.kr

datawizard.co.kr

 
 
지금까지 데이터위자드였습니다. 오늘도 함께 해주셔서 감사하고, 즐거운 데이터 생활 되시길 바랍니다.
 
 
* 본 포스팅에서 언급된 모듈이나 제조사, 단체는 필자와 무관함을 알립니다.
 
 

 
 
'💗' 도움이 되셨다면 공감 클릭 부탁드립니다. 감사합니다.

반응형