상세 컨텐츠

본문 제목

EtherCAT 동작원리 및 임베디드 시스템의 EtherCAT 활용

기술자료

by 잡기장 2022. 12. 17. 23:23

본문

 

 

EtherCAT 이란

EtherCAT은 Ethernet for Control Automation Technology의 약자로 Ethernet 통신 기반의 산업 제어 시스템을 위한 필드버스 시스템이다. 산업용으로 사용되고 있는 필드버스에는 Profinet, EtherNET/IP, DeviceNET, PowerLink, Modbus/TCP등의 다양한 종류가 있다. 그 중에서도 EtherCAT은 2003년 독일 BECKHOFF사에서 공개하였으며 2007년에 IEC(International Electrotechnical Commission)에 의해 국제표준 필드버스로 등재되었고 누구나 개발이 가능한 Open Industrial Ethernet Solution으로 공개되었다.

 

 

EtherCAT 특징

EtherCAT의 아래와 같은 장점들은 산업에서의 솔루션 채택으로 이어졌으며  다양한 산업 및 장비 제조사에서 많이 사용되며 급격한 성장세를 보이고 있다. 

  1. EtherCAT은 표준 Ethernet Frame(IEEE 802.3)을 지원하며 Cat5이상의 FTP, STP Cable(RJ45 connector)를 사용하여 연결할 수 있다.
  2. EtherCAT은 Ring Topology, Star Topology, Daisy Chain등 다양한 Topology를 지원하며 최대 65535개의 Node까지 하나의 라인 구조로 연결할 수 있어서 광범위하게 본산되어 있는 어플리케이션에 유리하다.
  3. EtherCAT의 큰 장점은 Ethernet Frame 처리속도가 빠르기 때문에 고속의 Data 통신을 보장한다. 이론적으로 서보 모터 100개의 동작을 100us 이내에 처리할 수 있고 12,000 Digtal I/O를 350us 이내에 통신할 수 있다. 이러한 고속 Data 통신 속도는 고속 정밀 모션 제어와 실시간 모니터링 시스템 구현에 사용할 수 있다.

EtherCAT Ring Topology network

 

 

EtherCAT 동작원리

각 장치는 EtherCAT Frame을 런타임에 읽고 쓴다. 해당 과정에서 Slave Node는 개별 비트 또는 더 큰 데이터 패킷을 EtherCAT Frame에서 가져오거나 삽입할 수 있다. 

 

EtherCAT 패킷구성

EtherCAT은 IEEE 802.3 표준 Ethernet Frame을 사용하며 데이터는 40~1498byte를 사용할 수 있으며 EtherCAT은  Ethernet Frame의 EtherType 필드의 Identifier(0x88A4)로 구분된다.

 

EtherCAT Datagram 구성

EtherCAT의 통신 방식은 Master Node에서 각 Slave Node를 통과하는 초기 Datagram을 Ethernet Frame에 실어서 전달한다. 각 Slave Node는 수신한 Datagram을 설정된 동작에 의해 처리하고 다음 Node로 전달하면 마지막 Node는 Datagram을 Full Duplex(양방향 전송) 기능을 사용하여 마스터로 재전달한다. 최종적으로 Master Node에서 Slave Node로 전송한 Datagram은 모든 Node의 처리를 거쳐 Master Node로 돌아오게 된다.

 

아래는 Datagram Header에 포함되는 EtherCAT의 총 14개 표준 명령어 코드이다.

 

Working Count(WKC)는 Datagram에 포함되어 Slave Node에서 명령어가 처리되었는지 확인하는데 사용된다. Slave Node에서 명령어가 처리될때마다 해당 Datagram의 WKC 값을 조정하여 최종적으로 Master Node는 몇번의 명령어 처리가 이루어졌는지 확인할 수 있다.

 

EtherCAT Node 주소체계

EtherCAT 통신을 위해 Slave Node 주소를 32bit로 정의하고 있으며 사용하는 주소 타입은 Position Addressing, Node Addressing, Logical Addressing, Broadcasting으로 총 4개가 있다. Slave Node는 복수개의 주소를 갖으며 Master Node의 엑세스 목적에 따라 각기 다르게 사용된다.

  1. Positioning Addessing
    EtherCAT 시스템을 시작할 때 Slave Node를 스캔하며 새로 추가된 Slave Node를 감지하는데도 사용된다.
  2. Node Addressing
    해당 주소는 Master Node에 의해 할당되며 Slave Node에서는 변경할 수 없다. 일반적으로 이미 식별된 개별 Slave Node에 대한 레지스터 엑세스에 사용된다. 
  3. Logical Addressing
    모든 Slave Node는 동일한 주소 범위에서 Datagram을 읽고 쓴다. 따라서 각 Slave Node는 맵핑 장치(FMMU)를 사용하여 한개 이상의 Logical Address를 메모리 영역과 맵핑하여 불필요한 데이터 엑세스를 줄인다.
  4. Broadcasting
    Master Node에서 모든 Slave Node를 엑세스하는데 사용된다.

 

분산 클럭 동기화

EtherCAT은 다수의 서보 축들을 조화롭게 움직여야 하는 어플리케이션등에 많이 활용되므로 정확한 동기화가 요구되며 EtherCAT은 이를 위해 분산 클럭을 사용하여 통신 시스템내에서 Jitter(흔들림)에 대한 처리까지도 포함한 Node 동기화를 진행한다. 모든 Slave Node에서 동작되는 클럭은 네트워크상의 동일한 시간을 기준으로 Node간 동기 이벤트를 생성한다. 주기적으로 전송되는 EtherCAT Frame을 기준으로 동기화 이벤트가 발생하게되고 이를 통해 각 Node의 클럭이 업데이트 된다.

 

기준 클럭으로부터 보내진 시간이 슬레이브 노드에 의해 지연되는 경우 동기성 및 동시성을 보장하기 위해 모든 노드들은 같은 시간 정보를 공유하며 동시에 출력 신호를 만들어 낼 수 있도록 각 노드들의 로컬 클럭을 조정할 수 있다. 경우에 따라서 Master Node에서 구현된 Frame 전송이 Jitter에 의해 늦게 전송되면 Slave Node 동기화 설정에 의해 이벤트가 누락된 카운터가 증가한다. 이 값이 임계값을 초과할 경우 Master Node는 이를 알리고 관리할 수 있다.

 

 

사용자 개발을 위한 리소스

EtherCAT은 누구나 개발이 가능한 Open Industrial Ethernet Solution으로 공개되어 있으며 특별히, Open EtherCAT Society 그룹은 C언어 기반의 SOEM(Simple Open EtherCAT Master)와 SOES(Simple Open EtherCAT Slave) 라이브러리 및 메뉴얼을 제공하고 있다. 해당 라이브러리는 EtherCAT 칩 제조회사인 Microchip, Infineon, Freescale등의 제품에 호환되어 검증되었다. 자세한 정보는 아래의 웹페이지 및 깃허브를 통해 확인할 수 있다. 

웹페이지: https://openethercatsociety.github.io/

깃허브 레포지토리:  https://github.com/OpenEtherCATsociety

 

Open EtherCAT Society: Home of SOEM and SOES

Open EtherCAT Society Welcome to the Open EtherCAT Society Supported by rt-labs and Speciaal Machinefabriek Ketels Read more about us at http://www.rt-labs.com and http://www.smfk.nl If you have questions regarding our products, please send an e-mail to op

openethercatsociety.github.io

 

PHY supprted EtherCAT

EtherCAT 개발을 위해서는 EtherCAT Slave Controller(ESC)에서 요구되는 기능을 제공하는 PHY를 선정해야한다. 하기의 내용은 BECKHOFF에서 권장하는 EtherCAT 프로토콜에서 요구되는 PHY 기능이다. 모든 10/100 Base-T PHY칩이 EtherCAT 동작에 fully 호환되는 것은 아니다. EtherCAT supported PHY 칩은 datasheet에 대부분 명기되어 있다.

https://download.beckhoff.com/download/document/io/ethercat-development-products/an_phy_selection_guidev2.6.pdf

 

PHY selection guide
EtherCAT 기능을 지원하는 칩밴더(Microchip) 제품
EtherCAT 기능을 제공하는 칩벤더(Realtek, Renesas, STM) 제품

 

EtherCAT 관련 제품 및 플랫폼 기반 하드웨어 솔루션

EtherCAT Technology Group은 EtherCAT 상용 제품들를 제품 타입(Master system, Slace devices, Development system/tools, ..)에 따라 분류하고 정보를 제공하고 있어 사용자가 필요한 제품을 쉽게 찾을 수 있다.

https://www.ethercat.org/en/products.html

 

몇몇 EtherCAT 솔루션 업체들은 플랫폼 하드웨어 보드를 기반으로 EtherCAT 라이브러리 및 사용 예제를 제공하고 있다.  사용자는 오픈소스로 제공되는 EtherCAT 라이브러리를 사용하여 완제품 형태가 아닌 플랫폼 기반의 사용자 커스텀 솔루션을 개발할 수 있다. 아래 링크를 통해 STM, Arduino, Raspberry Pi 기반의 EtherCAT 하드웨어 제품 및 사용자 코드를 참조할 수 있다.

 

Esmacat

자체 EtherCAT Slave 쉴드 제품으로 STM, Arduino 플랫폼 보드 기반의 라이브러리 및 사용자 코드 제공

https://www.esmacat.com/tutorials

 

EasyCAT Shield/HAT

아두이노 플랫폼 보드 및 Raspberry Pi 보드 기반의 EtherCAT Slave Shield와 HAT 제품으로 다양한 사용자 코드 및 프로젝트 제공

http://www.easycatshield.com/

 

Hilscher Fieldbus solution

Hilscher는 자체 SoC 솔루션을 기반으로 거의 모든 Fieldbus 프로토콜을 지원하며 플랫폼 보드 기반의 쉴드 제품도 있음

https://kb.hilscher.com/pages/viewpage.action?pageId=71369521 

 

 

오픈소스를 활용한 EtherCAT 프로젝트

위에서 소개한 Open EtherCAT Society 그룹이 제공하는 SOEM 및 SOES 라이브러리와 소프트웨어가 제공되는 다양한 EtherCAT 하드웨어 제품을 통해 사용자들은 자신만의 EtherCAT 솔루션을 구축할 수 있다. 다만, EtherCAT Slave node의 경우는 Ethernet chip 및 하드웨어 스팩에 의존되는 Slave 기능이 부분적으로 있기 때문에 Slave node 전용제품을 활용하여 구축한 사용 예들이 많다.

아래에는 이러한 조건들을 기반으로 사용자가 직접 제작한 EtherCAT 사례들 및 그 특징을 소개한다.

 

1) ESP32 EtherCAT WiFi

ESP32 Development 보드를 기반으로 오픈소스를 활용하여 EtherCAT Master를 구현하였다. 사용자는 PC를 ESP32와 Wi-Fi로 연결하고 PC에서 원하는 동작을 입력하여 ESP32를 통해 EtherCAT Slave node가 동작하도록 구성하였다. EtherCAT Slave node는 총2개로 Ring topology로 구성되어 있으며 각기 가변저항기와 서보모터의 신호 입력 및 출력한다.

 

하드웨어 구성

오픈소스

시스템구성

출처: ESP32 EtherCAT WiFi (wiznet.io)

 

2) Raspberry Pi EtherCAT Master (PiCAT)

Raspberry Pi 기반의   EtherCAT Master 튜토리얼 프로젝트이다. Slave node는 Infineon사의 EtherCAT EVB를 사용했다. 오픈소스를 기반으로 작성되었으며 테스트 툴에 대한 가이드까지 포함되어 개발 후 기능 확인을 할 수 있다.

 

하드웨어 구성

XMC4800 Relax EtherCAT Kit

Raspberry Pi zero w

WIZnet W5500 io

 

오픈소스

GitHub - thanhtam-h/soem-w5500-rpi: Realtime ethercat master for Raspberry pi

 

시스템구성

출처: Raspberry PI EtherCAT Master (PiCAT) with W5500 | WIZnet Makers

 

 

 

 

자료출처

https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_io_intro/1257993099.html&id=

https://www.ethercat.org/download/documents/ETG_Brochure_KOR.pdf

'기술자료' 카테고리의 다른 글

Google Test 란? 사용 방법  (0) 2023.06.26

관련글 더보기

댓글 영역