MODBUS나 PROFIBUS와 같은 필드버스를 사용할 때 bps라는 게 나오던데?
이번 포스팅에서는 현업에서 필드버스 통신을 처음 접하게 되면 겪게 되는 여러 가지 용어에 대해서 이야기해 보도록 하겠습니다.
일전에, Gastron 가스감지기의 Python 통신연결 예제를 설명드리면서, 잠시 언급된 적이 있었을 텐데요.
- bps (혹은 baud rate)
- Stop bit
- Parity
가 그것입니다. (*관련 내용은 아래 이전 포스팅을 참조해 주세요)
그중에서 이번 시간에는 bps(a.k.a baud rate)에 대해서 이야기해 보겠습니다.
참고로 baud rate는 '보 레이트'라고 읽습니다. 소싯적에 '바우드 레이트'라고 읽었다가 한동안 선배한테 놀림받았던 기억이 있네요.
bps는 bit per second(초당 비트수)의 약자입니다.
bps를 이해하기 앞서 먼저 bit에 대해서 이해할 필요가 있습니다.
bit는 컴퓨터에서 흔히 사용되는 2진수에서 하나의 신호의 단위입니다. 보통 binary 혹은 discrete라고 표현되는 0과 1의 신호를 말하는 것이죠. 혹은 bool 대수에서 참(True = 1)과 거짓(False = 0)을 의미하기도 합니다.
갑자기, 컴퓨터 2진수 binary 하니깐 당혹스러우실 텐데요. 실생활에서 비유하자면 이런 것이지요.
전등이 켜진 상태를 1, 꺼진 상태를 0으로 표현하는 2진법 신호체계
라 비유하면 이해가 빠르실 것입니다.
따라서,
1 bit는 2진법 신호의 기본 단위
라 이해하시면 되겠습니다.
따라서, 통신에서 말하는 bps(bit per second)는
1초당 전송하는 bit의 수
가 되겠습니다. 위 예제의 내용을 예를 들어 보자면, MODBUS에서 주로 사용하는 전송속도인 9600 bps는 초당 9600 bit를 전송하는 속도라 하겠습니다.
그럼 한 가지 의문이 생길 것입니다.
9600 bps의 통신속도는 그럼 얼마나 되는 거지?
9600 bps의 통신속도는 말 그대로 초당 9600개의 bit를 전송한다는 뜻인데, 이것만 봐서는 크게 감이 오질 않으실 겁니다.
bps 것은 우리가 보통 가정에서 사용하는 인터넷 속도에서도 사용되는데요. 인터넷 속도에 관심이 있으신 분들이라면, 100 Mbps라든지, 500 Mbps라든지, 1 Gbps라든지 하는 것들을 눈여겨보신 경험이 있으실 겁니다.
보통 컴퓨터에서 사용하는 자료형이 bit 아닌 byte를 감안하면(1 byte = 8 bit), 100 Mbps는 초당 약 12.5 MB를 전송할 수 있는 속도가 되겠습니다. (아마, 100 Mbps를 사용 중이신 분들은 다운로드 시에 그 정도 속도가 나오는 것을 체감하셨으리라 생각됩니다.)
이야기가 살짝 샌 거 같긴 한데,
그럼 100 Mbps에 비하면 9600 bps는 너무 느린 거 아닌가?
사실, 인터넷 속도와 현장에서 사용 중인 필드버스를 서로 비교한다는 것이 의미가 없을 수 있겠습니다. 9600 bps 라 할지라도 실제 PLC나 Device 간의 통신연결에서 주고받는 데이터의 크기를 생각한다면 크게 느리지 않은 속도라 할 수 있겠습니다. (물론, 더 많은 양의 정보를 한 번에 그리고 자주 가져오길 원한다면 더 높은 bps로 설정하는 것이 바람직하다 할 수 있겠습니다.)
앞서 소개한 가스트론의 가스감지기의 매뉴얼을 보자면,
특정 Data를 담고 있는 개별 address에서 나오는 정보가 8 bit 인 점을 감안한다면, 단순 계산으로는 9600 ÷ 8 = 1200 개의 신호를 매초 전송할 수 있다는 의미가 될 것입니다. (Start / Stop bit나 Parity 등으로 실제 속도는 더 늦겠지만 개념상 설명드린 내용입니다.)
만약, RS-485 통신으로 1대 다수의 통신이 연결된 환경에서 각 통신 모듈에서 가져오는 정보가 많지 않고 빈번한 갱신을 요구하지 않는다면, 현장에서 9600 bps의 연결이라도 실사용에는 크게 무리가 없을 수준이라 하겠습니다.
그럼 통신 속도는 왜 맞추어야 하는 거지?
위 예시에서 볼 수 있듯이, PLC나 Loader PC에서 각 Device로 필드버스 통신 연결 시에 통신속도를 상호 맞추는 작업을 필수적으로 수행하게 됩니다.
그렇다면, 통신 속도를 연결하지 않으면 어떻게 될까요?
답은 통신이 안될 수 있다.
현장에서 각 모듈의 통신 속도를 상호 매칭시키는 것이 일반적이기 때문에 저 역시 정확히 어떠한 연유로 통신이 안되는지는 정확히 설명하지는 못할 거 같습니다. 그보다 상호 통신 속도를 일치시키지 아니 되는 이유에 대해서도 생각해 본 적이 없고요.
baud rate는 어떤 의미인지?
통신연결 관련 매뉴얼이나 카탈로그를 보면 baud rate와 bps를 혼용하여 명기하는 경우를 자주 볼 수 있습니다. 거의 대부분의 경우 baud rate는 bps와 거의 동일한 의미로 사용되는데요. 정확히는 서로 다른 개념이긴 합니다.
bps(Bit per Second) | baud rate |
초당 비트수 | 초당 신호(Signal) 수 |
baud rate의 정의는,
1초당 보내는 신호(signal)의 수
를 의미합니다.
다만, 거의 대부분의 경우 baud rate에서 말하는 signal의 기본단위가 bit인 경우가 많기 때문에 baud rate = bps라고 흔히 일컫게 됩니다.
하지만, baud rate는 상황에 따라 변동될 소지가 있습니다. 만약, ASCII Code를 사용할 경우 신호(signal)의 기본 단위가 byte가 되기 때문에 이 경우 9600 bps = 1200 baud rate가 되는 경우를 예로 들 수 있겠습니다.
마치며,
이번 포스팅에서는 필드버스를 사용함에 있어 접하게 되는 bps와 baud rate에 대해서 알아보았습니다.
현장에서 보통 당연하게 혹은 의문을 가지지 않고 사용하는 개념이다 보니, bps와 baud rate에 대해서 논하는 것이 쉽지 않았지만, 현장에서 통신을 가지고 다양한 작업을 수행하시는 분들이라면 한 번쯤 정리해 둘 필요가 있는 개념이라 생각하는 바입니다.
다음 포스팅에서는, bps에 이어서 통신 연결시에 설정하게 되는 Stop bit, Parity의 개념에 대해서 정리하도록 하겠습니다.
'💗' 도움이 되셨다면 공감 클릭 부탁드립니다. 감사합니다.
'공장 자동화 > 통신' 카테고리의 다른 글
MODBUS 통신 알아보자 (1) - MODBUS 구조,역사, 특징 (2) | 2024.04.03 |
---|---|
MODBUS 통신에서 Stop bit, Parity bit에 대해서 알아보자 (0) | 2024.04.03 |
HART Protocol 에 대해서 알아봅시다. (장단점 및 활용) (0) | 2023.08.30 |
PLC 데이터 읽고 쓰기 (4) - 오므론(Omron) NX & NJ PLC (feat. aphyt) (2) | 2022.02.08 |
PLC 데이터 읽고 쓰기 (3) - Siemens S7 PLC (feat. python-snap7) (2) | 2022.01.26 |