지금까지 DDE, SQL,OPC, Active-X를 비롯하여 각종 인터페이스 기술에 대해서 살펴보았다.
 이 인터페이스 기술들은 기존에 정리된 자료가 없어서인지 독자들에게 매우 좋은 호응을 얻었다.
 그런데 의외로 통신의 가장 기본이 되는 직렬 통신과 이더넷 통신의 개념이 아직 완벽하게 정리가 되어 있지 않아
 현장에서 통신이 두절되었을 때 그것을 신속하게 해결하지 못하고 고생하는 사람이 많이 있었다.
 그래서 이번 호에서는 통신의 가장 기본이 되는 직렬 통신과 이더넷 통신을 살펴봄으로써 통신의 이해를 돕고자 한다.

 

직렬 인터페이스란 모든 데이터들이 같은 통신선을
따라 한 비트가 보내지고 그 다음 한 비트가 보내지도록
된 인터페이스를 말한다.
대표적인 직렬 인터페이스는 RS-232C 표준
인터페이스이다.
기본적으로 컴퓨터는 직렬 인터페이스를 위해서
직렬 포트를 내장하고 있다.
우리는 이 직렬 포트로 통신할 때 RS-232C통신이라고
말하고 있다.
RS-232C는 미국 전자공업협회(EIA)에서 제정한
통신 인터페이스 규격 중의 하나이다.
이는 컴퓨터와 단말기, 프린터, 플로터, 모뎀 등의
각종 주변 장치를 연결하는데 주로 사용되며,
동기 또는 비동기의 직렬 통신 인터페이스를 정의한다.

   1. 케이블 결선

     직렬 통신을 하기 위해서는 컴퓨터에 내장된 직렬 포트를 통신하고자 하는 장비 케이블을 연결해야 한다.
     직렬 포트는 9핀 또는 25핀으로 구성되어 있는데 각 핀이 가지는 기능은 그림 1과 같다.
     그림 1은 각 핀의 기능만을 나타낼 뿐 아니라 어떤 컨버터를 연결해야 할 때의 결선도를 나타내고 있다.
     그리고 어떤 입출력 장치와 연결할 때는 그 제품과 같이 제공되는 결선도를 참조하여 연결하면 된다.

   2. RS232/485 컨버터의 사용

 

RS232/485 컨버터의 사용은 매우 보편화되어 있다.
RS-485는 통신 거리, 속도, 노이즈에 대해서 RS-232보다
월등히 뛰어나다.
특히 RS-232로는 멀티드롭 연결을 할 수 없으나
RS-485에서는 그것이 가능하다.
그림 2는 멀티드롭으로 연결된 구성 도를 나타낸다.

   3. DTE와 DCE

     보통의 사용자들은 DTE 장비와 DCE 장비를 구분 없이 사용하는 경향이 있다.
     물론 이 둘의 차이는 케이블의 결선 외에는 없다고 할 수 있다.
     하지만 간혹 혼동하는 경우가 있으니 여기서 정의하고 넘어가도록 하자.

 

(1) DTE(Data Terminal Equipment)

 이것은 궁극적으로 데이터의 자원이 되거나
 데이터를 처리하는 장치를 의미한다.
 컴퓨터와 PLC는 보통 DTE로 간주된다.

 (2) DCE(Data Communication Equipment)

 이것은 DTE와 물리적인 통신 연결 매체 사이의
 데이터를 전송하는 장치를 의미한다.
 일반적으로 데이터 전송 연결을 확립하고 유지하는
 역할을 한다.
 모뎀은 바로 DCE로 간주된다.
 가끔은 시스템을 제어하기 위해서 DCE장비를
 사용하는 경우도 있다.

     DCE 와 DTE의 차이점은 단지 TX(Transmit)와 RX(Receive) 핀에 있다.
     특별한 경우를 제외하고는 Citect에서 제공되는 결선도는 DTE를 기준으로 하고 있어야 한다.
     그리고 같은 케이블 DCE에도 사용하기 위해서는 단지 TX 와 RX만 바꾸어 연결하거나 또는
     다음 규칙을 따르면 된다.
     DTE -> DCE : DCE-RX를 DTE-RX로 연결, DCE-TX를 DTE-TX로 연결
     DTE -> DTE : DCE-RX를 DTE-TX로 연결, DCE-TX를 DCE-RX로 연결

   4. RS-232C(EIA-232C 또는 RS-232)의 통신 규격

     RS-232C는 가장 보편적인 직렬 통신 규격이다.
     이 통신 규격은 전기, 기계적인 통신 규격을 다루고는 있지만 프로토콜에 대해서는 언급이 전혀 없다.
     이 통신 규격은 전기 신호, 특성, 기계적인 접속(핀 연결) 그리고 제어 신호의 기능적인 설명 등을 결정하고 있다.
     RS-232C는 전이중 방식의 통신을 지원하며 대부분 3선만 있으면 가능하다. 그림 3은 DB-25 커넥터를 사용한
     예를 보여주고 있다.
     전송 속도 및 거리는 75m 이하에서는 최대 19.2K Baud rate로 통신이 가능하며 900m 이하에서는 900 Baud rate로
     통신이 가능하다. 일반적으로는 19.2K Baud rate로 20m 이내에서 많이 사용한다.

 

   5. RS-422(또는 EIA-422)의 통신 규격

     RS-422 은 RS-232C가 지원하지 못하는 여러 가지 사양이 지원된다.
     이 통신 규격은 전기, 기계적인 통신 규격만을 다루고 있다. 프로토콜에 대한 규정은 없지만 이 통신 규격을
     100%활용하고자할 때는 사용하는 프로토콜이 반드시 여러 개의 유니트에 대해서 어드레싱 하는 기능을 지원해야
     한다. RS-422의 특징을 살펴보면 다음과 같다.

 

① 신호의 차이를 이용하여(예를 들면,
    선간 전압 차이를 이용) 노이즈의 영향을
    덜 받게 만든다.

② 제한된 멀티드롭 통신 기능이 지원된다.
    이것은 하나의 라인에 하나의 데이터 전송
    객체(Transmitter)가 있고 수신 객체(Receiver)는
    여러 개가 있음을 의미한다.

③ RS-422는 전이중 방식의 통신을 지원하며
    각 방향으로 두선 그리고 접지 선으로 한 선이
    사용되어 모두 5선만 있으면 통신을 할 수 있다.
    그림 4는 DB-9 커넥터를 사용한 예를 나타낸다.

      
      ④ 전송 거리 및 속도

         이상적인 경우에 최장 전송 거리는 1200m이고 최대 전송 속도는 10Mbps까지 가능하다.

      ⑤ 이 통신 규격에 대한 프로토콜은 데이터를 전송할 수 있는 권한이
          한번에 하나씩 할당되도록 고려되어야 한다.

 

   6. RS-485(또는 EIA-485)의 통신 규격

     RS-485는 RS-422이 확장된 버전이다. 이 통신 규격은 전기 신호의 특성과 제어 신호에 대한 기능만 규정하고 있다.
     프로토콜에 대한 규정은 없지만 이 통신 규격을 100% 활용하고자 할 때는, 사용하는 프로토콜이 반드시 여러 개의
     유닛에 대해서 어드레싱과 버스 제어 기능을 지원해야 한다. 이 통신 규격의 가장 큰 장점은 모든 장치들이 같은
     라인에서 데이터를 전송 및 수신을 할 수 있다는 것이다. RS-485의 특징을 살펴보면 다음과 같다.

 

① 전기적으로는 RS-422과 거의 비슷하다.
    논리수준, 데이터 전송 속도, 최장 거리 등의 사양은
    거의 동일하다.

② RS-485는 각 라인마다 여러 개의 트랜스미터와
    리시버를 설치할 수 있다.

③ RS-485는 반이중 방식과 전이중 방식의 통신을
    모두 지원하며 각 방향에 대해서는 두 선이 사용되고
    접지선으로 한 선이 사용된다.
    RS-422과는 달리 반이중 통신을 할 때는 3선이면
    가능하며 전이중 통신을 할 때는 5선이 필요하다.
    그림 5는 DB-9 커넥터를 사용하여 전이중 방식으로
    구성한 예를 나타낸다.
    만약 반이중 방식으로 구성한다면 단지 한 쌍의
    데이터 전송 라인만 있으면 된다.

      ④ 이 통신 규격에 대한 프로토콜은 데이터를 전송할 수 있는 권한이 한번에 하나씩 할당되도록 고려되어야
          한다.

 이더넷(Ethernet)은 1976년 제록스사의 멧캘프(Metcalfe)와 보그(Boggs)에 의해 개발된 네트워크 시스템이다.
 이 시스템을 간단하게 설명하면 각 국(station)을 동축케이블을 사용하여 연결하고 맨체스터 코딩 방식을 사용하며
 속도는 10Mbps 정도인 고속 네트워크 방식이다.
 주로 고속의 근거리 통신망(LAN, Local Area Network)에 사용되며 케이블의 길이는 약 2.5km까지 연장될 수 있다.
 이더넷 네트워크 통신에 대한 내용은 매우 방대하다. 그래서 이 지면에서 다 설명하기는 어려울 것 같다.
 대신 가장 많이 사용하는 TCP/IP를 중심으로 설명하도록 하겠다.
 TCP/IP(Transmission Control Protocol/Internet Protocol)는 WAN(Wide Area Network) 시스템을 위하여 설계된산업
 표준 프로토콜이다.
 원래 이 프로토콜은 미국방성에서 구축한 전산망인 아르파넷(ARPANET)의 전송 계층에서 사용되는 이름이었는데,
 현재 대부분의 네트워크 시스템에서 기본 프로토콜로 가장 많이 사용되고 있으며 인터넷
 또는 다른 시스템의 연결을 위해서도 사용된다.
 이 프로토콜은 이더넷 카드와 케이블을 통하여 데이터를 전송하며 NetBEUI와 같은 다른 네트워크 프로토콜과도
 같이 사용할 수 있다.
 TCP/IP 프로토콜은 윈도 운영 시스템에서 설정할 수 있으며 그 설치는 다음과 같이 세 단계로 구성된다.

 ① IP 주소 할당
 ② TCP/IP 설치와 환경 설정
 ③ TCP/IP 통신 테스트

   1. IP 주소의 이해

     각각의 TCP/IP 호스트는 논리적인 IP 주소에 의해서 구분된다.
     TCP/IP를 사용하여 통신하는 호스트와 네트워크 구성 요소들은 고유한 IP 주소를 가져야 한다.
     각각의 IP 주소는 네 개의 필드로 구성되며 0부터 255까지의 번호를 사용할 수 있고 마침 표로 구분된다.
     (IP 주소의 형식 : w.x.y.z).
     예를 들면, 131.107.3.24처럼 쓸 수 있다.
     각각의 주소는 내트워크 ID와 호스트 ID로 나뉘어진다.
     네트워크 ID는 같은 물리적인 네트워크에 있는 TCP/IP 호스트를 구분한다.
     주소의 계층은 표1과 같이 주소의 어느 비트들이 네트워크 ID로 사용될 것인지를 정의한다.
     각각의 호스트는 단일 세그먼트 네트워크라 할지라도 IP 주소 외에 서브넷 마스크를 가져야 한다.
     그 주소 형식은 IP 주소 형식과 동일하다. 서브넷 마스크는 호스트 ID로부터 네트 워크 ID를 구별하고 호스트가
     로컬인지 리모트인지 지정하기 위해서 사용된다.

   2. TCP/IP의 설치와 환경 설정

계 층

IP 주소

네트워크 ID

호스트 ID

A

w,x,y,z

w

x,y,z

B

w,x,y,z

w,x

y,z

C

w,x,y,z

w,x,y

z

     네트워크를 사용하기 위해서는 네트워크 환경에 맞추어 TCP/IP 프로토콜을 설치하고 설정을 맞추어야 한다.

     (1) Win95에서의 설치 방법

      ① 시작-설정-제어판을 선택한다.
      ② 네트워크를 연다.
      ③ 네트워크 팝업 창에서 네트워크 구성 탭 메뉴를 선택한다.
      ④ 추가 버튼을 선택한다.
      ⑤ 목록에서 프로토콜을 선택하고 추가 버튼을 클릭한다.
      ⑥ 공급자 목록에서 Microsoft를 선택하고 프로토콜 리스트에서 TCP/IP를 선택하고 확인 버튼을 누른다.
      ⑦ 설정이 끝나면 네트워크 팝업 화면으로 돌아가 네트워크 구성 탭 메뉴를 선택하고
          목록에서 TCP/IP 프로토콜을 선택한다.
      ⑧ TCP/IP 팝업 창에서 IP주소 탭 메뉴를 선택한다.
      ⑨ 할당된 IP 주소 사용을 선택한다.
      ⑩ 설정한 IP 주소와 서브넷 마스크 값을 입력한다.
      ⑪ 확인 버튼을 누르고 다시 확인 버튼을 눌러서 네트워크 팝업 창을 닫는다.
      ⑫ 시스템을 다시 기동한다.

     (2) NT Version 4.00에서의 설치 방법

      ① 시작-설정-제어판을 선택한다.
      ② 네트워크를 연다.
      ③ 네트워크 팝업 창에서 프로토콜 탭 메뉴를 선택한다.
      ④ 추가를 선택한다.
      ⑤ 목록에서 프로토콜을 선택하고 추가 클릭한다.
      ⑥ 공급자 목록에서 Microsoft를 선택하고 프로토콜 리스트에서 TCP/IP를 선택하고 확인 버튼을 누른다.
      ⑦ 설정이 끝나면 네트워크 팝업 화면으로 돌아가 프로토콜 탭 메뉴를 선택하고 목록에서 TCP/IP 프로토콜을
          선택한다. 그리고 등록 정보 버튼을 누른다.
      ⑧ TCP/IP 팝업 창에서 IP주소 탭 메뉴를 선택한다.
      ⑨ IP 주소 지정을 선택한다.
      ⑩ 설정한 IP 주소와 서브넷 마스크 값을 입력한다.
      ⑪ 확인 버튼을 누르고 다시 확인 버튼을 눌러서 네트워크 팝업 창을 닫는다.
      ⑫ 시스템을 다시 가동한다.

   3. TCP/IP 테스트

     이더넷 통신을 하는 경우에는 Citect으로 네트워크 통신을 하기 전에 반드시 TCP/IP 네트워크 통신 테스트를
     해봐야 한다. 이것으로 논리적인 오류를 찾을 수 있다.
     가장 일반적으로는 ‘PING'이라는 명령어가 사용된다. PING은 TCP/IP 드라이버를 테스트하는데 사용되는
     유틸리티이다.
     PING 명령은 MS-DOS에서 실행된다. PING 테스트는 다음과 같이 한다.

     (1) 루프백 테스트

      먼저 도스 창을 연 다음, 예를 들어 ping 127.0.0.1를 입력하고 엔터키를 누른다. 만약 ping이 성공하면
      다음과 같은 메시지가 표시된다.

         Pinging IP_address with 32 bytes of data :
         Reply from IP_address : bytes=x time<10ms TTL=x
         Reply from IP_address : bytes=x time<10ms TTL=x
         Reply from IP_address : bytes=x time<10ms TTL=x
         Reply from IP_address : bytes=x time<10ms TTL=x

     (2) 로컬 호스트 테스트

         ping IP_address를 입력한다.
         여기서 IP_address는 웍스테이션의 IP 주소이다.
         만약 ping이 성공하면 위와 비슷한 메시지가 표시된다.

     (3) 리모트 호스트 테스트

         ping IP_address를 입력한다.
         여기서 IP_address는 호스트의 IP 주소이다. (예를 들면, PLC의 IP 주소).
         만약 ping이 성공하면 위와 비슷한 메시지가 표시된다.
         위의 모든 단계의 테스트가 완료되면 드라이버는 정상적으로 설치가 된 것이다.

 지금까지는 직렬 통신과 이더넷 통신에 대한 내용을 알아보았는데 이는 하드웨어에 대한 내용이고
 두 시스템이 통신하기 위해서는 소프트웨어적으로 프로토콜이라는 것을 맞춰주어야 한다.
 많은 사람들이 두 시스템이 TCP/IP를 지원하면 바로 통신이 되는 것으로 생각하는데 사실은 그렇지 않다.
 프로토콜(Protocol)이란 컴퓨터 시스템 사이의 정보 교환을 관리하는 규칙 또는 규약의 집합을 말한다.
 이는 특히 데이터 통신에서 매우 중요하게 사용되는데 이러한 약속에는 상대방의 호출 및 답신, 통신신의 연결 및 단절,
 메시지의 블록화 형식, 오류 발생기의 처리 방법, 각종 코드 변환 등이 포함된다.
 프로토콜은 그 자체만으로는 어떤 소프트웨어나 하드웨어가 아니고 단지 약속일 뿐이다.
 이 약속에 맞추어 두 시스템이 맞춰주는 작업을 해야하는데 프로토콜은 그 수준에 따라 여러 가지로 나뉜다.
 대표적으로 참조되는 것은 국제 표준화 기구(ISO)에서 정한 OSI 7계층 모델이다.
 ISO OSI모델은 개방형 시스템간 상호연결(Open System Interconnection)의 준말로 ISO가 작성한
 데이터 통신 및 컴퓨터 네트워크용 프로토콜의 표준 모형이다.
 종래의 통신 프로토콜에 대한 표준화와는 달리 부분적, 개별적인 프로토콜이 아니라
 새로운 통신 서비스의 기능 추가, 광통신 및 위성 통신 등의 새로운 기술 도입에 대응할 수 있는 확장성, 광범위한
 통신망과의 적응성을 확보하려는 목적에 시스템간의 상호접속에 대한 대폭적인 개방성을 갖는 규정을 하고 있다.
 이는 다음과 같이 모두 7계층으로 구성되어 있다.

 ① 물리 계층(physical layer)
    전송 매체를 통해 비트열을 전송하는 층으로 정보 단위를 전기적으로 실제 전송한다.

 ② 데이터 링크 계층(data link layer)
    인접한 두 장치간에 데이터 전송을 담당한다.

 ③ 네트워크 계층(network layer)
    시스템간의 경로 선택과 중계기능을 제공한다. 이 계층의 프로토콜로는 CCITT권고 X.25가 대표적이다.

 ④ 전송 계층(transport layer)
    하위 계층을 이루고 있는 계층이 각종 통신망의 서비스 차이나 속성에 의존하는 것을 극복하여 논리적인 차이나 속성에
    의존하는 것을 극복하여 논리적 안정성과 균일한 데이터 전송 서비스를 제공한다.

 ⑤ 작업 계층(session layer)
     응용 프로세서간의 송신권 및 동기제어를 행한다.

 ⑥ 표시 계층(presentatio layer)
     정보를 공통의 전송형식으로 변환하고 암호와 또는 데이터의 압축  등을 행하는 형식 설정과 코드 변환을 한다.

 ⑦ 응용 계층(application layer)
     응용 프로세서간의 정보 전달을 담당한다.

 Citect에서 입출력 장치와 통신하기 위한 통신 설정에 대해서는 ‘제3회 Citect의 시스템 정의 및 성능의 고려’에서
 아주 상세하게 설명하였기 때문에 여기서는 생략하도록 하겠다.
 Citect은 통신 포트 도는 통신 데이터 하이웨이를 지원하는 어떤 입출력 장치와도 통신이 가능하다.
 예를 들면 PLC, 루프 제어기, 바코드 입력기, 분석기, RTU 그리고 DCS 등이 있다. 이들 입출력 장치와 Citect은
 아래의 4가지 방법으로 통신을 할 수 있다.

 ① 직렬 통신
 ② 네트워크(이더넷) 통신
 ③ 메이커에서 지원하는 전용 통신
 ④ 각종 인터페이스 방법(DDE, API, OPC, ODBC등)에 의한 통신

 이런 통신에 사용되는 Citect 드라이버는 단순히 통신만을 목표로 하는 것이 아니라
 최고의 성능과 안정화를 목표로 하여 개발이 되었으며 이를 위해 Ci Technologies사 자체적으로
 드라이버 QA(Quality & Accreditation) 시스템(CiTDriversQA96)을 운영하고 있다.
 이것으로 직렬 통신과 이더넷 통신에 대한 설명을 마치고자 한다. 다소 미흡하지만 그래도 이렇게 정리하는 것이
 사용자들에게 도움이 될 것 같다. 그리고 현장에서도 통신 문제가 발생했을 때 다소나마 도움이 되기를 바란다.