ETG, EtherCAT의 진단 기능 Part 1 [FA VISION 2018년 9-10월]

EtherCAT의 진단 기능 Part 1
- ETG Korea

산업현장에서 사용하기 위한 통신방식을 선택하는 데 있어서 고성능과 빠른 속도 이외에도 네트워크 진단 기능은 매우 중요한 요소이다.
EtherCAT은 별도의 진단 도구 없이도 EtherCAT이 가진 고유의 기능만으로 충분히 시스템 오류를 감지하고 정확한 위치를 찾을 수 있다.

  산업용 네트워크의 진단기능은 빠른 응답성과 정확한 분석이 기본적으로 충족 되어야 한다.

빠른 응답성
  제어 시스템은 가능하면 빨리 네트워크의 비정상적인 상태를 감지해야만, 응용프로그램에서 빨리 반응해서 기계적인 손상이나, 재료 손실 등을 방지할 수 있다.

정확한 분석
  산업용 네트워크가 자세한 상태 정보를 사용자/응용 프로그램에 제공해야지만 EMC 장애, 하드웨어 오류 또는 펌웨어 오동작과 같은 오류가 발생했는지 여부를 판별할 수 있다.
  EtherCAT은 프로토콜 속성과 슬레이브의 기능으로 이러한 요구 사항들을 충족할 수 있다(그림 1).

그림 1. Overview of diagnostic options with EtherCAT

EtherCAT 프레임: 구조 및 절차
  EtherCAT 프레임은 다양한 EtherCAT 명령어 코드를 포함하는 여러 개의 ‘데이터 그램’ 단위로 구성되어 전송된다(그림 2).

그림 2. Structure of an EtherCAT frame

  이 프레임은 EtherCAT 슬레이브들을 구성된 순서대로 통과하면서 슬레이브에 출력 데이터를 전달하거나 슬레이브에서 수집한 데이터를 가지고 마스터로 회귀한다(그림 3).

그림 3. Processing order of the EtherCAT frames

 이 과정에서, 슬레이브의 EtherCAT Slave Controller(ESC)에서 전달된 EtherCAT 프레임을 처리된다(그림 4).

그림 4. Internal structure of the EtherCAT Slave Controller(ESC)

  이 프레임은 그림 4와 같은 ESC 내에 있는 4개의 포트를 통해, 연결된 다음 슬레이브로 전달되며 ESC 내의 EtherCAT 프로세서 유닛에서는 전달된 데이터 그램 내의 필요한 데이터만을 ESC 메모리 영역으로 이동시키거나 또는 그 반대 역할을 수행한다. ESC 메모리 공간은 하드웨어 및 펌웨어 진단을 위한 EtherCAT 표준 레지스터 정의 영역과 프로세서 데이터, 메일박스에 필요한 영역 등으로 구분되어 있다.
  각 데이터 그램은 명령어 코드가 포함되어 있으며, 이 코드에 따라 메모리에 접근하는 방식이 지정된다.

그림 5. Command code in the datagram

  아래 도표는 EtherCAT이 가진 표준 명령 코드 15가지이다.


  각 EtherCAT 데이터 그램과 명령어에는 Working Counter라고 하는 슬레이브와 마스터의 데이터 교환이 성공적으로 되었는지를 확인할 수 있는 메커니즘이 있기 때문에, 이를 활용하여 마스터 응용프로그램은 실행되는 매 주기마다 효과적으로 모니터링 할 수 있다.

Working Counter
  Working Counter는 EtherCAT 데이터 그램 마지막에 16비트 필드 사이즈로 배치되어 있다(그림 6).

그림 6. Working Counter field at the end of a datagram

  EtherCAT 데이터 그램의 최적화 방식에 의해 하나 이상의 슬레이브가 하나의 명령어 코드로 동작되고 Working counter를 공유하게 된다. EtherCAT 마스터가 프레임을 보낼 때 Working counter는 0이지만, 순차적으로 모든 슬레이브에 전달될 때 마다 슬레이브가 해당 명령을 처리하게 되면 (성공적으로 슬레이브 메모리를 읽거나 쓰게 되면) Working counter가 모듈이 가진 속성(Read/Write/Read Write)에 따라 정해진 값으로 증가하게 된다.


  EtherCAT 마스터는 프레임을 보내기 전 이미 네트워크 구성을 알고 있기 때문에 프레임이 정상적으로 회귀했을 때 예상되는 Working counter 값을 알 수 있으며, 회귀한 프레임에 있는 Working counter 값과 비교할 수 있다.
  Working counter는 스레이브가 꺼져 있거나, 물리적인 네트워크 연결이 끊어지거나, 내부 펌웨어 오류 또는 프레임 전송 주기가 내부 펌웨어 주기에 비해 빠른 경우 ESC 메모리에 읽기 또는 쓰기가 정확하게 수행되지 못해서 값이 증가되지 않을 수 있다.
  마스터는 회귀된 프레임의 Working counter를 통해 오류의 상세한 원인에 대해 알 수는 없지만, 하나의 데이터 그램으로 처리되는 다수의 EtherCAT 슬레이브 중 하나가 데이터 그램을 올바르게 처리하지 못했다는 내용만을 확인할 수 있고, 확인 즉시 이 슬레이브들의 상태 진단을 위한 특정 레지스트리에서 오류의 원인을 확인할 수 있다.
  Wireshark와 같은 네트워크 분석 프로그램을 통해 데이터 그램 내의 Working counter 정보를 추가적으로 분석할 수도 있다(그림 7).

그림 7. Working Counter within a Wireshark scan

  서로 연관된 슬레이브들로 구성된 데이터 그램에서의 Working counter 불일치는 슬레이브들이 동기화 되어 동작하지 않았다는 것을 의미하는 것이기 때문에 이로 인해 발생할 수 있는 기계적인 손상, 재료 손실, 위험한 재료 유출과 사용자 인터페이스를 통해 잘못된 정보를 전달하는 것을 방지하기 위해서 적합한 방식으로 즉시 대응할 수 있게 한다.
  주기적으로 전송되는 프로세스 데이터뿐만 아니라 비주기적으로 전송되는 ‘acyclic’ 명령 코드 또한 마스터에서는 정확하게 처리되었는지 여부를 확인하고, 오류가 있으면 다시 보내야 하므로 Working counter를 통해서 신뢰성 있게 판단할 수가 있다.

예제 1 - Motion control system
  모션 제어 애플리케이션은 일반적으로 동시에 동작하는 여러 축(3차원 보간 등)으로 구성된다. 하드웨어 레벨에서 각 축은 EtherCAT 슬레이브 인터페이스가 있는 모터 드라이브에 해당하고, 각 드라이브의 입출력에 해당하는 프로세서 데이터들은 EtherCAT의 논리적인 읽기 쓰기 명령어 (LRW)로 처리된다.
  보통 하나의 단일 데이터 그램은 모든 드라이브의 프로세스 데이터를 처리하는 데 사용된다. 만약, 드라이브 중 하나에서 전원 단락과 같은 자체 오류가 발생해서 정상적인 통신이 이루어지지 않을 때 모션 컨트롤 애플리케이션은 데이터 그램과 연관된 워킹카운터를 확인하여 연관된 작업/드라이버 들이 더 이상 올바르게 동작 하지 않는다는 것을 판단 해서 관련된 다른 축을 정지시킬 수 있다(그림 8).

그림 8. Cycle-synchronous reaction of the master application

예제 2 - Loss of synchronization
  EtherCAT의 Distributed Clock 기술은 확실한 동기화 애플리케이션을 구현하기에 적합한 기능이다. 모든 슬레이브 내에 있는 클록들은 네트워크 상의 동일한 시간을 기준으로 자체 시간을 정렬하고 슬레이브들의 동기 이벤트를 생성한다. 주기적으로 전송되는 EtherCAT 프레임을 기점으로 동기화 이벤트가 발생하고, 이벤트를 기점으로 프로세서 데이터가 업데이트된다.
  경우에 따라 마스터에서 구현된 프레임 전송시각이 지터에 의해 늦게 전송되어 EtherCAT 슬레이브 자체 동기화 이벤트 발생 이후 프레임이 도달하게 되면, 슬레이브는 이벤트가 누락된 카운트가 증가하게 된다.
  이 값이 사용자가 정의한 임계값을 초과할 경우 슬레이브는 SafeOP 상테로 바뀌게 된다. PLC 프로그램에서는 더 이상 이와 같은 상황에서 발생하는 워킹 카운터 변화를 검출할 수 있고 특정 애플리케이션에 가장 적합한 방식으로 코드 내에서 동기화 손실을 관리할 수 있다. 또한 이러한 오류가 발생하는 원인을 슬레이브에 정의된 레지스터에 기록되며 이를 마스터가 오류 처리에 필요한 정보로 활용할 수 있다(그림 9).

그림 9. Cycle-synchronous detection of synchronization error

예제 3 - Detection of topology changes
  브로드 캐스트 데이터 그램의 워킹 카운터 정보는 하드웨어 장애 또는 슬레이브 일부의 연결 오류로 인해 발생할 수 있는 네트워크 토폴로지의 변화를 주기적으로 모니터링 하기 위해 활용할 수 있다.
  브로드 캐스트 데이터 그램은 모든 네트워크 슬레이브에서 처리된다. 따라서 이러한 데이터 그램에 사용되는 워킹 카운터 값은 항상 구성된 슬레이브의 수에 비례하게 된다. 케이블 연결이 끊어지거나 네트워크의 일부 슬레이브가 꺼지면, 네트워크 상의 모든 슬레이브가 프레임을 처리하는 것이 아니기 때문에 브로드 캐스트 데이터 그램에 수신된 워킹 카운터 값이 감소한다.
  이 이벤트는 마스터가 각 슬레이브의 링크 상태 레지스터 값을 모니터링 하거나, 네트워크 토폴로지가 변경된 위치를 정확하게 감지하는 데 사용될 수 있다. 그림 9는 토폴로지 변경 전과 후의 워킹 카운터 값을 보여준다(그림 10).

그림 10. Cycle-synchronous detection of a topology change

결론
  워킹 카운터를 통해 EtherCAT은 마스터 애플리케이션이 통신주기와 동기적으로 네트워크 상태를 모니터링 하는 데 사용할 수 있는 강력한 진단 메커니즘을 제공한다. 따라서 PLC 프로그램과 같은 마스터 응용 프로그램은 응용 프로그램 소프트웨어의 작업 카운터를 간단하게 평가하여 네트워크 내의 모든 오류 상태에 즉시 대응하거나, 각 슬레이브가 제공하는 표준 진단 레지스터를 액세스하여 특정 오류를 정확하게 감지할 수도 있다. 이 레지스터의 설명 및 사용법은 다음 호에서 설명한다.

댓글

이 블로그의 인기 게시물

[IPC 메뉴얼] BECKHOFF PC 기본 설정 방법

트라이텍, EtherCAT과 DeviceNet [월간CONTROL 2013/11]

[쉽고 간단한 안내서] TwinCAT PLC HMI와 TwinCAT HMI