TI 시타라 AM335x 프로세서에서의 이더넷/IP (1)
  • 2014-03-14
  • 김창수 기자, cskim@elec4.co.kr
  • 글 | 비닛 로이(Vineet Roy) 소프트웨어 시스템 엔지니어 텍사스 인스트루먼트


효율적인 산업생산은 주로 산업자동화 시스템의 속도와 정확성, 신뢰도에 좌우된다. 특히 자동화기기간의 통신의 역할이 중요하다. 본고에서는 통신 프로토콜 중에 하나인 이더넷/IP를 중심으로 2회에 걸쳐 시타라 AM335x 프로세서 적용에 대하여 알아본다.

서론
이더넷/IP는 지난 30년 동안 IT 네트워킹의 세계를 지배해 온 IEEE 802.3 이더넷 표준에 기반한 산업 자동화 네트워킹 프로토콜이다. 다양한 비즈니스 애플리케이션에서 이더넷의 유례없는 성공에도 불구하고, 산업용 애플리케이션을 위한 수정이 필요한 이유는 표준 이더넷이 결정론적 프로토콜이 아니라 프로세스 제어와 모터 제어 같은 애플리케이션이 요구하는 실시간 동작을 보장하지 못하기 때문이다. IEEE 802.3 및 TCP/IP 프로토콜 수트와 완전 호환되는 이더넷/IP는 기업 서버는 물론 주요 타깃인 실시간 산업용 애플리케이션과도 원활한 통신이 가능하다. “이더넷/IP”에서 “IP”는 산업용 프로토콜(Industrial Protocol)을 의미한다. 공장 현장과 기업 사이에 통신 브릿지를 만들어주는 이더넷/IP는 생산 스케줄을 보다 효율적으로 관리하고 재고 비용을 최소화하고 그 밖의 비즈니스 중심의 기능들을 최적화 해준다. 2001년에 등장한 이더넷/IP는 ODVA(Open DeviceNet Vendor Association, Inc.)가 관리하고 있다. ODVA는 이더넷/IP 규격을 발표하고 적합성 테스트를 조율하는 일도 맡고 있다.
이더넷/IP는 상위 레이어 위치에 CIP(Common Industrial Protocol)를 구현하는 네트워크 프로토콜 계열의 일원이다. 이더넷/IP는 IEEE 802.3이 규정하고 있는 표준 이더넷에 구현된 CIP에 붙여지는 이름이다. CIP를 활용하는 다른 산업용 프로토콜로는 DeviceNet, ControlNet, CompoNet 등이 있다. 그림 1은 네 개 CIP 기반 프로토콜간의 관계와 그들이 공유하는 프로토콜 레이어들을 보여주고 있다. 여기에는 연결 관리, 데이터 관리 서비스, 객체 라이브러리, 다수의 이용 사례 프로파일 등이 포함되어 있다.



이더넷/IP 기술
실시간 네트워킹 환경을 만드는 CIP는 매체 독립적이고 연결에 기반한 객체 지향적 프로토콜로 제어, 안전, 동기화, 모션, 구성, 정보 등 공장 자동화를 위한 통신 서비스 세트 전부를 제공한다.  CIP는 전세계 수 백 곳의 벤더들이 지원하고 있어서 디바이스의 상호운용성이 광범위하다.
엄격한 적합성 프로그램 덕분에 CIP는 제조 기업 전반에 통일된 통신 아키텍처를 제공한다. 가장 흔히 언급되는 장점들은 다음과 같다:

일관된 I/O 제어의 통합, 디바이스 구성, 데이터 수집
복수 네트워크에서의 매끄러운 정보 흐름
브릿지 및 프록시에 관한 비용이나 복잡함 없이 멀티레이어 네트워크 구현
시스템 엔지니어링, 설치, 가동에 대한 투자 최소화
경쟁력 있는 가격과 낮은 통합 비용으로 베스트-오브-브리드(best-of-breed) 제품을 자유롭게 선택 가능 

그림 2는 표준 IEEE 802.3 및 TCP/IP 프로토콜 수트에서 CIP를 활용하여 멀티프로토콜 환경을 가능하게 해주는 이더넷/IP의 가치를 잘 보여주고 있다. 이더넷/IP는 표준 이더넷과 TCP/IP 기술을 사용하기 때문에 다른 애플리케이션 및 프로토콜과의 호환성과 공존을 확보할 수 있다.
통합과 상호작동성은 이더넷/IP에서 높은 우선순위를 차지하고 있다. 즉, 한 경로 이상을 취하여 구현할 수 있다는 뜻이다.



객체 지향적 프로그래밍 모델
애플리케이션의 소프트웨어 프로그래밍을 단순화하기 위해 CIP는 객체 모델을 채택하고 있다. 이 객체 모델에서 CIP 애플리케이션 레이어는 애플리케이션 객체 세트를 규정하고, 디바이스 프로파일로 공통 인터페이스 및 동작을 규정한다. 또한 CIP 통신 서비스는 서로 다른 CIP 네트워크 상에 있는 디바이스들간의 엔드-투-엔드 통신도 가능하게 해준다. 디바이스들간에 멀티벤더 상호작동성을 가능하게 하기 위해, 이더넷/IP는 CIP 통신 서비스를 이더넷과 TCP/IP에 맵핑하고 있다.
그림 3은 CIP 애플리케이션 레이어 내에서 디바이스가 객체 모델을 이용해 어떻게 표현되는지를 보여주고 있다. 기능적 관점에서 세 개 클래스의 객체들이 포함돼 있다. 이들이 전부 다 필요한 것은 아니다.

- 애플리케이션 객체들은 디바이스 데이터에 접근하고 표현하는 공통 방식을 규정한다.
- 네트워크 특정 객체는 이더넷/IP 특정 기능과 IP 주소 같은 파라미터 구성 방식을 규정한다.
- 통신 객체는 통신 연합을 조성하고 디바이스 데이터 및 서비스에 접근할 수 있는 수단이 된다.

디바이스 내에서, 관련 데이터 그룹과 데이터 관련 동작으로 인해 객체가 생성된다. CIP는 디바이스가 어떻게 기능하고 통신하는지 그 디바이스를 설명하고 고유의 신분을 설명하기 위해 특정 객체들을 필요로 한다.
필수 객체들 중에 아이덴티티 객체(Identity Object)라는 것이 있다. 이것은 정보(아이덴티티 데이터 값)를 담고 있거나 벤더 ID, 디바이스 유형, 디바이스 일련번호, 데이터 등의 속성을 담고 있다. CIP는 객체 데이터가 구현되는 방식은 지정하지 않는다. 그저 다른 CIP 디바이스에게 어떤 데이터 값이나 속성을 제공해야 하는지 요건만을 정하고 있을 뿐이다. 개발자는 애플리케이션 특정 기능과 벤더 특정 기능을 다루는 다른 객체들을 만들 수 있다. 그림 3에서 필수 객체들로는 아이덴티티 객체, 메시지 라우터 객체(이더넷 링크 객체), 네트워크 특정 객체 등이 있다.
애플리케이션 특정 객체는 디바이스에 의한 데이터 압축 방식을 규정하며, 디바이스 유형 및 기능에 특정된다. 예를 들어 입력 디바이스에는 속성을 통해 특정 입력 포인트의 값과 장애 상태를 설명하고 있는 입력 객체가 필요하다. 벤더 특정 객체는 선택사항이면서 미리 정의해 둔 디바이스 프로파일에 설명돼 있지 않은 서비스를 설명한다.
CIP 디바이스 내의 데이터를 처리하는데 동일한 객체 모델이 사용된다. 또한 객체 지향 프로그래밍 패러다임에 맞춰, 같은 유형의 컴포넌트를 나타내는 일련의 객체들이 하나의 객체 클래스를 구성한다. 한 디바이스 내에 동일 객체들의 복수 사본을 두는 것은 드문 일이 아니며, 이것을 가리켜 객체 인스턴스라고 한다. 객체 클래스의 모든 인스턴스는 같은 속성 세트를 가지게 되지만, 고유한 값 세트도 가지게 된다. 객체 인스턴스 또는 객체 클래스는 서비스를 제공하고 동작을 구현하는 속성들을 가지고 있다.



이더넷/IP 통신의 종류
표 1은 이더넷/IP가 정의한 두 가지 주요 통신, 명시(Explicit)와 암시(Implicit)로 이루어진 행렬이다. 이 행렬의 속성들은 모두 다 중요하지만, 시간이 중요하지 않은 정보 데이터나 실시간 I/O 데이터를 규정하고 있는 대표 용도 칸이 특히 중요하다.
명시적 메시징(Explicit Messaging)은 주로 디바이스들간의 요청/응답(또는 클라이언트/서버) 인터랙션을 의미한다. 이것은 비실시간 데이터에 사용되며, 여기에는(명시적으로 표현된) 메시지의 의미 설명이 포함되어 있다. 전송 효율은 떨어지지만 매우 탄력적이다. HMI(human-machine interface)를 통해 데이터를 수집하는데 사용할 수도 있고, 디바이스 프로그래밍 툴을 통해 사용할 수도 있다. 명시적 메시징에는 특정 객체의 서비스를 요청하는 일, 예컨대 읽기 요청이나 쓰기 요청이 수반된다. 이더넷/IP의 경우, 명시적 메시징은 TCP를 사용하기 때문에 앞서 CIP 연결을 수립하든 안 하든 명시적 메시징이 가능하다.
암시적 메시징(Implicit Messaging)은 시간이 무엇보다 중요한 통신에 사용된다. 종종 I/O 데이터라 불리기도 하는 암시적 메시징은 실시간 데이터 교환을 구현한다. 암시적 메시지에는 그 의미에 대한 정보가 거의 들어 있지 않기 때문에 전송이 보다 효율적이지만 명시적 메시지보다 탄력성은 떨어진다. 연합(“CIP 연결”)이 두 디바이스 사이에 수립되면, 미리 정해둔 트리거 메커니즘에 따라 암시적 메시지가 지정된 패킷 속도로 생성된다. 두 디바이스 모두 데이터 형식이 일치한다(예: 그 형식은 “암시”된다).



이더넷/IP 디바이스의 종류
디바이스가 지원하는 이더넷/IP 통신의 일반적 동작과 유형에 따라, 디바이스를 다음 중 하나로 분류할 수 있다. 디바이스 종류에는 네 가지가 있다:

- 명시적 메시지 서버(explicit message server)는 가장 단순한 유형이다. 이러한 디바이스는 명시적 메시지클라이언트가 착수한 요청에 응답을 한다. 명시적 메시지 서버의 예로 바코드 리더가 있다.
- 명시적 메시지 클라이언트(explicit message client)는 다른 디바이스와의 요청/응답 통신에 착수한다. 메시지 속도와 레이턴스 요건은 그렇게 엄격하게 실시간인 것은 아니다. 그 예로는 HMI 디바이스, 프로그래밍 툴, 제어 디바이스에서 데이터를 수집하는 PC 기반이나 리눅스 기반 애플리케이션 등이 있다.
- I/O 어댑터는 I/O 스캐너(아래 정의)의 암시적 통신 연결 요청을 수신한 후, I/O 데이터를 I/O 스캐너가 요청한 데이터 속도로 생성한다. I/O 어댑터는 단순한 디지털 입력 장치일 수도 있고, 모듈 방식 기압 밸브 시스템 같이 보다 복잡한 장치일 수도 있다.

명시적 메시지 서버로 기본 설정되어 있다. I/O 어댑터는 명시적 메시지를 이용해 어느 클래스의 디바이스와 피어 데이터를 교환할 수 있지만, 관계를 발생시키지는 못한다. I/O 어댑터 유형 디바이스의 예는 다음과 같다:

- PLC 및 기타 컨트롤러의 요청이 있을 때 실시간 데이터를 송수신하는 체중계, 용접기, 드라이브, 로봇
- 컴퓨터 인터페이스 카드, PLC 등과 서로 명시적 메시지를 송수신하는 체중계, 용접기, 드라이브, 로봇
- 명시적 또는 실시간 I/O 데이터를 PLC와 송수신하는 HMI 제품들
- I/O 스캐너는 I/O 어댑터와 암시적 통신에 착수한다. 이것은 어떤 연결 구성으로 I/O 어댑터 디바이스를 어떻게 구성할 것인지 같은 문제들을 다룬다. 프로그래머블 컨트롤러가 I/O 스캐너의 한 예이다.

그림 4는 메시징 옵션과 디바이스 종류간의 관계를 보여주고 있다. 디바이스 종류에 대한 예도 몇 가지 포함되어 있다. 다이어그램 상단의 제목(No I/O 데이터; I/O 서버; I/O 클라이언트)은 클라이언트/서버 역할과 암시적 메시징이 수반되는지 여부(수반되는 그 역할)를 언급한 것이다.
모든 이더넷/IP 디바이스는 최소한의 명시적 메시지 서버 기능을 가지고 있어야 간단한 디바이스 식별과 구성 요청에 응답을 할 수 있다(그림 4의 “CIP Minimum”). 명시적 메시지 서버 통신만 지원하는 디바이스와 통신을 하려면 명시적 메시지 클라이언트가 필요하다.
명시적 메시징이 적당한지, 암시적 메시징이 적당한지에 대한 파악은 통신의 성질에 좌우된다.  명시적 메시징은 구현하기 간편하지만 요청/응답 통신 같은 보통의 성능 요건에 더 잘 어울린다.  암시적 메시징은 고성능과 보다 결정론적 통신에 필요하다.  



OSI 모델
이더넷/IP의 프로토콜 레이어를 OSI(Open Systems Interconnection) 모델에 맵핑시킬 수 있다. OSI 모델은 통신 시스템을 추출 레이어로 분할하여 통신 시스템의 내부 기능들에 특징을 부여하고 이를 표준화한다. CIP가 데이터 링크 레이어, 네트워크 레이어, 이동 레이어를 어떻게 활용하고 있는지 파악하는 것이 무엇보다 중요한데, 그 이유는 이들이 CIP 메시징의 종류와 형식에 영향을 미치기 때문이다.

데이터 링크 레이어
IEEE의 802.3 규격은 이더넷/IP 데이터 링크 레이어의 디바이스에서 디바이스로 데이터 패킷을 전송하는데 사용된다. 동일한 이더넷 CSMA/CD 매체 액세스 메커니즘을 통해, 네트워크 연결된 디바이스들이 공통 버스를 공유하는 방식(예: 케이블)과 그들이 데이터 충돌을 감지하여 응답하는 방식이 결정된다.

네트워크 및 이동 레이어
네트워크 및 이동 레이어 위치에서 이더넷/IP는 TCP/IP 프로토콜 스위트를 메시징에 사용한다.  TCP/IP는, IEEE 규격에 부족한, 온전히 기능하는 네트워크를 구현하는데 필요한 통신 프로토콜 기능들을 제공한다.
모든 CIP 네트워크가 이용하는 메시지는 압축된다. 즉, 네트워크 상의 노드가 어떤 메시지를 이더넷 메시지에 데이터 부분으로 끼워 넣을 수 있다는 뜻이다. 그런 다음 노드는 해당 메시지 -내부에 메시지가 담긴 TCP/IP 프로토콜- 를 이더넷 칩(데이터 링크 레이어)로 전송한다.  TCP/IP를 이용해 이더넷/IP는 명시적 메시지를 전송할 수 있고, 이러한 명시적 메시지는 노드들간 클라이언트-서버 타입 트랜잭션을 수행하는데 이용된다.
실시간 메시징의 경우, 이더넷/IP는 UDP over IP를 이용해 목적지 주소 그룹에 멀티캐스트를 할 수 있고, I/O 데이터 전송(암시적 메시징)을 구현할 수 있다. 이 데이터 필드에는 프로토콜 정보는 없고 오직 실시간 I/O 데이터만 들어 있다. 이 데이터의 의미는 연결이 수립될 때 미리 정의되기 때문에, 프로세싱 시간이 최소화된다. UDP 메시지는 더 작아서 명시적 메시지보다 더 빨리 처리가 가능하지만, UDP는 연결이 없기 때문에 디바이스에서 디바이스로 데이터가 전송될 것이라는 보장은 없다. 그러나 CIP 연결 프로세스는 데이터 인도 문제를 탐지할 수 있는 타임아웃 메커니즘을 제공하고 있다. 이 기능은 믿을 수 있는 제어 시스템 성능에 필수적인 기능이다.
이더넷/IP는 두 가지 형식의 메시징을 사용한다:

- 부정기적이고 우선순위가 낮은 메시지의 경우 비연결 메시징. 이더넷/IP의 비연결 메시지는 TCP/IP 리소스를 이용해 이더넷에 메시지를 이동시킨다.
- 이더넷/IP의 연결 메시징은 특정 용도, 예컨대 잦은 명시적 메시지 트랜잭션이나 실시간 I/O 데이터 전송 같은 특정 용도를 전담하는 각 노드 내의 리소스를 활용한다.

연결을 개설하는 프로세스를 가리켜 연결 오리지네이션(Connection Origination)이라 하며, 그 연결 수립 요청에 착수하는 노드를 연결 오리지네이터(Connection Originator), 또는 그냥 오리지네이터라고 한다. 반대로 수립 요청에 응답하는 노드는 연결 타깃(Connection Target) 또는 타깃이라 한다.(다음호에 계속

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>



  •  홈페이지 보기
  •  트위터 보기
  •  페이스북 보기
  •  유투브 보기
  • 100자평 쓰기
  • 로그인

세미나/교육/전시
TOP