MODBUS 통신설정에서 빠지지 않는 변수가 있습니다.
안녕하세요? 데이터위자드입니다.
이번 포스팅에서는 지난 필드버스 통신 bps내용에 이어서 통신설정에서 빠지지 않는 변수인 Stop bit와 Parity에 대한 내용을 소개하는 시간을 가져보도록 하겠습니다.
(*이전 필드버스 bps 관련 내용은 아래 내용 참조하여 주세요.)
필드버스 통신에서 bps의 의미 (a.k.a baud rate)
MODBUS RTU(흔히 RS-485 통신이라 불리죠)에서 각 통신 모듈 상호 간에 bps, Stop bit, Parity와 같은 것을 맞춰야 통신이 된다는 말씀을 드린 적이 있습니다.
이전 가스감지기 통신 연결 관련 내용을 다루면서 언급했었던 적이 있고요.
bps는 이전 포스팅에서 논하였으니 이번에는 Stop Bit와 Parity에 대해서 알아보겠습니다.
Stop bit와 Parity에 대해서 각각 알아보기보다는 MODBUS 통신의 전송 규칙에 대해서 먼저 알아볼 필요가 있습니다. 그것을 이해하면 Stop bit와 Parity에 대해서도 자연스럽게 이해하시게 될 테니까요.
그럼 본론으로 들어가 보겠습니다.
MODBUS 통신의 전송 규칙
모드버스 통신에 대해서 가장 깊숙이 알고 싶다면, 단순무식하지만 가장 효과적인 방법이 있습니다.
모드버스 통신의 총본산과 같은 modbus organization 홈페이지에서 관련 내용을 찾아보는 것인데요.
해당 홈페이지는 너무 전문적인 내용이 많아 전문적으로 개발 업무를 수행하시는 분들에게는 크게 도움이 되겠는데요. 하지만, 저희와 같이 현장에서 통신 연결을 주무르게 되는 실사용자(End-User)에게는 오히려 너무 방대한 양의 정보가 심리적 압박을 줄 수 있을 것입니다.
그러니,
'이런 내용이 있구나.'
하는 정도로 지나가면 맘이 편안해지실 겁니다.
하지만, '나는 모드버스 통신에 대해서 깊게 공부해 볼 거야.'라고 생각하는 유저분들이라면, 아래 modbus organization 사이트에서 Modbus 통신 설명서(Specification)를 참조해 보시면 도움이 되실 것입니다.
Modbus Specifications and Implementation Guides
MODBUS Protocol Specification 다운로드
Modbus Serial Line Protocol and Implementation Guide V1.02 다운로드
해당 설명서와 실행 가이드 내용 중에서 오늘 주제인 Stop bit와 parity에 대해서 알아보겠습니다.
먼저 Modbus Serial Line Protocol and Implementation Guide V1.02의 12 페이지 내용을 보시면,
모드버스 통신으로 8 bit( 1 byte) 신호를 보낼 때, 실제 데이터인 8bit만 계속 보내는 것이 아니라,
- Start bit = 1 bit
- 실제 데이터 = 8 bit (1 Byte)
- Parity bit = 1 bit
- Stop bit = 1 bit
를 합쳐서 총 11 bit를 송신하게 되는 것입니다.
여기서 Start와 Stop bit는 통신 모듈 상호 간에 규약으로써, 통신 연결에 있어서 데이터만 계속 보내는 것이 아니라 시작과 끝을 Start & Stop bit로 포장하여 전송하여 상호 간 오류의 가능성을 줄여주는 역할을 하게 됩니다.
비유하자면, 생산라인에서 포장되지 않은 제품을 계속 컨베이어로 흘려보내는 것이 아닌 Start & Stop bit라는 포장지로 묶음으로 보내주는 셈이라 할 수 있겠습니다. 따라서 받는 쪽에서는 제품 수량(데이터)에 이상이 없는지 더 확실하게 확인할 수 있을 것입니다.
결국 이것은, 원활한 통신을 위한 통신 연결 상호 간에 규약(Protocol)의 일환이라 하겠습니다.
다음으로 Parity입니다.
Parity의 역할은 통신 전송에 있어서 오류가 있는지를 감별하기 위한 안전장치입니다. 필드버스의 경우 외부환경에 의한 어떠한 노이즈나 장애가 발생할 수 있는 가능성이 있기 때문에 이러한 장치를 두어 오류를 검출하는 수단으로 사용하는 것입니다.
그런 연유로 Parity bit는 Check bit라는 용어로도 불린다고 합니다. (하지만 Check bit라고 쓰여있는 제조사 문서는 실제로 본 적이 없네요. 😀)
Parity bit는 설정에 따라,
- No Parity (N) - Parity 사용 안 함. 대부분의 경우 기본값으로 사용
- Even(E) - 짝수 Parity
- Odd(O) - 홀수 Parity
패리티에 대한 내용은 Wikipedia에 잘 정리되어 있습니다. 자세한 내용이 알고 싶으시다면 아래 페이지를 공부해 보시길 권해 드립니다.
패리티 Even과 odd의 검출 방식에 대해서는, 위 페이지에서 예시로 설명하고 있습니다.
간단히 설명드리자면,
Even(짝수) 패리티인 경우, 송신 측 데이터에 패리티 비트를 0 혹은 1로 설정하여 송신하고 수신 측에서 '데이터 + 패리티 비트'를 수신하였을 때 수신값이 항상 짝수가 되는지 확인하는 것이며, Odd(홀수) 패리티는 그 반대로 수신값이 항상 홀수가 되는지를 확인하는 것입니다.
사실 패리티에 대한 내용은 저희 같은 현장 사용자들에게는 깊게 알아야 할 부분은 아니라 생각됩니다. 그저, Parity bit 통신 오류를 검출하는 방식이고, 통신 모듈 상호 간에 맞춰야한다는 것만 이해하시면 될 것입니다.
마치며,
이번 포스팅에서는 현장에서 사용하는 MODBUS RTU 통신 모듈의 상호 간 연결을 하기 위한 설정중 하나인, Stop bit와 Parity bit에 대해서 알아보았습니다. 앞서 말씀드린 바와 같이, 현장 실사용자에게는 그런 기능이 있구나 정도로만 가볍게 이해하는 선에서 가져가면 되지 않을까 하는 생각입니다.
정리하자면,
Start & Stop Bit | 데이터 전송의 시작과 끝을 알리는 Bit |
Parity bit | 송수신 과정에서 데이터에 오류가 없는지 확인하기 위한 Bit. Even(짝수)와 Odd(홀수)가 있다. |
정도로 이해하시면 되겠습니다.
그리고 또 하나의 변수인 bps에 대해서는 이전 포스팅을 참조하여 주시기 바랍니다.
필드버스 통신에서 bps의 의미 (a.k.a baud rate)
지금까지 데이터위자드였습니다. 다음으로는 MODBUS 통신에 대해서 더 자세히 알아보는 시간을 갖도록 하겠습니다.
* 본 포스팅에서 언급된 모듈이나 제조사, 단체는 필자와 무관함을 알립니다.
'💗' 도움이 되셨다면 공감 클릭 부탁드립니다. 감사합니다.
'공장 자동화 > 통신' 카테고리의 다른 글
MODBUS 통신 알아보자 (2) - MODBUS 방식, 데이터 모델 (1) | 2024.04.07 |
---|---|
MODBUS 통신 알아보자 (1) - MODBUS 구조,역사, 특징 (2) | 2024.04.03 |
필드버스 통신에서 bps의 의미 (a.k.a baud rate) (0) | 2024.04.01 |
HART Protocol 에 대해서 알아봅시다. (장단점 및 활용) (0) | 2023.08.30 |
PLC 데이터 읽고 쓰기 (4) - 오므론(Omron) NX & NJ PLC (feat. aphyt) (2) | 2022.02.08 |