본문 바로가기
플랜트,성능시험,계측제어

[전기/기계] PLC 자료와 정보 - RS-422/485

by SB리치퍼슨 2013. 9. 4.


PLC 자료와 정보 - RS-422/485


RS-422/485

 

시리얼 통신을 얘기할 때 RS-232와 함께 빠지지 않고 등장하는 것이 RS-422/485입니다. 그래서 이번에는 RS-422/485는 무엇이고, 어디에 쓰는건지에 대한 얘기를 하려고 합니다.

대개 뭔가 불만족스러운 것이 있을 때 새로운 것이 만들진다고 한다면, RS-422/485를 등장시키는 RS-232에 대한 불만족은 뭘까요? 그것은 바로 짧은 통신 거리와 두개의 장비만을 연결할 수 있다는 제한입니다. RS-232로는 15m를 넘지 않는 거리의 두 장비만을 서로 연결할 수 있을 뿐입니다. 소위 말하는 최대 15m의 1:1 통신이 바로 RS-232입니다.

그래서 RS-422/485는 좀 더 먼 거리와 여러 대의 장비를 동시에 연결하기 위한 목적으로 만들어집니다. 그래서 RS-422/485는 약 1200m까지의 통신거리를 지원합니다. 그리고 RS-422은 소위 1:N이라는 통신 형태로 하나의 장비가 여러 대의 장비와 통신하는 형태를 지원하고, RS-485는 소위 N:N이라는 통신 형태로 여러 대의 장비가 서로 간에 통신하는 형태를 지원합니다.

물론 RS-422/485는 이 보다 훨신 복잡 다양한 얘기를 필요로 하는 것입니다. 하지만 저는 어디까지나 프로그램을 하는데 있어 필요한 것에만 관심이 있고, 그 이외의 내용에 대해서는 사실 문외한입니다.

 

1:N

 

자동화를 하다보면 이런 형태를 많이 보게 됩니다. 가장 쉽게는 하나의 PLC에 여러 대의 터치 스크린을 물리는 경우라고 생각됩니다. 이 경우 PLC가 1이 되고, 여러 대의 터치 스크린이 N이 되어 RS-422를 이용한 1:N 통신 형태를 구성하게 되는 것입니다.

하드웨어적으로 볼 때 RS-422은 통신을 위해 최소한 4가닥의 선이 필요합니다. 송신을 위한 신호선 2가닥(TX+, TX-)과 수신을 위한 신호선 2가닥(RX+, RX-) 그렇게 4가닥이 필요합니다.

이들 신호선들을 배선하는데 있어 1과 N 사이에서는 1의 TX+,. TX-가 N의 RX+, RX-로 연결되고, 같은 방법으로 N의 TX+,. TX-가 1의 RX+, RX-로 연결되어 1이 송신을 하면 N이 수신을 하고, N이 송신을 하면 1이 수신을 하는 형태가 되도록 합니다.

이것은 생각하기에 따라 1과 N이라는 두 장비의 1:1 통신이라고 볼 수도 있습니다. 하지만 N으로 대표되는 것은 하나의 장비가 아니라, 하나 이상의 장비들입니다. 따라서 이들 간에도 배선이 필요합니다. 장비는 여럿이지만 마치 하나인 것처럼 하기 위한 배선? 그것은 4개의 신호선을 모두 동일하게 연결하는 것입니다. TX+는 TX+로 TX-는 TX-로 ....

결론적으로 RS-422로 1:N 구성을 한 경우 1에 해당하는 장비가 송신을 하면 N에 해당하는 모든 장비들이 그것을 수신하게 되고, 반대로 N에 포함되는 장비중 하나라도 송신을 하면 그것을 1이 수신할 수 있게 되는 형태입니다.

이렇게 함으로써 물리적으로 1:N 사이의 통신은 가능하게 되었지만 몇가지 문제가 생깁니다. 1이 송신을 하는 경우 이것은 N전체에 대한 것일 수도 있겠지만 N중의 누군가를 위한 것일 수도 있습니다. 그럴 경우에는 어떻게 할 것인지를 고민해야 합니다. 반대로 N에 포함되는 장비들이 동시에 1에게 송신을 하게 되면 1은 도대체 무엇을 수신하게 될까를 걱정하지 않을 수 없습니다. 하지만 RS-422에 있어 하드웨어적으로 이 문제를 해결할 수 있는 방법은 없습니다. 그래서 프로그램을 통해서, 논리적으로 이 문제를 해결해야 합니다.

문제를 해결하는 아이디어는 사용하는 프로토콜에 반드시 국번이라는 것이 포함되도록 하는 것입니다. 즉, N에 해당하는 모든 장비에게 고유한 순번인 국번을 부여하고, 송신을 할 때 반드시 국번을 포함시킴으로써 국번이 일치하는 N의 장비만이 반응을 하도록 하는 규칙을 통해 위의 두 가지 문제를 해결하는 것입니다.

1은 국번을 포함하는 전송으로 N의 특정한 장비에게만 요청을 한다.

1의 요청을 모든 N 장비들이 수신은 하겠지만 국번을 확인해서 자신에게 하는 요청이 아니라면 무시해 버림으로써 요청된 하나의 장비만이 송신하게 되어 N 간에 송신이 중복되는 문제도 해결한다.

RS-422 통신을 위해서는 1처럼 특정 N에게만 요청을 하고, 응답을 대기했다가 또 다른 장비에게 요청을 하는 식으로 전체적인 통신을 주도/통제할 수 있어야 합니다.

 

N:N

 

RS-422을 이용한 1:N의 통신에서는 N에 포함된 장비들 상호간에는 통신을 할 수 없는 문제가 있습니다. 그래서 N:N 즉, 연결된 모든 장비들이 서로 간에 송/수신이 가능하도록 하기 위해서 RS-485를 사용합니다.

RS-485는 하드웨어적으로 단 2가닥의 선을 사용합니다. 두 신호선을 TRX+, TRX-라고 합니다. 이름에서도 보이는 것처럼 같은 신호선을 통해 송신도 하고 수신도 하는 것입니다.

이것은 N의 장비중 하나가 송신을 하면 그것을 나머지 모든 N-1이 수신하게 되는 것입니다(설정하기에 따라서는 자신이 송신한 내용을 자신이 수신하기도 합니다). 그래서 이 경우에도 1:N에서 처럼 한 순간에 하나의 장비만이 송신을 해야 합니다. 여러 장비가 동시에 송신을 하려고 한다면 그것은 잡음이 될 뿐입니다. 그러므로 N:N에서도 국번을 이용한 논리적인 차원에서의 송/수신 통제가 반드시 필요합니다.

반응형

댓글