:: 진공에 대해 알려주마.

VIEW MON of RS-485 본문

진공/노하우

VIEW MON of RS-485

하이백 2022. 11. 20. 20:39

RS-485 통신 방식은 232 통신에 비해 장점이 많다.

RS-232 통신은 1:1 통신 방식으로 단순하고 문제가 발생 시 문제점 파악이 쉽다. GND와 Tx, Rx로 구분된 3개의 신호로 주는 쪽과 받는 쪽의 문제를 명확히 알 수 있다. (Full duplex, Single ended type)

통신 거리는 10미터를 넘는 경우 노이즈에 취약하다. Tx와 Rx가 서로 반대로 연결되는 케이블 꼬임 문제 외에는 큰 이슈가 없다. 현장에서 통신이 안된다면 Tx와 Rx를 바꾸어 연결하면 보통은 문제가 해결된다. 아니면 Tx와 GND를 찍어보면 9 볼트가 측정된다. 각각의 장치에서 GND와 찍어봐서 9 볼트가 측정되면 거기가 Tx인 것이다.

 


 

RS-485 2 wire는 두 개의 선으로 여러 대의 장치와 통신이 가능하다. 장치에 주소만 설정해 주면 된다. 통신 프로토콜 선두에 주소를 설정하여 장치를 구분하게 된다. 또한 신호선이 2개로 그라운드 없이 한쪽에는 +를 다른 한 선에는 -를 걸어 두선 사이의 전압차를 인식하는 디퍼런셜 방식(Differential type)으로 노이즈에 강하다. 노이즈가 끼더라도 두선 모두 영향을 받아 신호 레벨이 쉬프트 되어도 전압차를 유지하기 때문이다. 통신거리가 길다. 이론상 1Km 이상도 가능하다.

아래 사이트를 참고하시라.
https://m.blog.naver.com/PostView.naver?blogId=specialist0&logNo=221162924804&navType=by
중간 부분에 "3. RS-485 통신의 파형" 참조

 

RS-485 통신 구성 예

 

이렇게 장점이 많은 통신 방식에 단점이 존재하는데 통신 문제 발생 시 원인 찾기가 어렵다는 것이다. 통신라인에 여러 대의 장치가 연결되다 보니 하나하나가 check point가 된다. 결국 모니터링이 어렵고 통신 상태를 쉽게 확인하기 쉽지 않다. 

이러한 문제가 발생하면 하나씩 검증해야 한다. 가장 중요한 것은 케이블 잇슈를 제거하는 것이다.

  1. 케이블이 제대로 연결되었는지?
  2. 장치에 프로토콜 설정은 제대로 되어 있는지?
  3. 장치 주소를 제대로 설정되었는지?
  4. Data+, Data- 케이블은 꼬이지 않았는지?
  5. PC의 RS-485 포트 설정은 제대로 되었는지?
  6. 종단 저항은 연결되었는지?

 

문제를 해결하기 위하여 다음과 같은 장치를 만들기 하였다. 얼마나 걸릴지 모르겠다. 하나씩 하나씩 작업해야겠다.

RS485 MONITOR DEVICE

1. 컨셉

이렇게 만들어 보고자 한다.

위와 같은 컨셉으로 모니터 장치를 만들어 보고자 한다. 필요한 것은 RS-232를 RS-485로 변환할 수 있는 장치와 Tx와 Rx로 분리된 신호를 LCD 창에 표시를 하여 통신이 정상적으로 진행되는지 보고자 하는 것이다.

굳이 RS-232로 변환하여 모니터링하고자 하는 이유는 상대적으로 장점이 많다. 통신이 제대로 되지 않는 경우  Tx 혹은 Rx를 분리하여 모니터링도 가능하다. 

그런데 Rs-232로 변환하여 Rx 신호는 당연 모니터링이 가능한데 Tx 신호를 모니터링 할수 있는지는 모르겠다. 이전에는 RS-232 컨버터 2개를 사용하여 Tx와 Rx 신호를 각각의 컨버터 Rx에 연결하고 Hyper terminal로 모니터링하였다. 이렇게 해야 할지도 모르겠다.

 

2. 파트 선정

 우선 가장 중요한 RS-232에서 RS-485로 변환이 가능한 컨버터가 필요하다. 인터넷 몰에서 쉽게 구입할 수 있는 것으로 선정한다. 

다양한 모양의 컨버터 (가격, 형태, 신뢰성등이 다양하다.)

여기서는 테스트용 이므로 가장 작고 저렴한 것으로 선정한다. 설비에 사용할 것이라면 신뢰성과 고정을 위한 디자인을 고려해야 할 것이다.

그리고 변환된 신호를 LCD창에 표시할 MPU(Main Process Unit)이 필요하다. 저렴하고 신뢰도 높은 아두이노가 적절한 것으로 보인다. 시리얼 통신이 가능한지 확인해 보고 가능하다면 이것으로 선정한다.

ARDUINO MKR BOARD

이제 화면으로 사용할 LCD 창이 필요하다. 보편적인 I2C 통신용 LCD창이 좋을 듯하다. 

아두이노에서 바로 연결 가능한 LCD MODULE

 

3. 배선

예전에 제어 PC와 장치 사이의 메시지를 설비에 영향을 미치지 않고 모니터링하기 위하여 다음과 같이 구성하여 진행한 경험이 있다. 두 개의 RS-232 포트를 Rx, Gnd에만 연결하여 통신에 간섭이 없도록 구성한 것이다. 

수신만 가능하게 구성하였다.

여기에서도 위와 같은 원리로 구성하고자 한다. 컨버터를 사용하고 아두이노에 연결된 Rx, Tx를 읽어오는 것이다. 연결은 아주 간단할 것이다. 실제 맵은 추후 추가 하도록 하겠다.

윈도우 환경이면 USB를 이용한 RS-485 ~ 232 컨버터를 사용하여 PC에 연결하고 윈도우에 시리얼 통신 유틸리티를 실행하여 송수신되는 내용을 모니터링할 수 있다. 그러면 송신에 문제가 있는지 수신에 문제가 있는지 알 수 있다. 

VSPE(Virtual Serial Ports Emulator) 같은 유틸리티를 이용하여 가상 포트를 생성하여 보다 쉽게 포트를 모니터링할 수 있다. 

RS-485 통신 모니터링 맵

여기서는 포터블로 만들기 위하여 아두이노를 사용하려고 한다. 여기에 coding을 해서 송수신 데이터를 LCD 창에 표시할 것이다.

우선 아두이노 개발환경을 이용하여 코딩하고 이를 아두이노 보드에 다운로드해야 한다. 
아두이노 홈페이지 참조 (https://www.arduino.cc/)

각종 파츠는 기존에 가지고 있던 것을 사용하기로 하였다. 회로를 구성중 문제가 발생하였다. 아두이노에서 모니터링하는 Tx와 Rx를 읽어 올 수 있는가이다. Rx는 당연히 읽어 오는데 Tx는 읽어오는게 아니라 내가 보낸 문자를 알 수 있는데 모니터링하는 값을 읽어 올 수 있는가이다.

테스트먼저 해야 되나?  아~ 씨바~

Shiba Inu

 

4. 프로그래밍

귀찮다. 간단하게 들고 다닐 수 있게 핸드핼디드 모니터를 만들라고 했으나 테스트가 필요하다. 현재는 테스트가 가능한 장치도 없다. 귀차니즘이 몰려온다.

수신만 가능하게 구성하였다.

먼 옛날 테스트했던 방식을 사용해 본다. RS-232 - USB 컨버터 두 개를 사용하여 모니터링할 시리얼의 Rx와 Tx를 각각의 컨버터 Rx에 연결하고 하이퍼 터미널을 2개 실행하여 송신메시지와 수신메시지를 모니터링하고 분석하여 원인을 찾아 해결하였다. 

여기서는 RS-232 만을 설명하였고 RS-485를 굳이 232로 변환하여 모니터링하는 이유는 다루기 쉽기 때문이다. 

그리고 https://eterlogic.com/ 의 VSPE(Virtual Serial Ports Emulator)를 추천한다. 공개용 버전은 일부 기능이 제한 되기는 하지만 우리가 필요로 하는 기능은 모두 사용 가능하다. 기능중 splitter, pair, mapper를 잘 사용하면 H/W 없이도 테스트가 가능하다. 아주 유용하다.

 

VSPE의 Mapper 기능

 

현재 가지고 있는 RS-485 장치가 없는 관계로 추후 485 장치를 테스트하게 되면 다시 고민해 보겠다. 그때까지 잠시 보류하겠다. 

 

5. 테스트

보류.

 

'진공 > 노하우' 카테고리의 다른 글

TOOLS (Type casting and ...)  (0) 2023.08.26
"A\0B\0C\0\0\0\0\0\0\0\0\0"  (0) 2023.04.08
시리얼 통신  (4) 2022.09.17
Access CC-LINK  (0) 2022.08.31
Install WINDOWS XP  (2) 2022.04.27
Comments