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

RS-232 Serial 통신-1 본문

진공/노하우

RS-232 Serial 통신-1

하이백 2019. 6. 4. 21:22

RS-232란?

위키백과의 RS-232 (Recommended Standard 232)
https://ko.wikipedia.org/wiki/RS-232

RS-232 통신은 3 가닥의 선으로 데이터를 주고받을 수 있는 가장 간단한 하드웨어를 가진 통신 방식이다. 상대적으로 느린 통신 속도를 가지면서도 아직까지 많은 장치에서 선호하는 방식이다. 

RS-232 통신은 통신은 요즘 소켓 통신에서 기본으로 하는 서버, 클라이언트 통신 방식과 같다. 통신을 하고자 하는 장치를 서버로 보고 나를 클라이언트로 하여 서버에 계속 묻고 명령을 전하면 된다.   

묻는 방식 즉 통신 프로토콜을 확인하고 이 절차에 따라 장치에 명령을 보내면 매뉴얼에 명시된 대로 회신을 보내온다. 이를 parsing 하여 원하는 값을 가져오면 된다.

소켓 통신에서는 IP Adddress와 Port no를 설정하고 포트 오픈하듯이 RS-232 통신에서는 COM Port no, Baudrete, Data bit, Stop bit, Parity bit 값을 설정하고 포트를 오픈한 후 지정된 명령어를 전송하면 해당 명령의 결과를 회신받을 수 있다. 

명령을 통하여 장치에 지정된 기능을 설정하고 필요한 값을 읽어올수 있으며 컨트롤러 자체의 패널 화면의 제어가 가능하여 컨트롤러가  제공하는 모든 기능을 통신을 통하여 원격 제어할 수 있다.

RS232 통신 포트는 데스크 탑 PC에는 기본으로 내장 되어 있으며 필요한 경우 시리얼 포트가 여러 개 달린 멀티 포트를 추가로 설치할 수 있다. USB로 변화되어 제공되는 Convert타입도 있어 최신 노트북 등 RS-232 포트가 없이 USB만 제공되는 경우 Convert 타입의 시리얼 장치를 사용하는 것이 효율적이다.

시리얼 통신의 단점인 느린 통신 속도와 1:1 통신만 지원하는 지원하는 단점으로 인하여 USB, EtherNet 등으로 대체되고 있으나 아직도 많은 장치들이 시리얼 통신을 기본으로 제공하고 있으며 통신 방식도 간단하여 아직도 많은 곳에서 사용된다.  

RS-232 통신은 장치와 장치간의 1:1 통신을 기본으로 하고 있다. RS-232 통신포트 하나에 하나의 장치만 연결할 수 있다. 통신을 요하는 장치가 여러 개인 경우 통신 포트를 장치수만큼 추가하여야 한다. 이러한 단점을 보완하기 위하여 RS-422, RS-485의 통신 방식이 있다. 

주로 장치가 서버 역활을 하며 PC에서 묻는 값을 장치가 회신해 주는 형태로 통신이 이루어진다. 혹시 발생할지 모르는 Noise나 Voltage drop 등을 대체하기 위하여 통신하는 문자열에 Header, tail, check sum 등을 추가하여 명령의 규격을 구성하여 이 값이 상이한 경우 재전송을 하는 등의 Recovery 기능을 가지기도 한다.

상대방의 통신 환경은 고정 형태로 구성되어 있어 환경 값을 변경하기 위해서는 해당 장치 업체에서 제공하는 별도의 유틸리티 프로그램이 필요한 경우가 있다.

여기서는 실제로 RS-232 통신을 테스트 해 보려 한다.
준비한 부품은 다음과 같다.

  • RS-232 포트가 있는 PC
  • 통신할 장치와 통신 메뉴얼
  • RS-232 통신 테스트 프로그램

 

1. RS-232 PORT

데스크 탑 PC를 사용하는 경우에는 아래와 같이 직렬포트를 사용하여 바로 통신을 시도하면 되고 노트북을 사용하는 경우 요즘에는 해당 포트가 없는 경우가 대부분이라 USB-RS232 컨버터가 필요하다.

이 USB-RS232 컨버터는 최초 연결 시 드라이버를 필요로 하는 경우가 있어 인터넷이 되는 곳이나 드라이버를 미리 다운로드하여 연결 테스트를 진행하여야 한다. 인터넷이 안 되는 현장에서 바로 연결하는 경우 간혹 드라이버가 없어 테스트를 진행하지 못하는 경우가 간혹 발생한다. 

데스크탑용 외부 연결용 커넥터. 직렬포트가 RS-232용 통신 포트이다.

 

USB 포트를 RS232 Converter

2. 통신할 장치와 통신 매뉴얼

간단히 테스트를 진행할 장치로 영문 글자 표시가 가능한 LCD Display를 준비하였다. RS-232 통신은 송신과 수신이 가능한 통신 방식인데 이 장치는 데이터를 송, 수신 장치는 아니고 장치에 송신만 가능하며 송신된 문자가 화면에 표시하는 기능을 가진다.

보통의 시리얼 장치는 장치가 서버가 되어 묻는 값을 회신하거나 특정값을 장치에 설정하고 그 결과는 회신하게 된다.

RS-232 Serial 통신이 가능한 LCD Charactor display
통신을 위한 통신 명령 메뉴얼

시작 문자와 종료 문자는 ASCII Table에 보면 STX, ETX 등으로 이미 정의돼있으나 여기서 사용하는 명령 매뉴얼을 보면 헤더 문자는 "$"이고  종료 문자는 <CR>이며 check sum은 없다.

Check sum은 CRC(Cycle Redundancy Check)를 찾아보면 표준화된 계산 방식으로 많은 예제를 확인할 수 있다. 장치에서 CRC코드를 보내면 받은 쪽에서 이를 다시 계산해서 보내온 CRC와 같으면 중간의 데이터가 이상이 없음을 확인해 주는 것이고 다르다면 중간에 노이즈 등으로 데이터 값에 이상이 생긴 것으로 해당 값을 다시 받아야 할 것이다. 

위에서 확인한 명령의 포맷은  $COMMAND [, 옵션 1] [, 옵션 2] <CR>이다.

이 장치는 8개의 기능을 가지는 명령어를 제공한다. 초기화, 화면 클리어, 커서 위치, 백라이트 등 제공되는 기능은 8개이나 이를 기반으로 응용 프로그램에서는 몇 개의 명령어를 묶어 기능을 구현하게 될 것이다. 조금 아쉬운 것은 가지고 있는 시리얼 장치를 이것뿐이라 회신을 받아 처리한 부분을 구현할 수가 없다.

온도계의 값을 받아 계속 표시하는 기능을 구현하고자 한다면 Thread를 구성하여 연결되어 있는 동안은 계속 온도 값을 묻고 받은 회신에서 온도를 계산하여 계산된 최신 값으로 업데이트하여야 한다.

통신 케이블의 연결을 위한 하드웨어 구성표
RS-232 통신을 위한 핀 맵

 

3. 미리 통신 상태를 테스트해볼 통신 프로그램 

J1C라는 프로그램을 이용하여 장치와의 통신을 미리 확인해 볼 수 있다. 이렇게 하는 이유는 RS-232 통신이 3개의 선으로 통신을 하는 아주 간단한 방식이기는 하나 RS-232 포트 자체, 컨버터, 케이블 오 배선 등 실제로 통신을 시도하지 않으면 외부에서 확인이 불가능한 경우가 많기 때문이다.

사용해본 테스트 프로그램 중에서 가볍고 필요한 기능은 거의 준비된 아주 우수한 프로그램이다.
http://www.j1lab.com/ 사이트에서 다운로드할 수 있다. 

 


이어지는 다음 글은 아래에......

hivac.tistory.com/12?category=808034

 

RS-232 Serial 통신-2

이제는 실제 케이블을 연결해 통신 테스트를 해 볼것이다. 테스트 순서는 다음과 같다. 장치 전원 연결 통신 케이블 연결 통신 테스트 프로그램 설정 통신테스트 1. 장치 전원 연결 RS-232 Serial 통

hivac.tistory.com

 

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

PC에서 PLC ACCESS 하기 (2)  (16) 2019.12.02
PC에서 PLC ACCESS 하기 (1)  (13) 2019.09.19
RS-232 Serial 통신-3  (0) 2019.06.25
RS-232 Serial 통신-2  (0) 2019.06.19
산업용 설비 PC 제어 프로그램 관리하기  (7) 2018.10.24
Comments