본문 바로가기
PLC 프로그래밍/MELSEC PLC

시리얼 통신 하기[7]

by lemy 2019. 3. 9.
반응형



시리얼 통신 하기[7]


출처: melsec PLC 동호회(http://cafe.daum.net/melsec)의 회색늑대 (grizlupo)님의 초보 통신 이야기 연재글 입니다. 

회색늑대 (grizlupo)님의 초보 통신 이야기중 시리얼 통신에 관련하여 전반적으로 이해 할 수 있는 좋은 글입니다. 총 7회 분량의 글 입니다.



차동 전송 방법 (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는 이 보다 훨신 복잡 다양한 얘기를 필요로 하는 것입니다. 하지만 저는 어디까지나 프로그램을 하는데 있어 필요한 것에만 관심이 있다는 것입니다.


RS-422 (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(MASTER)은 국번을 포함하는 전송으로 N의 특정한 장비에게만 요청을 한다. 1(MASTER)의 요청을 모든 N 장비들이 수신은 하겠지만 국번을 확인해서 자신에게 하는 요청이 아니라면 무시해 버림으로써 요청된 하나의 장비만이 송신하게 되어 N 간에 송신이 중복되는 문제도 해결 합니다. RS-422 통신을 위해서는 1(MASTER)처럼 특정 N에게만 요청을 하고, 응답을 대기했다가 또 다른 장비에게 요청을 하는 식으로 전체적인 통신을 주도/통제할 수 있어야 합니다.


RS-422 (EIA RS-422-A 표준)는 역사적으로 Apple Macintosh 컴퓨터용으로 사용된 시리얼 연결입니다. RS232가 접지 참조된 불평형 전송 방법을 택하고 있는 것과 달리 RS422는 차동 전기 신호를 사용합니다. 차동 전송 방법은 신호 송수신 시 2개의 라인을 각각 사용하며 따라서 RS232에 비해 소음이 적고 장거리 통신을 보장합니다. 이러한 장점 덕분에 산업용 어플리케이션에는 RS-422가 더 적합합니다.



RS-485 (N:N)

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


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


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


RS-485 (EIA-485 표준)는 RS-422보다 개선된 버전으로, 디바이스 수를 10개에서 32개로 늘리고 최대 부하에서 적절한 신호 전압을 보장하는 데 필요한 전기적 특성을 정의합니다. 이 강화된 멀티드롭(multidrop) 기능으로 단일 RS485 시리얼 포트에 연결된 디바이스의 네트워크를 생성할 수 있습니다. PC에 네트워크 연결된 여러 분산 디바이스가 필요하거나 데이터 수집, HMI 또는 기타 작업을 위해 컨트롤러를 필요로 하는 산업용 어플리케이션에 있어, 노이즈 제거 및 멀티드롭 (multidrop) 기능을 갖춘 RS485는 최상의 선택입니다. RS-485는 RS-422의 상위 집합이므로, 모든 RS-422 장치는 RS-485로 제어할 수 있습니다. RS-485 하드웨어는 최대 4000 피트 케이블을 통한 시리얼 통신에 사용될 수 있습니다.

반응형

'PLC 프로그래밍 > MELSEC PLC ' 카테고리의 다른 글

MX-Link 사용하기 [2]  (0) 2019.03.25
MX-Link 사용하기 [1]  (0) 2019.03.24
시리얼 통신 하기[6]  (0) 2019.03.08
시리얼 통신 하기[5]  (0) 2019.03.08
시리얼 통신 하기[4]  (0) 2019.03.07

댓글